[Git][debian-gis-team/python-geojson][master] 7 commits: New upstream version 3.3.0

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Fri May 29 05:13:36 BST 2026



Bas Couwenberg pushed to branch master at Debian GIS Project / python-geojson


Commits:
ddce9471 by Bas Couwenberg at 2026-05-29T05:47:15+02:00
New upstream version 3.3.0
- - - - -
e6d82ea5 by Bas Couwenberg at 2026-05-29T05:47:16+02:00
Update upstream source from tag 'upstream/3.3.0'

Update to upstream version '3.3.0'
with Debian dir 121e44aeabf887ffe28bdd8e75de8077393ae0f2
- - - - -
178b8710 by Bas Couwenberg at 2026-05-29T05:47:32+02:00
New upstream release.

- - - - -
f55a0042 by Bas Couwenberg at 2026-05-29T05:50:23+02:00
Update copyright file.

- - - - -
c7d7f58a by Bas Couwenberg at 2026-05-29T05:52:17+02:00
Refresh patches.

- - - - -
897916d1 by Bas Couwenberg at 2026-05-29T06:10:39+02:00
Use pybuild-plugin-pyproject instead of python3-setuptools.

- - - - -
49f7a247 by Bas Couwenberg at 2026-05-29T06:10:39+02:00
Set distribution to unstable.

- - - - -


21 changed files:

- .github/workflows/lint.yml
- .github/workflows/release.yml
- .github/workflows/test.yml
- .pre-commit-config.yaml
- CHANGELOG.rst
- LICENSE.rst
- README.rst
- debian/changelog
- debian/control
- debian/copyright
- + debian/patches/pep517.patch
- debian/patches/series
- debian/patches/version-check.patch
- geojson/__init__.py
- geojson/_version.py
- geojson/codec.py
- geojson/factory.py
- geojson/feature.py
- setup.py
- + tests/test_feature_collection.py
- tox.ini


Changes:

=====================================
.github/workflows/lint.yml
=====================================
@@ -10,10 +10,10 @@ jobs:
     runs-on: ubuntu-latest
 
     steps:
-      - uses: actions/checkout at v3
+      - uses: actions/checkout at v6
 
-      - uses: actions/setup-python at v4
+      - uses: actions/setup-python at v6
         with:
           python-version: "3.x"
 
-      - uses: pre-commit/action at v3.0.0
+      - uses: pre-commit/action at v3.0.1


=====================================
.github/workflows/release.yml
=====================================
@@ -11,12 +11,12 @@ jobs:
     runs-on: ubuntu-latest
 
     steps:
-      - uses: actions/checkout at v3
+      - uses: actions/checkout at v6
         with:
           fetch-depth: 0
 
       - name: Set up Python
-        uses: actions/setup-python at v4
+        uses: actions/setup-python at v6
         with:
           python-version: "3.x"
           cache: pip


=====================================
.github/workflows/test.yml
=====================================
@@ -11,13 +11,13 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        python-version: ['pypy3.9', '3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
+        python-version: ['pypy3.10', '3.10', '3.11', '3.12', '3.13', '3.14']
 
     steps:
-    - uses: actions/checkout at v3
+    - uses: actions/checkout at v6
 
     - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python at v4
+      uses: actions/setup-python at v6
       with:
         python-version: ${{ matrix.python-version }}
         allow-prereleases: true
@@ -34,6 +34,6 @@ jobs:
           tox -e py
 
     - name: Upload coverage
-      uses: codecov/codecov-action at v3
+      uses: codecov/codecov-action at v6
       with:
         name: Python ${{ matrix.python-version }}


=====================================
.pre-commit-config.yaml
=====================================
@@ -1,6 +1,6 @@
 repos:
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v5.0.0
+    rev: v6.0.0
     hooks:
       - id: check-case-conflict
       - id: check-merge-conflict
@@ -9,12 +9,12 @@ repos:
       - id: trailing-whitespace
 
   - repo: https://github.com/tox-dev/tox-ini-fmt
-    rev: 1.4.1
+    rev: 1.7.1
     hooks:
       - id: tox-ini-fmt
 
   - repo: https://github.com/PyCQA/flake8
-    rev: 7.1.1
+    rev: 7.3.0
     hooks:
       - id: flake8
 


=====================================
CHANGELOG.rst
=====================================
@@ -1,6 +1,33 @@
 Changes
 =======
 
+3.3.0
+----------
+
+- `__all__` must be a sequence of strings: fix `__init__.py` and `factory.py`
+
+  -  https://github.com/jazzband/geojson/pull/247
+
+- remove simplejson
+
+  -  https://github.com/jazzband/geojson/pull/246
+
+- Add support for Python 3.14
+
+  - https://github.com/jazzband/geojson/pull/245
+
+- Remove EOL Python version support
+
+  - https://github.com/jazzband/geojson/pull/244
+
+- Update GH action versions for Node 24
+
+  - https://github.com/jazzband/geojson/pull/243
+
+- fix: convert dict features to Feature objects in FeatureCollection
+
+  - https://github.com/jazzband/geojson/pull/242
+
 3.2.0
 ----------
 


=====================================
LICENSE.rst
=====================================
@@ -1,4 +1,4 @@
-Copyright © 2007-2019, contributors of geojson
+Copyright © 2007-2026, contributors of geojson
 
 All rights reserved.
 


=====================================
README.rst
=====================================
@@ -29,7 +29,7 @@ This Python library contains:
 Installation
 ------------
 
-geojson is compatible with Python 3.7 - 3.13. The recommended way to install is via pip_:
+geojson is compatible with Python 3.10 - 3.14. The recommended way to install is via pip_:
 
 .. code::
 


=====================================
debian/changelog
=====================================
@@ -1,9 +1,13 @@
-python-geojson (3.2.0-3) UNRELEASED; urgency=medium
+python-geojson (3.3.0-1) unstable; urgency=medium
 
   * Team upload.
+  * New upstream release.
   * Bump Standards-Version to 4.7.4, no changes.
+  * Update copyright file.
+  * Refresh patches.
+  * Use pybuild-plugin-pyproject instead of python3-setuptools.
 
- -- Bas Couwenberg <sebastic at debian.org>  Sat, 04 Apr 2026 10:20:39 +0200
+ -- Bas Couwenberg <sebastic at debian.org>  Fri, 29 May 2026 05:52:19 +0200
 
 python-geojson (3.2.0-2) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -6,6 +6,7 @@ Section: python
 Build-Depends: debhelper-compat (= 13),
                dh-python,
                dh-sequence-python3,
+               pybuild-plugin-pyproject,
                python3-all,
                python3-pytest <!nocheck>,
                python3-setuptools


=====================================
debian/copyright
=====================================
@@ -1,16 +1,10 @@
 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Contact: Corey Farwell <coreyf at rwell.org>
+Upstream-Contact: Ray Riga <ray.maintainer at gmail.com>
 Upstream-Name: python-geojson
 Source: https://github.com/jazzband/geojson
 
 Files: *
-Copyright: 2014-2019, contributors of python-geojson
- * Sean Gillies <sgillies at frii.com>
- * Matthew Russell <matt at sanoodi.com>
- * Corey Farwell <coreyf at rwell.org>
- * Blake Grotewold <hello at grotewold.me>
- * Zsolt Ero <zsolt.ero at gmail.com>
- * Sergey Romanov <xxsmotur at gmail.com>
+Copyright: 2014-2026, contributors of python-geojson
 License: BSD-3-Clause
 
 Files: debian/*


=====================================
debian/patches/pep517.patch
=====================================
@@ -0,0 +1,10 @@
+Description: Add support for PEP 517.
+Author: Bas Couwenberg <sebastic at debian.org>
+Forwarded: https://github.com/jazzband/geojson/pull/250
+
+--- /dev/null
++++ b/pyproject.toml
+@@ -0,0 +1,3 @@
++[build-system]
++requires = ["setuptools"]
++build-backend = "setuptools.build_meta"


=====================================
debian/patches/series
=====================================
@@ -1 +1,2 @@
 version-check.patch
+pep517.patch


=====================================
debian/patches/version-check.patch
=====================================
@@ -4,15 +4,14 @@ Forwarded: not-needed
 
 --- a/setup.py
 +++ b/setup.py
-@@ -18,9 +18,9 @@ else:
+@@ -18,9 +18,8 @@ else:
  
  major_version, minor_version = sys.version_info[:2]
- if not (major_version == 3 and 7 <= minor_version <= 13):
--    sys.stderr.write("Sorry, only Python 3.7 - 3.13 are "
-+    sys.stderr.write("Warning: only Python 3.7 - 3.13 are "
+ if not (major_version == 3 and 10 <= minor_version <= 14):
+-    sys.stderr.write("Sorry, only Python 3.10 - 3.14 are "
++    sys.stderr.write("Warning: only Python 3.10 - 3.14 are "
                       "supported at this time.\n")
 -    exit(1)
-+#    exit(1)
  
  setup(
      name="geojson",


=====================================
geojson/__init__.py
=====================================
@@ -7,11 +7,13 @@ from geojson.feature import Feature, FeatureCollection
 from geojson.base import GeoJSON
 from geojson._version import __version__, __version_info__
 
-__all__ = ([dump, dumps, load, loads, GeoJSONEncoder] +
-           [coords, map_coords] +
-           [Point, LineString, Polygon] +
-           [MultiLineString, MultiPoint, MultiPolygon] +
-           [GeometryCollection] +
-           [Feature, FeatureCollection] +
-           [GeoJSON] +
-           [__version__, __version_info__])
+__all__ = (
+        ["dump", "dumps", "load", "loads", "GeoJSONEncoder"] +
+        ["coords", "map_coords"] +
+        ["Point", "LineString", "Polygon"] +
+        ["MultiLineString", "MultiPoint", "MultiPolygon"] +
+        ["GeometryCollection"] +
+        ["Feature", "FeatureCollection"] +
+        ["GeoJSON"] +
+        ["__version__", "__version_info__"]
+)


=====================================
geojson/_version.py
=====================================
@@ -1,2 +1,2 @@
-__version__ = "3.2.0"
+__version__ = "3.3.0"
 __version_info__ = tuple(map(int, __version__.split(".")))


=====================================
geojson/codec.py
=====================================
@@ -1,7 +1,4 @@
-try:
-    import simplejson as json
-except ImportError:
-    import json
+import json
 
 import geojson
 import geojson.factory


=====================================
geojson/factory.py
=====================================
@@ -4,8 +4,10 @@ from geojson.geometry import GeometryCollection
 from geojson.feature import Feature, FeatureCollection
 from geojson.base import GeoJSON
 
-__all__ = ([Point, LineString, Polygon] +
-           [MultiLineString, MultiPoint, MultiPolygon] +
-           [GeometryCollection] +
-           [Feature, FeatureCollection] +
-           [GeoJSON])
+__all__ = (
+        ["Point", "LineString", "Polygon"] +
+        ["MultiLineString", "MultiPoint", "MultiPolygon"] +
+        ["GeometryCollection"] +
+        ["Feature", "FeatureCollection"] +
+        ["GeoJSON"]
+)


=====================================
geojson/feature.py
=====================================
@@ -44,7 +44,10 @@ class FeatureCollection(GeoJSON):
         :rtype: FeatureCollection
         """
         super().__init__(**extra)
-        self["features"] = features
+        self["features"] = [
+            self.to_instance(f) if not isinstance(f, GeoJSON) else f
+            for f in features
+        ]
 
     def errors(self):
         return self.check_list_errors(lambda x: x.errors(), self.features)


=====================================
setup.py
=====================================
@@ -17,8 +17,8 @@ else:
 
 
 major_version, minor_version = sys.version_info[:2]
-if not (major_version == 3 and 7 <= minor_version <= 13):
-    sys.stderr.write("Sorry, only Python 3.7 - 3.13 are "
+if not (major_version == 3 and 10 <= minor_version <= 14):
+    sys.stderr.write("Sorry, only Python 3.10 - 3.14 are "
                      "supported at this time.\n")
     exit(1)
 
@@ -38,7 +38,7 @@ setup(
     package_dir={"geojson": "geojson"},
     package_data={"geojson": ["*.rst"]},
     install_requires=[],
-    python_requires=">=3.7",
+    python_requires=">=3.10",
     classifiers=[
         "Development Status :: 5 - Production/Stable",
         "Intended Audience :: Developers",
@@ -47,13 +47,11 @@ setup(
         "Operating System :: OS Independent",
         "Programming Language :: Python",
         "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.7",
-        "Programming Language :: Python :: 3.8",
-        "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",
         "Programming Language :: Python :: 3.11",
         "Programming Language :: Python :: 3.12",
         "Programming Language :: Python :: 3.13",
+        "Programming Language :: Python :: 3.14",
         "Topic :: Scientific/Engineering :: GIS",
     ]
 )


=====================================
tests/test_feature_collection.py
=====================================
@@ -0,0 +1,27 @@
+import unittest
+
+import geojson
+
+
+class FeatureCollectionsTest(unittest.TestCase):
+    def test_to_instance_converts_nested_features(self):
+        """to_instance() should convert dict features to Feature objects in FeatureCollection."""
+
+        feature_collection_dict = {
+            "type": "FeatureCollection",
+            "features": [
+                {
+                    "type": "Feature",
+                    "properties": {"foo": "bar"},
+                    "geometry": {
+                        "type": "Polygon",
+                        "coordinates": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],
+                    },
+                },
+            ],
+        }
+
+        obj = geojson.GeoJSON.to_instance(feature_collection_dict)
+        self.assertTrue(isinstance(obj, geojson.FeatureCollection))
+        self.assertTrue(isinstance(obj.features[0], geojson.Feature))
+        self.assertTrue(obj.is_valid)


=====================================
tox.ini
=====================================
@@ -1,8 +1,8 @@
 [tox]
 requires =
-    tox>=4.2
+    tox>=4.5
 env_list =
-    py{py3, 313, 312, 311, 310, 39, 38, 37}
+    py{py3, 314, 313, 312, 311, 310}
 
 [testenv]
 deps =



View it on GitLab: https://salsa.debian.org/debian-gis-team/python-geojson/-/compare/a4e5c70c934f2985d5976c714f06c2162c5d072c...49f7a247c578aea73c31cd2ab7650d928191bf59

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/python-geojson/-/compare/a4e5c70c934f2985d5976c714f06c2162c5d072c...49f7a247c578aea73c31cd2ab7650d928191bf59
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20260529/188874e3/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list