Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pyproj for openSUSE:Factory checked in at 2022-12-20 20:20:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pyproj (Old) and /work/SRC/openSUSE:Factory/.python-pyproj.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyproj" Tue Dec 20 20:20:19 2022 rev:23 rq:1043775 version:3.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pyproj/python-pyproj.changes 2022-09-22 14:50:13.390481637 +0200 +++ /work/SRC/openSUSE:Factory/.python-pyproj.new.1835/python-pyproj.changes 2022-12-20 20:21:06.986085218 +0100 @@ -1,0 +2,16 @@ +Thu Dec 15 13:58:56 UTC 2022 - Libor Pechacek <lpecha...@gmx.com> + +- Update to 3.4.1 + * WHL: Add win32 to build_wheels matrix by @molinav in #1169 + * BUG: Changed so that the setup.cfg depends on the version + code in the init.py by @Scoppio in #1156 + * REF: Use upper case EPSG code when creating CRS by @snowman2 + in #1162 + * BUG: Fix CRS.to_cf for Pole rotation GRIB convention by + @snowman2 in #1167 + * BUG: Fix memory leak in CRS.list_authority by @skogler in + #1178 + * BUG: Fix Transform options array length by @shadchin in #1187 + * DOC: fix a few typos by @ocefpaf in #1153 + +------------------------------------------------------------------- Old: ---- pyproj-3.4.0.tar.gz New: ---- pyproj-3.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pyproj.spec ++++++ --- /var/tmp/diff_new_pack.4lKeft/_old 2022-12-20 20:21:07.774089536 +0100 +++ /var/tmp/diff_new_pack.4lKeft/_new 2022-12-20 20:21:07.778089558 +0100 @@ -20,7 +20,7 @@ %define skip_python36 1 %{?!python_module:%define python_module() python3-%{**}} Name: python-pyproj -Version: 3.4.0 +Version: 3.4.1 Release: 0 Summary: Python interface to PROJ library License: SUSE-Public-Domain AND X11 @@ -39,10 +39,10 @@ Requires(postun):update-alternatives # SECTION test requirements BuildRequires: %{python_module certifi} +BuildRequires: %{python_module Shapely} BuildRequires: %{python_module numpy} BuildRequires: %{python_module pandas} BuildRequires: %{python_module pytest} -BuildRequires: %{python_module Shapely} BuildRequires: %{python_module xarray} # /SECTION %python_subpackages ++++++ pyproj-3.4.0.tar.gz -> pyproj-3.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/PKG-INFO new/pyproj-3.4.1/PKG-INFO --- old/pyproj-3.4.0/PKG-INFO 2022-09-10 03:20:08.020873500 +0200 +++ new/pyproj-3.4.1/PKG-INFO 2022-12-13 02:50:28.507084100 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pyproj -Version: 3.4.0 +Version: 3.4.1 Summary: Python interface to PROJ (cartographic projections and coordinate transformations library) Home-page: https://github.com/pyproj4/pyproj Download-URL: http://python.org/pypi/pyproj @@ -40,7 +40,7 @@ <p align="center"> <a href="https://gitter.im/pyproj4-pyproj/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"><img alt="Join the chat at https://gitter.im/pyproj4-pyproj/community" src="https://badges.gitter.im/pyproj4-pyproj/community.svg"></a> -<a href="#contributors"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-53-orange.svg?style=flat-square"></a> +<a href="#contributors"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-56-orange.svg?style=flat-square"></a> <a href="https://ci.appveyor.com/project/snowman2/pyproj"><img alt="Appveyor Build Status" src="https://ci.appveyor.com/api/projects/status/v2ypts9j76doa9ey/branch/main?svg=true"></a> <a href="https://github.com/pyproj4/pyproj/actions?query=workflow%3ATests"><img alt="GitHub Actions Build Status" src="https://github.com/pyproj4/pyproj/workflows/Tests/badge.svg"></a> <a href="https://codecov.io/gh/pyproj4/pyproj"><img alt="Codecov Status" src="https://codecov.io/gh/pyproj4/pyproj/branch/main/graph/badge.svg"></a> @@ -89,7 +89,7 @@ <td align="center"><a href="http://mitkin.github.io"><img src="https://avatars3.githubusercontent.com/u/3927849?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mikhail Itkin</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=mitkin" title="Code">ð»</a></td> <td align="center"><a href="http://dopplershift.github.io"><img src="https://avatars2.githubusercontent.com/u/221526?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ryan May</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=dopplershift" title="Code">ð»</a></td> <td align="center"><a href="https://github.com/artttt"><img src="https://avatars3.githubusercontent.com/u/4626281?v=4?s=100" width="100px;" alt=""/><br /><sub><b>artttt</b></sub></a><br /><a href="#ideas-artttt" title="Ideas, Planning, & Feedback">ð¤</a></td> - <td align="center"><a href="http://ocefpaf.github.io/python4oceanographers"><img src="https://avatars1.githubusercontent.com/u/950575?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Filipe</b></sub></a><br /><a href="#infra-ocefpaf" title="Infrastructure (Hosting, Build-Tools, etc)">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=ocefpaf" title="Code">ð»</a> <a href="#platform-ocefpaf" title="Packaging/porting to new platform">ð¦</a></td> + <td align="center"><a href="http://ocefpaf.github.io/python4oceanographers"><img src="https://avatars1.githubusercontent.com/u/950575?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Filipe</b></sub></a><br /><a href="#infra-ocefpaf" title="Infrastructure (Hosting, Build-Tools, etc)">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=ocefpaf" title="Code">ð»</a> <a href="#platform-ocefpaf" title="Packaging/porting to new platform">ð¦</a> <a href="https://github.com/pyproj4/pyproj/commits?author=ocefpaf" title="Documentation">ð</a></td> </tr> <tr> <td align="center"><a href="https://github.com/heitorPB"><img src="https://avatars2.githubusercontent.com/u/13461702?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Heitor</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=heitorPB" title="Documentation">ð</a></td> @@ -141,6 +141,9 @@ <td align="center"><a href="https://github.com/paulcochrane"><img src="https://avatars.githubusercontent.com/u/18310598?v=4?s=100" width="100px;" alt=""/><br /><sub><b>paulcochrane</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=paulcochrane" title="Code">ð»</a> <a href="https://github.com/pyproj4/pyproj/commits?author=paulcochrane" title="Documentation">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=paulcochrane" title="Tests">â ï¸</a> <a href="https://github.com/pyproj4/pyproj/issues?q=author%3Apaulcochrane" title="Bug reports">ð</a></td> <td align="center"><a href="https://github.com/vot4anto"><img src="https://avatars.githubusercontent.com/u/56338190?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Antonio Ettorre</b></sub></a><br /><a href="#platform-vot4anto" title="Packaging/porting to new platform">ð¦</a></td> <td align="center"><a href="https://github.com/DWesl"><img src="https://avatars.githubusercontent.com/u/22566757?v=4?s=100" width="100px;" alt=""/><br /><sub><b>DWesl</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=DWesl" title="Code">ð»</a></td> + <td align="center"><a href="https://github.com/molinav"><img src="https://avatars.githubusercontent.com/u/9979942?v=4?s=100" width="100px;" alt=""/><br /><sub><b>VÃctor Molina GarcÃa</b></sub></a><br /><a href="#platform-molinav" title="Packaging/porting to new platform">ð¦</a></td> + <td align="center"><a href="https://github.com/skogler"><img src="https://avatars.githubusercontent.com/u/1032405?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Samuel Kogler</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/issues?q=author%3Askogler" title="Bug reports">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=skogler" title="Code">ð»</a></td> + <td align="center"><a href="https://github.com/shadchin"><img src="https://avatars.githubusercontent.com/u/61256?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alexander Shadchin</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/issues?q=author%3Ashadchin" title="Bug reports">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=shadchin" title="Code">ð»</a></td> </tr> </table> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/README.md new/pyproj-3.4.1/README.md --- old/pyproj-3.4.0/README.md 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/README.md 2022-12-13 02:49:26.000000000 +0100 @@ -6,7 +6,7 @@ <p align="center"> <a href="https://gitter.im/pyproj4-pyproj/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"><img alt="Join the chat at https://gitter.im/pyproj4-pyproj/community" src="https://badges.gitter.im/pyproj4-pyproj/community.svg"></a> -<a href="#contributors"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-53-orange.svg?style=flat-square"></a> +<a href="#contributors"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-56-orange.svg?style=flat-square"></a> <a href="https://ci.appveyor.com/project/snowman2/pyproj"><img alt="Appveyor Build Status" src="https://ci.appveyor.com/api/projects/status/v2ypts9j76doa9ey/branch/main?svg=true"></a> <a href="https://github.com/pyproj4/pyproj/actions?query=workflow%3ATests"><img alt="GitHub Actions Build Status" src="https://github.com/pyproj4/pyproj/workflows/Tests/badge.svg"></a> <a href="https://codecov.io/gh/pyproj4/pyproj"><img alt="Codecov Status" src="https://codecov.io/gh/pyproj4/pyproj/branch/main/graph/badge.svg"></a> @@ -55,7 +55,7 @@ <td align="center"><a href="http://mitkin.github.io"><img src="https://avatars3.githubusercontent.com/u/3927849?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mikhail Itkin</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=mitkin" title="Code">ð»</a></td> <td align="center"><a href="http://dopplershift.github.io"><img src="https://avatars2.githubusercontent.com/u/221526?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ryan May</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=dopplershift" title="Code">ð»</a></td> <td align="center"><a href="https://github.com/artttt"><img src="https://avatars3.githubusercontent.com/u/4626281?v=4?s=100" width="100px;" alt=""/><br /><sub><b>artttt</b></sub></a><br /><a href="#ideas-artttt" title="Ideas, Planning, & Feedback">ð¤</a></td> - <td align="center"><a href="http://ocefpaf.github.io/python4oceanographers"><img src="https://avatars1.githubusercontent.com/u/950575?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Filipe</b></sub></a><br /><a href="#infra-ocefpaf" title="Infrastructure (Hosting, Build-Tools, etc)">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=ocefpaf" title="Code">ð»</a> <a href="#platform-ocefpaf" title="Packaging/porting to new platform">ð¦</a></td> + <td align="center"><a href="http://ocefpaf.github.io/python4oceanographers"><img src="https://avatars1.githubusercontent.com/u/950575?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Filipe</b></sub></a><br /><a href="#infra-ocefpaf" title="Infrastructure (Hosting, Build-Tools, etc)">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=ocefpaf" title="Code">ð»</a> <a href="#platform-ocefpaf" title="Packaging/porting to new platform">ð¦</a> <a href="https://github.com/pyproj4/pyproj/commits?author=ocefpaf" title="Documentation">ð</a></td> </tr> <tr> <td align="center"><a href="https://github.com/heitorPB"><img src="https://avatars2.githubusercontent.com/u/13461702?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Heitor</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=heitorPB" title="Documentation">ð</a></td> @@ -107,6 +107,9 @@ <td align="center"><a href="https://github.com/paulcochrane"><img src="https://avatars.githubusercontent.com/u/18310598?v=4?s=100" width="100px;" alt=""/><br /><sub><b>paulcochrane</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=paulcochrane" title="Code">ð»</a> <a href="https://github.com/pyproj4/pyproj/commits?author=paulcochrane" title="Documentation">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=paulcochrane" title="Tests">â ï¸</a> <a href="https://github.com/pyproj4/pyproj/issues?q=author%3Apaulcochrane" title="Bug reports">ð</a></td> <td align="center"><a href="https://github.com/vot4anto"><img src="https://avatars.githubusercontent.com/u/56338190?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Antonio Ettorre</b></sub></a><br /><a href="#platform-vot4anto" title="Packaging/porting to new platform">ð¦</a></td> <td align="center"><a href="https://github.com/DWesl"><img src="https://avatars.githubusercontent.com/u/22566757?v=4?s=100" width="100px;" alt=""/><br /><sub><b>DWesl</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=DWesl" title="Code">ð»</a></td> + <td align="center"><a href="https://github.com/molinav"><img src="https://avatars.githubusercontent.com/u/9979942?v=4?s=100" width="100px;" alt=""/><br /><sub><b>VÃctor Molina GarcÃa</b></sub></a><br /><a href="#platform-molinav" title="Packaging/porting to new platform">ð¦</a></td> + <td align="center"><a href="https://github.com/skogler"><img src="https://avatars.githubusercontent.com/u/1032405?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Samuel Kogler</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/issues?q=author%3Askogler" title="Bug reports">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=skogler" title="Code">ð»</a></td> + <td align="center"><a href="https://github.com/shadchin"><img src="https://avatars.githubusercontent.com/u/61256?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alexander Shadchin</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/issues?q=author%3Ashadchin" title="Bug reports">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=shadchin" title="Code">ð»</a></td> </tr> </table> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/docs/advanced_examples.rst new/pyproj-3.4.1/docs/advanced_examples.rst --- old/pyproj-3.4.0/docs/advanced_examples.rst 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/docs/advanced_examples.rst 2022-12-13 02:49:26.000000000 +0100 @@ -63,7 +63,7 @@ .. code-block:: python >>> from pyproj.transformer import TransformerGroup - >>> trans_group = TransformerGroup("epsg:4326","epsg:2964") + >>> trans_group = TransformerGroup("EPSG:4326","EPSG:2964") >>> trans_group <TransformerGroup: best_available=True> - transformers: 8 @@ -85,7 +85,7 @@ .. code-block:: python >>> from pyproj.transformer import TransformerGroup - >>> tg = TransformerGroup("epsg:4326", "+proj=aea +lat_0=50 +lon_0=-154 +lat_1=55 +lat_2=65 +x_0=0 +y_0=0 +datum=NAD27 +no_defs +type=crs +units=m", always_xy=True) + >>> tg = TransformerGroup("EPSG:4326", "+proj=aea +lat_0=50 +lon_0=-154 +lat_1=55 +lat_2=65 +x_0=0 +y_0=0 +datum=NAD27 +no_defs +type=crs +units=m", always_xy=True) UserWarning: Best transformation is not available due to missing Grid(short_name=ntv2_0.gsb, full_name=, package_name=proj-datumgrid-north-america, url=https://download.osgeo.org/proj/proj-datumgrid-north-america-latest.zip, direct_download=True, open_license=True, available=False) f"{operation.grids[0]!r}" >>> tg @@ -111,7 +111,7 @@ .. code-block:: python >>> from pyproj.transformer import Transformer, AreaOfInterest - >>> transformer = Transformer.from_crs("epsg:4326", "epsg:2694") + >>> transformer = Transformer.from_crs("EPSG:4326", "EPSG:2694") >>> transformer <Concatenated Operation Transformer: pipeline> Description: Inverse of Pulkovo 1995 to WGS 84 (2) + 3-degree Gauss-Kruger zone 60 @@ -119,8 +119,8 @@ - name: Russia - bounds: (18.92, 39.87, -168.97, 85.2) >>> transformer = Transformer.from_crs( - ... "epsg:4326", - ... "epsg:2694", + ... "EPSG:4326", + ... "EPSG:2694", ... area_of_interest=AreaOfInterest(-136.46, 49.0, -60.72, 83.17), ... ) >>> transformer @@ -137,7 +137,7 @@ .. versionadded:: 3.1 -In PROJ 6+ you neeed to explictly change your CRS to 3D if you have +In PROJ 6+ you need to explicitly change your CRS to 3D if you have 2D CRS and you want the ellipsoidal height taken into account. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/docs/examples.rst new/pyproj-3.4.1/docs/examples.rst --- old/pyproj-3.4.0/docs/examples.rst 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/docs/examples.rst 2022-12-13 02:49:26.000000000 +0100 @@ -24,7 +24,7 @@ >>> from pyproj import CRS >>> crs = CRS.from_epsg(4326) - >>> crs = CRS.from_string("epsg:4326") + >>> crs = CRS.from_string("EPSG:4326") >>> crs = CRS.from_proj4("+proj=latlon") >>> crs = CRS.from_user_input(4326) @@ -373,7 +373,7 @@ ---------------------------- .. note:: If you are doing a transformation with a CRS that is time based, - it is recommended to include the time in the transformaton operation. + it is recommended to include the time in the transformation operation. .. code:: python @@ -407,7 +407,7 @@ >>> geod_clrk = Geod(ellps='clrk66') # Use Clarke 1866 ellipsoid. >>> geod_clrk Geod(ellps='clrk66') - >>> geod_wgs84 = CRS("epsg:4326").get_geod() + >>> geod_wgs84 = CRS("EPSG:4326").get_geod() >>> geod_wgs84 Geod('+a=6378137 +f=0.0033528106647475126') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/docs/gotchas.rst new/pyproj-3.4.1/docs/gotchas.rst --- old/pyproj-3.4.0/docs/gotchas.rst 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/docs/gotchas.rst 2022-12-13 02:49:26.000000000 +0100 @@ -154,7 +154,7 @@ >>> from pyproj import CRS >>> crs_deprecated = CRS(init="epsg:4544") - >>> crs = CRS("epsg:4544") + >>> crs = CRS("EPSG:4544") >>> crs == crs_deprecated False @@ -199,7 +199,7 @@ The reason the `min_confidence` parameter in :meth:`pyproj.crs.CRS.to_epsg` and :meth:`pyproj.crs.CRS.to_authority` exists is because you can initialize a CRS in several different methods and -some of them do not always coorespond to an EPSG or authortiy code, but it +some of them do not always correspond to an EPSG or authortiy code, but it can be close enough. For example, if you have a WKT/PROJ string and you use it to create the CRS instance, @@ -289,5 +289,5 @@ pyproj 2 style: >>> from pyproj import Transformer - >>> transformer = Transformer.from_crs("epsg:4326", "epsg:3857") + >>> transformer = Transformer.from_crs("EPSG:4326", "EPSG:3857") >>> transformer.transform(12, 12) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/docs/history.rst new/pyproj-3.4.1/docs/history.rst --- old/pyproj-3.4.0/docs/history.rst 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/docs/history.rst 2022-12-13 02:49:26.000000000 +0100 @@ -1,8 +1,16 @@ Change Log ========== -Latest -------- +3.4.1 +----- +- WHL: Add win32 to build_wheels matrix (pull #1169) +- BUG: Changed so that the setup.cfg depends on the version code in the __init__.py instead of the other way around (issuue #1155) +- BUG: Fix :meth:`.CRS.to_cf` for Pole rotation GRIB convention (pull #1167) +- BUG: Fix :meth:`.CRS.to_authority` memory leak (pull #1178) +- REF: Use upper case EPSG code when creating CRS (pull #1162) + +3.4.0 +----- - WHL: Python 3.11 Wheels (issue #1110) - WHL: Wheels contain PROJ 9.1.0 (pull #1132) - DEP: Minimum PROJ version 8.2 (issue #1011) @@ -193,7 +201,7 @@ * Added `operations` to `pyproj.crs.CoordinateOperation` objects and `pyproj.Transformer` (issue #441) * Added :func:`pyproj.get_authorities` and :func:`pyproj.get_codes` (issue #440) * Release gil in core cython/PROJ code (issue #386) -* BUG: Added checks for unititialized `pyproj.crs` objects to prevent core dumping (issue #433) +* BUG: Added checks for uninitialized `pyproj.crs` objects to prevent core dumping (issue #433) * BUG: Added fix for get_transform_crs when checking type (pull #439) * DOC: Build docs with python3 (pull #428) @@ -242,7 +250,7 @@ * Added fix for whitepace around '=' in PROJ strings (issue #345) * Update version check in `setup.py` (issue #323) * Add "stable" doc site pointing to latest release (issue #347, pull #348) -* Depreate `Proj.proj_version` (pull #337) +* Deprecate `Proj.proj_version` (pull #337) * Test fixes (pull #333, pull #335) 2.2.0 @@ -250,9 +258,9 @@ * Minimum PROJ version is now 6.1.0 * `pyproj.crs` updates: * Updated CRS repr (issue #264) - * Add Datum, CoordinateSystem, CoordinateOperation clases (issue #262) + * Add Datum, CoordinateSystem, CoordinateOperation classes, (issue #262) * Added :meth:`pyproj.crs.CRS.to_cf` and :meth:`pyproj.crs.CRS.from_cf` for - converting to/from Climate and Forcast (CF) 1.8 grid mappings (pull #244) + converting to/from Climate and Forecast (CF) 1.8 grid mappings (pull #244) * Added :meth:`pyproj.crs.CRS.to_dict` (issue #226) * Added :meth:`pyproj.crs.CRS.to_authority` (pull #294) * Added :attr:`pyproj.crs.CRS.is_vertical` and :attr:`pyproj.crs.CRS.is_engineering` (issue #316) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/docs/installation.rst new/pyproj-3.4.1/docs/installation.rst --- old/pyproj-3.4.0/docs/installation.rst 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/docs/installation.rst 2022-12-13 02:49:26.000000000 +0100 @@ -72,9 +72,9 @@ 2.2-2.3 6.1-7 2.4-2.6 6.2-7 3.0.0 7.2 -3.0.1+ 7.2-9.1 -3.3.0+ 8.0-9.1 -3.4.0+ 8.2+ +3.0.1-3.2 7.2-9.1 +3.3 8.0-9.1 +3.4+ 8.2+ ============ ============ Setup PROJ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/docs/past_versions.rst new/pyproj-3.4.1/docs/past_versions.rst --- old/pyproj-3.4.0/docs/past_versions.rst 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/docs/past_versions.rst 2022-12-13 02:49:26.000000000 +0100 @@ -1,6 +1,7 @@ Documentation Archive ===================== +- `3.4.0 <https://pyproj4.github.io/pyproj/3.4.0/>`_ - `3.3.1 <https://pyproj4.github.io/pyproj/3.3.1/>`_ - `3.2.1 <https://pyproj4.github.io/pyproj/3.2.1/>`_ - `3.1.0 <https://pyproj4.github.io/pyproj/3.1.0/>`_ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/__init__.py new/pyproj-3.4.1/pyproj/__init__.py --- old/pyproj-3.4.0/pyproj/__init__.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/__init__.py 2022-12-13 02:49:26.000000000 +0100 @@ -28,7 +28,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -import importlib.metadata import warnings import pyproj.network @@ -67,7 +66,7 @@ transform, ) -__version__ = importlib.metadata.version(__package__) +__version__ = "3.4.1" __all__ = [ "Proj", "Geod", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/_crs.pyx new/pyproj-3.4.1/pyproj/_crs.pyx --- old/pyproj-3.4.0/pyproj/_crs.pyx 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/_crs.pyx 2022-12-13 02:49:26.000000000 +0100 @@ -2712,7 +2712,7 @@ Example: >>> from pyproj import CRS - >>> ccs = CRS("epsg:4328") + >>> ccs = CRS("EPSG:4328") >>> ccs.to_epsg() 4328 @@ -2757,7 +2757,7 @@ Example: >>> from pyproj import CRS - >>> ccs = CRS("epsg:4328") + >>> ccs = CRS("EPSG:4328") >>> ccs.to_authority() ('EPSG', '4328') @@ -2802,7 +2802,7 @@ Example: >>> from pyproj import CRS - >>> ccs = CRS("epsg:4328") + >>> ccs = CRS("EPSG:4328") >>> ccs.list_authority() [AuthorityMatchInfo(auth_name='EPSG', code='4326', confidence=100)] @@ -2883,9 +2883,13 @@ out_confidence_list[iii] ) ) + # at this point, the auth name is copied and we can release the proj object + proj_destroy(proj) + proj = NULL finally: - for iii in range(num_proj_objects): - proj_destroy(proj_list_get(self.context, proj_list, iii)) + # If there was an error we have to call proj_destroy + # If there was none, calling it on NULL does nothing + proj_destroy(proj) proj_list_destroy(proj_list) CRSError.clear() return authority_list @@ -2941,7 +2945,7 @@ This method will check for a property on the CRS. It will check if it has the property on the sub CRS - if it is a compount CRS and will check if the source CRS + if it is a compound CRS and will check if the source CRS has the property if it is a bound CRS. Parameters @@ -2975,7 +2979,7 @@ """ This checks if the CRS is geographic. It will check if it has a geographic CRS - in the sub CRS if it is a compount CRS and will check if + in the sub CRS if it is a compound CRS and will check if the source CRS is geographic if it is a bound CRS. Returns @@ -2997,7 +3001,7 @@ """ This checks if the CRS is projected. It will check if it has a projected CRS - in the sub CRS if it is a compount CRS and will check if + in the sub CRS if it is a compound CRS and will check if the source CRS is projected if it is a bound CRS. Returns @@ -3017,7 +3021,7 @@ This checks if the CRS is vertical. It will check if it has a vertical CRS - in the sub CRS if it is a compount CRS and will check if + in the sub CRS if it is a compound CRS and will check if the source CRS is vertical if it is a bound CRS. Returns diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/_transformer.pyx new/pyproj-3.4.1/pyproj/_transformer.pyx --- old/pyproj-3.4.0/pyproj/_transformer.pyx 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/_transformer.pyx 2022-12-13 02:49:26.000000000 +0100 @@ -269,7 +269,7 @@ ) return NULL - cdef const char* options[4] + cdef const char* options[5] cdef bytes b_authority cdef bytes b_accuracy cdef int options_index = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/crs/_cf1x8.py new/pyproj-3.4.1/pyproj/crs/_cf1x8.py --- old/pyproj-3.4.0/pyproj/crs/_cf1x8.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/crs/_cf1x8.py 2022-12-13 02:49:26.000000000 +0100 @@ -414,7 +414,7 @@ "grid_mapping_name": "geostationary", "sweep_angle_axis": sweep_angle_axis, "perspective_point_height": params["satellite_height"], - # geostationary satellites orbit arount equator + # geostationary satellites orbit around equator # so latitude_of_natural_origin is often left off and assumed to be 0.0 "latitude_of_projection_origin": params.get("latitude_of_natural_origin", 0.0), "longitude_of_projection_origin": params["longitude_of_natural_origin"], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/crs/coordinate_operation.py new/pyproj-3.4.1/pyproj/crs/coordinate_operation.py --- old/pyproj-3.4.0/pyproj/crs/coordinate_operation.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/crs/coordinate_operation.py 2022-12-13 02:49:26.000000000 +0100 @@ -843,7 +843,7 @@ longitude_projection_centre: float Longitude of projection centre (lonc). azimuth_initial_line: float - Azimuth of initial line (azimuth). + Azimuth of initial line (alpha). angle_from_rectified_to_skew_grid: float Angle from Rectified to Skew Grid (gamma). scale_factor_on_initial_line: float, default=1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/crs/crs.py new/pyproj-3.4.1/pyproj/crs/crs.py --- old/pyproj-3.4.0/pyproj/crs/crs.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/crs/crs.py 2022-12-13 02:49:26.000000000 +0100 @@ -147,7 +147,7 @@ def _prepare_from_epsg(auth_code: Union[str, int]): - return _prepare_from_authority("epsg", auth_code) + return _prepare_from_authority("EPSG", auth_code) def _is_epsg_code(auth_code: Any) -> bool: @@ -180,7 +180,7 @@ """ - def __init__(self, projparams: Any = None, **kwargs) -> None: + def __init__(self, projparams: Optional[Any] = None, **kwargs) -> None: """ Initialize a CRS class instance with: - PROJ string @@ -642,7 +642,7 @@ CF-1.8 version of the projection. """ - # pylint: disable=too-many-branches + # pylint: disable=too-many-branches,too-many-return-statements cf_dict: Dict[str, Any] = {"crs_wkt": self.to_wkt(wkt_version)} # handle bound CRS @@ -696,6 +696,16 @@ if self.is_geographic: if self.coordinate_operation: + if ( + self.coordinate_operation.method_name.lower() + not in _INVERSE_GEOGRAPHIC_GRID_MAPPING_NAME_MAP + ): + if errcheck: + warnings.warn( + "Unsupported coordinate operation: " + f"{self.coordinate_operation.method_name}" + ) + return {"crs_wkt": cf_dict["crs_wkt"]} cf_dict.update( _INVERSE_GEOGRAPHIC_GRID_MAPPING_NAME_MAP[ self.coordinate_operation.method_name.lower() @@ -729,7 +739,7 @@ else: warnings.warn("Coordinate operation not found.") - return {"crs_wkt": self.to_wkt(wkt_version)} + return {"crs_wkt": cf_dict["crs_wkt"]} cf_dict.update( _INVERSE_GRID_MAPPING_NAME_MAP[coordinate_operation_name]( @@ -741,9 +751,9 @@ @staticmethod def from_cf( in_cf: dict, - ellipsoidal_cs: Any = None, - cartesian_cs: Any = None, - vertical_cs: Any = None, + ellipsoidal_cs: Optional[Any] = None, + cartesian_cs: Optional[Any] = None, + vertical_cs: Optional[Any] = None, ) -> "CRS": """ .. versionadded:: 2.2.0 @@ -1301,7 +1311,7 @@ Example: >>> from pyproj import CRS - >>> ccs = CRS("epsg:4328") + >>> ccs = CRS("EPSG:4328") >>> ccs.to_epsg() 4328 @@ -1340,7 +1350,7 @@ Example: >>> from pyproj import CRS - >>> ccs = CRS("epsg:4328") + >>> ccs = CRS("EPSG:4328") >>> ccs.to_authority() ('EPSG', '4328') @@ -1383,7 +1393,7 @@ Example: >>> from pyproj import CRS - >>> ccs = CRS("epsg:4328") + >>> ccs = CRS("EPSG:4328") >>> ccs.list_authority() [AuthorityMatchInfo(auth_name='EPSG', code='4326', confidence=100)] @@ -1443,7 +1453,7 @@ """ This checks if the CRS is geographic. It will check if it has a geographic CRS - in the sub CRS if it is a compount CRS and will check if + in the sub CRS if it is a compound CRS and will check if the source CRS is geographic if it is a bound CRS. Returns @@ -1458,7 +1468,7 @@ """ This checks if the CRS is projected. It will check if it has a projected CRS - in the sub CRS if it is a compount CRS and will check if + in the sub CRS if it is a compound CRS and will check if the source CRS is projected if it is a bound CRS. Returns @@ -1475,7 +1485,7 @@ This checks if the CRS is vertical. It will check if it has a vertical CRS - in the sub CRS if it is a compount CRS and will check if + in the sub CRS if it is a compound CRS and will check if the source CRS is vertical if it is a bound CRS. Returns @@ -1762,7 +1772,7 @@ self, name: str = "undefined", datum: Any = "urn:ogc:def:datum:EPSG::6326", - ellipsoidal_cs: Any = None, + ellipsoidal_cs: Optional[Any] = None, ) -> None: """ Parameters @@ -1806,7 +1816,7 @@ self, base_crs: Any, conversion: Any, - ellipsoidal_cs: Any = None, + ellipsoidal_cs: Optional[Any] = None, name: str = "undefined", ) -> None: """ @@ -1908,8 +1918,8 @@ self, conversion: Any, name: str = "undefined", - cartesian_cs: Any = None, - geodetic_crs: Any = None, + cartesian_cs: Optional[Any] = None, + geodetic_crs: Optional[Any] = None, ) -> None: """ Parameters @@ -1960,7 +1970,7 @@ self, name: str, datum: Any, - vertical_cs: Any = None, + vertical_cs: Optional[Any] = None, geoid_model: Optional[str] = None, ) -> None: """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/exceptions.py new/pyproj-3.4.1/pyproj/exceptions.py --- old/pyproj-3.4.0/pyproj/exceptions.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/exceptions.py 2022-12-13 02:49:26.000000000 +0100 @@ -19,7 +19,7 @@ @staticmethod def clear() -> None: """ - This will clear the internal PROJ erro message. + This will clear the internal PROJ error message. """ ProjError.internal_proj_error = None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/geod.py new/pyproj-3.4.1/pyproj/geod.py --- old/pyproj-3.4.0/pyproj/geod.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/geod.py 2022-12-13 02:49:26.000000000 +0100 @@ -29,14 +29,14 @@ pj_ellps = get_ellps_map() -def _params_from_ellps_map(ellps): +def _params_from_ellps_map(ellps: str) -> Tuple[float, float, float, float, bool]: """ Build Geodesic parameters from PROJ ellips map Parameter --------- ellps: str - The name of the ellips in the map. + The name of the ellipse in the map. Returns ------- @@ -59,7 +59,7 @@ return semi_major_axis, semi_minor_axis, flattening, eccentricity_squared, sphere -def _params_from_kwargs(kwargs): +def _params_from_kwargs(kwargs: Dict) -> Tuple[float, float, float, float]: """ Build Geodesic parameters from input kwargs: @@ -75,8 +75,8 @@ Parameter --------- - ellps: str - The name of the ellips in the map. + kwargs: dict + The input kwargs for an ellipse. Returns ------- @@ -484,9 +484,9 @@ terminus_idx: int = 1, radians: bool = False, flags: GeodIntermediateFlag = GeodIntermediateFlag.DEFAULT, - out_lons: Any = None, - out_lats: Any = None, - out_azis: Any = None, + out_lons: Optional[Any] = None, + out_lats: Optional[Any] = None, + out_azis: Optional[Any] = None, ) -> GeodIntermediateReturn: """ .. versionadded:: 3.1.0 @@ -631,9 +631,9 @@ terminus_idx: int = 1, radians: bool = False, flags: GeodIntermediateFlag = GeodIntermediateFlag.DEFAULT, - out_lons: Any = None, - out_lats: Any = None, - out_azis: Any = None, + out_lons: Optional[Any] = None, + out_lats: Optional[Any] = None, + out_azis: Optional[Any] = None, ) -> GeodIntermediateReturn: """ .. versionadded:: 3.1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/network.py new/pyproj-3.4.1/pyproj/network.py --- old/pyproj-3.4.0/pyproj/network.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/network.py 2022-12-13 02:49:26.000000000 +0100 @@ -35,7 +35,7 @@ Default is None, which only uses the `certifi` package path as a fallback if the environment variables are not set. If a path is passed in, then that will be the path used. If it is set to True, then it will default - to using the path provied by the `certifi` package. If it is set to False + to using the path provided, by the `certifi` package. If it is set to False or an empty string then it will default to the system settings or environment variables. """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/proj.py new/pyproj-3.4.1/pyproj/proj.py --- old/pyproj-3.4.0/pyproj/proj.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/proj.py 2022-12-13 02:49:26.000000000 +0100 @@ -45,7 +45,7 @@ """ def __init__( - self, projparams: Any = None, preserve_units: bool = True, **kwargs + self, projparams: Optional[Any] = None, preserve_units: bool = True, **kwargs ) -> None: """ A Proj class instance is initialized with proj map projection @@ -91,14 +91,14 @@ >>> x,y = p2(-120.108, 34.36116666) >>> 'x=%9.3f y=%11.3f' % (x,y) 'x=765975.641 y=3805993.134' - >>> p = Proj("epsg:32667", preserve_units=False) + >>> p = Proj("EPSG:32667", preserve_units=False) >>> 'x=%12.3f y=%12.3f (meters)' % p(-114.057222, 51.045) 'x=-1783506.250 y= 6193827.033 (meters)' - >>> p = Proj("epsg:32667") + >>> p = Proj("EPSG:32667") >>> 'x=%12.3f y=%12.3f (feet)' % p(-114.057222, 51.045) 'x=-5851386.754 y=20320914.191 (feet)' >>> # test data with radian inputs - >>> p1 = Proj("epsg:4214") + >>> p1 = Proj("EPSG:4214") >>> x1, y1 = p1(116.366, 39.867) >>> f'{x1:.3f} {y1:.3f}' '116.366 39.867' @@ -279,7 +279,7 @@ def definition_string(self) -> str: """Returns formal definition string for projection - >>> Proj("epsg:4326").definition_string() + >>> Proj("EPSG:4326").definition_string() 'proj=longlat datum=WGS84 no_defs ellps=WGS84 towgs84=0,0,0' """ return self.definition diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/sync.py new/pyproj-3.4.1/pyproj/sync.py --- old/pyproj-3.4.0/pyproj/sync.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/sync.py 2022-12-13 02:49:26.000000000 +0100 @@ -213,11 +213,11 @@ source_id: Optional[str] = None, area_of_use: Optional[str] = None, filename: Optional[str] = None, - bbox: BBox = None, + bbox: Optional[BBox] = None, spatial_test: str = "intersects", include_world_coverage: bool = True, include_already_downloaded: bool = False, - target_directory: str = None, + target_directory: Optional[str] = None, ) -> Tuple: """ Get a list of transform grids that can be downloaded. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/transformer.py new/pyproj-3.4.1/pyproj/transformer.py --- old/pyproj-3.4.0/pyproj/transformer.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/transformer.py 2022-12-13 02:49:26.000000000 +0100 @@ -319,7 +319,7 @@ ProjError.clear() raise ProjError( "Transformer must be initialized using: " - "'from_crs', 'from_pipeline', or 'from_proj'." + "'from_crs' or 'from_pipeline'." ) self._local = TransformerLocal() @@ -500,6 +500,8 @@ ) -> "Transformer": """Make a Transformer from a :obj:`pyproj.Proj` or input used to create one. + .. deprecated:: 3.4.1 :meth:`~Transformer.from_crs` is preferred. + .. versionadded:: 2.2.0 always_xy .. versionadded:: 2.3.0 area_of_interest @@ -619,7 +621,7 @@ - :c:func:`proj_create` - :c:func:`proj_create_from_database` - .. versionadded:: 3.1.0 AUTH:CODE string suppor (e.g. EPSG:1671) + .. versionadded:: 3.1.0 AUTH:CODE string support (e.g. EPSG:1671) Allowed input: - a PROJ string @@ -748,7 +750,7 @@ -------- >>> from pyproj import Transformer - >>> transformer = Transformer.from_crs("epsg:4326", "epsg:3857") + >>> transformer = Transformer.from_crs("EPSG:4326", "EPSG:3857") >>> x3, y3 = transformer.transform(33, 98) >>> f"{x3:.3f} {y3:.3f}" '10909310.098 3895303.963' @@ -781,7 +783,7 @@ >>> xpjr, ypjr, zpjr = transprojr.transform(xpj, ypj, zpj, radians=True) >>> f"{xpjr:.3f} {ypjr:.3f} {zpjr:.3f}" '-2704026.010 -4253051.810 3895878.820' - >>> transformer = Transformer.from_proj("epsg:4326", 4326) + >>> transformer = Transformer.from_crs("EPSG:4326", 4326) >>> xeq, yeq = transformer.transform(33, 98) >>> f"{xeq:.0f} {yeq:.0f}" '33 98' @@ -897,7 +899,7 @@ ... ): ... '{:.3f} {:.3f} {:.3f}'.format(*pt) '-2704214.394 -4254414.478 3894270.731' - >>> transproj_eq = Transformer.from_proj( + >>> transproj_eq = Transformer.from_crs( ... 'EPSG:4326', ... '+proj=longlat +datum=WGS84 +no_defs +type=crs', ... always_xy=True, @@ -1158,8 +1160,8 @@ p2: Any, x: Any, y: Any, - z: Any = None, - tt: Any = None, + z: Optional[Any] = None, + tt: Optional[Any] = None, radians: bool = False, errcheck: bool = False, always_xy: bool = False, @@ -1243,7 +1245,7 @@ "See: https://pyproj4.github.io/pyproj/stable/" "gotchas.html#upgrading-to-pyproj-2-from-pyproj-1" ), - DeprecationWarning, + FutureWarning, stacklevel=2, ) return Transformer.from_proj(p1, p2, always_xy=always_xy).transform( @@ -1324,7 +1326,7 @@ "See: https://pyproj4.github.io/pyproj/stable/" "gotchas.html#upgrading-to-pyproj-2-from-pyproj-1" ), - DeprecationWarning, + FutureWarning, stacklevel=2, ) return Transformer.from_proj(p1, p2, always_xy=always_xy).itransform( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj/utils.py new/pyproj-3.4.1/pyproj/utils.py --- old/pyproj-3.4.0/pyproj/utils.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/pyproj/utils.py 2022-12-13 02:49:26.000000000 +0100 @@ -100,7 +100,7 @@ A scalar, list, tuple, numpy.array, pandas.Series, xaray.DataArray, or dask.array.Array. inplace: bool, default=False - If True, will return the array withour a copy if it + If True, will return the array without a copy if it meets the requirements of the Python Buffer API & PROJ C-API. Returns diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/pyproj.egg-info/PKG-INFO new/pyproj-3.4.1/pyproj.egg-info/PKG-INFO --- old/pyproj-3.4.0/pyproj.egg-info/PKG-INFO 2022-09-10 03:20:07.000000000 +0200 +++ new/pyproj-3.4.1/pyproj.egg-info/PKG-INFO 2022-12-13 02:50:28.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pyproj -Version: 3.4.0 +Version: 3.4.1 Summary: Python interface to PROJ (cartographic projections and coordinate transformations library) Home-page: https://github.com/pyproj4/pyproj Download-URL: http://python.org/pypi/pyproj @@ -40,7 +40,7 @@ <p align="center"> <a href="https://gitter.im/pyproj4-pyproj/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"><img alt="Join the chat at https://gitter.im/pyproj4-pyproj/community" src="https://badges.gitter.im/pyproj4-pyproj/community.svg"></a> -<a href="#contributors"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-53-orange.svg?style=flat-square"></a> +<a href="#contributors"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-56-orange.svg?style=flat-square"></a> <a href="https://ci.appveyor.com/project/snowman2/pyproj"><img alt="Appveyor Build Status" src="https://ci.appveyor.com/api/projects/status/v2ypts9j76doa9ey/branch/main?svg=true"></a> <a href="https://github.com/pyproj4/pyproj/actions?query=workflow%3ATests"><img alt="GitHub Actions Build Status" src="https://github.com/pyproj4/pyproj/workflows/Tests/badge.svg"></a> <a href="https://codecov.io/gh/pyproj4/pyproj"><img alt="Codecov Status" src="https://codecov.io/gh/pyproj4/pyproj/branch/main/graph/badge.svg"></a> @@ -89,7 +89,7 @@ <td align="center"><a href="http://mitkin.github.io"><img src="https://avatars3.githubusercontent.com/u/3927849?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mikhail Itkin</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=mitkin" title="Code">ð»</a></td> <td align="center"><a href="http://dopplershift.github.io"><img src="https://avatars2.githubusercontent.com/u/221526?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ryan May</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=dopplershift" title="Code">ð»</a></td> <td align="center"><a href="https://github.com/artttt"><img src="https://avatars3.githubusercontent.com/u/4626281?v=4?s=100" width="100px;" alt=""/><br /><sub><b>artttt</b></sub></a><br /><a href="#ideas-artttt" title="Ideas, Planning, & Feedback">ð¤</a></td> - <td align="center"><a href="http://ocefpaf.github.io/python4oceanographers"><img src="https://avatars1.githubusercontent.com/u/950575?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Filipe</b></sub></a><br /><a href="#infra-ocefpaf" title="Infrastructure (Hosting, Build-Tools, etc)">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=ocefpaf" title="Code">ð»</a> <a href="#platform-ocefpaf" title="Packaging/porting to new platform">ð¦</a></td> + <td align="center"><a href="http://ocefpaf.github.io/python4oceanographers"><img src="https://avatars1.githubusercontent.com/u/950575?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Filipe</b></sub></a><br /><a href="#infra-ocefpaf" title="Infrastructure (Hosting, Build-Tools, etc)">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=ocefpaf" title="Code">ð»</a> <a href="#platform-ocefpaf" title="Packaging/porting to new platform">ð¦</a> <a href="https://github.com/pyproj4/pyproj/commits?author=ocefpaf" title="Documentation">ð</a></td> </tr> <tr> <td align="center"><a href="https://github.com/heitorPB"><img src="https://avatars2.githubusercontent.com/u/13461702?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Heitor</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=heitorPB" title="Documentation">ð</a></td> @@ -141,6 +141,9 @@ <td align="center"><a href="https://github.com/paulcochrane"><img src="https://avatars.githubusercontent.com/u/18310598?v=4?s=100" width="100px;" alt=""/><br /><sub><b>paulcochrane</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=paulcochrane" title="Code">ð»</a> <a href="https://github.com/pyproj4/pyproj/commits?author=paulcochrane" title="Documentation">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=paulcochrane" title="Tests">â ï¸</a> <a href="https://github.com/pyproj4/pyproj/issues?q=author%3Apaulcochrane" title="Bug reports">ð</a></td> <td align="center"><a href="https://github.com/vot4anto"><img src="https://avatars.githubusercontent.com/u/56338190?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Antonio Ettorre</b></sub></a><br /><a href="#platform-vot4anto" title="Packaging/porting to new platform">ð¦</a></td> <td align="center"><a href="https://github.com/DWesl"><img src="https://avatars.githubusercontent.com/u/22566757?v=4?s=100" width="100px;" alt=""/><br /><sub><b>DWesl</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/commits?author=DWesl" title="Code">ð»</a></td> + <td align="center"><a href="https://github.com/molinav"><img src="https://avatars.githubusercontent.com/u/9979942?v=4?s=100" width="100px;" alt=""/><br /><sub><b>VÃctor Molina GarcÃa</b></sub></a><br /><a href="#platform-molinav" title="Packaging/porting to new platform">ð¦</a></td> + <td align="center"><a href="https://github.com/skogler"><img src="https://avatars.githubusercontent.com/u/1032405?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Samuel Kogler</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/issues?q=author%3Askogler" title="Bug reports">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=skogler" title="Code">ð»</a></td> + <td align="center"><a href="https://github.com/shadchin"><img src="https://avatars.githubusercontent.com/u/61256?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alexander Shadchin</b></sub></a><br /><a href="https://github.com/pyproj4/pyproj/issues?q=author%3Ashadchin" title="Bug reports">ð</a> <a href="https://github.com/pyproj4/pyproj/commits?author=shadchin" title="Code">ð»</a></td> </tr> </table> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/setup.cfg new/pyproj-3.4.1/setup.cfg --- old/pyproj-3.4.0/setup.cfg 2022-09-10 03:20:08.020873500 +0200 +++ new/pyproj-3.4.1/setup.cfg 2022-12-13 02:50:28.507084100 +0100 @@ -1,13 +1,15 @@ [metadata] name = pyproj -version = 3.4.0 +version = attr: pyproj.__version__ description = Python interface to PROJ (cartographic projections and coordinate transformations library) long_description = file: README.md long_description_content_type = text/markdown author = Jeff Whitaker author_email = jeffrey.s.whita...@noaa.gov license = MIT -license_file = LICENSE +license_files = + LICENSE + LICENSE_proj platform = any keywords = GIS, map, geospatial, coordinate-systems, coordinate-transformation, cartographic-projection, geodesic classifiers = @@ -45,14 +47,6 @@ console_scripts = pyproj = pyproj.__main__:main -[flake8] -max-line-length = 88 -ignore = - C408 # Unnecessary dict/list/tuple call - rewrite as a literal - E203 # whitespace before ':' - doesn't work well with black - E225 # missing whitespace around operator - let black worry about that - W503 # line break occurred before a binary operator - let black worry about that - [egg_info] tag_build = tag_date = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/conftest.py new/pyproj-3.4.1/test/conftest.py --- old/pyproj-3.4.0/test/conftest.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/conftest.py 2022-12-13 02:49:26.000000000 +0100 @@ -13,6 +13,7 @@ PROJ_GTE_9 = PROJ_LOOSE_VERSION >= version.parse("9.0.0") PROJ_GTE_901 = PROJ_LOOSE_VERSION >= version.parse("9.0.1") PROJ_GTE_91 = PROJ_LOOSE_VERSION >= version.parse("9.1") +PROJ_GTE_911 = PROJ_LOOSE_VERSION >= version.parse("9.1.1") def unset_data_dir(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/crs/test_crs.py new/pyproj-3.4.1/test/crs/test_crs.py --- old/pyproj-3.4.0/test/crs/test_crs.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/crs/test_crs.py 2022-12-13 02:49:26.000000000 +0100 @@ -20,7 +20,13 @@ from pyproj.enums import ProjVersion, WktVersion from pyproj.exceptions import CRSError from pyproj.transformer import TransformerGroup -from test.conftest import PROJ_GTE_91, PROJ_GTE_901, assert_can_pickle, grids_available +from test.conftest import ( + PROJ_GTE_91, + PROJ_GTE_901, + PROJ_GTE_911, + assert_can_pickle, + grids_available, +) class CustomCRS(object): @@ -394,7 +400,7 @@ with pytest.warns(FutureWarning): crs3 = CRS({"init": "EPSG:4326"}) assert crs1 == crs2 - # these are not equivalent in proj.4 now as one uses degrees and the othe radians + # these are not equivalent in proj.4 now as one uses degrees and the other radians assert crs1 == crs3 @@ -604,19 +610,22 @@ assert grid.direct_download is True assert grid.open_license is True assert grid.short_name == "ca_nrc_ntv1_can.tif" + assert grid.package_name == "" + assert grid.url == "https://cdn.proj.org/ca_nrc_ntv1_can.tif" if (PROJ_GTE_91 and grids_available(grid.short_name, check_network=False)) or ( not PROJ_GTE_91 and grids_available(grid.short_name) ): assert grid.available is True assert grid.full_name.endswith(grid.short_name) + elif PROJ_GTE_911 and pyproj.network.is_network_enabled(): + assert grid.available is True + assert grid.full_name == grid.url elif PROJ_GTE_91 and pyproj.network.is_network_enabled(): assert grid.available is True assert grid.full_name == "" else: assert grid.available is False assert grid.full_name == "" - assert grid.package_name == "" - assert grid.url == "https://cdn.proj.org/ca_nrc_ntv1_can.tif" def test_coordinate_operation__missing(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/crs/test_crs_cf.py new/pyproj-3.4.1/test/crs/test_crs_cf.py --- old/pyproj-3.4.0/test/crs/test_crs_cf.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/crs/test_crs_cf.py 2022-12-13 02:49:26.000000000 +0100 @@ -479,6 +479,43 @@ _test_roundtrip(expected_cf, "GEOGCRS[") +def test_grib_rotated_pole_to_cf(): + rotated_pole_wkt = """GEOGCRS["Coordinate System imported from GRIB file", + BASEGEOGCRS["Coordinate System imported from GRIB file", + DATUM["unnamed", + ELLIPSOID["Sphere",6371229,0, + LENGTHUNIT["metre",1, + ID["EPSG",9001]]]], + PRIMEM["Greenwich",0, + ANGLEUNIT["degree",0.0174532925199433, + ID["EPSG",9122]]]], + DERIVINGCONVERSION["Pole rotation (GRIB convention)", + METHOD["Pole rotation (GRIB convention)"], + PARAMETER["Latitude of the southern pole (GRIB convention)",-33.443381, + ANGLEUNIT["degree",0.0174532925199433, + ID["EPSG",9122]]], + PARAMETER["Longitude of the southern pole (GRIB convention)",-93.536426, + ANGLEUNIT["degree",0.0174532925199433, + ID["EPSG",9122]]], + PARAMETER["Axis rotation (GRIB convention)",0, + ANGLEUNIT["degree",0.0174532925199433, + ID["EPSG",9122]]]], + CS[ellipsoidal,2], + AXIS["latitude",north, + ORDER[1], + ANGLEUNIT["degree",0.0174532925199433, + ID["EPSG",9122]]], + AXIS["longitude",east, + ORDER[2], + ANGLEUNIT["degree",0.0174532925199433, + ID["EPSG",9122]]]]""" + crs = CRS(rotated_pole_wkt) + with pytest.warns(UserWarning): + cf_dict = crs.to_cf(errcheck=True) + assert cf_dict.pop("crs_wkt").startswith("GEOGCRS[") + assert not cf_dict + + def test_cf_lambert_conformal_conic_1sp(): crs = CRS.from_cf( dict( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/test_datum.py new/pyproj-3.4.1/test/test_datum.py --- old/pyproj-3.4.0/test/test_datum.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/test_datum.py 2022-12-13 02:49:26.000000000 +0100 @@ -12,7 +12,7 @@ s_1 = -111.5 s_2 = 45.25919444444 p2 = proj_class(proj="utm", zone=10, datum="NAD27") - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): x2, y2 = transform(p1, p2, s_1, s_2) if grids_available("us_noaa_emhpgn.tif"): assert_almost_equal((x2, y2), (1402286.33, 5076292.30), decimal=2) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/test_datum_shift.py new/pyproj-3.4.1/test/test_datum_shift.py --- old/pyproj-3.4.0/test/test_datum_shift.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/test_datum_shift.py 2022-12-13 02:49:26.000000000 +0100 @@ -36,7 +36,7 @@ def test_shift_wgs84_to_utm33(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): xutm33, yutm33, zutm33 = transform( WGS84_PROJ, UTM_33_PROJ, WGS84_lon, WGS84_lat, WGS84_z ) @@ -44,7 +44,7 @@ def test_shift_utm33_to_wgs84(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): back_lon, back_lat, back_z = transform( UTM_33_PROJ, WGS84_PROJ, UTM_x, UTM_y, UTM_z ) @@ -52,13 +52,13 @@ def test_shift_wgs84_to_gaussb_no_ellisoidal_height(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): xgb, ygb, zgb = transform(WGS84_PROJ, GAUSSSB_PROJ, WGS84_lon, WGS84_lat, 0) assert_almost_equal((xgb, ygb, zgb), (GB_x, 5055619.899, 0), decimal=2) def test_shift_gaussb_to_wgs84_no_ellisoidal_height(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): back_lon, back_lat, back_z = transform(GAUSSSB_PROJ, WGS84_PROJ, GB_x, GB_y, 0) assert_almost_equal( (back_lon, back_lat, back_z), (WGS84_lon, WGS84_lat, 0), decimal=3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/test_doctest_wrapper.py new/pyproj-3.4.1/test/test_doctest_wrapper.py --- old/pyproj-3.4.0/test/test_doctest_wrapper.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/test_doctest_wrapper.py 2022-12-13 02:49:26.000000000 +0100 @@ -26,8 +26,8 @@ failure_count = failure_count_proj + failure_count_crs + failure_count_geod expected_failure_count = 0 try: - import shapely # noqa: F401 pylint: disable=unused-import - except ImportError: + import shapely.geometry # noqa: F401 pylint: disable=unused-import + except (ImportError, OSError): # missing shapely expected_failure_count = 6 @@ -44,7 +44,7 @@ """ with proj_network_env(): pyproj.network.set_network_enabled(active=True) - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): failure_count, _ = doctest.testmod(pyproj.transformer, verbose=True) assert failure_count == 0, f"{failure_count} of the doctests failed" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/test_geod.py new/pyproj-3.4.1/test/test_geod.py --- old/pyproj-3.4.0/test/test_geod.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/test_geod.py 2022-12-13 02:49:26.000000000 +0100 @@ -27,7 +27,7 @@ from shapely.geometry.polygon import orient SHAPELY_LOADED = True -except ImportError: +except (ImportError, OSError): SHAPELY_LOADED = False @@ -117,7 +117,7 @@ npts1 = npts + initial_idx + terminus_idx - 1 del_s = dist / npts1 print( - f"Total distnace is {dist}, " + f"Total distance is {dist}, " f"Points count: {npts}, " f"{inc_exc[include_initial]} initial point, " f"{inc_exc[include_terminus]} terminus point. " diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/test_proj.py new/pyproj-3.4.1/test/test_proj.py --- old/pyproj-3.4.0/test/test_proj.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/test_proj.py 2022-12-13 02:49:26.000000000 +0100 @@ -130,13 +130,13 @@ def test_tranform_none_1st_parmeter(self): # test should raise Type error if projections are not of Proj classes # version 1.9.4 produced AttributeError, now should raise TypeError - with pytest.warns(DeprecationWarning), pytest.raises(CRSError): + with pytest.warns(FutureWarning), pytest.raises(CRSError): transform(None, self.p, -74, 39) def test_tranform_none_2nd_parmeter(self): # test should raise Type error if projections are not of Proj classes # version 1.9.4 has a Segmentation Fault, now should raise TypeError - with pytest.warns(DeprecationWarning), pytest.raises(CRSError): + with pytest.warns(FutureWarning), pytest.raises(CRSError): transform(self.p, None, -74, 39) @@ -155,7 +155,7 @@ p = Proj("+proj=stere +lon_0=-39 +lat_0=90 +lat_ts=71.0 +ellps=WGS84") self.assertTrue(isinstance(p, Proj)) # if not patched this line raises a "TypeError: p2 must be a Proj class" - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): lon, lat = transform(p, p.to_latlong(), 200000, 400000) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/test_sync.py new/pyproj-3.4.1/test/test_sync.py --- old/pyproj-3.4.0/test/test_sync.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/test_sync.py 2022-12-13 02:49:26.000000000 +0100 @@ -82,7 +82,7 @@ source_ids = set() for grid in grids: source_ids.add(grid["properties"]["source_id"]) - assert sorted(source_ids) == ["no_kv", "nz_linz"] + assert sorted(source_ids) == ["nz_linz"] @pytest.mark.network diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/test_transform.py new/pyproj-3.4.1/test/test_transform.py --- old/pyproj-3.4.0/test/test_transform.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/test_transform.py 2022-12-13 02:49:26.000000000 +0100 @@ -36,12 +36,12 @@ print("max/min x and y for awips218 grid") print(numpy.minimum.reduce(numpy.ravel(x1)), numpy.maximum.reduce(numpy.ravel(x1))) print(numpy.minimum.reduce(numpy.ravel(y1)), numpy.maximum.reduce(numpy.ravel(y1))) - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): x2, y2 = transform(awips218, awips221, x1, y1) print("max/min x and y for awips218 grid in awips221 coordinates") print(numpy.minimum.reduce(numpy.ravel(x2)), numpy.maximum.reduce(numpy.ravel(x2))) print(numpy.minimum.reduce(numpy.ravel(y2)), numpy.maximum.reduce(numpy.ravel(y2))) - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): x3, y3 = transform(awips221, awips218, x2, y2) print("error for reverse transformation back to awips218 coords") print("(should be close to zero)") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyproj-3.4.0/test/test_transformer.py new/pyproj-3.4.1/test/test_transformer.py --- old/pyproj-3.4.0/test/test_transformer.py 2022-09-10 03:18:59.000000000 +0200 +++ new/pyproj-3.4.1/test/test_transformer.py 2022-12-13 02:49:26.000000000 +0100 @@ -34,7 +34,7 @@ ) wgs84 = pyproj.Proj("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs") lat, lon = 51.04715, 3.23406 - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): xx, yy = pyproj.transform(wgs84, custom_proj, lon, lat) assert f"{xx:.3f} {yy:.3f}" == "212.623 4604.975" @@ -45,7 +45,7 @@ lat_lon_proj = pyproj.Proj(init="epsg:4326", preserve_units=False) alaska_aea_proj = pyproj.Proj(init="epsg:2964", preserve_units=False) test = (-179.72638, 49.752533) - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): xx, yy = pyproj.transform(lat_lon_proj, alaska_aea_proj, *test) if grids_available("us_noaa_alaska.tif"): assert f"{xx:.3f} {yy:.3f}" == "-1824924.495 330822.800" @@ -59,13 +59,13 @@ with pytest.warns(FutureWarning): p1 = pyproj.Proj(init="epsg:4326") p2 = pyproj.Proj(init="epsg:3857") - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): xx, yy = pyproj.transform( p1, p2, (-180, -180, 180, 180, -180), (-90, 90, 90, -90, -90) ) assert np.all(np.isinf(xx)) assert np.all(np.isinf(yy)) - with pytest.warns(DeprecationWarning), pytest.raises(ProjError): + with pytest.warns(FutureWarning), pytest.raises(ProjError): pyproj.transform( p1, p2, (-180, -180, 180, 180, -180), (-90, 90, 90, -90, -90), errcheck=True ) @@ -80,7 +80,7 @@ E = 567623.931 N = 256422.787 h = 1341.467 - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): Long1, Lat1, H1 = pyproj.transform(Midelt, WGS84, E, N, h, radians=False) assert_almost_equal((Long1, Lat1, H1), (-4.6753456, 32.902199, 1341.467), decimal=5) @@ -114,7 +114,7 @@ def test_4d_transform_orginal_crs_obs1(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): assert_almost_equal( transform( 7789, 8401, x=3496737.2679, y=743254.4507, z=5264462.9620, tt=2019.0 @@ -142,7 +142,7 @@ def test_2d_with_time_transform_original_crs_obs2(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): assert_almost_equal( transform(4896, 7930, x=3496737.2679, y=743254.4507, tt=2019.0), (3496737.4105305015, 743254.1014318303, 2019.0), @@ -174,7 +174,7 @@ def test_4d_itransform_orginal_crs_obs1(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): assert_almost_equal( list( itransform( @@ -186,7 +186,7 @@ def test_2d_with_time_itransform_original_crs_obs2(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): assert_almost_equal( list( itransform( @@ -199,7 +199,7 @@ def test_itransform_time_3rd_invalid(): - with pytest.warns(DeprecationWarning), pytest.raises( + with pytest.warns(FutureWarning), pytest.raises( ValueError, match="'time_3rd' is only valid for 3 coordinates." ): list( @@ -210,7 +210,7 @@ time_3rd=True, ) ) - with pytest.warns(DeprecationWarning), pytest.raises( + with pytest.warns(FutureWarning), pytest.raises( ValueError, match="'time_3rd' is only valid for 3 coordinates." ): list(itransform(7789, 8401, [(3496737.2679, 743254.4507)], time_3rd=True)) @@ -220,7 +220,7 @@ with pytest.warns(FutureWarning): pj = Proj(init="epsg:4555") pjx, pjy = pj(116.366, 39.867) - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): transform(pj, Proj(4326), pjx, pjy, radians=True, errcheck=True) @@ -228,7 +228,7 @@ with pytest.warns(FutureWarning): pj = Proj(init="epsg:4555") pjx, pjy = pj(116.366, 39.867) - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): list(itransform(pj, Proj(4326), [(pjx, pjy)], radians=True, errcheck=True)) @@ -251,7 +251,7 @@ with pytest.warns(FutureWarning): WGS84 = pyproj.Proj("+init=EPSG:4326") ECEF = pyproj.Proj(proj="geocent", ellps="WGS84", datum="WGS84") - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): assert_almost_equal( pyproj.transform( ECEF, WGS84, -2704026.010, -4253051.810, 3895878.820, radians=True @@ -276,7 +276,7 @@ with pytest.warns(FutureWarning): WGS84 = pyproj.Proj("+init=EPSG:4326") ECEF = pyproj.Proj(proj="geocent", ellps="WGS84", datum="WGS84") - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): assert_almost_equal( list( pyproj.itransform( @@ -338,7 +338,7 @@ def test_always_xy__transform(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): assert_almost_equal( transform(2193, 4326, 1625350, 5504853, always_xy=True), (173.29964730317386, -40.60674802693758), @@ -346,7 +346,7 @@ def test_always_xy__itransform(): - with pytest.warns(DeprecationWarning): + with pytest.warns(FutureWarning): assert_almost_equal( list(itransform(2193, 4326, [(1625350, 5504853)], always_xy=True)), [(173.29964730317386, -40.60674802693758)], @@ -654,7 +654,7 @@ assert "ntv2_0" not in trans_group.transformers[0].definition assert "ntv2_0" in trans_group.unavailable_operations[0].to_proj4() else: - # assuming all grids avaiable or PROJ_NETWORK=ON + # assuming all grids available or PROJ_NETWORK=ON trans_group = pyproj.transformer.TransformerGroup( lat_lon_proj.crs, alaska_aea_proj.crs ) @@ -695,12 +695,19 @@ @pytest.mark.grid def test_transformer_group__get_transform_crs(): tg = TransformerGroup("epsg:4258", "epsg:7415") - if not grids_available("nl_nsgi_rdtrans2018.tif"): - assert len(tg.transformers) == 1 - elif PROJ_GTE_91: + if grids_available( + "nl_nsgi_nlgeo2018.tif", "nl_nsgi_rdtrans2018.tif", check_all=True + ): + if PROJ_GTE_91: + assert len(tg.transformers) == 2 + else: + assert len(tg.transformers) == 6 + elif not PROJ_GTE_91 and grids_available("nl_nsgi_rdtrans2018.tif"): assert len(tg.transformers) == 2 + elif not PROJ_GTE_91 and grids_available("nl_nsgi_nlgeo2018.tif"): + assert len(tg.transformers) == 4 else: - assert len(tg.transformers) == 6 + assert len(tg.transformers) == 1 def test_transformer__area_of_interest():