Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
staffanm committed Jul 14, 2019
1 parent 149136f commit 9aa60a9
Show file tree
Hide file tree
Showing 8 changed files with 55 additions and 23 deletions.
6 changes: 6 additions & 0 deletions ferenda/sources/legal/se/offtryck.py
Original file line number Diff line number Diff line change
Expand Up @@ -1083,6 +1083,12 @@ def estimate_density(self, series, resolution, bandwidth):
return bins, scale

def threshold(self, series, resolution=1000, bandwidth=200):
# in the degenerate case that we have a single element series,
# there is no way to calculate a threshold between "low" and
# "high" values. Just return whatever that element is.
assert len(series), "Impossible to calculate a KDE threshold for an empty series"
if len(series) == 1:
return series[0]
bins, scale = self.estimate_density(series, resolution, bandwidth)

# find the valley after the first (significant, not less than
Expand Down
23 changes: 16 additions & 7 deletions ferenda/sources/legal/se/res/xsl/sfs.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,14 @@
</xsl:choose>
<section id="top" class="col-sm-7">
<h1><xsl:value-of select="../xhtml:head/xhtml:title"/></h1>
<h2>Version: <xsl:value-of select="$version"/></h2>
<!--
<xsl:if test="$version">
<h2>Version: <xsl:value-of select="$version"/></h2>
</xsl:if>
-->
<xsl:if test="$label or $alternate">
<p class="lead">(<xsl:value-of select="$label"/><xsl:if test="$label and $alternate">, </xsl:if><xsl:value-of select="$alternate"/>)</p>
</xsl:if>
<xsl:call-template name="docversions"/>
<xsl:call-template name="docmetadata"/>
<xsl:if test="../../xhtml:head/xhtml:meta[@rel='rinfoex:upphavdAv']">
<div class="ui-state-error">
Expand Down Expand Up @@ -127,7 +130,6 @@
<xsl:variable name="versions" select="$sfsannotations/rdf:Description[@rdf:about=$documenturi]/dcterms:hasVersion/rdf:Description"/>
<div class="docversions">
<xsl:if test="$versions">
<h2>Jämför med tidigare versioner</h2>
<!--
<ul>
<xsl:for-each select="$versions">
Expand All @@ -137,12 +139,16 @@
-->
<form action="" method="GET">
<input type="hidden" name="diff" value="true"/>
<select name="from">
<select name="from" id="from" onchange="if (this.options[this.selectedIndex] != 'None') {{ this.form.submit(); }}">
<!--<select name="from" id="from" onchange="this.form.submit()">-->
<option value="None">Jämför med tidigare lydelser</option>
<xsl:for-each select="$versions">
<option value="{substring(dcterms:identifier, 5)}"><xsl:value-of select="dcterms:identifier"/></option>
<option value="{substring(dcterms:identifier, 5)}"><xsl:value-of select="dcterms:identifier"/>
<xsl:if test="rpubl:forarbete"> (<xsl:value-of select="rpubl:forarbete/rdf:Description/dcterms:identifier"/>: <xsl:value-of select="rpubl:forarbete/rdf:Description/dcterms:title"/> <xsl:if test="rpubl:ikrafttradandedatum and rpubl:ikrafttradandedatum != 'None'">, ikraft <xsl:value-of select="rpubl:ikrafttradandedatum"/></xsl:if>)</xsl:if>
<!-- fixme: if the version is the first version (x = y in the url .../x/konsolidering/y), state "(ursprunglig lydelse)" -->
</option>
</xsl:for-each>
</select>
<input type="submit" value="Jämför"/>
</form>
</xsl:if>
</div>
Expand All @@ -156,7 +162,10 @@
<dt>Utfärdad</dt>
<dd><xsl:value-of select="//xhtml:meta[@property='rpubl:utfardandedatum']/@content"/></dd>
<dt>Ändring införd</dt>
<dd><xsl:value-of select="//xhtml:meta[@property='dcterms:identifier']/@content"/></dd>
<dd><xsl:value-of select="//xhtml:meta[@property='dcterms:identifier']/@content"/>
<xsl:call-template name="docversions"/>

</dd>
<xsl:if test="//xhtml:meta[@property='rpubl:ikrafttradandedatum']/@content">
<dt>Ikraft</dt>
<dd><xsl:value-of select="//xhtml:meta[@property='rpubl:ikrafttradandedatum']/@content"/></dd>
Expand Down
18 changes: 10 additions & 8 deletions ferenda/sources/legal/se/sfs.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,8 @@ def download_new(self):
revisit = []
if 'revisit' in self.config and self.config.revisit:
last_revisit = self.config.revisit
if not isinstance(last_revisit, list):
last_revisit = [last_revisit]
for wanted_sfs_nr in last_revisit:
self.log.info('Revisiting %s' % wanted_sfs_nr)
try:
Expand Down Expand Up @@ -806,11 +808,6 @@ def extract_metadata_header(self, headertext, basefile):
dummyfile=self.store.parsed_path(basefile))

elif key in ('Departement', 'Departement/ myndighet'):
# the split is only needed because of SFS 1942:724,
# which has "Försvarsdepartementet,
# Socialdepartementet"...
if "departementet, " in val:
val = val.split(", ")[0]
d["dcterms:creator"] = val
elif (key == 'Ändring införd' and re_sfs(val)):
uppdaterad = re_sfs(val).group(1)
Expand Down Expand Up @@ -871,7 +868,12 @@ def sanitize_departement(self, val):
if val == cleaned:
break
val = cleaned
return cleaned
# SFS 1942:723: has "Försvarsdepartementet, Socialdepartementet",
# SFS 1941:846 has "Miljödepartementet Justitiedepartementet"...
# ... just grab the first in these rare cases
if re.search("departementet,? [A-Z]", val):
val = re.split(",? ", val)[0]
return val

def polish_metadata(self, attributes, basefile, infer_nodes=True):
# attributes will be a nested dict with some values being
Expand Down Expand Up @@ -1416,7 +1418,7 @@ def parse_entry_summary(self, doc):
if ikraft:
summary += "Ikraftträder: %s\n" % ikraft
if forarb:
display = ", ".join([regpost.meta.value(x, DCTERMS.identifier) for x in forarb])
display = ", ".join([regpost.meta.value(x, DCTERMS.identifier) for x in forarb if regpost.meta.value(x, DCTERMS.identifier)])
summary += "Förarbeten: %s\n" % display
return summary

Expand Down Expand Up @@ -2081,7 +2083,7 @@ def updated_sfs_key(row, binding, resource_graph):
Facet(RPUBL.arsutgava,
use_for_toc=True,
label="Ordnade efter utgivningsår",
pagetitle='Författningar utgivna %(selected)s',
pagetitle='Författninagr utgivna %(selected)s',
key=sfsnrkey,
dimension_label="utgiven",
selector_descending=True),
Expand Down
23 changes: 19 additions & 4 deletions ferenda/sources/legal/se/trips.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,11 +162,26 @@ def _extract_text_inner(self, basefile, attachment=None, version=None, encoding=
if encoding == "utf-8":
content = soup.find("div", "search-results-content")
body = content.find("div", "body-text")
if not body or not body.string:
raise DocumentRemovedError("%s has no body-text" % basefile,
if not body:
raise DocumentRemovedError("%s has no body-text div" % basefile,
dummyfile=self.store.parsed_path(basefile))
body.string = "----------------------------------------------------------------\n\n" + body.string
txt = content.text
if body.string:
body.string = "----------------------------------------------------------------\n\n" + body.string
txt = content.text
else:
if body.text.strip():
# meaning we have text, just not as a single
# textnode within the <div>. This usually means
# that some < > characters have not been escaped
# in the source material, and are misinterpreted
# by BS4. We warn and salvage what we can.
self.log.warning("Plaintext probably contains unescaped angle brackets, causing an incorrect HTML interpretation")
tmptext = body.text
body.clear()
body.string = "----------------------------------------------------------------\n\n" + tmptext
txt = content.text
else:
txt = content.text + "----------------------------------------------------------------\n\n"
else:
# some archival pages have a different tag structure
body = soup.find("pre")
Expand Down
2 changes: 1 addition & 1 deletion lagen/nu/res/patches/sfs/patches/1942/740.patch
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- data/sfs/intermediate/1942/740.txt.bz2
+++
@@ -9594,11 +9594,14 @@ Korrigerat formattering av 54:8
@@ -9594,11 +9594,14 @@ [version: 2013:876-] Korrigerat formattering av 54:8
invändningen mot tingsrättens behörighet grundas på en
omständighet som högre rätt självmant skall beakta vid ett
överklagande. Lag (1994:1034).
Expand Down
2 changes: 1 addition & 1 deletion lagen/nu/res/patches/sfs/patches/1979/1152.patch
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- data/sfs/intermediate/1979/1152.txt
+++ /tmp/tmpvv6a7f_6
@@ -218,12 +218,14 @@ Justeringar för tabellformattering i 2:2
@@ -218,12 +218,14 @@ [version: 2009:105-] Justeringar för tabellformattering i 2:2
lagring av bränsle och annan byggnad för produktionen utgör
kraftverksbyggnad.

Expand Down
2 changes: 1 addition & 1 deletion lagen/nu/res/patches/sfs/patches/1988/609.patch
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- data/sfs/intermediate/1988/609.txt.bz2
+++
@@ -160,7 +160,7 @@ Korrigerat SFS-nummer i hänvisningarna till rättshjälpslagen
@@ -160,7 +160,7 @@ [version: 2018:535-] Korrigerat SFS-nummer i hänvisningarna till rättshjälpslagen
Lag (2018:535).

5 § Målsägandebiträdet har rätt till ersättning i enlighet med vad
Expand Down
2 changes: 1 addition & 1 deletion lagen/nu/res/patches/sfs/patches/1997/192.patch
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- data/sfs/intermediate/1997/192.txt
+++ /tmp/tmpy3vunwtx
@@ -68,7 +68,6 @@ Formattering av 6 a §
@@ -68,7 +68,6 @@ [version: 2015:972-] Formattering av 6 a §
styrelse och revisorer samt stadgar som innebär att
sammanslutningen är öppen. Lag (2009:289).

Expand Down

0 comments on commit 9aa60a9

Please sign in to comment.