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():

Reply via email to