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={
