Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pyerfa for openSUSE:Factory 
checked in at 2022-12-23 10:21:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyerfa (Old)
 and      /work/SRC/openSUSE:Factory/.python-pyerfa.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pyerfa"

Fri Dec 23 10:21:20 2022 rev:9 rq:1044287 version:2.0.0.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyerfa/python-pyerfa.changes      
2021-05-20 19:25:19.157878770 +0200
+++ /work/SRC/openSUSE:Factory/.python-pyerfa.new.1563/python-pyerfa.changes    
2022-12-23 10:21:22.363436152 +0100
@@ -1,0 +2,8 @@
+Thu Dec 22 14:40:49 UTC 2022 - Ben Greiner <c...@bnavigator.de>
+
+- Update to 2.0.0.1
+  * The underlying universal functions in erfa.ufunc now work with
+    an out argument also if the required output is a structured
+    array. [gh-76]
+
+-------------------------------------------------------------------

Old:
----
  pyerfa-2.0.0.tar.gz

New:
----
  pyerfa-2.0.0.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pyerfa.spec ++++++
--- /var/tmp/diff_new_pack.D1esML/_old  2022-12-23 10:21:22.871439055 +0100
+++ /var/tmp/diff_new_pack.D1esML/_new  2022-12-23 10:21:22.875439078 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-pyerfa
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -22,31 +22,31 @@
 %else
 %bcond_without systemlibs
 %endif
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+
 %define erfaversion 2.0.0
 %define skip_python2 1
-%define skip_python36 1
 Name:           python-pyerfa
-Version:        2.0.0
+Version:        2.0.0.1
 Release:        0
 Summary:        Python bindings for ERFA
 License:        BSD-3-Clause
 URL:            https://github.com/liberfa/pyerfa
 Source:         
https://files.pythonhosted.org/packages/source/p/pyerfa/pyerfa-%{version}.tar.gz
-BuildRequires:  %{python_module Jinja2}
 BuildRequires:  %{python_module devel}
-BuildRequires:  %{python_module numpy-devel >= 1.16}
+BuildRequires:  %{python_module numpy-devel >= 1.17}
+BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module pytest-doctestplus >= 0.7}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module setuptools_scm}
 BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes
 BuildRequires:  pkgconfig
 BuildRequires:  python-rpm-macros
 %if %{with systemlibs}
 BuildRequires:  pkgconfig(erfa) >= %{erfaversion}
 %endif
-Requires:       python-numpy >= 1.16
+Requires:       python-numpy >= 1.17
 %python_subpackages
 
 %description
@@ -64,18 +64,20 @@
 %if %{with systemlibs}
 rm -rf liberfa/
 %endif
+# numpy 1.24 has some new xpass ufunc tests -- 
https://github.com/liberfa/pyerfa/issues/99
+sed -i '/xfail_strict = true/d' setup.cfg
 
 %build
 %if %{with systemlibs}
 export PYERFA_USE_SYSTEM_LIBERFA=1
 %endif
-%python_build
+%pyproject_wheel
 
 %install
 %if %{with systemlibs}
 export PYERFA_USE_SYSTEM_LIBERFA=1
 %endif
-%python_install
+%pyproject_install
 %python_expand %fdupes %{buildroot}%{$python_sitearch}
 
 %check
@@ -86,8 +88,12 @@
 %pytest_arch --pyargs erfa %{?skip_embedded_test}
 
 %files %{python_files}
-%license LICENSE.rst licenses/ERFA.rst
+%doc README.rst
+%license LICENSE.rst
+%if !%{with systemlibs}
+%license licenses/ERFA.rst
+%endif
 %{python_sitearch}/erfa
-%{python_sitearch}/pyerfa-%{version}-py*.egg-info
+%{python_sitearch}/pyerfa-%{version}.dist-info
 
 %changelog

++++++ pyerfa-2.0.0.tar.gz -> pyerfa-2.0.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyerfa-2.0.0/CHANGES.rst 
new/pyerfa-2.0.0.1/CHANGES.rst
--- old/pyerfa-2.0.0/CHANGES.rst        2021-05-17 17:26:51.000000000 +0200
+++ new/pyerfa-2.0.0.1/CHANGES.rst      2021-11-02 20:17:42.000000000 +0100
@@ -1,4 +1,10 @@
-2.0.0 (17/05/2021)
+2.0.0.1 (2021-11-02)
+====================
+
+- The underlying universal functions in ``erfa.ufunc`` now work with an ``out``
+  argument also if the required output is a structured array. [gh-76]
+
+2.0.0 (2021-05-17)
 ==================
 
 - Bundled liberfa version update to v2.0.0. This includes new functionality,
@@ -12,14 +18,14 @@
   specific output file names has been removed, as it was not used.
   (Note: these changes have no effect on use of PyERFA.) [gh-71]
 
-1.7.3 (25/04/2021)
+1.7.3 (2021-04-25)
 ==================
 
 - Bundled liberfa version update to v1.7.3.
 - Fixed a bug that caused the output of ``rx``, ``ry``, and ``rz`` to be
   boolean rather than float for some compilers/OS. [gh-72]
 
-1.7.2 (25/01/2021)
+1.7.2 (2021-01-25)
 ==================
 
 - Bundled liberfa version update to v1.7.2.
@@ -27,13 +33,13 @@
   (backport https://github.com/astropy/astropy/pull/11224).
 
 
-1.7.1.1 (18/11/2020)
+1.7.1.1 (2020-11-18)
 ====================
 
 - Fix incorrect ``__version__`` value [gh-60].
 
 
-1.7.1 (16/11/2020)
+1.7.1 (2020-11-16)
 ==================
 
 - Bundled liberfa version update to v1.7.1.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyerfa-2.0.0/PKG-INFO new/pyerfa-2.0.0.1/PKG-INFO
--- old/pyerfa-2.0.0/PKG-INFO   2021-05-17 17:27:20.522589200 +0200
+++ new/pyerfa-2.0.0.1/PKG-INFO 2021-11-02 20:18:20.977307600 +0100
@@ -1,134 +1,10 @@
 Metadata-Version: 2.1
 Name: pyerfa
-Version: 2.0.0
+Version: 2.0.0.1
 Summary: Python bindings for ERFA
 Home-page: https://github.com/liberfa/pyerfa
 Author: The PyERFA Developers
 License: BSD 3-Clause License
-Description: ======
-        PyERFA
-        ======
-        
-        |PyPI Status| |Zenodo| |Travis Status| |Documentation Status|
-        
-        PyERFA is the Python_ wrapper for the ERFA_ library (Essential 
Routines for
-        Fundamental Astronomy), a C library containing key algorithms for 
astronomy,
-        which is based on the SOFA library published by the International 
Astronomical
-        Union (IAU).  All C routines are wrapped as Numpy_ `universal functions
-        <https://numpy.org/devdocs/reference/ufuncs.html>`_, so that they can 
be
-        called with scalar or array inputs.
-        
-        The project is a split of ``astropy._erfa`` module, developed in the
-        context of Astropy_ project, into a standalone package.  It contains
-        the ERFA_ C source code as a git submodule.  The wrapping is done
-        with help of the Jinja2_ template engine.
-        
-        If you use this package in your research, please cita it via DOI
-        `10.5281/zenodo.3940699 <https://doi.org/10.5281/zenodo.3940699>`_.
-        
-        .. Installation
-        
-        Installation instructions
-        -------------------------
-        
-        The package can be installed from the package directory using a 
simple::
-        
-          $ pip install .
-        
-        and similarly a wheel_ can be created with::
-        
-          $ pip wheel .
-        
-        .. note:: If you already have the C library ``liberfa`` on your
-          system, you can use that by setting environment variable
-          ``PYERFA_USE_SYSTEM_LIBERFA=1``.
-        
-        
-        .. _wheel: https://github.com/pypa/wheel
-        
-        
-        Testing
-        -------
-        
-        For testing, one can install the packages together with its testing
-        dependencies and then test it with::
-        
-          $ pip install .[test]
-          $ pytest
-        
-        Alternatively, one can use ``tox``, which will set up a separate 
testing
-        environment for you, with::
-        
-          $ tox -e test
-        
-        
-        Usage
-        -----
-        
-        The package can be imported as ``erfa`` which has all ERFA_ ufuncs 
wrapped with
-        python code that tallies errors and warnings.  Also exposed are the 
constants
-        defined by ERFA_ in `erfam.h
-        <https://github.com/liberfa/erfa/blob/master/src/erfam.h>`_, as well
-        as `numpy.dtype` corresponding to structures used by ERFA_.  Examples::
-        
-          >>> import erfa
-          >>> erfa.jd2cal(2460000., [0, 1, 2, 3])
-          (array([2023, 2023, 2023, 2023], dtype=int32),
-           array([2, 2, 2, 2], dtype=int32),
-           array([24, 25, 26, 27], dtype=int32),
-           array([0.5, 0.5, 0.5, 0.5]))
-          >>> erfa.plan94(2460000., [0, 1, 2, 3], 1)
-          array([([ 0.09083713, -0.39041392, -0.21797389], [0.02192341, 
0.00705449, 0.00149618]),
-                 ([ 0.11260694, -0.38275202, -0.21613731], [0.02160375, 
0.00826891, 0.00217806]),
-                 ([ 0.13401992, -0.37387798, -0.21361622], [0.0212094 , 
0.00947838, 0.00286503]),
-                 ([ 0.15500031, -0.36379788, -0.21040601], [0.02073822, 
0.01068061, 0.0035561 ])],
-                dtype={'names':['p','v'], 'formats':[('<f8', (3,)),('<f8', 
(3,))], 'offsets':[0,24], 'itemsize':48, 'aligned':True})
-          >>> erfa.dt_pv
-          dtype([('p', '<f8', (3,)), ('v', '<f8', (3,))], align=True)
-          >>> erfa.dt_eraLDBODY
-          dtype([('bm', '<f8'), ('dl', '<f8'), ('pv', [('p', '<f8', (3,)), 
('v', '<f8', (3,))])], align=True)
-          >>> erfa.DAYSEC
-          86400.0
-        
-        It is also possible to use the ufuncs directly, though then one has to
-        deal with the warning and error states explicitly.  For instance, 
compare::
-        
-          >>> erfa.jd2cal(-600000., [0, 1, 2, 3])
-          Traceback (most recent call last):
-          ...
-          ErfaError: ERFA function "jd2cal" yielded 4 of "unacceptable date 
(Note 1)"
-          >>> erfa.ufunc.jd2cal(-600000., [0, 1, 2, 3])
-          (array([-1, -1, -1, -1], dtype=int32),
-           ...,
-           array([-1, -1, -1, -1], dtype=int32))
-        
-        
-        License
-        -------
-        
-        PyERFA is licensed under a 3-clause BSD style license - see the
-        `LICENSE.rst <LICENSE.rst>`_ file.
-        
-        
-        .. References
-        .. _Python: https://www.python.org/
-        .. _ERFA: https://github.com/liberfa/erfa
-        .. _Numpy: https://numpy.org/
-        .. _Astropy: https://www.astropy.org
-        .. _Jinja2: https://palletsprojects.com/p/jinja/
-        .. |PyPI Status| image:: https://img.shields.io/pypi/v/pyerfa.svg
-            :target: https://pypi.python.org/pypi/pyerfa
-            :alt: PyPI Status
-        .. |Zenodo| image:: https://zenodo.org/badge/261332899.svg
-           :target: https://zenodo.org/badge/latestdoi/261332899
-           :alt: DOI 10.5281/zenodo.3940699
-        .. |Travis Status| image:: 
https://img.shields.io/travis/liberfa/pyerfa/master?logo=travis%20ci&logoColor=white&label=Travis%20CI
-            :target: https://travis-ci.org/liberfa/pyerfa
-            :alt: Travis CI Status
-        .. |Documentation Status| image:: 
https://img.shields.io/readthedocs/pyerfa/latest.svg?logo=read%20the%20docs&logoColor=white&label=Docs&version=stable
-            :target: http://pyerfa.readthedocs.org/en/stable/?badge=stable
-            :alt: Documentation Status
-        
 Keywords: astronomy,astrophysics,cosmology,space,science,coordinate
 Platform: UNKNOWN
 Classifier: Intended Audience :: Science/Research
@@ -142,3 +18,130 @@
 Requires-Python: >=3.7
 Provides-Extra: test
 Provides-Extra: docs
+License-File: LICENSE.rst
+
+======
+PyERFA
+======
+
+|PyPI Status| |Zenodo| |Travis Status| |Documentation Status|
+
+PyERFA is the Python_ wrapper for the ERFA_ library (Essential Routines for
+Fundamental Astronomy), a C library containing key algorithms for astronomy,
+which is based on the SOFA library published by the International Astronomical
+Union (IAU).  All C routines are wrapped as Numpy_ `universal functions
+<https://numpy.org/devdocs/reference/ufuncs.html>`_, so that they can be
+called with scalar or array inputs.
+
+The project is a split of ``astropy._erfa`` module, developed in the
+context of Astropy_ project, into a standalone package.  It contains
+the ERFA_ C source code as a git submodule.  The wrapping is done
+with help of the Jinja2_ template engine.
+
+If you use this package in your research, please cita it via DOI
+`10.5281/zenodo.3940699 <https://doi.org/10.5281/zenodo.3940699>`_.
+
+.. Installation
+
+Installation instructions
+-------------------------
+
+The package can be installed from the package directory using a simple::
+
+  $ pip install .
+
+and similarly a wheel_ can be created with::
+
+  $ pip wheel .
+
+.. note:: If you already have the C library ``liberfa`` on your
+  system, you can use that by setting environment variable
+  ``PYERFA_USE_SYSTEM_LIBERFA=1``.
+
+
+.. _wheel: https://github.com/pypa/wheel
+
+
+Testing
+-------
+
+For testing, one can install the packages together with its testing
+dependencies and then test it with::
+
+  $ pip install .[test]
+  $ pytest
+
+Alternatively, one can use ``tox``, which will set up a separate testing
+environment for you, with::
+
+  $ tox -e test
+
+
+Usage
+-----
+
+The package can be imported as ``erfa`` which has all ERFA_ ufuncs wrapped with
+python code that tallies errors and warnings.  Also exposed are the constants
+defined by ERFA_ in `erfam.h
+<https://github.com/liberfa/erfa/blob/master/src/erfam.h>`_, as well
+as `numpy.dtype` corresponding to structures used by ERFA_.  Examples::
+
+  >>> import erfa
+  >>> erfa.jd2cal(2460000., [0, 1, 2, 3])
+  (array([2023, 2023, 2023, 2023], dtype=int32),
+   array([2, 2, 2, 2], dtype=int32),
+   array([24, 25, 26, 27], dtype=int32),
+   array([0.5, 0.5, 0.5, 0.5]))
+  >>> erfa.plan94(2460000., [0, 1, 2, 3], 1)
+  array([([ 0.09083713, -0.39041392, -0.21797389], [0.02192341, 0.00705449, 
0.00149618]),
+         ([ 0.11260694, -0.38275202, -0.21613731], [0.02160375, 0.00826891, 
0.00217806]),
+         ([ 0.13401992, -0.37387798, -0.21361622], [0.0212094 , 0.00947838, 
0.00286503]),
+         ([ 0.15500031, -0.36379788, -0.21040601], [0.02073822, 0.01068061, 
0.0035561 ])],
+        dtype={'names':['p','v'], 'formats':[('<f8', (3,)),('<f8', (3,))], 
'offsets':[0,24], 'itemsize':48, 'aligned':True})
+  >>> erfa.dt_pv
+  dtype([('p', '<f8', (3,)), ('v', '<f8', (3,))], align=True)
+  >>> erfa.dt_eraLDBODY
+  dtype([('bm', '<f8'), ('dl', '<f8'), ('pv', [('p', '<f8', (3,)), ('v', 
'<f8', (3,))])], align=True)
+  >>> erfa.DAYSEC
+  86400.0
+
+It is also possible to use the ufuncs directly, though then one has to
+deal with the warning and error states explicitly.  For instance, compare::
+
+  >>> erfa.jd2cal(-600000., [0, 1, 2, 3])
+  Traceback (most recent call last):
+  ...
+  ErfaError: ERFA function "jd2cal" yielded 4 of "unacceptable date (Note 1)"
+  >>> erfa.ufunc.jd2cal(-600000., [0, 1, 2, 3])
+  (array([-1, -1, -1, -1], dtype=int32),
+   ...,
+   array([-1, -1, -1, -1], dtype=int32))
+
+
+License
+-------
+
+PyERFA is licensed under a 3-clause BSD style license - see the
+`LICENSE.rst <LICENSE.rst>`_ file.
+
+
+.. References
+.. _Python: https://www.python.org/
+.. _ERFA: https://github.com/liberfa/erfa
+.. _Numpy: https://numpy.org/
+.. _Astropy: https://www.astropy.org
+.. _Jinja2: https://palletsprojects.com/p/jinja/
+.. |PyPI Status| image:: https://img.shields.io/pypi/v/pyerfa.svg
+    :target: https://pypi.python.org/pypi/pyerfa
+    :alt: PyPI Status
+.. |Zenodo| image:: https://zenodo.org/badge/261332899.svg
+   :target: https://zenodo.org/badge/latestdoi/261332899
+   :alt: DOI 10.5281/zenodo.3940699
+.. |Travis Status| image:: 
https://img.shields.io/travis/liberfa/pyerfa/master?logo=travis%20ci&logoColor=white&label=Travis%20CI
+    :target: https://travis-ci.org/liberfa/pyerfa
+    :alt: Travis CI Status
+.. |Documentation Status| image:: 
https://img.shields.io/readthedocs/pyerfa/latest.svg?logo=read%20the%20docs&logoColor=white&label=Docs&version=stable
+    :target: http://pyerfa.readthedocs.org/en/stable/?badge=stable
+    :alt: Documentation Status
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyerfa-2.0.0/RELEASING.rst 
new/pyerfa-2.0.0.1/RELEASING.rst
--- old/pyerfa-2.0.0/RELEASING.rst      2021-05-17 17:26:51.000000000 +0200
+++ new/pyerfa-2.0.0.1/RELEASING.rst    2021-11-02 20:17:42.000000000 +0100
@@ -62,3 +62,9 @@
 
 See the `OpenAstronomy Azure Pipelines Templates Documentation 
<https://openastronomy-azure-pipelines.readthedocs.io/en/latest/publish.html>`_
 for more details about the Azure Pipelines set-up.
+
+Finally, for completeness, update the ``Releases`` section on the main
+github page.  Click on the new tag you just made, then ``edit tag``,
+then insert ``vx.y.z`` for the version, and in the description write
+``PyERFA v`` and then paste the relevant section of ``CHANGES.rst`` to
+it.  Preview to ensure this works, and then publish the release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyerfa-2.0.0/azure-pipelines.yml 
new/pyerfa-2.0.0.1/azure-pipelines.yml
--- old/pyerfa-2.0.0/azure-pipelines.yml        2021-05-17 17:26:51.000000000 
+0200
+++ new/pyerfa-2.0.0.1/azure-pipelines.yml      2021-11-02 20:17:42.000000000 
+0100
@@ -1,5 +1,6 @@
 variables:
-  CIBW_BUILD: cp36-* cp37-* cp38-* cp39-*
+  CIBW_BUILD: cp37-* cp38-* cp39-* cp310-*
+  CIBW_ARCHS_LINUX: "auto, aarch64"
 
 resources:
   repositories:
@@ -31,6 +32,15 @@
     test_command: pytest --pyargs erfa
     targets:
     - sdist
-    - wheels_linux
+    - wheels_cp*-manylinux_i686
+    - wheels_cp*-manylinux_x86_64
+    - wheels_cp37-musllinux_x86_64
+    - wheels_cp38-musllinux_x86_64
+    - wheels_cp39-musllinux_x86_64
+    - wheels_cp310-musllinux_x86_64
+    - wheels_cp37-manylinux_aarch64
+    - wheels_cp38-manylinux_aarch64
+    - wheels_cp39-manylinux_aarch64
+    - wheels_cp310-manylinux_aarch64
     - wheels_macos
     - wheels_windows
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyerfa-2.0.0/erfa/_version.py 
new/pyerfa-2.0.0.1/erfa/_version.py
--- old/pyerfa-2.0.0/erfa/_version.py   2021-05-17 17:27:20.000000000 +0200
+++ new/pyerfa-2.0.0.1/erfa/_version.py 2021-11-02 20:18:20.000000000 +0100
@@ -1,5 +1,5 @@
 # coding: utf-8
 # file generated by setuptools_scm
 # don't change, don't track in version control
-version = '2.0.0'
-version_tuple = (2, 0, 0)
+version = '2.0.0.1'
+version_tuple = (2, 0, 0, 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyerfa-2.0.0/erfa/tests/test_erfa.py 
new/pyerfa-2.0.0.1/erfa/tests/test_erfa.py
--- old/pyerfa-2.0.0/erfa/tests/test_erfa.py    2021-05-17 17:26:51.000000000 
+0200
+++ new/pyerfa-2.0.0.1/erfa/tests/test_erfa.py  2021-11-02 20:17:42.000000000 
+0100
@@ -286,6 +286,24 @@
     np.testing.assert_allclose(astrom3['em'], 1.010428384373318379)
 
 
+def test_pv_out():
+    """Test that ufunc can also deal with 'out' argument."""
+    pv = erfa.ufunc.s2pv(np.pi/2.0, np.pi/4.0, 2.0, np.sqrt(2.0)/2.0, 0.0, 0.0)
+    pv2 = np.empty_like(pv)
+    out = erfa.ufunc.s2pv(np.pi/2.0, np.pi/4.0, 2.0, np.sqrt(2.0)/2.0, 0.0, 
0.0,
+                          out=pv2)
+    assert out is pv2
+    assert np.all(pv2 == pv)
+
+
+def test_zpv_out():
+    """Test that no-input routines work with 'out' argument."""
+    pv = np.zeros(10, erfa.dt_pv)
+    out = erfa.ufunc.zpv(out=pv)
+    assert out is pv
+    np.testing.assert_array_equal(pv, np.zeros(10, erfa.dt_pv))
+
+
 def test_struct_ldbody():
     """
     Check dt_eraLDBODY is correctly defined (regression test; gh-74)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyerfa-2.0.0/erfa/ufunc.c 
new/pyerfa-2.0.0.1/erfa/ufunc.c
--- old/pyerfa-2.0.0/erfa/ufunc.c       2021-05-17 17:27:06.000000000 +0200
+++ new/pyerfa-2.0.0.1/erfa/ufunc.c     2021-11-02 20:18:05.000000000 +0100
@@ -9537,21 +9537,32 @@
     }
     /*
      * All inputs were ok; now check casting back to the outputs.
-     * MHvK: Since no casting from structured to non-structured is
-     * possible, no changes needed here.
+     * For void, only allow casting to the same void.
      */
     for (i = nin; i < nop; ++i) {
         if (op[i] != NULL) {
-            PyArray_Descr *tmp = PyArray_DescrFromType(types[i]);
-            if (tmp == NULL) {
-                return -1;
+            if (types[i] == NPY_VOID && dtypes != NULL) {
+                PyArray_Descr *op_descr = PyArray_DESCR(op[i]);
+                /*
+                 * MHvK: for VOID, we only allow VOID->same VOID.
+                 */
+                if (op_descr->type_num != NPY_VOID
+                    || !PyArray_EquivTypes(op_descr, dtypes[i])) {
+                    return 0;
+                }
             }
-            if (!PyArray_CanCastTypeTo(tmp, PyArray_DESCR(op[i]),
+            else {
+                PyArray_Descr *tmp = PyArray_DescrFromType(types[i]);
+                if (tmp == NULL) {
+                    return -1;
+                }
+                if (!PyArray_CanCastTypeTo(tmp, PyArray_DESCR(op[i]),
                                        casting)) {
+                    Py_DECREF(tmp);
+                    return 0;
+                }
                 Py_DECREF(tmp);
-                return 0;
             }
-            Py_DECREF(tmp);
         }
     }
     return 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyerfa-2.0.0/erfa/ufunc.c.templ 
new/pyerfa-2.0.0.1/erfa/ufunc.c.templ
--- old/pyerfa-2.0.0/erfa/ufunc.c.templ 2021-05-17 17:26:51.000000000 +0200
+++ new/pyerfa-2.0.0.1/erfa/ufunc.c.templ       2021-11-02 20:17:42.000000000 
+0100
@@ -402,21 +402,32 @@
     }
     /*
      * All inputs were ok; now check casting back to the outputs.
-     * MHvK: Since no casting from structured to non-structured is
-     * possible, no changes needed here.
+     * For void, only allow casting to the same void.
      */
     for (i = nin; i < nop; ++i) {
         if (op[i] != NULL) {
-            PyArray_Descr *tmp = PyArray_DescrFromType(types[i]);
-            if (tmp == NULL) {
-                return -1;
+            if (types[i] == NPY_VOID && dtypes != NULL) {
+                PyArray_Descr *op_descr = PyArray_DESCR(op[i]);
+                /*
+                 * MHvK: for VOID, we only allow VOID->same VOID.
+                 */
+                if (op_descr->type_num != NPY_VOID
+                    || !PyArray_EquivTypes(op_descr, dtypes[i])) {
+                    return 0;
+                }
             }
-            if (!PyArray_CanCastTypeTo(tmp, PyArray_DESCR(op[i]),
+            else {
+                PyArray_Descr *tmp = PyArray_DescrFromType(types[i]);
+                if (tmp == NULL) {
+                    return -1;
+                }
+                if (!PyArray_CanCastTypeTo(tmp, PyArray_DESCR(op[i]),
                                        casting)) {
+                    Py_DECREF(tmp);
+                    return 0;
+                }
                 Py_DECREF(tmp);
-                return 0;
             }
-            Py_DECREF(tmp);
         }
     }
     return 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyerfa-2.0.0/pyerfa.egg-info/PKG-INFO 
new/pyerfa-2.0.0.1/pyerfa.egg-info/PKG-INFO
--- old/pyerfa-2.0.0/pyerfa.egg-info/PKG-INFO   2021-05-17 17:27:20.000000000 
+0200
+++ new/pyerfa-2.0.0.1/pyerfa.egg-info/PKG-INFO 2021-11-02 20:18:20.000000000 
+0100
@@ -1,134 +1,10 @@
 Metadata-Version: 2.1
 Name: pyerfa
-Version: 2.0.0
+Version: 2.0.0.1
 Summary: Python bindings for ERFA
 Home-page: https://github.com/liberfa/pyerfa
 Author: The PyERFA Developers
 License: BSD 3-Clause License
-Description: ======
-        PyERFA
-        ======
-        
-        |PyPI Status| |Zenodo| |Travis Status| |Documentation Status|
-        
-        PyERFA is the Python_ wrapper for the ERFA_ library (Essential 
Routines for
-        Fundamental Astronomy), a C library containing key algorithms for 
astronomy,
-        which is based on the SOFA library published by the International 
Astronomical
-        Union (IAU).  All C routines are wrapped as Numpy_ `universal functions
-        <https://numpy.org/devdocs/reference/ufuncs.html>`_, so that they can 
be
-        called with scalar or array inputs.
-        
-        The project is a split of ``astropy._erfa`` module, developed in the
-        context of Astropy_ project, into a standalone package.  It contains
-        the ERFA_ C source code as a git submodule.  The wrapping is done
-        with help of the Jinja2_ template engine.
-        
-        If you use this package in your research, please cita it via DOI
-        `10.5281/zenodo.3940699 <https://doi.org/10.5281/zenodo.3940699>`_.
-        
-        .. Installation
-        
-        Installation instructions
-        -------------------------
-        
-        The package can be installed from the package directory using a 
simple::
-        
-          $ pip install .
-        
-        and similarly a wheel_ can be created with::
-        
-          $ pip wheel .
-        
-        .. note:: If you already have the C library ``liberfa`` on your
-          system, you can use that by setting environment variable
-          ``PYERFA_USE_SYSTEM_LIBERFA=1``.
-        
-        
-        .. _wheel: https://github.com/pypa/wheel
-        
-        
-        Testing
-        -------
-        
-        For testing, one can install the packages together with its testing
-        dependencies and then test it with::
-        
-          $ pip install .[test]
-          $ pytest
-        
-        Alternatively, one can use ``tox``, which will set up a separate 
testing
-        environment for you, with::
-        
-          $ tox -e test
-        
-        
-        Usage
-        -----
-        
-        The package can be imported as ``erfa`` which has all ERFA_ ufuncs 
wrapped with
-        python code that tallies errors and warnings.  Also exposed are the 
constants
-        defined by ERFA_ in `erfam.h
-        <https://github.com/liberfa/erfa/blob/master/src/erfam.h>`_, as well
-        as `numpy.dtype` corresponding to structures used by ERFA_.  Examples::
-        
-          >>> import erfa
-          >>> erfa.jd2cal(2460000., [0, 1, 2, 3])
-          (array([2023, 2023, 2023, 2023], dtype=int32),
-           array([2, 2, 2, 2], dtype=int32),
-           array([24, 25, 26, 27], dtype=int32),
-           array([0.5, 0.5, 0.5, 0.5]))
-          >>> erfa.plan94(2460000., [0, 1, 2, 3], 1)
-          array([([ 0.09083713, -0.39041392, -0.21797389], [0.02192341, 
0.00705449, 0.00149618]),
-                 ([ 0.11260694, -0.38275202, -0.21613731], [0.02160375, 
0.00826891, 0.00217806]),
-                 ([ 0.13401992, -0.37387798, -0.21361622], [0.0212094 , 
0.00947838, 0.00286503]),
-                 ([ 0.15500031, -0.36379788, -0.21040601], [0.02073822, 
0.01068061, 0.0035561 ])],
-                dtype={'names':['p','v'], 'formats':[('<f8', (3,)),('<f8', 
(3,))], 'offsets':[0,24], 'itemsize':48, 'aligned':True})
-          >>> erfa.dt_pv
-          dtype([('p', '<f8', (3,)), ('v', '<f8', (3,))], align=True)
-          >>> erfa.dt_eraLDBODY
-          dtype([('bm', '<f8'), ('dl', '<f8'), ('pv', [('p', '<f8', (3,)), 
('v', '<f8', (3,))])], align=True)
-          >>> erfa.DAYSEC
-          86400.0
-        
-        It is also possible to use the ufuncs directly, though then one has to
-        deal with the warning and error states explicitly.  For instance, 
compare::
-        
-          >>> erfa.jd2cal(-600000., [0, 1, 2, 3])
-          Traceback (most recent call last):
-          ...
-          ErfaError: ERFA function "jd2cal" yielded 4 of "unacceptable date 
(Note 1)"
-          >>> erfa.ufunc.jd2cal(-600000., [0, 1, 2, 3])
-          (array([-1, -1, -1, -1], dtype=int32),
-           ...,
-           array([-1, -1, -1, -1], dtype=int32))
-        
-        
-        License
-        -------
-        
-        PyERFA is licensed under a 3-clause BSD style license - see the
-        `LICENSE.rst <LICENSE.rst>`_ file.
-        
-        
-        .. References
-        .. _Python: https://www.python.org/
-        .. _ERFA: https://github.com/liberfa/erfa
-        .. _Numpy: https://numpy.org/
-        .. _Astropy: https://www.astropy.org
-        .. _Jinja2: https://palletsprojects.com/p/jinja/
-        .. |PyPI Status| image:: https://img.shields.io/pypi/v/pyerfa.svg
-            :target: https://pypi.python.org/pypi/pyerfa
-            :alt: PyPI Status
-        .. |Zenodo| image:: https://zenodo.org/badge/261332899.svg
-           :target: https://zenodo.org/badge/latestdoi/261332899
-           :alt: DOI 10.5281/zenodo.3940699
-        .. |Travis Status| image:: 
https://img.shields.io/travis/liberfa/pyerfa/master?logo=travis%20ci&logoColor=white&label=Travis%20CI
-            :target: https://travis-ci.org/liberfa/pyerfa
-            :alt: Travis CI Status
-        .. |Documentation Status| image:: 
https://img.shields.io/readthedocs/pyerfa/latest.svg?logo=read%20the%20docs&logoColor=white&label=Docs&version=stable
-            :target: http://pyerfa.readthedocs.org/en/stable/?badge=stable
-            :alt: Documentation Status
-        
 Keywords: astronomy,astrophysics,cosmology,space,science,coordinate
 Platform: UNKNOWN
 Classifier: Intended Audience :: Science/Research
@@ -142,3 +18,130 @@
 Requires-Python: >=3.7
 Provides-Extra: test
 Provides-Extra: docs
+License-File: LICENSE.rst
+
+======
+PyERFA
+======
+
+|PyPI Status| |Zenodo| |Travis Status| |Documentation Status|
+
+PyERFA is the Python_ wrapper for the ERFA_ library (Essential Routines for
+Fundamental Astronomy), a C library containing key algorithms for astronomy,
+which is based on the SOFA library published by the International Astronomical
+Union (IAU).  All C routines are wrapped as Numpy_ `universal functions
+<https://numpy.org/devdocs/reference/ufuncs.html>`_, so that they can be
+called with scalar or array inputs.
+
+The project is a split of ``astropy._erfa`` module, developed in the
+context of Astropy_ project, into a standalone package.  It contains
+the ERFA_ C source code as a git submodule.  The wrapping is done
+with help of the Jinja2_ template engine.
+
+If you use this package in your research, please cita it via DOI
+`10.5281/zenodo.3940699 <https://doi.org/10.5281/zenodo.3940699>`_.
+
+.. Installation
+
+Installation instructions
+-------------------------
+
+The package can be installed from the package directory using a simple::
+
+  $ pip install .
+
+and similarly a wheel_ can be created with::
+
+  $ pip wheel .
+
+.. note:: If you already have the C library ``liberfa`` on your
+  system, you can use that by setting environment variable
+  ``PYERFA_USE_SYSTEM_LIBERFA=1``.
+
+
+.. _wheel: https://github.com/pypa/wheel
+
+
+Testing
+-------
+
+For testing, one can install the packages together with its testing
+dependencies and then test it with::
+
+  $ pip install .[test]
+  $ pytest
+
+Alternatively, one can use ``tox``, which will set up a separate testing
+environment for you, with::
+
+  $ tox -e test
+
+
+Usage
+-----
+
+The package can be imported as ``erfa`` which has all ERFA_ ufuncs wrapped with
+python code that tallies errors and warnings.  Also exposed are the constants
+defined by ERFA_ in `erfam.h
+<https://github.com/liberfa/erfa/blob/master/src/erfam.h>`_, as well
+as `numpy.dtype` corresponding to structures used by ERFA_.  Examples::
+
+  >>> import erfa
+  >>> erfa.jd2cal(2460000., [0, 1, 2, 3])
+  (array([2023, 2023, 2023, 2023], dtype=int32),
+   array([2, 2, 2, 2], dtype=int32),
+   array([24, 25, 26, 27], dtype=int32),
+   array([0.5, 0.5, 0.5, 0.5]))
+  >>> erfa.plan94(2460000., [0, 1, 2, 3], 1)
+  array([([ 0.09083713, -0.39041392, -0.21797389], [0.02192341, 0.00705449, 
0.00149618]),
+         ([ 0.11260694, -0.38275202, -0.21613731], [0.02160375, 0.00826891, 
0.00217806]),
+         ([ 0.13401992, -0.37387798, -0.21361622], [0.0212094 , 0.00947838, 
0.00286503]),
+         ([ 0.15500031, -0.36379788, -0.21040601], [0.02073822, 0.01068061, 
0.0035561 ])],
+        dtype={'names':['p','v'], 'formats':[('<f8', (3,)),('<f8', (3,))], 
'offsets':[0,24], 'itemsize':48, 'aligned':True})
+  >>> erfa.dt_pv
+  dtype([('p', '<f8', (3,)), ('v', '<f8', (3,))], align=True)
+  >>> erfa.dt_eraLDBODY
+  dtype([('bm', '<f8'), ('dl', '<f8'), ('pv', [('p', '<f8', (3,)), ('v', 
'<f8', (3,))])], align=True)
+  >>> erfa.DAYSEC
+  86400.0
+
+It is also possible to use the ufuncs directly, though then one has to
+deal with the warning and error states explicitly.  For instance, compare::
+
+  >>> erfa.jd2cal(-600000., [0, 1, 2, 3])
+  Traceback (most recent call last):
+  ...
+  ErfaError: ERFA function "jd2cal" yielded 4 of "unacceptable date (Note 1)"
+  >>> erfa.ufunc.jd2cal(-600000., [0, 1, 2, 3])
+  (array([-1, -1, -1, -1], dtype=int32),
+   ...,
+   array([-1, -1, -1, -1], dtype=int32))
+
+
+License
+-------
+
+PyERFA is licensed under a 3-clause BSD style license - see the
+`LICENSE.rst <LICENSE.rst>`_ file.
+
+
+.. References
+.. _Python: https://www.python.org/
+.. _ERFA: https://github.com/liberfa/erfa
+.. _Numpy: https://numpy.org/
+.. _Astropy: https://www.astropy.org
+.. _Jinja2: https://palletsprojects.com/p/jinja/
+.. |PyPI Status| image:: https://img.shields.io/pypi/v/pyerfa.svg
+    :target: https://pypi.python.org/pypi/pyerfa
+    :alt: PyPI Status
+.. |Zenodo| image:: https://zenodo.org/badge/261332899.svg
+   :target: https://zenodo.org/badge/latestdoi/261332899
+   :alt: DOI 10.5281/zenodo.3940699
+.. |Travis Status| image:: 
https://img.shields.io/travis/liberfa/pyerfa/master?logo=travis%20ci&logoColor=white&label=Travis%20CI
+    :target: https://travis-ci.org/liberfa/pyerfa
+    :alt: Travis CI Status
+.. |Documentation Status| image:: 
https://img.shields.io/readthedocs/pyerfa/latest.svg?logo=read%20the%20docs&logoColor=white&label=Docs&version=stable
+    :target: http://pyerfa.readthedocs.org/en/stable/?badge=stable
+    :alt: Documentation Status
+
+

Reply via email to