Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-healpy for openSUSE:Factory 
checked in at 2023-10-06 21:14:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-healpy (Old)
 and      /work/SRC/openSUSE:Factory/.python-healpy.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-healpy"

Fri Oct  6 21:14:01 2023 rev:8 rq:1115889 version:1.16.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-healpy/python-healpy.changes      
2023-09-06 18:58:44.752740651 +0200
+++ /work/SRC/openSUSE:Factory/.python-healpy.new.28202/python-healpy.changes   
2023-10-06 21:16:45.844885912 +0200
@@ -1,0 +2,7 @@
+Wed Oct  4 23:12:42 UTC 2023 - Atri Bhattacharya <[email protected]>
+
+- Update to version 1.16.6:
+  * Support for Python 3.12.
+- Split out -devel package containing C++ headers/sources.
+
+-------------------------------------------------------------------

Old:
----
  healpy-1.16.5.tar.gz

New:
----
  healpy-1.16.6.tar.gz

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

Other differences:
------------------
++++++ python-healpy.spec ++++++
--- /var/tmp/diff_new_pack.vSOUav/_old  2023-10-06 21:16:46.848922186 +0200
+++ /var/tmp/diff_new_pack.vSOUav/_new  2023-10-06 21:16:46.852922330 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-healpy
-Version:        1.16.5
+Version:        1.16.6
 Release:        0
 Summary:        Python library to handle pixelated data on the sphere based on 
HEALPix
 License:        GPL-2.0-only
@@ -70,8 +70,18 @@
 * transform maps to Spherical Harmonics space and back using multi-threaded 
C++ routines
 * compute Auto and Cross Power Spectra from maps and create map realizations 
from spectra
 
+%package devel
+Summary:        C++ header files and source codes for healpy
+Requires:       python-devel
+Requires:       python-numpy-devel
+Requires:       pkgconfig(healpix_cxx)
+
+%description devel
+This package provides the C++ header files and source codes for healpy.
+
 %prep
 %autosetup -p1 -n healpy-%{version}
+chmod -x healpy/data/planck_*cmap.dat
 
 %build
 export CFLAGS="%{optflags}"
@@ -99,4 +109,8 @@
 %python_alternative %{_bindir}/healpy_get_wmap_maps.sh
 %{python_sitearch}/healpy/
 %{python_sitearch}/healpy-%{version}*-info/
+%exclude %{python_sitearch}/healpy/src
+
+%files %{python_files devel}
+%{python_sitearch}/healpy/src/
 

++++++ healpy-1.16.5.tar.gz -> healpy-1.16.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/CHANGELOG.rst 
new/healpy-1.16.6/CHANGELOG.rst
--- old/healpy-1.16.5/CHANGELOG.rst     2023-08-16 23:30:20.000000000 +0200
+++ new/healpy-1.16.6/CHANGELOG.rst     2023-10-03 22:35:07.000000000 +0200
@@ -1,6 +1,14 @@
 Unreleased
 
-Release 1.16.4 16 August 2023
+Release 1.16.6 3 October 2023
+
+* Release to generate packages for Python 3.12 
https://github.com/healpy/healpy/issues/890
+
+Release 1.16.5 16 August 2023
+
+* Fixed more packaging issues https://github.com/healpy/healpy/issues/870
+
+Release 1.16.4 11 August 2023
 
 * Updated HEALPix C++ to fix compilation issue, no actual changes to the 
library https://github.com/healpy/healpy/pull/875
 * Fix support for latest Cython https://github.com/healpy/healpy/pull/862
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/INSTALL.rst 
new/healpy-1.16.6/INSTALL.rst
--- old/healpy-1.16.5/INSTALL.rst       2023-08-16 23:30:20.000000000 +0200
+++ new/healpy-1.16.6/INSTALL.rst       2023-10-03 22:35:07.000000000 +0200
@@ -35,7 +35,7 @@
 wishes to install ``healpy`` alongside Spyder and My_Package into newly created
 environment env_healpy, the command will be::
 
-    conda create --name env_healpy python=3.8 healpy spyder my_package
+    conda create --name env_healpy python=3.9 healpy spyder my_package
 
 Binary installation with Pip (recommended for most other Python users)
 ----------------------------------------------------------------------
@@ -89,7 +89,7 @@
 MacPorts users on macOS may install Healpy for the MacPorts-supplied Python
 interpreter by running::
 
-    sudo port install py38-healpy
+    sudo port install py39-healpy
 
 Compilation issues with Mac OS
 ------------------------------
@@ -105,7 +105,7 @@
 If you are using a Mac and have the `MacPorts <https://www.macports.org>`_
 package manager, it's even easer to install Healpy with::
 
-    sudo port install py36-healpy
+    sudo port install py39-healpy
 
 Installation with a package manager on Debian and Ubuntu
 --------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/PKG-INFO new/healpy-1.16.6/PKG-INFO
--- old/healpy-1.16.5/PKG-INFO  2023-08-16 23:30:56.092316200 +0200
+++ new/healpy-1.16.6/PKG-INFO  2023-10-03 22:35:47.016680000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: healpy
-Version: 1.16.5
+Version: 1.16.6
 Summary: Healpix tools package for Python
 Author: A. Zonca
 Author-email: "C. Rosset" <[email protected]>
@@ -12,16 +12,23 @@
 Classifier: License :: OSI Approved :: GNU General Public License v2 or later 
(GPLv2+)
 Classifier: Operating System :: POSIX
 Classifier: Programming Language :: C++
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Topic :: Scientific/Engineering :: Astronomy
 Classifier: Topic :: Scientific/Engineering :: Visualization
-Requires-Python: >=3.8
+Requires-Python: >=3.9
 Description-Content-Type: text/x-rst
-Provides-Extra: test
 License-File: COPYING
+Requires-Dist: matplotlib
+Requires-Dist: numpy>=1.19
+Requires-Dist: astropy
+Requires-Dist: scipy
+Provides-Extra: test
+Requires-Dist: pytest; extra == "test"
+Requires-Dist: pytest-cython; extra == "test"
+Requires-Dist: pytest-doctestplus; extra == "test"
+Requires-Dist: requests; extra == "test"
 
 ====================================
 Healpy, a python wrapper for healpix
@@ -83,9 +90,9 @@
 Requirements
 ------------
 
-* `Python <http://www.python.org>`_ 3.7, 3.8, 3.9, or 3.10
+* `Python <http://www.python.org>`_ 3.9, 3.10, or 3.11
 
-* `Numpy <http://numpy.scipy.org/>`_ (tested with version >=1.5.0)
+* `Numpy <http://numpy.scipy.org/>`_ (tested with version >=1.19)
 
 * `Matplotlib <http://matplotlib.sourceforge.net/>`_
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/README.rst new/healpy-1.16.6/README.rst
--- old/healpy-1.16.5/README.rst        2023-08-16 23:30:20.000000000 +0200
+++ new/healpy-1.16.6/README.rst        2023-10-03 22:35:07.000000000 +0200
@@ -58,9 +58,9 @@
 Requirements
 ------------
 
-* `Python <http://www.python.org>`_ 3.7, 3.8, 3.9, or 3.10
+* `Python <http://www.python.org>`_ 3.9, 3.10, or 3.11
 
-* `Numpy <http://numpy.scipy.org/>`_ (tested with version >=1.5.0)
+* `Numpy <http://numpy.scipy.org/>`_ (tested with version >=1.19)
 
 * `Matplotlib <http://matplotlib.sourceforge.net/>`_
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/healpy/src/_healpy_pixel_lib.cc 
new/healpy-1.16.6/healpy/src/_healpy_pixel_lib.cc
--- old/healpy-1.16.5/healpy/src/_healpy_pixel_lib.cc   2023-08-16 
23:30:20.000000000 +0200
+++ new/healpy-1.16.6/healpy/src/_healpy_pixel_lib.cc   2023-10-03 
22:35:07.000000000 +0200
@@ -458,43 +458,43 @@
 static void * blank_data[] = { (void *)NULL };
 
 static char ang2pix_signatures[] = {
-  PyArray_INT64, PyArray_DOUBLE, PyArray_DOUBLE, PyArray_INT64
+  NPY_INT64, NPY_DOUBLE, NPY_DOUBLE, NPY_INT64
 };
 static char pix2ang_signatures[] = {
-  PyArray_INT64, PyArray_INT64, PyArray_DOUBLE, PyArray_DOUBLE
+  NPY_INT64, NPY_INT64, NPY_DOUBLE, NPY_DOUBLE
 };
 static char xyf2pix_signatures[] = {
-  PyArray_INT64, PyArray_LONG, PyArray_LONG, PyArray_LONG, PyArray_INT64
+  NPY_INT64, NPY_LONG, NPY_LONG, NPY_LONG, NPY_INT64
 };
 static char pix2xyf_signatures[] = {
-  PyArray_INT64, PyArray_INT64, PyArray_LONG, PyArray_LONG, PyArray_LONG
+  NPY_INT64, NPY_INT64, NPY_LONG, NPY_LONG, NPY_LONG
 };
 static char pix2vec_signatures[] = {
-  PyArray_INT64, PyArray_INT64, PyArray_DOUBLE, PyArray_DOUBLE, PyArray_DOUBLE
+  NPY_INT64, NPY_INT64, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE
 };
 static char vec2pix_signatures[] = {
-  PyArray_INT64, PyArray_DOUBLE, PyArray_DOUBLE, PyArray_DOUBLE, PyArray_INT64
+  NPY_INT64, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_INT64
 };
 static char ring2nest_signatures[] = {
-  PyArray_INT64, PyArray_INT64, PyArray_INT64
+  NPY_INT64, NPY_INT64, NPY_INT64
 };
 static char get_interpol_signatures[] = {
-  PyArray_INT64, PyArray_DOUBLE, PyArray_DOUBLE,
-  PyArray_INT64, PyArray_INT64, PyArray_INT64, PyArray_INT64,
-  PyArray_DOUBLE, PyArray_DOUBLE, PyArray_DOUBLE, PyArray_DOUBLE
+  NPY_INT64, NPY_DOUBLE, NPY_DOUBLE,
+  NPY_INT64, NPY_INT64, NPY_INT64, NPY_INT64,
+  NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE
 };
 static char get_neighbors_ring_signatures[] = {
-  PyArray_INT64, PyArray_INT64, // input
-  PyArray_INT64, PyArray_INT64, PyArray_INT64, PyArray_INT64, // output
-  PyArray_INT64, PyArray_INT64, PyArray_INT64, PyArray_INT64 // output
+  NPY_INT64, NPY_INT64, // input
+  NPY_INT64, NPY_INT64, NPY_INT64, NPY_INT64, // output
+  NPY_INT64, NPY_INT64, NPY_INT64, NPY_INT64 // output
 };
 static char get_neighbors_nest_signatures[] = {
-  PyArray_INT64, PyArray_INT64, // input
-  PyArray_INT64, PyArray_INT64, PyArray_INT64, PyArray_INT64, // output
-  PyArray_INT64, PyArray_INT64, PyArray_INT64, PyArray_INT64 // output
+  NPY_INT64, NPY_INT64, // input
+  NPY_INT64, NPY_INT64, NPY_INT64, NPY_INT64, // output
+  NPY_INT64, NPY_INT64, NPY_INT64, NPY_INT64 // output
 };
 static char max_pixrad_signatures[] = {
-  PyArray_INT64, PyArray_DOUBLE
+  NPY_INT64, NPY_DOUBLE
 };
 
 #if PY_MAJOR_VERSION >= 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/healpy-1.16.5/healpy/src/_healpy_sph_transform_lib.cc 
new/healpy-1.16.6/healpy/src/_healpy_sph_transform_lib.cc
--- old/healpy-1.16.5/healpy/src/_healpy_sph_transform_lib.cc   2023-08-16 
23:30:20.000000000 +0200
+++ new/healpy-1.16.6/healpy/src/_healpy_sph_transform_lib.cc   2023-10-03 
22:35:07.000000000 +0200
@@ -196,34 +196,34 @@
     }
 
   /* Check array is contiguous */
-  healpyAssertValue(mapIin->flags&NPY_C_CONTIGUOUS,
+  healpyAssertValue(PyArray_FLAGS(mapIin)&NPY_ARRAY_C_CONTIGUOUS,
     "Array must be C contiguous for this operation.");
 
   if( polarisation )
-    healpyAssertValue(mapQin->flags&mapUin->flags&NPY_C_CONTIGUOUS,
+    
healpyAssertValue(PyArray_FLAGS(mapQin)&PyArray_FLAGS(mapUin)&NPY_ARRAY_C_CONTIGUOUS,
                       "Array must be C contiguous for this operation.");
 
   /* Check type of data : must be double ('d') */
-  healpyAssertType(mapIin->descr->type == 'd',
+  healpyAssertType(PyArray_DESCR(mapIin)->type == 'd',
     "Type must be Float64 for this function");
 
   if( polarisation )
     {
-    healpyAssertType(mapQin->descr->type == 'd',
+    healpyAssertType(PyArray_DESCR(mapQin)->type == 'd',
       "Type must be Float64 for this function");
-    healpyAssertType(mapUin->descr->type == 'd',
+    healpyAssertType(PyArray_DESCR(mapUin)->type == 'd',
       "Type must be Float64 for this function");
     }
 
   /* Check number of dimension : must be 1 */
-  healpyAssertType(mapIin->nd==1,"Array must be 1D.");
-  npix = mapIin->dimensions[0];
+  healpyAssertType(PyArray_NDIM(mapIin)==1,"Array must be 1D.");
+  npix = PyArray_DIM(mapIin,0);
 
   if( polarisation )
     {
-    healpyAssertType((mapQin->nd==1)&&(mapUin->nd==1),"Array must be 1D.");
-    healpyAssertType((mapQin->dimensions[0]==npix)&&
-                     (mapQin->dimensions[0]==npix),
+    
healpyAssertType((PyArray_NDIM(mapQin)==1)&&(PyArray_NDIM(mapUin)==1),"Array 
must be 1D.");
+    healpyAssertType((PyArray_DIM(mapQin,0)==npix)&&
+                     (PyArray_DIM(mapQin,0)==npix),
                       "All maps must have same dimension.");
     }
 
@@ -239,39 +239,39 @@
 
   Healpix_Map<double> mapI, mapQ, mapU;
   {
-  arr<double> arr_map((double*)mapIin->data, npix);
+  arr<double> arr_map((double*)PyArray_DATA(mapIin), npix);
   mapI.Set(arr_map, RING);
   }
 
   if(polarisation)
     {
-    arr<double> arr_map((double*)mapQin->data, npix);
+    arr<double> arr_map((double*)PyArray_DATA(mapQin), npix);
     mapQ.Set(arr_map, RING);
     }
 
   if( polarisation )
     {
-    arr<double> arr_map((double*)mapUin->data, npix);
+    arr<double> arr_map((double*)PyArray_DATA(mapUin), npix);
     mapU.Set(arr_map, RING);
     }
 
   npy_intp szalm = Alm<xcomplex<double> >::Num_Alms(lmax,mmax);
 
   PyArrayObject *almIout = (PyArrayObject*)PyArray_SimpleNew
-    (1, (npy_intp*)&szalm, PyArray_CDOUBLE);
+    (1, (npy_intp*)&szalm, NPY_CDOUBLE);
   if( !almIout ) return NULL;
 
   PyArrayObject *almGout=NULL, *almCout=NULL;
   if( polarisation )
     {
       almGout = (PyArrayObject*)PyArray_SimpleNew(1, (npy_intp*)&szalm,
-                                                  PyArray_CDOUBLE);
+                                                  NPY_CDOUBLE);
       if( !almGout ) {
         Py_DECREF(almIout);
         return NULL;
       }
       almCout = (PyArrayObject*)PyArray_SimpleNew(1, (npy_intp*)&szalm,
-                                                  PyArray_CDOUBLE);
+                                                  NPY_CDOUBLE);
       if( !almCout ) {
         Py_DECREF(almIout);
         Py_DECREF(almGout);
@@ -281,21 +281,21 @@
 
   Alm< xcomplex<double> > almIalm;
   {
-    arr< xcomplex<double> > alm_arr((xcomplex<double>*)almIout->data, szalm);
+    arr< xcomplex<double> > alm_arr((xcomplex<double>*)PyArray_DATA(almIout), 
szalm);
     almIalm.Set(alm_arr, lmax, mmax);
   }
 
   Alm< xcomplex<double> > almGalm;
   if( polarisation )
     {
-      arr< xcomplex<double> > alm_arr((xcomplex<double>*)almGout->data, szalm);
+      arr< xcomplex<double> > 
alm_arr((xcomplex<double>*)PyArray_DATA(almGout), szalm);
       almGalm.Set(alm_arr, lmax, mmax);
     }
 
   Alm< xcomplex<double> > almCalm;
   if( polarisation )
     {
-      arr< xcomplex<double> > alm_arr((xcomplex<double>*)almCout->data, szalm);
+      arr< xcomplex<double> > 
alm_arr((xcomplex<double>*)PyArray_DATA(almCout), szalm);
       almCalm.Set(alm_arr, lmax, mmax);
     }
 
@@ -333,7 +333,7 @@
           PyArrayObject *ctt=NULL;
 
           ctt = (PyArrayObject*)PyArray_SimpleNew(1, (npy_intp*)&szcl,
-                                                  PyArray_DOUBLE);
+                                                  NPY_DOUBLE);
           if( !ctt )
             return NULL;
 
@@ -349,16 +349,16 @@
           npy_intp szcl = (npy_intp)(powspec.Lmax()+1);
 
           PyArrayObject *ctt = (PyArrayObject*)PyArray_SimpleNew
-            (1, (npy_intp*)&szcl, PyArray_DOUBLE);
+            (1, (npy_intp*)&szcl, NPY_DOUBLE);
           if( !ctt ) return NULL;
           PyArrayObject *cee = (PyArrayObject*)PyArray_SimpleNew
-            (1, (npy_intp*)&szcl, PyArray_DOUBLE);
+            (1, (npy_intp*)&szcl, NPY_DOUBLE);
           if( !cee ) return NULL;
           PyArrayObject *cbb = (PyArrayObject*)PyArray_SimpleNew
-            (1, (npy_intp*)&szcl, PyArray_DOUBLE);
+            (1, (npy_intp*)&szcl, NPY_DOUBLE);
           if( !cbb ) return NULL;
           PyArrayObject *cte = (PyArrayObject*)PyArray_SimpleNew
-            (1, (npy_intp*)&szcl, PyArray_DOUBLE);
+            (1, (npy_intp*)&szcl, NPY_DOUBLE);
           if( !cte ) return NULL;
 
           for( int l=0; l<szcl; l++ )
@@ -433,36 +433,36 @@
     }
 
   /* Check array is contiguous */
-  healpyAssertValue(almIin->flags&NPY_C_CONTIGUOUS,
+  healpyAssertValue(PyArray_FLAGS(almIin)&NPY_ARRAY_C_CONTIGUOUS,
                       "Array must be C contiguous for this operation.");
   if( polarisation )
-    healpyAssertValue(almGin->flags&almCin->flags&NPY_C_CONTIGUOUS,
+    
healpyAssertValue(PyArray_FLAGS(almGin)&PyArray_FLAGS(almCin)&NPY_ARRAY_C_CONTIGUOUS,
                           "Array must be C contiguous for this operation.");
 
   /* Check type of data : must be double, real ('d') or complex ('D') */
-  healpyAssertType(almIin->descr->type == 'D',
+  healpyAssertType(PyArray_DESCR(almIin)->type == 'D',
                       "Type must be Complex for this function");
   if( polarisation )
     {
-      healpyAssertType(almGin->descr->type == 'D',
+      healpyAssertType(PyArray_DESCR(almGin)->type == 'D',
                           "Type must be Complex for this function");
-      healpyAssertType(almCin->descr->type == 'D',
+      healpyAssertType(PyArray_DESCR(almCin)->type == 'D',
                           "Type must be Complex for this function");
     }
 
   /* Check number of dimension : must be 1 */
-  healpyAssertType(almIin->nd==1,"The a_lm must be a 1D array.");
+  healpyAssertType(PyArray_NDIM(almIin)==1,"The a_lm must be a 1D array.");
   if( polarisation )
     {
-    healpyAssertType(almGin->nd==1,"The a_lm must be a 1D array.");
-    healpyAssertType(almCin->nd==1,"The a_lm must be a 1D array.");
+    healpyAssertType(PyArray_NDIM(almGin)==1,"The a_lm must be a 1D array.");
+    healpyAssertType(PyArray_NDIM(almCin)==1,"The a_lm must be a 1D array.");
     }
 
   /* Need to have lmax and mmax defined */
   if( lmax < 0 )
     {
       /* Check that the dimension is compatible with lmax=mmax */
-      long imax = almIin->dimensions[0] - 1;
+      long imax = PyArray_DIM(almIin,0) - 1;
       double ell = (-3.+sqrt(9.+8.*imax))/2.;
       healpyAssertType(ell==floor(ell),
         "Wrong alm size (or give lmax and mmax)");
@@ -474,29 +474,29 @@
 
   /* Check lmax and mmax are ok compared to alm.size */
   int szalm = Alm< xcomplex<double> >::Num_Alms(lmax,mmax);
-  healpyAssertValue(almIin->dimensions[0]==szalm,"Wrong alm size.");
+  healpyAssertValue(PyArray_DIM(almIin,0)==szalm,"Wrong alm size.");
   if( polarisation )
     {
-    healpyAssertValue(almGin->dimensions[0]==szalm,"Wrong alm size.");
-    healpyAssertValue(almCin->dimensions[0]==szalm,"Wrong alm size.");
+    healpyAssertValue(PyArray_DIM(almGin,0)==szalm,"Wrong alm size.");
+    healpyAssertValue(PyArray_DIM(almCin,0)==szalm,"Wrong alm size.");
     }
 
   /* Now we can build an Alm and give it to alm2map_iter */
   Alm< xcomplex<double> > almIalm;
   {
-    arr< xcomplex<double> > alm_arr((xcomplex<double>*)almIin->data, szalm);
+    arr< xcomplex<double> > alm_arr((xcomplex<double>*)PyArray_DATA(almIin), 
szalm);
     almIalm.Set(alm_arr, lmax, mmax);
   }
   Alm< xcomplex<double> > almGalm;
   if( polarisation )
     {
-      arr< xcomplex<double> > alm_arr((xcomplex<double>*)almGin->data, szalm);
+      arr< xcomplex<double> > alm_arr((xcomplex<double>*)PyArray_DATA(almGin), 
szalm);
       almGalm.Set(alm_arr, lmax, mmax);
     }
   Alm< xcomplex<double> > almCalm;
   if( polarisation )
     {
-      arr< xcomplex<double> > alm_arr((xcomplex<double>*)almCin->data, szalm);
+      arr< xcomplex<double> > alm_arr((xcomplex<double>*)PyArray_DATA(almCin), 
szalm);
       almCalm.Set(alm_arr, lmax, mmax);
     }
 
@@ -505,7 +505,7 @@
   npy_intp npix = nside2npix(nside);
   PyArrayObject *mapIout = NULL;
   mapIout = (PyArrayObject*)PyArray_SimpleNew(1, (npy_intp*)&npix,
-                                              PyArray_DOUBLE);
+                                              NPY_DOUBLE);
   if( !mapIout )
     return NULL;
 
@@ -513,7 +513,7 @@
   if( polarisation )
     {
       mapQout = (PyArrayObject*)PyArray_SimpleNew(1, (npy_intp*)&npix,
-                                                  PyArray_DOUBLE);
+                                                  NPY_DOUBLE);
       if( !mapQout )
         return NULL;
     }
@@ -522,27 +522,27 @@
   if( polarisation )
     {
       mapUout = (PyArrayObject*)PyArray_SimpleNew(1, (npy_intp*)&npix,
-                                                  PyArray_DOUBLE);
+                                                  NPY_DOUBLE);
       if( !mapUout )
         return NULL;
     }
 
   Healpix_Map<double> mapI;
   {
-    arr<double> arr_map((double*)mapIout->data, npix);
+    arr<double> arr_map((double*)PyArray_DATA(mapIout), npix);
     mapI.Set(arr_map, RING);
   }
 
   Healpix_Map<double> mapQ;
   if( polarisation )
     {
-      arr<double> arr_map((double*)mapQout->data, npix);
+      arr<double> arr_map((double*)PyArray_DATA(mapQout), npix);
       mapQ.Set(arr_map, RING);
     }
   Healpix_Map<double> mapU;
   if( polarisation )
     {
-      arr<double> arr_map((double*)mapUout->data, npix);
+      arr<double> arr_map((double*)PyArray_DATA(mapUout), npix);
       mapU.Set(arr_map, RING);
     }
 
@@ -599,20 +599,20 @@
   }
 
   /* Check array is contiguous */
-  healpyAssertValue(almIin->flags & NPY_C_CONTIGUOUS,
+  healpyAssertValue(PyArray_FLAGS(almIin) & NPY_ARRAY_C_CONTIGUOUS,
     "Array must be C contiguous for this operation.");
 
   /* Check type of data : must be double, real ('d') or complex ('D') */
-  healpyAssertType(almIin->descr->type == 'D',
+  healpyAssertType(PyArray_DESCR(almIin)->type == 'D',
     "Type must be Complex for this function");
 
   /* Check number of dimension : must be 1 */
-  healpyAssertValue(almIin->nd==1, "The map must be a 1D array");
+  healpyAssertValue(PyArray_NDIM(almIin), "The map must be a 1D array");
 
   /* Need to have lmax and mmax defined */
   if( lmax < 0 ) {
       /* Check that the dimension is compatible with lmax=mmax */
-      long imax = almIin->dimensions[0] - 1;
+      long imax = PyArray_DIM(almIin,0) - 1;
       double ell = (-3.+sqrt(9.+8.*imax))/2.;
       healpyAssertValue(ell == floor(ell),
         "Wrong alm size (or give lmax and mmax).");
@@ -625,12 +625,12 @@
 
   /* Check lmax and mmax are ok compared to alm.size */
   int szalm = Alm< xcomplex<double> >::Num_Alms(lmax,mmax);
-  healpyAssertValue(almIin->dimensions[0] == szalm,"Wrong alm size.");
+  healpyAssertValue(PyArray_DIM(almIin,0) == szalm,"Wrong alm size.");
 
   /* Now we can build an Alm and give it to alm2map_iter */
   Alm< xcomplex<double> > almIalm;
   {
-    arr< xcomplex<double> > alm_arr((xcomplex<double>*)almIin->data, szalm);
+    arr< xcomplex<double> > alm_arr((xcomplex<double>*)PyArray_DATA(almIin), 
szalm);
     almIalm.Set(alm_arr, lmax, mmax);
   }
 
@@ -640,34 +640,34 @@
 
   PyArrayObject *mapIout = NULL;
   mapIout = (PyArrayObject*)PyArray_SimpleNew(1, (npy_intp*)&npix,
-                PyArray_DOUBLE);
+                NPY_DOUBLE);
   if( !mapIout )
     return NULL;
   Healpix_Map<double> mapI;
   {
-    arr<double> arr_map((double*)mapIout->data, npix);
+    arr<double> arr_map((double*)PyArray_DATA(mapIout), npix);
     mapI.Set(arr_map, RING);
   }
 
   PyArrayObject *mapDtheta = NULL;
   mapDtheta = (PyArrayObject*)PyArray_SimpleNew(1, (npy_intp*)&npix,
-                PyArray_DOUBLE);
+                NPY_DOUBLE);
   if( !mapDtheta )
     return NULL;
   Healpix_Map<double> mapDt;
   {
-    arr<double> arr_map((double*)mapDtheta->data, npix);
+    arr<double> arr_map((double*)PyArray_DATA(mapDtheta), npix);
     mapDt.Set(arr_map, RING);
   }
 
   PyArrayObject *mapDphi = NULL;
   mapDphi = (PyArrayObject*)PyArray_SimpleNew(1, (npy_intp*)&npix,
-                PyArray_DOUBLE);
+                NPY_DOUBLE);
   if( !mapDphi )
     return NULL;
   Healpix_Map<double> mapDp;
   {
-    arr<double> arr_map((double*)mapDphi->data, npix);
+    arr<double> arr_map((double*)PyArray_DATA(mapDphi), npix);
     mapDp.Set(arr_map, RING);
   }
 
@@ -816,9 +816,9 @@
     {
       if( cls[i] == NULL )
         continue;
-      if( (cls[i]->nd != 1)
-          //|| ((cls[i]->descr->type != 'd') && (cls[i]->descr->type != 'f')) )
-          || (cls[i]->descr->type != 'd') )
+      if( (PyArray_NDIM(cls[i]) != 1)
+          //|| ((PyArray_DESCR(cls[i])->type != 'd') && 
(PyArray_DESCR(cls[i])->type != 'f')) )
+          || (PyArray_DESCR(cls[i])->type != 'd') )
         {
           PyErr_SetString(PyExc_TypeError,
                       "Type of cls must be float64 and arrays must be 1D.");
@@ -828,7 +828,7 @@
   DBGPRINTF("Check dimension and size of alms\n");
   for( int i=0; i<nalm; i++ )
     {
-      if( (alms[i]->nd != 1) || (alms[i]->descr->type != 'D') )
+      if( (PyArray_NDIM(alms[i]) != 1) || (PyArray_DESCR(alms[i])->type != 
'D') )
         {
           PyErr_SetString(PyExc_TypeError,
                       "Type of alms must be complex128 and arrays must be 
1D.");
@@ -844,8 +844,8 @@
   for( int i=0; i<nalm; i++ )
     {
       if( i==0 )
-        szalm = alms[i]->dimensions[0];
-      else if( alms[i]->dimensions[0] != szalm )
+        szalm = PyArray_DIM(alms[i],0);
+      else if( PyArray_DIM(alms[i],0) != szalm )
         {
           PyErr_SetString(PyExc_ValueError,
                           "All alms arrays must have same size.");
@@ -866,7 +866,7 @@
     {
       DBGPRINTF("Setting almalms[%d]\n", i);
       arr< xcomplex<double> > * alm_arr;
-      alm_arr = new arr< xcomplex<double> >((xcomplex<double>*)alms[i]->data, 
szalm);
+      alm_arr = new arr< xcomplex<double> 
>((xcomplex<double>*)PyArray_DATA(alms[i]), szalm);
       DBGPRINTF("Set...\n");
       almalms[i].Set(*alm_arr, lmax, mmax);
       delete alm_arr;
@@ -886,11 +886,11 @@
         {
           if( cls[i] == NULL )
             mat[i] = 0.0;
-          else if( cls[i]->dimensions[0] < l )
+          else if( PyArray_DIM(cls[i],0) < l )
             mat[i] = 0.0;
           else
             {
-              if( cls[i]->descr->type == 'f' )
+              if( PyArray_DESCR(cls[i])->type == 'f' )
                 mat[i] = (double)(*((float*)PyArray_GETPTR1(cls[i],l)));
               else
                 mat[i] = *((double*)PyArray_GETPTR1(cls[i],l));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/healpy/version.py 
new/healpy-1.16.6/healpy/version.py
--- old/healpy-1.16.5/healpy/version.py 2023-08-16 23:30:55.000000000 +0200
+++ new/healpy-1.16.6/healpy/version.py 2023-10-03 22:35:46.000000000 +0200
@@ -1,4 +1,16 @@
 # file generated by setuptools_scm
 # don't change, don't track in version control
-__version__ = version = '1.16.5'
-__version_tuple__ = version_tuple = (1, 16, 5)
+TYPE_CHECKING = False
+if TYPE_CHECKING:
+    from typing import Tuple, Union
+    VERSION_TUPLE = Tuple[Union[int, str], ...]
+else:
+    VERSION_TUPLE = object
+
+version: str
+__version__: str
+__version_tuple__: VERSION_TUPLE
+version_tuple: VERSION_TUPLE
+
+__version__ = version = '1.16.6'
+__version_tuple__ = version_tuple = (1, 16, 6)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/healpy.egg-info/PKG-INFO 
new/healpy-1.16.6/healpy.egg-info/PKG-INFO
--- old/healpy-1.16.5/healpy.egg-info/PKG-INFO  2023-08-16 23:30:55.000000000 
+0200
+++ new/healpy-1.16.6/healpy.egg-info/PKG-INFO  2023-10-03 22:35:46.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: healpy
-Version: 1.16.5
+Version: 1.16.6
 Summary: Healpix tools package for Python
 Author: A. Zonca
 Author-email: "C. Rosset" <[email protected]>
@@ -12,16 +12,23 @@
 Classifier: License :: OSI Approved :: GNU General Public License v2 or later 
(GPLv2+)
 Classifier: Operating System :: POSIX
 Classifier: Programming Language :: C++
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Topic :: Scientific/Engineering :: Astronomy
 Classifier: Topic :: Scientific/Engineering :: Visualization
-Requires-Python: >=3.8
+Requires-Python: >=3.9
 Description-Content-Type: text/x-rst
-Provides-Extra: test
 License-File: COPYING
+Requires-Dist: matplotlib
+Requires-Dist: numpy>=1.19
+Requires-Dist: astropy
+Requires-Dist: scipy
+Provides-Extra: test
+Requires-Dist: pytest; extra == "test"
+Requires-Dist: pytest-cython; extra == "test"
+Requires-Dist: pytest-doctestplus; extra == "test"
+Requires-Dist: requests; extra == "test"
 
 ====================================
 Healpy, a python wrapper for healpix
@@ -83,9 +90,9 @@
 Requirements
 ------------
 
-* `Python <http://www.python.org>`_ 3.7, 3.8, 3.9, or 3.10
+* `Python <http://www.python.org>`_ 3.9, 3.10, or 3.11
 
-* `Numpy <http://numpy.scipy.org/>`_ (tested with version >=1.5.0)
+* `Numpy <http://numpy.scipy.org/>`_ (tested with version >=1.19)
 
 * `Matplotlib <http://matplotlib.sourceforge.net/>`_
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/healpy.egg-info/SOURCES.txt 
new/healpy-1.16.6/healpy.egg-info/SOURCES.txt
--- old/healpy-1.16.5/healpy.egg-info/SOURCES.txt       2023-08-16 
23:30:55.000000000 +0200
+++ new/healpy-1.16.6/healpy.egg-info/SOURCES.txt       2023-10-03 
22:35:46.000000000 +0200
@@ -5,7 +5,6 @@
 MANIFEST.in
 README.rst
 pyproject.toml
-run_pykg_config.py
 setup.py
 bin/healpy_get_wmap_maps.sh
 cfitsio/CMakeLists.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/healpy.egg-info/requires.txt 
new/healpy-1.16.6/healpy.egg-info/requires.txt
--- old/healpy-1.16.5/healpy.egg-info/requires.txt      2023-08-16 
23:30:55.000000000 +0200
+++ new/healpy-1.16.6/healpy.egg-info/requires.txt      2023-10-03 
22:35:46.000000000 +0200
@@ -1,5 +1,5 @@
 matplotlib
-numpy>=1.13
+numpy>=1.19
 astropy
 scipy
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/pyproject.toml 
new/healpy-1.16.6/pyproject.toml
--- old/healpy-1.16.5/pyproject.toml    2023-08-16 23:30:20.000000000 +0200
+++ new/healpy-1.16.6/pyproject.toml    2023-10-03 22:35:07.000000000 +0200
@@ -10,7 +10,6 @@
     "License :: OSI Approved :: GNU General Public License v2 or later 
(GPLv2+)",
     "Operating System :: POSIX",
     "Programming Language :: C++",
-    "Programming Language :: Python :: 3.8",
     "Programming Language :: Python :: 3.9",
     "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
@@ -22,8 +21,8 @@
     { name = "A. Zonca" },
 ]
 license = { text = "GPL-2.0-only" }
-requires-python = ">=3.8"
-dependencies = ["matplotlib", "numpy>=1.13", "astropy", "scipy"]
+requires-python = ">=3.9"
+dependencies = ["matplotlib", "numpy>=1.19", "astropy", "scipy"]
 
 [project.optional-dependencies]
 test = ["pytest", "pytest-cython", "pytest-doctestplus", "requests"]
@@ -37,7 +36,8 @@
             "setuptools_scm[toml]>=6.2",
             "cython>=0.16",
             "wheel",
-            "oldest-supported-numpy"]
+            "numpy>=1.25",
+            "pykg-config"]
 
 build-backend = 'setuptools.build_meta'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/run_pykg_config.py 
new/healpy-1.16.6/run_pykg_config.py
--- old/healpy-1.16.5/run_pykg_config.py        2023-08-16 23:30:20.000000000 
+0200
+++ new/healpy-1.16.6/run_pykg_config.py        1970-01-01 01:00:00.000000000 
+0100
@@ -1,7 +0,0 @@
-# Helper to run pykg-config, whether it is installed or lives in a zipped egg.
-from setuptools import Distribution
-from pkg_resources import run_script
-
-requirement = "pykg-config >= 1.2.0"
-Distribution().fetch_build_eggs(requirement)
-run_script(requirement, "pykg-config.py")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/healpy-1.16.5/setup.py new/healpy-1.16.6/setup.py
--- old/healpy-1.16.5/setup.py  2023-08-16 23:30:20.000000000 +0200
+++ new/healpy-1.16.6/setup.py  2023-10-03 22:35:07.000000000 +0200
@@ -5,6 +5,7 @@
 import fnmatch
 import sys
 import shlex
+import shutil
 from Cython.Distutils import build_ext
 from distutils.sysconfig import get_config_var, get_config_vars
 from subprocess import check_output, CalledProcessError, check_call
@@ -69,9 +70,7 @@
                 if e.errno != errno.ENOENT:
                     raise
                 log.warn("pkg-config is not installed, falling back to 
pykg-config")
-                env["PKG_CONFIG"] = (
-                    sys.executable + " " + 
os.path.abspath("run_pykg_config.py")
-                )
+                env["PKG_CONFIG"] = shutil.which('pykg-config.py')
             else:
                 env["PKG_CONFIG"] = "pkg-config"
 
@@ -312,6 +311,12 @@
         build_ext.run(self)
 
 
+ext_kwargs = dict(
+    extra_compile_args=["-std=c++11"],
+    define_macros=[('NPY_NO_DEPRECATED_API', 'NPY_1_19_API_VERSION')],
+    language="c++",
+)
+
 setup(
     packages=["healpy", "healpy.test"],
     libraries=[
@@ -354,49 +359,42 @@
         Extension(
             "healpy._healpy_pixel_lib",
             sources=["healpy/src/_healpy_pixel_lib.cc"],
-            language="c++",
-            extra_compile_args=["-std=c++11"],
+            **ext_kwargs
         ),
         Extension(
             "healpy._healpy_sph_transform_lib",
             sources=["healpy/src/_healpy_sph_transform_lib.cc"],
-            language="c++",
-            extra_compile_args=["-std=c++11"],
+            **ext_kwargs
         ),
         Extension(
             "healpy._query_disc",
             ["healpy/src/_query_disc.pyx"],
-            language="c++",
-            extra_compile_args=["-std=c++11"],
             cython_directives=dict(embedsignature=True),
+            **ext_kwargs
         ),
         Extension(
             "healpy._sphtools",
             ["healpy/src/_sphtools.pyx"],
-            language="c++",
-            extra_compile_args=["-std=c++11"],
             cython_directives=dict(embedsignature=True),
+            **ext_kwargs
         ),
         Extension(
             "healpy._pixelfunc",
             ["healpy/src/_pixelfunc.pyx"],
-            language="c++",
-            extra_compile_args=["-std=c++11"],
             cython_directives=dict(embedsignature=True),
+            **ext_kwargs
         ),
         Extension(
             "healpy._masktools",
             ["healpy/src/_masktools.pyx"],
-            language="c++",
-            extra_compile_args=["-std=c++11"],
             cython_directives=dict(embedsignature=True),
+            **ext_kwargs
         ),
         Extension(
             "healpy._hotspots",
             ["healpy/src/_hotspots.pyx", "healpy/src/_healpy_hotspots_lib.cc"],
-            language="c++",
-            extra_compile_args=["-std=c++11"],
             cython_directives=dict(embedsignature=True),
+            **ext_kwargs
         ),
         Extension(
             "healpy._line_integral_convolution",
@@ -404,13 +402,12 @@
                 "healpy/src/_line_integral_convolution.pyx",
                 "healpixsubmodule/src/cxx/Healpix_cxx/alice3.cc",
             ],
-            language="c++",
-            extra_compile_args=[
-                "-std=c++11",
-                "-Ihealpixsubmodule/src/cxx/cxxsupport",
-                "-Ihealpixsubmodule/src/cxx/Healpix_cxx",
+            include_dirs=[
+                "healpixsubmodule/src/cxx/cxxsupport",
+                "healpixsubmodule/src/cxx/Healpix_cxx",
             ],
             cython_directives=dict(embedsignature=True),
+            **ext_kwargs
         ),
     ],
     package_data={

Reply via email to