django-gisserver 2.2.1__tar.gz → 2.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/CHANGES.md +4 -0
  2. {django_gisserver-2.2.1/django_gisserver.egg-info → django_gisserver-2.2.2}/PKG-INFO +1 -1
  3. {django_gisserver-2.2.1 → django_gisserver-2.2.2/django_gisserver.egg-info}/PKG-INFO +1 -1
  4. django_gisserver-2.2.2/gisserver/__init__.py +1 -0
  5. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/operations/base.py +26 -6
  6. django_gisserver-2.2.1/gisserver/__init__.py +0 -1
  7. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/LICENSE +0 -0
  8. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/MANIFEST.in +0 -0
  9. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/README.md +0 -0
  10. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/django_gisserver.egg-info/SOURCES.txt +0 -0
  11. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/django_gisserver.egg-info/dependency_links.txt +0 -0
  12. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/django_gisserver.egg-info/not-zip-safe +0 -0
  13. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/django_gisserver.egg-info/requires.txt +0 -0
  14. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/django_gisserver.egg-info/top_level.txt +0 -0
  15. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/compat.py +0 -0
  16. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/conf.py +0 -0
  17. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/crs.py +0 -0
  18. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/db.py +0 -0
  19. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/exceptions.py +0 -0
  20. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/extensions/__init__.py +0 -0
  21. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/extensions/functions.py +0 -0
  22. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/extensions/queries.py +0 -0
  23. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/features.py +0 -0
  24. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/geometries.py +0 -0
  25. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/management/__init__.py +0 -0
  26. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/management/commands/__init__.py +0 -0
  27. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/management/commands/loadgeojson.py +0 -0
  28. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/operations/__init__.py +0 -0
  29. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/operations/wfs20.py +0 -0
  30. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/__init__.py +0 -0
  31. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/base.py +0 -0
  32. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/csv.py +0 -0
  33. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/geojson.py +0 -0
  34. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/gml32.py +0 -0
  35. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/iters.py +0 -0
  36. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/results.py +0 -0
  37. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/stored.py +0 -0
  38. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/utils.py +0 -0
  39. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/output/xmlschema.py +0 -0
  40. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/__init__.py +0 -0
  41. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/ast.py +0 -0
  42. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/fes20/__init__.py +0 -0
  43. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/fes20/expressions.py +0 -0
  44. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/fes20/filters.py +0 -0
  45. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/fes20/identifiers.py +0 -0
  46. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/fes20/lookups.py +0 -0
  47. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/fes20/operators.py +0 -0
  48. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/fes20/sorting.py +0 -0
  49. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/gml/__init__.py +0 -0
  50. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/gml/base.py +0 -0
  51. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/gml/geometries.py +0 -0
  52. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/ows/__init__.py +0 -0
  53. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/ows/kvp.py +0 -0
  54. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/ows/requests.py +0 -0
  55. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/query.py +0 -0
  56. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/values.py +0 -0
  57. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/wfs20/__init__.py +0 -0
  58. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/wfs20/adhoc.py +0 -0
  59. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/wfs20/base.py +0 -0
  60. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/wfs20/projection.py +0 -0
  61. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/wfs20/requests.py +0 -0
  62. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/wfs20/stored.py +0 -0
  63. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/parsers/xml.py +0 -0
  64. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/projection.py +0 -0
  65. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/static/gisserver/bootstrap-5.3.6.min.css +0 -0
  66. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/static/gisserver/index.css +0 -0
  67. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/templates/gisserver/base.html +0 -0
  68. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/templates/gisserver/index.html +0 -0
  69. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/templates/gisserver/service_description.html +0 -0
  70. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/templates/gisserver/wfs/2.0.0/get_capabilities.xml +0 -0
  71. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/templates/gisserver/wfs/feature_field.html +0 -0
  72. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/templates/gisserver/wfs/feature_type.html +0 -0
  73. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/templatetags/__init__.py +0 -0
  74. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/templatetags/gisserver_tags.py +0 -0
  75. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/types.py +0 -0
  76. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/gisserver/views.py +0 -0
  77. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/pyproject.toml +0 -0
  78. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/setup.cfg +0 -0
  79. {django_gisserver-2.2.1 → django_gisserver-2.2.2}/setup.py +0 -0
@@ -1,3 +1,7 @@
1
+ # 2025-12-04 (2.2.2)
2
+
3
+ * Fix output format matching to allow `application/json; subtype=geojson; charset=utf-8`
4
+
1
5
  # 2025-10-14 (2.2.1)
2
6
 
3
7
  * Add outputFormat to GetFeature operation to support ArcGISOnline
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-gisserver
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: Django speaking WFS 2.0 (exposing GeoDjango model fields)
5
5
  Home-page: https://github.com/amsterdam/django-gisserver
6
6
  Author: Diederik van der Boor
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-gisserver
3
- Version: 2.2.1
3
+ Version: 2.2.2
4
4
  Summary: Django speaking WFS 2.0 (exposing GeoDjango model fields)
5
5
  Home-page: https://github.com/amsterdam/django-gisserver
6
6
  Author: Diederik van der Boor
@@ -0,0 +1 @@
1
+ __version__ = "2.2.2" # follows PEP440
@@ -96,12 +96,32 @@ class OutputFormat(typing.Generic[R]):
96
96
  self._max_page_size = max_page_size
97
97
 
98
98
  def matches(self, value):
99
- """Test whether the 'value' is matched by this object."""
100
- if self.content_type == "application/gml+xml":
101
- # Allow "application/gml+xml; version=3.2" as sent by FME.
102
- # TODO rewrite this matching code in a clean way.
103
- value = value.split("; ", 1)[0]
104
- return self.content_type == value or self.subtype == value
99
+ """
100
+ Test whether the 'value' is matched by this object.
101
+
102
+ The regex used captures the content-type (ct), subtype (st), charset (cs) and version (v)
103
+ from the supplied value.
104
+
105
+ Some possible input values are:
106
+ - application/gml+xml
107
+ - application/gml+xml; version=3.2
108
+ - csv
109
+ - text/csv
110
+ - application/json; subtype=geojson; charset=utf-8
111
+ - geojson
112
+ """
113
+
114
+ regex = (
115
+ r"^(?P<ct>[^;]+);?\s?(?:(?:subtype=)(?P<st>[^;]*))?;?\s?"
116
+ r"(?:(?:charset=)(?P<cs>.*))?(;\s)?(?:(?:version=)(?P<v>.*))?"
117
+ )
118
+ if match := re.match(regex, value):
119
+ # If we capture a subtype, match on both
120
+ if match.group("st") is not None:
121
+ return self.content_type == match.group("ct") and self.subtype == match.group("st")
122
+ else:
123
+ return self.content_type == match.group("ct") or self.subtype == match.group("ct")
124
+ return False
105
125
 
106
126
  @property
107
127
  def identifier(self):
@@ -1 +0,0 @@
1
- __version__ = "2.2.1" # follows PEP440