Skip to content

Commit

Permalink
Merge pull request #282 from openoereb/api-version-1-2-4
Browse files Browse the repository at this point in the history
extensions for api 1.2.4
  • Loading branch information
michmuel authored Jan 8, 2024
2 parents ce5630e + 560666b commit 5a68e4a
Show file tree
Hide file tree
Showing 10 changed files with 483 additions and 53 deletions.
11 changes: 11 additions & 0 deletions .codacy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
engines:
pylintpython3:
enabled: true
python_version: 3
bandit:
enabled: true
exclude_paths:
- "tests/**"

exclude_paths:
- 'tests/**'
4 changes: 4 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[FORMAT]

# Maximum number of characters on a single line.
max-line-length=110
3 changes: 2 additions & 1 deletion CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ Changelog
2.0.5
-----

Supported GEO-Link API versions: v1.0.0, v1.1.0, v1.1.1, v1.2.0, v1.2.1, v1.2.2 (default), v1.2.3
Supported GEO-Link API versions: v1.0.0, v1.1.0, v1.1.1, v1.2.0, v1.2.1, v1.2.2, v1.2.3, v1.2.4 (default)

- Fix html rendering of documents with abrogation date
- Dependency updates

2.0.4
-----
Expand Down
5 changes: 4 additions & 1 deletion geolink_formatter/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,16 @@ class SCHEMA(object):
V1_2_3 = '1.2.3'
"""str: geoLink schema version 1.2.3"""

V1_2_4 = '1.2.4'
"""str: geoLink schema version 1.2.3"""


class XML(object):

_date_format = '%Y-%m-%d'
"""str: Format of date values in XML."""

def __init__(self, host_url=None, version='1.2.2', dtd_validation=False, xsd_validation=True):
def __init__(self, host_url=None, version='1.2.4', dtd_validation=False, xsd_validation=True):
"""Create a new XML parser instance containing the geoLink XSD for validation.
Args:
Expand Down
166 changes: 166 additions & 0 deletions geolink_formatter/schema/v1.2.4.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
xmlns:vc='http://www.w3.org/2007/XMLSchema-versioning'
vc:minVersion='1.1'>
<xs:element name="geolinks">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="document" type="geolink_document"></xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="prepublinks">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="document">
<xs:alternative test="@doctype = 'prepublication'" type="prepublink_prepublication_document"/>
<xs:alternative type="prepublink_other_document"/>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="document_base">
<xs:sequence>
<xs:element name="file" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="main" />
<xs:enumeration value="additional" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="description" type="xs:string" />
<xs:attribute name="href" type="xs:string" />
<xs:attribute name="title" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" />
<xs:attribute name="federal_level">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="A livello intercantonale" />
<xs:enumeration value="Bezirk" />
<xs:enumeration value="Bund" />
<xs:enumeration value="Canton" />
<xs:enumeration value="Cantone" />
<xs:enumeration value="Chantun" />
<xs:enumeration value="Commune" />
<xs:enumeration value="Comune" />
<xs:enumeration value="Confédération" />
<xs:enumeration value="Confederazione" />
<xs:enumeration value="Confederaziun" />
<xs:enumeration value="Fürstentum" />
<xs:enumeration value="Gemeinde" />
<xs:enumeration value="Intercantonal" />
<xs:enumeration value="Interchantunal" />
<xs:enumeration value="Interkantonal" />
<xs:enumeration value="Kanton" />
<xs:enumeration value="Vischnanca" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="language">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="de" />
<xs:enumeration value="fr" />
<xs:enumeration value="it" />
<xs:enumeration value="rm" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="authority" type="xs:string" />
<xs:attribute name="authority_url" type="xs:string" />
<xs:attribute name="cycle" type="xs:string" />
<xs:attribute name="title" type="xs:string" />
<xs:attribute name="number" type="xs:string" />
<xs:attribute name="abbreviation" type="xs:string" />
<xs:attribute name="instance" type="xs:string" />
<xs:attribute name="type" type="xs:string" />
<xs:attribute name="subtype" type="xs:string" />
<xs:attribute name="approval_date" type="xs:string" />
<xs:attribute name="publication_date" type="xs:string" />
<xs:attribute name="index" type="xs:integer" />
</xs:complexType>
<xs:complexType name="prepublink_prepublication_document">
<xs:complexContent>
<xs:extension base="document_base">
<xs:attribute name="municipality" type="xs:string" />
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="main" />
<xs:enumeration value="related" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="status" type="xs:string" />
<xs:attribute name="status_start_date" type="xs:string" />
<xs:attribute name="status_end_date" type="xs:string" />
<xs:attribute name="doctype">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="prepublication" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="prepublink_other_document">
<xs:complexContent>
<xs:extension base="document_base">
<xs:attribute name="municipality" type="xs:string" />
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="main" />
<xs:enumeration value="related" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="decree_date" type="xs:string" />
<xs:attribute name="enactment_date" type="xs:string" />
<xs:attribute name="abrogation_date" type="xs:string" />
<xs:attribute name="doctype">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="edict" />
<xs:enumeration value="decree" />
<xs:enumeration value="notice" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="geolink_document">
<xs:complexContent>
<xs:extension base="document_base">
<xs:attribute name="category">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="main" />
<xs:enumeration value="related" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="municipality" type="xs:string" />
<xs:attribute name="decree_date" type="xs:string" />
<xs:attribute name="enactment_date" type="xs:string" />
<xs:attribute name="abrogation_date" type="xs:string" />
<xs:attribute name="doctype">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="edict" />
<xs:enumeration value="decree" />
<xs:enumeration value="notice" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
45 changes: 45 additions & 0 deletions tests/resources/geolink_v1.2.4.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<geolinks>
<document authority="Bauverwaltung Gemeinde" authority_url="http%3A%2F%2Fwww.zihlschlacht-sitterdorf.ch"
category="main" doctype="decree" enactment_date="2001-03-27"
federal_level="Gemeinde" id="1500" instance="DBU" subtype="Gestaltungsplan"
title="Tiefkühllager" type="Sondernutzungsplan" decree_date="2001-03-15" number="1A"
abbreviation="abbr" municipality="Testgemeinde">
<file category="main" href="/api/attachments/4735" title="2918-E-1.pdf" description="2918-E-1.pdf"></file>
<file category="additional" href="/api/attachments/4736" title="2918-P-1.pdf" description="Plan 1"></file>
<file category="additional" href="/api/attachments/4737" title="2918-P-2.pdf" description="Plan 2"></file>
<file category="additional" href="/api/attachments/4738" title="2918-P-3.pdf" description="Plan 3"></file>
<file category="additional" href="/api/attachments/4739" title="2918-S-1.pdf" description=""></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2011-12-21" doctype="edict" enactment_date="2017-04-01"
federal_level="Kanton" id="4782" title="Planungs- und Baugesetz">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1379?locale=de"
description="700.pdf"
title="700.pdf"></file>

</document>
<document authority="Bundeskanzlei" authority_url="https%3A%2F%2Fwww.bk.admin.ch" category="related"
doctype="edict" enactment_date="2016-01-01" federal_level="Bund" id="4776"
title="Bundesgesetz über die Raumplanung"
index="1">
<file category="main" href="http://www.lexfind.ch/dtah/136884/2" description="700.de.pdf" title="700.de.pdf"></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2012-09-18" doctype="edict" enactment_date="2016-11-05"
federal_level="Kanton" id="4783"
title="Verordnung des Regierungsrates zum Planungs- und Baugesetz und zur Interkantonalen Vereinbarung über die Harmonisierung der Baubegriffe"
index="2">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1319?locale=de"
description="700.1.pdf"
title="700.1.pdf"></file>

</document>
<document category="related" doctype="notice" id="4" title="Beispiel Hinweis Dokument" index="3">
<file category="main" href="/api/attachments/5101" description="example_notice.pdf" title="example_notice.pdf"></file>
</document>
</geolinks>
45 changes: 45 additions & 0 deletions tests/resources/geolink_v1.2.4_error_status.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<geolinks>
<document authority="Bauverwaltung Gemeinde" authority_url="http%3A%2F%2Fwww.zihlschlacht-sitterdorf.ch"
category="main" doctype="decree" enactment_date="2001-03-27"
federal_level="Gemeinde" id="1500" instance="DBU" subtype="Gestaltungsplan"
title="Tiefkühllager" type="Sondernutzungsplan" decree_date="2001-03-15" number="1A"
abbreviation="abbr" municipality="Testgemeinde" status="status_1">
<file category="main" href="/api/attachments/4735" title="2918-E-1.pdf" description="2918-E-1.pdf"></file>
<file category="additional" href="/api/attachments/4736" title="2918-P-1.pdf" description="Plan 1"></file>
<file category="additional" href="/api/attachments/4737" title="2918-P-2.pdf" description="Plan 2"></file>
<file category="additional" href="/api/attachments/4738" title="2918-P-3.pdf" description="Plan 3"></file>
<file category="additional" href="/api/attachments/4739" title="2918-S-1.pdf" description=""></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2011-12-21" doctype="edict" enactment_date="2017-04-01"
federal_level="Kanton" id="4782" title="Planungs- und Baugesetz">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1379?locale=de"
description="700.pdf"
title="700.pdf"></file>

</document>
<document authority="Bundeskanzlei" authority_url="https%3A%2F%2Fwww.bk.admin.ch" category="related"
doctype="edict" enactment_date="2016-01-01" federal_level="Bund" id="4776"
title="Bundesgesetz über die Raumplanung"
index="1">
<file category="main" href="http://www.lexfind.ch/dtah/136884/2" description="700.de.pdf" title="700.de.pdf"></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2012-09-18" doctype="edict" enactment_date="2016-11-05"
federal_level="Kanton" id="4783"
title="Verordnung des Regierungsrates zum Planungs- und Baugesetz und zur Interkantonalen Vereinbarung über die Harmonisierung der Baubegriffe"
index="2">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1319?locale=de"
description="700.1.pdf"
title="700.1.pdf"></file>

</document>
<document category="related" doctype="notice" id="4" title="Beispiel Hinweis Dokument" index="3">
<file category="main" href="/api/attachments/5101" description="example_notice.pdf" title="example_notice.pdf"></file>
</document>
</geolinks>
51 changes: 51 additions & 0 deletions tests/resources/prepublink_v1.2.4.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<prepublinks>
<document authority="Bauverwaltung Gemeinde" authority_url="http%3A%2F%2Fwww.zihlschlacht-sitterdorf.ch" doctype="prepublication" federal_level="Gemeinde" id="7395" municipality="Testgemeinde" category="main" instance="Gemeinde" status="RBG (1) beschlossen, Genehmigungsantrag ausstehend" status_start_date="2022-01-01" status_end_date="2023-01-01" title="Tiefkühllager" type="Sondernutzungsplan">
<file category="main" href="/api/attachments/4735" title="2918-E-1.pdf" description="2918-E-1.pdf"></file>
<file category="additional" href="/api/attachments/4736" title="2918-P-1.pdf" description="Plan 1"></file>
<file category="additional" href="/api/attachments/4737" title="2918-P-2.pdf" description="Plan 2"></file>
<file category="additional" href="/api/attachments/4738" title="2918-P-3.pdf" description="Plan 3"></file>
<file category="additional" href="/api/attachments/4739" title="2918-S-1.pdf" description=""></file>
</document>
<document authority="Bauverwaltung Gemeinde" authority_url="http%3A%2F%2Fwww.zihlschlacht-sitterdorf.ch"
category="main" doctype="decree" enactment_date="2001-03-27"
federal_level="Gemeinde" id="1500" instance="DBU" subtype="Gestaltungsplan"
title="Tiefkühllager" type="Sondernutzungsplan" decree_date="2001-03-15" number="1A"
abbreviation="abbr" municipality="Testgemeinde">
<file category="main" href="/api/attachments/4735" title="2918-E-1.pdf" description="2918-E-1.pdf"></file>
<file category="additional" href="/api/attachments/4736" title="2918-P-1.pdf" description="Plan 1"></file>
<file category="additional" href="/api/attachments/4737" title="2918-P-2.pdf" description="Plan 2"></file>
<file category="additional" href="/api/attachments/4738" title="2918-P-3.pdf" description="Plan 3"></file>
<file category="additional" href="/api/attachments/4739" title="2918-S-1.pdf" description=""></file>
</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2011-12-21" doctype="edict" enactment_date="2017-04-01"
federal_level="Kanton" id="4782" title="Planungs- und Baugesetz">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1379?locale=de"
description="700.pdf"
title="700.pdf"></file>

</document>
<document authority="Bundeskanzlei" authority_url="https%3A%2F%2Fwww.bk.admin.ch" category="related"
doctype="edict" enactment_date="2016-01-01" federal_level="Bund" id="4776"
title="Bundesgesetz über die Raumplanung"
index="1">
<file category="main" href="http://www.lexfind.ch/dtah/136884/2" description="700.de.pdf" title="700.de.pdf"></file>

</document>
<document authority="Staatskanzlei Kanton Thurgau" authority_url="http%3A%2F%2Fwww.staatskanzlei.tg.ch"
category="related" decree_date="2012-09-18" doctype="edict" enactment_date="2016-11-05"
federal_level="Kanton" id="4783"
title="Verordnung des Regierungsrates zum Planungs- und Baugesetz und zur Interkantonalen Vereinbarung über die Harmonisierung der Baubegriffe"
index="2">
<file category="main"
href="http://www.rechtsbuch.tg.ch/frontend/versions/pdf_file_with_annex/1319?locale=de"
description="700.1.pdf"
title="700.1.pdf"></file>

</document>
<document category="related" doctype="notice" id="4" title="Beispiel Hinweis Dokument" index="3">
<file category="main" href="/api/attachments/5101" description="example_notice.pdf" title="example_notice.pdf"></file>
</document>
</prepublinks>
Loading

0 comments on commit 5a68e4a

Please sign in to comment.