django-gisserver 2.2.1__tar.gz → 2.3.0__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 (80) hide show
  1. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/CHANGES.md +9 -0
  2. {django_gisserver-2.2.1/django_gisserver.egg-info → django_gisserver-2.3.0}/PKG-INFO +16 -16
  3. {django_gisserver-2.2.1 → django_gisserver-2.3.0/django_gisserver.egg-info}/PKG-INFO +16 -16
  4. django_gisserver-2.3.0/django_gisserver.egg-info/requires.txt +19 -0
  5. django_gisserver-2.3.0/gisserver/__init__.py +1 -0
  6. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/extensions/functions.py +8 -10
  7. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/operations/base.py +26 -6
  8. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/setup.py +15 -15
  9. django_gisserver-2.2.1/django_gisserver.egg-info/requires.txt +0 -19
  10. django_gisserver-2.2.1/gisserver/__init__.py +0 -1
  11. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/LICENSE +0 -0
  12. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/MANIFEST.in +0 -0
  13. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/README.md +0 -0
  14. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/django_gisserver.egg-info/SOURCES.txt +0 -0
  15. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/django_gisserver.egg-info/dependency_links.txt +0 -0
  16. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/django_gisserver.egg-info/not-zip-safe +0 -0
  17. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/django_gisserver.egg-info/top_level.txt +0 -0
  18. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/compat.py +0 -0
  19. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/conf.py +0 -0
  20. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/crs.py +0 -0
  21. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/db.py +0 -0
  22. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/exceptions.py +0 -0
  23. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/extensions/__init__.py +0 -0
  24. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/extensions/queries.py +0 -0
  25. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/features.py +0 -0
  26. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/geometries.py +0 -0
  27. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/management/__init__.py +0 -0
  28. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/management/commands/__init__.py +0 -0
  29. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/management/commands/loadgeojson.py +0 -0
  30. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/operations/__init__.py +0 -0
  31. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/operations/wfs20.py +0 -0
  32. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/__init__.py +0 -0
  33. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/base.py +0 -0
  34. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/csv.py +0 -0
  35. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/geojson.py +0 -0
  36. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/gml32.py +0 -0
  37. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/iters.py +0 -0
  38. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/results.py +0 -0
  39. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/stored.py +0 -0
  40. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/utils.py +0 -0
  41. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/output/xmlschema.py +0 -0
  42. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/__init__.py +0 -0
  43. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/ast.py +0 -0
  44. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/fes20/__init__.py +0 -0
  45. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/fes20/expressions.py +0 -0
  46. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/fes20/filters.py +0 -0
  47. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/fes20/identifiers.py +0 -0
  48. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/fes20/lookups.py +0 -0
  49. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/fes20/operators.py +0 -0
  50. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/fes20/sorting.py +0 -0
  51. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/gml/__init__.py +0 -0
  52. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/gml/base.py +0 -0
  53. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/gml/geometries.py +0 -0
  54. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/ows/__init__.py +0 -0
  55. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/ows/kvp.py +0 -0
  56. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/ows/requests.py +0 -0
  57. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/query.py +0 -0
  58. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/values.py +0 -0
  59. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/wfs20/__init__.py +0 -0
  60. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/wfs20/adhoc.py +0 -0
  61. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/wfs20/base.py +0 -0
  62. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/wfs20/projection.py +0 -0
  63. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/wfs20/requests.py +0 -0
  64. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/wfs20/stored.py +0 -0
  65. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/parsers/xml.py +0 -0
  66. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/projection.py +0 -0
  67. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/static/gisserver/bootstrap-5.3.6.min.css +0 -0
  68. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/static/gisserver/index.css +0 -0
  69. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/templates/gisserver/base.html +0 -0
  70. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/templates/gisserver/index.html +0 -0
  71. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/templates/gisserver/service_description.html +0 -0
  72. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/templates/gisserver/wfs/2.0.0/get_capabilities.xml +0 -0
  73. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/templates/gisserver/wfs/feature_field.html +0 -0
  74. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/templates/gisserver/wfs/feature_type.html +0 -0
  75. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/templatetags/__init__.py +0 -0
  76. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/templatetags/gisserver_tags.py +0 -0
  77. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/types.py +0 -0
  78. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/gisserver/views.py +0 -0
  79. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/pyproject.toml +0 -0
  80. {django_gisserver-2.2.1 → django_gisserver-2.3.0}/setup.cfg +0 -0
@@ -1,3 +1,12 @@
1
+ # 2026-01-12 (2.3.0)
2
+
3
+ * Add support for python 3.14 and Django 5.2
4
+ * Drop support for Django 5.1
5
+
6
+ # 2025-12-04 (2.2.2)
7
+
8
+ * Fix output format matching to allow `application/json; subtype=geojson; charset=utf-8`
9
+
1
10
  # 2025-10-14 (2.2.1)
2
11
 
3
12
  * 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.3.0
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
@@ -16,35 +16,35 @@ Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
19
20
  Classifier: Framework :: Django
20
21
  Classifier: Framework :: Django :: 4.2
21
- Classifier: Framework :: Django :: 5.1
22
22
  Classifier: Framework :: Django :: 5.2
23
23
  Classifier: Topic :: Internet :: WWW/HTTP
24
24
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
25
25
  Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
26
26
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
- Requires: Django (>=4.2, >=5.1)
27
+ Requires: Django (>=4.2, >=5.2, <6.0)
28
28
  Requires-Python: >=3.10
29
29
  Description-Content-Type: text/markdown
30
30
  License-File: LICENSE
31
- Requires-Dist: Django>=4.2
31
+ Requires-Dist: Django<6.0,>=4.2
32
32
  Requires-Dist: defusedxml>=0.7.1
33
- Requires-Dist: lru_dict>=1.1.7
34
- Requires-Dist: orjson>=3.9.15
35
- Requires-Dist: pyproj>=3.6.1
33
+ Requires-Dist: lru_dict>=1.4.1
34
+ Requires-Dist: orjson>=3.11.5
35
+ Requires-Dist: pyproj>=3.7.1
36
36
  Provides-Extra: tests
37
- Requires-Dist: django-environ>=0.4.5; extra == "tests"
38
- Requires-Dist: psycopg2-binary>=2.8.4; extra == "tests"
39
- Requires-Dist: lxml>=4.9.1; extra == "tests"
40
- Requires-Dist: pytest>=6.2.3; extra == "tests"
41
- Requires-Dist: pytest-django>=4.1.0; extra == "tests"
42
- Requires-Dist: pytest-cov>=2.11.1; extra == "tests"
37
+ Requires-Dist: django-environ>=0.12.0; extra == "tests"
38
+ Requires-Dist: psycopg2-binary>=2.9.11; extra == "tests"
39
+ Requires-Dist: lxml>=6.0.2; extra == "tests"
40
+ Requires-Dist: pytest>=9.0.2; extra == "tests"
41
+ Requires-Dist: pytest-django>=4.11.1; extra == "tests"
42
+ Requires-Dist: pytest-cov>=7.0.0; extra == "tests"
43
43
  Provides-Extra: docs
44
- Requires-Dist: Django~=5.1; extra == "docs"
44
+ Requires-Dist: Django~=5.2; extra == "docs"
45
45
  Requires-Dist: sphinxcontrib-django>=2.5; extra == "docs"
46
- Requires-Dist: myst-parser>=3.0.1; extra == "docs"
47
- Requires-Dist: psycopg2-binary>=2.8.4; extra == "docs"
46
+ Requires-Dist: myst-parser>=4.0.1; extra == "docs"
47
+ Requires-Dist: psycopg2-binary>=2.9.11; extra == "docs"
48
48
  Dynamic: author
49
49
  Dynamic: author-email
50
50
  Dynamic: classifier
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-gisserver
3
- Version: 2.2.1
3
+ Version: 2.3.0
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
@@ -16,35 +16,35 @@ Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
19
20
  Classifier: Framework :: Django
20
21
  Classifier: Framework :: Django :: 4.2
21
- Classifier: Framework :: Django :: 5.1
22
22
  Classifier: Framework :: Django :: 5.2
23
23
  Classifier: Topic :: Internet :: WWW/HTTP
24
24
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
25
25
  Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
26
26
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
- Requires: Django (>=4.2, >=5.1)
27
+ Requires: Django (>=4.2, >=5.2, <6.0)
28
28
  Requires-Python: >=3.10
29
29
  Description-Content-Type: text/markdown
30
30
  License-File: LICENSE
31
- Requires-Dist: Django>=4.2
31
+ Requires-Dist: Django<6.0,>=4.2
32
32
  Requires-Dist: defusedxml>=0.7.1
33
- Requires-Dist: lru_dict>=1.1.7
34
- Requires-Dist: orjson>=3.9.15
35
- Requires-Dist: pyproj>=3.6.1
33
+ Requires-Dist: lru_dict>=1.4.1
34
+ Requires-Dist: orjson>=3.11.5
35
+ Requires-Dist: pyproj>=3.7.1
36
36
  Provides-Extra: tests
37
- Requires-Dist: django-environ>=0.4.5; extra == "tests"
38
- Requires-Dist: psycopg2-binary>=2.8.4; extra == "tests"
39
- Requires-Dist: lxml>=4.9.1; extra == "tests"
40
- Requires-Dist: pytest>=6.2.3; extra == "tests"
41
- Requires-Dist: pytest-django>=4.1.0; extra == "tests"
42
- Requires-Dist: pytest-cov>=2.11.1; extra == "tests"
37
+ Requires-Dist: django-environ>=0.12.0; extra == "tests"
38
+ Requires-Dist: psycopg2-binary>=2.9.11; extra == "tests"
39
+ Requires-Dist: lxml>=6.0.2; extra == "tests"
40
+ Requires-Dist: pytest>=9.0.2; extra == "tests"
41
+ Requires-Dist: pytest-django>=4.11.1; extra == "tests"
42
+ Requires-Dist: pytest-cov>=7.0.0; extra == "tests"
43
43
  Provides-Extra: docs
44
- Requires-Dist: Django~=5.1; extra == "docs"
44
+ Requires-Dist: Django~=5.2; extra == "docs"
45
45
  Requires-Dist: sphinxcontrib-django>=2.5; extra == "docs"
46
- Requires-Dist: myst-parser>=3.0.1; extra == "docs"
47
- Requires-Dist: psycopg2-binary>=2.8.4; extra == "docs"
46
+ Requires-Dist: myst-parser>=4.0.1; extra == "docs"
47
+ Requires-Dist: psycopg2-binary>=2.9.11; extra == "docs"
48
48
  Dynamic: author
49
49
  Dynamic: author-email
50
50
  Dynamic: classifier
@@ -0,0 +1,19 @@
1
+ Django<6.0,>=4.2
2
+ defusedxml>=0.7.1
3
+ lru_dict>=1.4.1
4
+ orjson>=3.11.5
5
+ pyproj>=3.7.1
6
+
7
+ [docs]
8
+ Django~=5.2
9
+ sphinxcontrib-django>=2.5
10
+ myst-parser>=4.0.1
11
+ psycopg2-binary>=2.9.11
12
+
13
+ [tests]
14
+ django-environ>=0.12.0
15
+ psycopg2-binary>=2.9.11
16
+ lxml>=6.0.2
17
+ pytest>=9.0.2
18
+ pytest-django>=4.11.1
19
+ pytest-cov>=7.0.0
@@ -0,0 +1 @@
1
+ __version__ = "2.3.0" # follows PEP440
@@ -17,7 +17,6 @@ from collections.abc import Callable
17
17
  from dataclasses import dataclass
18
18
  from typing import Union
19
19
 
20
- import django
21
20
  from django.contrib.gis.db.models import functions as gis
22
21
  from django.db import models
23
22
  from django.db.models import functions
@@ -400,15 +399,14 @@ function_registry.register(
400
399
  returns=XsdTypes.gmlAbstractGeometryType,
401
400
  )
402
401
 
403
- if django.VERSION >= (4, 2):
404
- function_registry.register(
405
- "isEmpty",
406
- gis.IsEmpty,
407
- arguments={
408
- "geom": XsdTypes.gmlAbstractGeometryType,
409
- },
410
- returns=XsdTypes.boolean,
411
- )
402
+ function_registry.register(
403
+ "isEmpty",
404
+ gis.IsEmpty,
405
+ arguments={
406
+ "geom": XsdTypes.gmlAbstractGeometryType,
407
+ },
408
+ returns=XsdTypes.boolean,
409
+ )
412
410
 
413
411
  function_registry.register(
414
412
  "isValid",
@@ -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):
@@ -20,19 +20,19 @@ def find_version(*parts):
20
20
 
21
21
 
22
22
  tests_require = [
23
- "django-environ >= 0.4.5",
24
- "psycopg2-binary >= 2.8.4",
25
- "lxml >= 4.9.1",
26
- "pytest >= 6.2.3",
27
- "pytest-django >= 4.1.0",
28
- "pytest-cov >= 2.11.1",
23
+ "django-environ >= 0.12.0",
24
+ "psycopg2-binary >= 2.9.11",
25
+ "lxml >= 6.0.2",
26
+ "pytest >= 9.0.2",
27
+ "pytest-django >= 4.11.1",
28
+ "pytest-cov >= 7.0.0",
29
29
  ]
30
30
 
31
31
  docs_require = [
32
- "Django ~= 5.1",
32
+ "Django ~= 5.2",
33
33
  "sphinxcontrib-django >= 2.5",
34
- "myst-parser >= 3.0.1",
35
- "psycopg2-binary >= 2.8.4",
34
+ "myst-parser >= 4.0.1",
35
+ "psycopg2-binary >= 2.9.11",
36
36
  ]
37
37
 
38
38
 
@@ -41,17 +41,17 @@ setup(
41
41
  version=find_version("gisserver", "__init__.py"),
42
42
  license="Mozilla Public License 2.0",
43
43
  install_requires=[
44
- "Django >= 4.2",
44
+ "Django >= 4.2, <6.0",
45
45
  "defusedxml >= 0.7.1",
46
- "lru_dict >= 1.1.7",
47
- "orjson >= 3.9.15",
48
- "pyproj >= 3.6.1",
46
+ "lru_dict >= 1.4.1",
47
+ "orjson >= 3.11.5",
48
+ "pyproj >= 3.7.1",
49
49
  ],
50
50
  extras_require={
51
51
  "tests": tests_require,
52
52
  "docs": docs_require,
53
53
  },
54
- requires=["Django (>=4.2, >=5.1)"],
54
+ requires=["Django (>=4.2, >=5.2, <6.0)"],
55
55
  description="Django speaking WFS 2.0 (exposing GeoDjango model fields)",
56
56
  long_description=read("README.md"),
57
57
  long_description_content_type="text/markdown",
@@ -72,9 +72,9 @@ setup(
72
72
  "Programming Language :: Python :: 3.11",
73
73
  "Programming Language :: Python :: 3.12",
74
74
  "Programming Language :: Python :: 3.13",
75
+ "Programming Language :: Python :: 3.14",
75
76
  "Framework :: Django",
76
77
  "Framework :: Django :: 4.2",
77
- "Framework :: Django :: 5.1",
78
78
  "Framework :: Django :: 5.2",
79
79
  "Topic :: Internet :: WWW/HTTP",
80
80
  "Topic :: Internet :: WWW/HTTP :: Dynamic Content",
@@ -1,19 +0,0 @@
1
- Django>=4.2
2
- defusedxml>=0.7.1
3
- lru_dict>=1.1.7
4
- orjson>=3.9.15
5
- pyproj>=3.6.1
6
-
7
- [docs]
8
- Django~=5.1
9
- sphinxcontrib-django>=2.5
10
- myst-parser>=3.0.1
11
- psycopg2-binary>=2.8.4
12
-
13
- [tests]
14
- django-environ>=0.4.5
15
- psycopg2-binary>=2.8.4
16
- lxml>=4.9.1
17
- pytest>=6.2.3
18
- pytest-django>=4.1.0
19
- pytest-cov>=2.11.1
@@ -1 +0,0 @@
1
- __version__ = "2.2.1" # follows PEP440