[Git][debian-gis-team/python-pyproj][upstream] New upstream version 3.7.2~rc0

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Mon Aug 11 05:21:51 BST 2025



Bas Couwenberg pushed to branch upstream at Debian GIS Project / python-pyproj


Commits:
409f8ec1 by Bas Couwenberg at 2025-08-11T05:49:43+02:00
New upstream version 3.7.2~rc0
- - - - -


26 changed files:

- .github/workflows/release.yaml
- .github/workflows/tests.yaml
- − .isort.cfg
- .pre-commit-config.yaml
- − .stickler.yml
- CONTRIBUTING.md
- README.md
- docs/history.rst
- docs/index.rst
- docs/installation.rst
- docs/past_versions.rst
- pyproj/__init__.py
- pyproj/_crs.pyx
- pyproj/crs/__init__.py
- pyproj/crs/crs.py
- pyproj/geod.py
- pyproj/transformer.py
- pyproject.toml
- requirements-dev.txt
- setup.py
- test/conftest.py
- test/crs/test_crs.py
- test/test_awips221.py
- test/test_doctest_wrapper.py
- test/test_pickle.py
- test/test_transformer.py


Changes:

=====================================
.github/workflows/release.yaml
=====================================
@@ -84,6 +84,12 @@ jobs:
           triplet: "x86-windows"
           vcpkg_cache: "c:\\vcpkg\\installed"
           vcpkg_logs: "c:\\vcpkg\\buildtrees\\**\\*.log"
+        - os: "windows-11-arm"
+          arch: "ARM64"
+          triplet: "arm64-windows"
+          vcpkg_cache: "c:\\vcpkg\\installed"
+          vcpkg_logs: "c:\\vcpkg\\buildtrees\\**\\*.log"
+          msvc_arch: ARM64
 
     steps:
       - uses: actions/checkout at v4
@@ -96,6 +102,12 @@ jobs:
         with:
           architecture: 'x86'
 
+      - name: Activate MSVC
+        uses: ilammy/msvc-dev-cmd at v1.13.0
+        with:
+           arch: ${{ matrix.msvc_arch }}
+        if: ${{ matrix.msvc_arch }}
+
       - name: Cache vcpkg
         if: contains(matrix.os, 'windows')
         uses: actions/cache at v4
@@ -125,9 +137,9 @@ jobs:
           cp "$VCPKG_INSTALLATION_ROOT/installed/${{ matrix.triplet }}/share/proj/"* ${GITHUB_WORKSPACE}/pyproj/proj_dir/share/proj/
 
       - name: Build wheels
-        uses: pypa/cibuildwheel at v2.22
+        uses: pypa/cibuildwheel at v3.1.3
         env:
-          CIBW_SKIP: "pp*-win* pp31*"
+          CIBW_ENABLE: cpython-freethreading
           CIBW_ARCHS: ${{ matrix.arch }}
           CIBW_ENVIRONMENT_LINUX:
             PROJ_WHEEL=true
@@ -180,32 +192,8 @@ jobs:
       - uses: actions/download-artifact at v4
         continue-on-error: ${{ github.event_name == 'push' && github.ref_type != 'tag' }}
         with:
-          name: wheels-ubuntu-22.04-x86_64
-          path: dist
-      - uses: actions/download-artifact at v4
-        continue-on-error: ${{ github.event_name == 'push' && github.ref_type != 'tag' }}
-        with:
-          name: wheels-ubuntu-22.04-arm-aarch64
-          path: dist
-      - uses: actions/download-artifact at v4
-        continue-on-error: ${{ github.event_name == 'push' && github.ref_type != 'tag' }}
-        with:
-          name: wheels-macos-13-x86_64
-          path: dist
-      - uses: actions/download-artifact at v4
-        continue-on-error: ${{ github.event_name == 'push' && github.ref_type != 'tag' }}
-        with:
-          name: wheels-macos-14-arm64
-          path: dist
-      - uses: actions/download-artifact at v4
-        continue-on-error: ${{ github.event_name == 'push' && github.ref_type != 'tag' }}
-        with:
-          name: wheels-windows-2022-auto64
-          path: dist
-      - uses: actions/download-artifact at v4
-        continue-on-error: ${{ github.event_name == 'push' && github.ref_type != 'tag' }}
-        with:
-          name: wheels-windows-2022-auto32
+          pattern: wheels-*
+          merge-multiple: true
           path: dist
 
       - name: Upload Wheels to PyPI
@@ -221,7 +209,7 @@ jobs:
 
       - name: Upload Nightly Wheelsref
         if : ${{ github.ref_type == 'branch' && github.ref_name == 'main' }}
-        uses: scientific-python/upload-nightly-action at 82396a2ed4269ba06c6b2988bb4fd568ef3c3d6b
+        uses: scientific-python/upload-nightly-action at b36e8c0c10dbcfd2e05bf95f17ef8c14fd708dbf
         with:
           artifacts_path: dist
           anaconda_nightly_upload_token: ${{ secrets.ANACONDA_ORG_UPLOAD_TOKEN }}


=====================================
.github/workflows/tests.yaml
=====================================
@@ -23,7 +23,7 @@ jobs:
       - uses: actions/checkout at v4
       - uses: actions/setup-python at v5
         with:
-            python-version: '3.10'
+            python-version: '3.11'
       - uses: pre-commit/action at v3.0.1
       - name: Install mypy
         run: |
@@ -40,13 +40,13 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        python-version: ['3.10', '3.11', '3.12']
-        proj-version: ['9.4.0']
+        python-version: ['3.11', '3.12', '3.13']
+        proj-version: ['9.6.0']
         include:
-          - python-version: '3.10'
-            proj-version: '9.3.1'
-          - python-version: '3.10'
-            proj-version: '9.2.1'
+          - python-version: '3.11'
+            proj-version: '9.5.1'
+          - python-version: '3.11'
+            proj-version: '9.4.1'
     steps:
       - uses: actions/checkout at v4
 
@@ -104,10 +104,10 @@ jobs:
       fail-fast: true
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
-        python-version: ['3.10', '3.11', '3.12']
+        python-version: ['3.11', '3.12', '3.13']
         python-implementation: [python]
         proj-version: ['*']
-        # DISABLED UNTIL CONDA-FORGE PYPY SUPPORTS PYTHON 3.10+
+        # DISABLED UNTIL CONDA-FORGE PYPY SUPPORTS PYTHON 3.11+
         # include:
           # - os: ubuntu-latest
           #   python-version: '*'


=====================================
.isort.cfg deleted
=====================================
@@ -1,3 +0,0 @@
-[settings]
-known_first_party=pyproj,test
-profile=black


=====================================
.pre-commit-config.yaml
=====================================
@@ -1,5 +1,5 @@
 default_language_version:
-    python: python3.10
+    python: python3.11
 
 repos:
     -   repo: https://github.com/pre-commit/pre-commit-hooks
@@ -8,15 +8,6 @@ repos:
         -   id: check-yaml
         -   id: end-of-file-fixer
         -   id: trailing-whitespace
-    -   repo: https://github.com/psf/black-pre-commit-mirror
-        rev: 24.2.0
-        hooks:
-        -   id: black
-    -   repo: https://github.com/pycqa/isort
-        rev: 5.13.2
-        hooks:
-        -   id: isort
-            args: [setup.py, pyproj/, test/, docs/]
     -   repo: https://github.com/asottile/blacken-docs
         rev: 1.16.0
         hooks:
@@ -38,6 +29,7 @@ repos:
         hooks:
         -   id: codespell
     -   repo: https://github.com/astral-sh/ruff-pre-commit
-        rev: v0.7.1
+        rev: v0.11.10
         hooks:
-        - id: ruff
+        - id: ruff-check
+        - id: ruff-format


=====================================
.stickler.yml deleted
=====================================
@@ -1,6 +0,0 @@
-linters:
-  black:
-    config: ./pyproject.toml
-  flake8:
-    python: 3
-    max-line-length: 88


=====================================
CONTRIBUTING.md
=====================================
@@ -167,10 +167,10 @@ There are plenty of more advanced testing concepts, like dealing with floating p
 comparisons, parameterizing tests, testing that exceptions are raised, and more. Have a look at the existing tests to get an idea of some of the common patterns.
 
 ## Code Style
-pyproj uses the Python code style outlined in [PEP8](https://pep8.org) and [black](https://github.com/python/black).
+pyproj uses the Python code style outlined in [PEP8](https://pep8.org) and by [the Ruff formatter](https://docs.astral.sh/ruff/formatter/).
 
 We enforce this style as code is added to keep everything clean and uniform. To this end, part of the automated testing for pyproj checks style. To check style
-locally within the source directory you can use the ``flake8`` and ``black`` tools. Running it from the root of the source directory is as easy as running ``pre-commit run --all`` in the base of the repository.
+locally within the source directory you can use the ``flake8`` and ``ruff format`` tools. Running it from the root of the source directory is as easy as running ``pre-commit run --all`` in the base of the repository.
 
 You can also just submit your PR and the kind robots will comment on all style violations as well. It can be a pain to make sure you have the right number of spaces around things, imports in order, and all of the other nits that the bots will find. It is very important though as this consistent style helps us keep pyproj readable, maintainable, and uniform.
 
@@ -192,7 +192,7 @@ Some things that will increase the chance that your pull request is accepted qui
 
 * Write tests.
 * Follow [PEP8](https://pep8.org) for style. (The `flake8` utility can help with this.)
-* Use [black](https://github.com/python/black)
+* Use [ruff format](https://docs.astral.sh/ruff/formatter/)
 * Write a [good commit message](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) and consider using commit [conventions](https://www.conventionalcommits.org/).
 
 Pull requests will automatically have tests run by Travis. This includes


=====================================
README.md
=====================================
@@ -11,7 +11,6 @@ Python interface to [PROJ](http://proj.org) (cartographic projections and coordi
 <a href="https://badge.fury.io/py/pyproj"><img alt="PyPI" src="https://badge.fury.io/py/pyproj.svg"></a>
 <a href="https://pepy.tech/project/pyproj"><img alt="Downloads" src="https://pepy.tech/badge/pyproj"></a>
 <a href="https://anaconda.org/conda-forge/pyproj"><img alt="Anaconda-Server Badge" src="https://anaconda.org/conda-forge/pyproj/badges/version.svg"></a>
-<a href="https://github.com/python/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
 <a href="https://github.com/pre-commit/pre-commit"><img alt="pre-commit" src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white"></a>
 <a href="https://zenodo.org/badge/latestdoi/28607354"><img alt="DOI" src="https://zenodo.org/badge/28607354.svg"></a>
 </p>


=====================================
docs/history.rst
=====================================
@@ -1,6 +1,15 @@
 Change Log
 ==========
 
+3.7.2
+-----
+- DEP: Minimum PROJ version 9.4 (pull #1481)
+- DEP: Minimum supported Python version 3.11 (pull #1483)
+- MNT: Add CRS imports to __all__
+- DEP: Add win_arm64 wheels
+- DEP: Add Python 3.13 free-threading wheels
+- DEP: Add Python 3.14 and 3.14 free-threading wheels
+
 3.7.1
 ------
 - WHL: Add wheels for musllinux (pull #1461)


=====================================
docs/index.rst
=====================================
@@ -5,9 +5,9 @@ Python interface to  `PROJ <https://proj.org/>`_ (cartographic projections and c
 
 GitHub Repository: https://github.com/pyproj4/pyproj
 
-.. note:: Minimum supported PROJ version is 9.2
+.. note:: Minimum supported PROJ version is 9.4
 
-.. note:: Minimum supported Python version is 3.10
+.. note:: Minimum supported Python version is 3.11
 
 .. note:: Linux (manylinux2014) wheels require pip 19.3+
 


=====================================
docs/installation.rst
=====================================
@@ -83,6 +83,7 @@ pyproj         PROJ
 3.4+           8.2+
 3.5+           9+
 3.7+           9.2+
+3.8+           9.4+
 ============   ============
 
 Setup PROJ


=====================================
docs/past_versions.rst
=====================================
@@ -1,7 +1,7 @@
 Documentation Archive
 =====================
 
-- `3.7.0 <https://pyproj4.github.io/pyproj/3.7.0/>`_
+- `3.7.1 <https://pyproj4.github.io/pyproj/3.7.1/>`_
 - `3.6.1 <https://pyproj4.github.io/pyproj/3.6.1/>`_
 - `3.5.0 <https://pyproj4.github.io/pyproj/3.5.0/>`_
 - `3.4.1 <https://pyproj4.github.io/pyproj/3.4.1/>`_


=====================================
pyproj/__init__.py
=====================================
@@ -71,21 +71,21 @@ from pyproj.transformer import (  # noqa: F401 pylint: disable=unused-import
     transform,
 )
 
-__version__ = "3.7.1"
+__version__ = "3.7.2rc0"
 __all__ = [
-    "Proj",
-    "Geod",
     "CRS",
+    "Geod",
+    "Proj",
     "Transformer",
-    "transform",
-    "itransform",
-    "pj_ellps",
-    "pj_list",
     "get_ellps_map",
     "get_prime_meridians_map",
     "get_proj_operations_map",
     "get_units_map",
+    "itransform",
+    "pj_ellps",
+    "pj_list",
     "show_versions",
+    "transform",
 ]
 __proj_version__ = PROJ_VERSION_STR
 proj_version_str = PROJ_VERSION_STR  # pylint: disable=invalid-name


=====================================
pyproj/_crs.pyx
=====================================
@@ -2699,7 +2699,7 @@ cdef class _CRS(Base):
         .. warning:: You will likely lose important projection
           information when converting to a PROJ string from
           another format. See:
-          https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems  # noqa: E501
+          https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems
 
         Parameters
         ----------
@@ -2709,7 +2709,7 @@ cdef class _CRS(Base):
         Returns
         -------
         str
-        """
+        """  # noqa: E501
         warnings.warn(
             "You will likely lose important projection information when "
             "converting to a PROJ string from another format. See: "


=====================================
pyproj/crs/__init__.py
=====================================
@@ -13,7 +13,7 @@ from pyproj._crs import (  # noqa: F401  pylint: disable=unused-import
     is_proj,
     is_wkt,
 )
-from pyproj.crs.crs import (  # noqa: F401  pylint: disable=unused-import
+from pyproj.crs.crs import (
     CRS,
     BoundCRS,
     CompoundCRS,
@@ -25,3 +25,17 @@ from pyproj.crs.crs import (  # noqa: F401  pylint: disable=unused-import
     VerticalCRS,
 )
 from pyproj.exceptions import CRSError  # noqa: F401  pylint: disable=unused-import
+
+__all__ = [
+    "CRS",
+    "BoundCRS",
+    "CompoundCRS",
+    "CustomConstructorCRS",
+    "DerivedGeographicCRS",
+    "GeocentricCRS",
+    "GeographicCRS",
+    "ProjectedCRS",
+    "VerticalCRS",
+    "is_proj",
+    "is_wkt",
+]


=====================================
pyproj/crs/crs.py
=====================================
@@ -172,15 +172,15 @@ class CRS:
 
     The functionality is based on other fantastic projects:
 
-    * `rasterio <https://github.com/mapbox/rasterio/blob/c13f0943b95c0eaa36ff3f620bd91107aa67b381/rasterio/_crs.pyx>`_  # noqa: E501
-    * `opendatacube <https://github.com/opendatacube/datacube-core/blob/83bae20d2a2469a6417097168fd4ede37fd2abe5/datacube/utils/geometry/_base.py>`_  # noqa: E501
+    * `rasterio <https://github.com/mapbox/rasterio/blob/c13f0943b95c0eaa36ff3f620bd91107aa67b381/rasterio/_crs.pyx>`_
+    * `opendatacube <https://github.com/opendatacube/datacube-core/blob/83bae20d2a2469a6417097168fd4ede37fd2abe5/datacube/utils/geometry/_base.py>`_
 
     Attributes
     ----------
     srs: str
         The string form of the user input used to create the CRS.
 
-    """
+    """  # noqa: E501
 
     def __init__(self, projparams: Any | None = None, **kwargs) -> None:
         """
@@ -579,14 +579,14 @@ class CRS:
 
         .. warning:: You will likely lose important projection
           information when converting to a PROJ string from
-          another format. See: https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems  # noqa: E501
+          another format. See: https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems
 
         Returns
         -------
         dict:
             PROJ params in dict format.
 
-        """
+        """  # noqa: E501
 
         proj_string = self.to_proj4()
         if proj_string is None:
@@ -1280,7 +1280,7 @@ class CRS:
         .. warning:: You will likely lose important projection
           information when converting to a PROJ string from
           another format. See:
-          https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems  # noqa: E501
+          https://proj.org/faq.html#what-is-the-best-format-for-describing-coordinate-reference-systems
 
         Parameters
         ----------
@@ -1291,7 +1291,7 @@ class CRS:
         Returns
         -------
         str
-        """
+        """  # noqa: E501
         proj = self._crs.to_proj4(version=version)
         if proj is None:
             raise CRSError("CRS cannot be converted to a PROJ string.")


=====================================
pyproj/geod.py
=====================================
@@ -10,10 +10,10 @@ latitudes and longitudes of an initial and terminus point.
 
 __all__ = [
     "Geod",
-    "pj_ellps",
-    "geodesic_version_str",
     "GeodIntermediateFlag",
     "GeodIntermediateReturn",
+    "geodesic_version_str",
+    "pj_ellps",
     "reverse_azimuth",
 ]
 
@@ -1031,6 +1031,10 @@ class Geod(_Geod):
 
         .. note:: lats should be in the range [-90 deg, 90 deg].
 
+        .. note:: | There are a few limitations :
+                  | - only works with areas up to half the size of the globe ;
+                  | - certain large polygons may return negative values.
+
         .. warning:: The area returned is signed with counter-clockwise (CCW) traversal
                      being treated as positive. For polygons, holes should use the
                      opposite traversal to the exterior (if the exterior is CCW, the


=====================================
pyproj/transformer.py
=====================================
@@ -3,11 +3,11 @@ The transformer module is for performing cartographic transformations.
 """
 
 __all__ = [
-    "transform",
-    "itransform",
+    "AreaOfInterest",
     "Transformer",
     "TransformerGroup",
-    "AreaOfInterest",
+    "itransform",
+    "transform",
 ]
 import threading
 import warnings
@@ -329,8 +329,7 @@ class Transformer:
         if not isinstance(transformer_maker, TransformerMaker):
             _clear_proj_error()
             raise ProjError(
-                "Transformer must be initialized using: "
-                "'from_crs' or 'from_pipeline'."
+                "Transformer must be initialized using: 'from_crs' or 'from_pipeline'."
             )
 
         self._local = TransformerLocal()


=====================================
pyproject.toml
=====================================
@@ -1,5 +1,5 @@
 [build-system]
-requires = ["setuptools>=61.0.0", "wheel", "cython>=3"]
+requires = ["setuptools>=61.0.0", "wheel", "cython>=3.1"]
 build-backend = "setuptools.build_meta"
 
 [project]
@@ -13,7 +13,8 @@ authors = [
 maintainers = [
     {name = "pyproj contributors"},
 ]
-license = {text = "MIT"}
+license = "MIT"
+license-files = ["LICENSE", "LICENSE_proj"]
 keywords = [
     "GIS",
     "map",
@@ -26,20 +27,20 @@ keywords = [
 classifiers = [
     "Development Status :: 4 - Beta",
     "Intended Audience :: Science/Research",
-    "License :: OSI Approved :: MIT License",
     "Operating System :: OS Independent",
     "Programming Language :: Python",
-    "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
+    "Programming Language :: Python :: 3.13",
     "Programming Language :: Python :: 3 :: Only",
     "Topic :: Scientific/Engineering",
     "Topic :: Scientific/Engineering :: GIS",
     "Topic :: Scientific/Engineering :: Mathematics",
     "Topic :: Software Development :: Libraries :: Python Modules",
     "Typing :: Typed",
+    "Programming Language :: Python :: Free Threading :: 2 - Beta",
 ]
-requires-python = ">=3.10"
+requires-python = ">=3.11"
 dependencies = [
     "certifi",
 ]
@@ -62,12 +63,8 @@ include = ["pyproj", "pyproj.*"]
 [tool.setuptools.dynamic]
 version = {attr = "pyproj.__version__"}
 
-[tool.black]
-target_version = ["py310"]
-
 [tool.ruff]
 line-length = 88
-target-version = "py310"
 fix = true
 
 [tool.ruff.lint]
@@ -78,6 +75,8 @@ select = [
   "F",
   # pycodestyle
   "E", "W",
+  # isort
+  "I",
   # flake8-2020
   "YTT",
   # flake8-bugbear
@@ -101,7 +100,7 @@ select = [
   # implicit string concatenation
   "ISC",
   # type-checking imports
-  "TCH",
+  "TC",
   # comprehensions
   "C4",
   # pygrep-hooks
@@ -147,7 +146,7 @@ ignore = [
     # Rename unused
     "B007",
     # Move standard library import into a type-checking block
-    "TCH003",
+    "TC003",
     # Consider f-string instead of string join
     "FLY002",
     # Use a list comprehension to create a transformed list
@@ -157,6 +156,6 @@ ignore = [
 
 [tool.mypy]
 files = ["pyproj"]
-python_version = "3.10"
+python_version = "3.11"
 ignore_errors = false
 enable_error_code = "ignore-without-code"


=====================================
requirements-dev.txt
=====================================
@@ -1,4 +1,5 @@
 cython>=0.28.4
 mypy
-types-certifi
 pre-commit
+ruff
+types-certifi


=====================================
setup.py
=====================================
@@ -8,7 +8,7 @@ from pathlib import Path
 
 from setuptools import Extension, setup
 
-PROJ_MIN_VERSION = (9, 2, 0)
+PROJ_MIN_VERSION = (9, 4, 0)
 CURRENT_FILE_PATH = Path(__file__).absolute().parent
 BASE_INTERNAL_PROJ_DIR = Path("proj_dir")
 INTERNAL_PROJ_DIR = CURRENT_FILE_PATH / "pyproj" / BASE_INTERNAL_PROJ_DIR
@@ -142,6 +142,7 @@ def get_cythonize_options():
             "c_string_type": "str",
             "c_string_encoding": "utf-8",
             "embedsignature": True,
+            "freethreading_compatible": True,
         },
     }
     if os.environ.get("PYPROJ_FULL_COVERAGE"):


=====================================
test/conftest.py
=====================================
@@ -12,8 +12,6 @@ from pyproj.datadir import get_data_dir, get_user_data_dir, set_data_dir
 
 _NETWORK_ENABLED = pyproj.network.is_network_enabled()
 PROJ_LOOSE_VERSION = version.parse(pyproj.__proj_version__)
-PROJ_GTE_921 = PROJ_LOOSE_VERSION >= version.parse("9.2.1")
-PROJ_GTE_93 = PROJ_LOOSE_VERSION >= version.parse("9.3.0")
 PROJ_GTE_941 = PROJ_LOOSE_VERSION >= version.parse("9.4.1")
 PROJ_GTE_95 = PROJ_LOOSE_VERSION >= version.parse("9.5.0")
 


=====================================
test/crs/test_crs.py
=====================================
@@ -20,7 +20,7 @@ from pyproj.crs.enums import CoordinateOperationType, DatumType
 from pyproj.enums import ProjVersion, WktVersion
 from pyproj.exceptions import CRSError
 from pyproj.transformer import TransformerGroup
-from test.conftest import PROJ_GTE_921, PROJ_GTE_941, assert_can_pickle, grids_available
+from test.conftest import PROJ_GTE_941, assert_can_pickle, grids_available
 
 
 class CustomCRS:
@@ -427,10 +427,10 @@ def test_datum_unknown():
         "+k=1 +x_0=0 +y_0=0 +gamma=0 +ellps=WGS84 "
         "+towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
     )
-    datum_name = "Unknown based on WGS84 ellipsoid"
-    if PROJ_GTE_921:
-        datum_name = "Unknown based on WGS 84 ellipsoid"
-    assert crs.datum.name == f"{datum_name} using towgs84=0,0,0,0,0,0,0"
+    assert (
+        crs.datum.name
+        == "Unknown based on WGS 84 ellipsoid using towgs84=0,0,0,0,0,0,0"
+    )
 
 
 def test_epsg__not_found():


=====================================
test/test_awips221.py
=====================================
@@ -1,15 +1,11 @@
 import array
+from time import perf_counter
 
 import numpy
 from numpy.testing import assert_allclose
 
 from pyproj import Proj, __proj_version__
 
-try:
-    from time import perf_counter
-except ImportError:
-    from time import clock as perf_counter
-
 
 def test_awips221():
     params = {}


=====================================
test/test_doctest_wrapper.py
=====================================
@@ -33,9 +33,9 @@ def test_doctests():
         expected_failure_count = 6
 
     # if the below line fails, doctests have failed
-    assert (
-        failure_count == expected_failure_count
-    ), f"{failure_count} of the doctests failed"
+    assert failure_count == expected_failure_count, (
+        f"{failure_count} of the doctests failed"
+    )
 
 
 @pytest.mark.network


=====================================
test/test_pickle.py
=====================================
@@ -5,17 +5,13 @@ import pickle
 import shutil
 import tempfile
 from contextlib import contextmanager
+from time import perf_counter
 
 import numpy
 from numpy.testing import assert_allclose
 
 from pyproj import Proj
 
-try:
-    from time import perf_counter
-except ImportError:
-    from time import clock as perf_counter
-
 
 @contextmanager
 def temporary_directory():


=====================================
test/test_transformer.py
=====================================
@@ -18,7 +18,7 @@ from pyproj.datadir import append_data_dir
 from pyproj.enums import TransformDirection
 from pyproj.exceptions import ProjError
 from pyproj.transformer import AreaOfInterest, TransformerGroup
-from test.conftest import PROJ_GTE_93, grids_available, proj_env, proj_network_env
+from test.conftest import grids_available, proj_env, proj_network_env
 
 
 def test_tranform_wgs84_to_custom():
@@ -535,14 +535,6 @@ def test_repr__conditional():
             "Description: unavailable until proj_trans is called\n"
             "Area of Use:\n- undefined"
         )
-    elif not PROJ_GTE_93:
-        assert trans_repr == (
-            "<Unknown Transformer: noop>\n"
-            "Description: Transformation from EGM2008 height to WGS 84 "
-            "(ballpark vertical transformation, without ellipsoid height "
-            "to vertical height correction)\n"
-            "Area of Use:\n- undefined"
-        )
     else:
         assert trans_repr == (
             "<Other Coordinate Operation Transformer: noop>\n"
@@ -600,8 +592,7 @@ def test_transformer__operations__scope_remarks():
     assert transformer.scope is None
     assert [op.scope for op in transformer.operations] == [
         "Engineering survey, topographic mapping.",
-        "Transformation of GDA94 coordinates that have been derived "
-        "through GNSS CORS.",
+        "Transformation of GDA94 coordinates that have been derived through GNSS CORS.",
         "Engineering survey, topographic mapping.",
     ]
     assert [str(op.remarks)[:5].strip() for op in transformer.operations] == [



View it on GitLab: https://salsa.debian.org/debian-gis-team/python-pyproj/-/commit/409f8ec156212a8e1e72fa615531c026fff4e425

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/python-pyproj/-/commit/409f8ec156212a8e1e72fa615531c026fff4e425
You're receiving this email because of your account on salsa.debian.org.


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


More information about the Pkg-grass-devel mailing list