Accepting request 981947 from home:bnavigator:branches:devel:languages:python:numeric

- Update to 4.14.1
  * enhancements:
    - various plotting backend improvements
    - various i/o backend improvements
    - data object class improvements
    - basic support for Xspec 12.12.1
    - beta support for python 3.10
  * documentation changes:
    - updated build with CIAO documentation
    - Add a missing class (DataOgipResponse) to the documentation
    - Improves the docstrings for DataPHA
    - fixed typos in plot docs
    - clean up readthedocs issues such as missing bullets
  * Infrastructure changes:
    - updates for compatibility with Clang 12.0
    - updates to the regression tests
  * bug fixes:
    - Improve the FITS headers created when writing out a PHA file (to better match OGIP standards)
    - addresses delete_model_component call failing if a key does not exist
    - fixed issue with writing a PHA dataset as a table rather than a PHA file
    - ensure FITS column access is case insensitive
    - image handling and image coordinates
 - Drop sherpa-pr1318-py310tests.patch fixed upstream
 - Drop sherpa-pr1319-distutils-hack.patch fixed upstream

OBS-URL: https://build.opensuse.org/request/show/981947
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-sherpa?expand=0&rev=23
This commit is contained in:
Markéta Machová 2022-06-13 08:29:00 +00:00 committed by Git OBS Bridge
parent 10e1774ca2
commit 6273b367ad
7 changed files with 45 additions and 624 deletions

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Thu Jun 9 20:00:36 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 4.14.1
* enhancements:
- various plotting backend improvements
- various i/o backend improvements
- data object class improvements
- basic support for Xspec 12.12.1
- beta support for python 3.10
* documentation changes:
- updated build with CIAO documentation
- Add a missing class (DataOgipResponse) to the documentation
- Improves the docstrings for DataPHA
- fixed typos in plot docs
- clean up readthedocs issues such as missing bullets
* Infrastructure changes:
- updates for compatibility with Clang 12.0
- updates to the regression tests
* bug fixes:
- Improve the FITS headers created when writing out a PHA file (to better match OGIP standards)
- addresses delete_model_component call failing if a key does not exist
- fixed issue with writing a PHA dataset as a table rather than a PHA file
- ensure FITS column access is case insensitive
- image handling and image coordinates
- Drop sherpa-pr1318-py310tests.patch fixed upstream
- Drop sherpa-pr1319-distutils-hack.patch fixed upstream
-------------------------------------------------------------------
Fri Feb 4 17:05:32 UTC 2022 - Ben Greiner <code@bnavigator.de>

View File

@ -18,21 +18,20 @@
%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
%define test_data_commit 57cae742c7642494b51c26ba3f27935bbcc0116b
Name: python-sherpa
Version: 4.14.0
Version: 4.14.1
Release: 0
Summary: Modeling and fitting package for scientific data analysis
License: GPL-3.0-only
URL: https://github.com/sherpa/sherpa/
Source: https://github.com/sherpa/sherpa/archive/%{version}.tar.gz#/sherpa-%{version}.tar.gz
Source0: https://github.com/sherpa/sherpa/archive/%{version}.tar.gz#/sherpa-%{version}.tar.gz
Source1: https://github.com/sherpa/sherpa-test-data/archive/%{test_data_commit}.tar.gz#/sherpa-test-data-%{test_data_commit}.tar.gz
Patch1: reproducible.patch
# PATCH-FIX-UPSTREAM sherpa-pr1318-py310tests.patch -- gh#sherpa/sherpa#1319
Patch2: https://github.com/sherpa/sherpa/pull/1318.patch#/sherpa-pr1318-py310tests.patch
# PATCH-FIX-UPSTREAM sherpa-pr1319-distutils-hack.patch -- gh#sherpa/sherpa#1319
Patch3: sherpa-pr1319-distutils-hack.patch
BuildRequires: %{python_module devel >= 3.7}
BuildRequires: %{python_module numpy-devel >= 1.19}
BuildRequires: %{python_module setuptools}
# https://sherpa.readthedocs.io/en/latest/install.html#building-from-source
BuildRequires: %{python_module setuptools < 60}
BuildRequires: bison
BuildRequires: fdupes
BuildRequires: fftw3-devel
@ -47,7 +46,7 @@ ExcludeArch: %{ix86} %{arm}
# SECTION test requirements
BuildRequires: %{python_module pytest >= 3.3}
BuildRequires: %{python_module pytest-xvfb}
# Highly recommended by upstream when building from source https://sherpa.readthedocs.io/en/latest/install.html#building-from-source
# Highly recommended by upstream when building from source
BuildRequires: %{python_module astropy}
BuildRequires: %{python_module matplotlib}
# /SECTION
@ -59,7 +58,7 @@ user to construct models from definitions and fit those models to
data, using a variety of statistics and optimization methods.
%prep
%setup -q -n sherpa-%{version}
%setup -q -n sherpa-%{version} -a1
%autopatch -p1
# uncomment system libs
sed -i "s|#fftw=local|fftw=local|" setup.cfg
@ -93,8 +92,9 @@ sed -i "1{/\\/usr\\/bin\\/env python/d}" %{buildroot}%{$python_sitearch}/sherpa/
%check
# avoid conftest import mismatch
mv sherpa sherpa_temp
# astropy 4.2 fits header warning
donttest+="test_load_case_3"
export PYTHONPATH=$PWD/sherpa-test-data-%{test_data_commit}
# unclosed resource warnings by pytest although the tests use Path.to_text which should have closed it.
donttest="test_save"
# precision issues
%ifnarch x86_64
donttest+=" or (test_regproj and sherpa.plot.dummy_backend)"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b25967d121d7309533001c9cc6ddda4619bf69a3cc27801683386d0d810c7cd7
size 13071660

3
sherpa-4.14.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d32058802edb7be2c3a180a6390200cbbe6f28ac043a3e10ed98b7f789ea3dd2
size 13144910

View File

@ -1,179 +0,0 @@
From cdaa402d8014e689085a1d7dae3237a82d8b8af4 Mon Sep 17 00:00:00 2001
From: Douglas Burke <dburke.gw@gmail.com>
Date: Thu, 7 Oct 2021 16:18:14 -0400
Subject: [PATCH 1/2] Tests: split up the test_export_method test
Break up the test into a number of smaller checks (we could go
more fine-grained but let's see how this works).
---
sherpa/utils/tests/test_utils.py | 67 ++++++++++++++++++++------------
1 file changed, 43 insertions(+), 24 deletions(-)
diff --git a/sherpa/utils/tests/test_utils.py b/sherpa/utils/tests/test_utils.py
index 481e97c73..707281f13 100644
--- a/sherpa/utils/tests/test_utils.py
+++ b/sherpa/utils/tests/test_utils.py
@@ -75,34 +75,36 @@ def __init__(self):
c.z = 5
-def test_export_method():
- class C():
+class C():
- def m(self, x, y=2):
- 'Instance method m()'
- return x * y
+ def m(self, x, y=2):
+ 'Instance method m()'
+ return x * y
- def margs(self, x, y=2, *args):
- 'Instance method margs() with *args'
- return x * y + len(args)
+ def margs(self, x, y=2, *args):
+ 'Instance method margs() with *args'
+ return x * y + len(args)
- def kwargs(self, x, y=2, **kwargs):
- 'Instance method kwargs() with **kwargs'
- return x * y + 2 * len(kwargs)
+ def kwargs(self, x, y=2, **kwargs):
+ 'Instance method kwargs() with **kwargs'
+ return x * y + 2 * len(kwargs)
- def bargs(self, x, y=2, *args, **kwargs):
- 'Instance method bargs() with *args and **kwargs'
- return x * y + len(args) + 2 * len(kwargs)
+ def bargs(self, x, y=2, *args, **kwargs):
+ 'Instance method bargs() with *args and **kwargs'
+ return x * y + len(args) + 2 * len(kwargs)
- @classmethod
- def cm(klass, x, y=2):
- 'Class method cm()'
- return x * y
+ @classmethod
+ def cm(klass, x, y=2):
+ 'Class method cm()'
+ return x * y
- @staticmethod
- def sm(x, y=2):
- 'Static method sm()'
- return x * y
+ @staticmethod
+ def sm(x, y=2):
+ 'Static method sm()'
+ return x * y
+
+
+def test_export_method_basic():
c = C()
@@ -124,13 +126,26 @@ def sm(x, y=2):
"missing 1 required positional argument: 'x'"
assert str(exc.value) == emsg
+
+def test_export_method_args_call():
+
# Check that *args/**kwargs are handled correctly for methods;
# should perhaps be included above to avoid repeated calls
# to export_method?
#
+ c = C()
meth = utils.export_method(c.margs)
assert meth(3, 7, "a", "b") == 23
+ meth = utils.export_method(c.bargs)
+ assert meth(3, 7, 14, 15, foo=None) == 25
+
+
+def test_export_method_args_errors():
+
+ c = C()
+ meth = utils.export_method(c.margs)
+
with pytest.raises(TypeError) as exc:
meth(12, dummy=None)
@@ -147,8 +162,8 @@ def sm(x, y=2):
"but 3 were given"
assert str(exc.value) in emsg
- meth = utils.export_method(c.bargs)
- assert meth(3, 7, 14, 15, foo=None) == 25
+
+def test_export_method_non_method():
# Non-method argument
def f(x):
@@ -156,7 +171,11 @@ def f(x):
assert utils.export_method(f) is f
+
+def test_export_method_names():
+
# Name and module name
+ c = C()
m = utils.export_method(c.m, 'foo', 'bar')
assert m.__name__ == 'foo'
assert m.__module__ == 'bar'
From c189084bd620010bda0a23ab6e6499a598f53cdc Mon Sep 17 00:00:00 2001
From: Douglas Burke <dburke.gw@gmail.com>
Date: Thu, 7 Oct 2021 16:37:48 -0400
Subject: [PATCH 2/2] Tests: update export_method tests for Python 3.10
There is a change to how an error message appears for a static
method in Python 3.10 (it now includes the original class name).
This is not ideal, but for now we adjust the test rather than
try to work out whether the code can be changed.
This is something of an edge case.
---
sherpa/utils/tests/test_utils.py | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/sherpa/utils/tests/test_utils.py b/sherpa/utils/tests/test_utils.py
index 707281f13..6fa32b7ff 100644
--- a/sherpa/utils/tests/test_utils.py
+++ b/sherpa/utils/tests/test_utils.py
@@ -108,7 +108,11 @@ def test_export_method_basic():
c = C()
- # Basic usage
+ # Basic usage. The error message depends on
+ # a) Python version
+ # b) what method is being wrapped
+ # (before Python 3.10 it didn't).
+ #
for meth in (c.m, c.margs, c.kwargs, c.bargs, c.cm, c.sm):
m = utils.export_method(meth)
@@ -122,9 +126,19 @@ def test_export_method_basic():
with pytest.raises(TypeError) as exc:
m()
- emsg = "{}() ".format(meth.__name__) + \
+ emsg = f"{meth.__name__}() " + \
"missing 1 required positional argument: 'x'"
- assert str(exc.value) == emsg
+
+ if meth.__name__ == 'sm':
+ # In Python 3.10 we see C.sm rather than sm
+ # so we search for both. We could be more explicit
+ # and check on the Python version (e.g. for >= 3.10)
+ # but it doesn't seem worth it. It's interesting it's
+ # only for the static method.
+ #
+ assert str(exc.value) in [emsg, 'C.' + emsg]
+ else:
+ assert str(exc.value) == emsg
def test_export_method_args_call():

View File

@ -1,431 +0,0 @@
From bf1424d43f04236d5c004520aa98c58a07de7d9a Mon Sep 17 00:00:00 2001
From: Douglas Burke <dburke.gw@gmail.com>
Date: Thu, 7 Oct 2021 17:48:48 -0400
Subject: [PATCH 1/3] HACK to build stklib with Python 3.10
This is very not-sensible
---
extern/stklib-4.11/configure | 48 ++++++++++++------------
extern/stklib-4.11/m4/AX_PYTHON_DEVEL.m4 | 38 +++++++++----------
2 files changed, 42 insertions(+), 44 deletions(-)
diff --git a/extern/stklib-4.11/configure b/extern/stklib-4.11/configure
index b80b47bb94..65ecf99c5d 100755
--- a/extern/stklib-4.11/configure
+++ b/extern/stklib-4.11/configure
@@ -12106,7 +12106,7 @@ $am_python_setup_sysconfig
if can_use_sysconfig:
sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
else:
- from distutils import sysconfig
+ from setuptools._distutils import sysconfig
sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
sys.stdout.write(sitedir)"`
case $am_cv_python_pythondir in
@@ -12150,7 +12150,7 @@ $am_python_setup_sysconfig
if can_use_sysconfig:
sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
else:
- from distutils import sysconfig
+ from setuptools._distutils import sysconfig
sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
sys.stdout.write(sitedir)"`
case $am_cv_python_pyexecdir in
@@ -12291,18 +12291,18 @@ variable to configure. See \`\`configure --help'' for reference.
fi
#
- # Check if you have distutils, else fail
+ # Check if you have setuptools._distutils, else fail
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5
-$as_echo_n "checking for the distutils Python package... " >&6; }
- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the setuptools._distutils Python package" >&5
+$as_echo_n "checking for the setuptools._distutils Python package... " >&6; }
+ ac_distutils_result=`$PYTHON -c "import setuptools._distutils" 2>&1`
if test -z "$ac_distutils_result"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- as_fn_error $? "cannot import Python module \"distutils\".
+ as_fn_error $? "cannot import Python module \"setuptools._distutils\".
Please check your Python installation. The error was:
$ac_distutils_result" "$LINENO" 5
PYTHON_VERSION=""
@@ -12314,10 +12314,10 @@ $ac_distutils_result" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
$as_echo_n "checking for Python include path... " >&6; }
if test -z "$PYTHON_CPPFLAGS"; then
- python_path=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_inc ());"`
- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
+ python_path=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ print (setuptools._distutils.sysconfig.get_python_inc ());"`
+ plat_python_path=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ print (setuptools._distutils.sysconfig.get_python_inc (plat_specific=1));"`
if test -n "${python_path}"; then
if test "${plat_python_path}" != "${python_path}"; then
python_path="-I$python_path -I$plat_python_path"
@@ -12343,7 +12343,7 @@ $as_echo_n "checking for Python library path... " >&6; }
# join all versioning strings, on some systems
# major/minor numbers could be in different list elements
-from distutils.sysconfig import *
+from setuptools._distutils.sysconfig import *
e = get_config_var('VERSION')
if e is not None:
print(e)
@@ -12369,8 +12369,8 @@ _ACEOF
ac_python_libdir=`cat<<EOD | $PYTHON -
# There should be only one
-import distutils.sysconfig
-e = distutils.sysconfig.get_config_var('LIBDIR')
+import setuptools._distutils.sysconfig
+e = setuptools._distutils.sysconfig.get_config_var('LIBDIR')
if e is not None:
print (e)
EOD`
@@ -12378,8 +12378,8 @@ EOD`
# Now, for the library:
ac_python_library=`cat<<EOD | $PYTHON -
-import distutils.sysconfig
-c = distutils.sysconfig.get_config_vars()
+import setuptools._distutils.sysconfig
+c = setuptools._distutils.sysconfig.get_config_vars()
if 'LDVERSION' in c:
print ('python'+c['LDVERSION'])
else:
@@ -12398,7 +12398,7 @@ EOD`
else
# old way: use libpython from python_configdir
ac_python_libdir=`$PYTHON -c \
- "from distutils.sysconfig import get_python_lib as f; \
+ "from setuptools._distutils.sysconfig import get_python_lib as f; \
import os; \
print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
@@ -12421,8 +12421,8 @@ $as_echo "$PYTHON_LDFLAGS" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5
$as_echo_n "checking for Python site-packages path... " >&6; }
if test -z "$PYTHON_SITE_PKG"; then
- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_lib(0,0));"`
+ PYTHON_SITE_PKG=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ print (setuptools._distutils.sysconfig.get_python_lib(0,0));"`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5
$as_echo "$PYTHON_SITE_PKG" >&6; }
@@ -12434,8 +12434,8 @@ $as_echo "$PYTHON_SITE_PKG" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra libraries" >&5
$as_echo_n "checking python extra libraries... " >&6; }
if test -z "$PYTHON_EXTRA_LIBS"; then
- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
- conf = distutils.sysconfig.get_config_var; \
+ PYTHON_EXTRA_LIBS=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ conf = setuptools._distutils.sysconfig.get_config_var; \
print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5
@@ -12448,8 +12448,8 @@ $as_echo "$PYTHON_EXTRA_LIBS" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra linking flags" >&5
$as_echo_n "checking python extra linking flags... " >&6; }
if test -z "$PYTHON_EXTRA_LDFLAGS"; then
- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
- conf = distutils.sysconfig.get_config_var; \
+ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ conf = setuptools._distutils.sysconfig.get_config_var; \
print (conf('LINKFORSHARED'))"`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LDFLAGS" >&5
@@ -15423,5 +15423,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
-
-
diff --git a/extern/stklib-4.11/m4/AX_PYTHON_DEVEL.m4 b/extern/stklib-4.11/m4/AX_PYTHON_DEVEL.m4
index 266179e146..97bf2c956d 100644
--- a/extern/stklib-4.11/m4/AX_PYTHON_DEVEL.m4
+++ b/extern/stklib-4.11/m4/AX_PYTHON_DEVEL.m4
@@ -135,13 +135,13 @@ variable to configure. See ``configure --help'' for reference.
#
# Check if you have distutils, else fail
#
- AC_MSG_CHECKING([for the distutils Python package])
- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
+ AC_MSG_CHECKING([for the distutils/setuptools Python package])
+ ac_distutils_result=`$PYTHON -c "import setuptools._distutils" 2>&1`
if test -z "$ac_distutils_result"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
- AC_MSG_ERROR([cannot import Python module "distutils".
+ AC_MSG_ERROR([cannot import Python module "distutils/setuptools".
Please check your Python installation. The error was:
$ac_distutils_result])
PYTHON_VERSION=""
@@ -152,10 +152,10 @@ $ac_distutils_result])
#
AC_MSG_CHECKING([for Python include path])
if test -z "$PYTHON_CPPFLAGS"; then
- python_path=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_inc ());"`
- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
+ python_path=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ print (setuptools._distutils.sysconfig.get_python_inc ());"`
+ plat_python_path=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ print (setuptools._distutils.sysconfig.get_python_inc (plat_specific=1));"`
if test -n "${python_path}"; then
if test "${plat_python_path}" != "${python_path}"; then
python_path="-I$python_path -I$plat_python_path"
@@ -179,7 +179,7 @@ $ac_distutils_result])
# join all versioning strings, on some systems
# major/minor numbers could be in different list elements
-from distutils.sysconfig import *
+from setuptools._distutils.sysconfig import *
e = get_config_var('VERSION')
if e is not None:
print(e)
@@ -202,8 +202,8 @@ EOD`
ac_python_libdir=`cat<<EOD | $PYTHON -
# There should be only one
-import distutils.sysconfig
-e = distutils.sysconfig.get_config_var('LIBDIR')
+import setuptools._distutils.sysconfig
+e = setuptools._distutils.sysconfig.get_config_var('LIBDIR')
if e is not None:
print (e)
EOD`
@@ -211,8 +211,8 @@ EOD`
# Now, for the library:
ac_python_library=`cat<<EOD | $PYTHON -
-import distutils.sysconfig
-c = distutils.sysconfig.get_config_vars()
+import setuptools._distutils.sysconfig
+c = setuptools._distutils.sysconfig.get_config_vars()
if 'LDVERSION' in c:
print ('python'+c[['LDVERSION']])
else:
@@ -231,7 +231,7 @@ EOD`
else
# old way: use libpython from python_configdir
ac_python_libdir=`$PYTHON -c \
- "from distutils.sysconfig import get_python_lib as f; \
+ "from setuptools._distutils.sysconfig import get_python_lib as f; \
import os; \
print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
@@ -252,8 +252,8 @@ EOD`
#
AC_MSG_CHECKING([for Python site-packages path])
if test -z "$PYTHON_SITE_PKG"; then
- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_lib(0,0));"`
+ PYTHON_SITE_PKG=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ print (setuptools._distutils.sysconfig.get_python_lib(0,0));"`
fi
AC_MSG_RESULT([$PYTHON_SITE_PKG])
AC_SUBST([PYTHON_SITE_PKG])
@@ -263,8 +263,8 @@ EOD`
#
AC_MSG_CHECKING(python extra libraries)
if test -z "$PYTHON_EXTRA_LIBS"; then
- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
- conf = distutils.sysconfig.get_config_var; \
+ PYTHON_EXTRA_LIBS=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ conf = setuptools._distutils.sysconfig.get_config_var; \
print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
fi
AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
@@ -275,8 +275,8 @@ EOD`
#
AC_MSG_CHECKING(python extra linking flags)
if test -z "$PYTHON_EXTRA_LDFLAGS"; then
- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
- conf = distutils.sysconfig.get_config_var; \
+ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ conf = setuptools._distutils.sysconfig.get_config_var; \
print (conf('LINKFORSHARED'))"`
fi
AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
From fa45219304babfe3b24bdf8b9d2edbe3e73a0b2f Mon Sep 17 00:00:00 2001
From: Douglas Burke <dburke.gw@gmail.com>
Date: Thu, 7 Oct 2021 17:50:24 -0400
Subject: [PATCH 2/3] HACK grplib for python 3.10/distutils
---
extern/grplib-4.9/configure | 48 ++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 25 deletions(-)
diff --git a/extern/grplib-4.9/configure b/extern/grplib-4.9/configure
index 132a9e0497..2051e71d65 100755
--- a/extern/grplib-4.9/configure
+++ b/extern/grplib-4.9/configure
@@ -12204,7 +12204,7 @@ $am_python_setup_sysconfig
if can_use_sysconfig:
sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
else:
- from distutils import sysconfig
+ from setuptools._distutils import sysconfig
sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
sys.stdout.write(sitedir)"`
case $am_cv_python_pythondir in
@@ -12248,7 +12248,7 @@ $am_python_setup_sysconfig
if can_use_sysconfig:
sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
else:
- from distutils import sysconfig
+ from setuptools._distutils import sysconfig
sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
sys.stdout.write(sitedir)"`
case $am_cv_python_pyexecdir in
@@ -12389,18 +12389,18 @@ variable to configure. See \`\`configure --help'' for reference.
fi
#
- # Check if you have distutils, else fail
+ # Check if you have setuptools._distutils, else fail
#
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the distutils Python package" >&5
-$as_echo_n "checking for the distutils Python package... " >&6; }
- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the setuptools._distutils Python package" >&5
+$as_echo_n "checking for the setuptools._distutils Python package... " >&6; }
+ ac_distutils_result=`$PYTHON -c "import setuptools._distutils" 2>&1`
if test -z "$ac_distutils_result"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- as_fn_error $? "cannot import Python module \"distutils\".
+ as_fn_error $? "cannot import Python module \"setuptools._distutils\".
Please check your Python installation. The error was:
$ac_distutils_result" "$LINENO" 5
PYTHON_VERSION=""
@@ -12412,10 +12412,10 @@ $ac_distutils_result" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5
$as_echo_n "checking for Python include path... " >&6; }
if test -z "$PYTHON_CPPFLAGS"; then
- python_path=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_inc ());"`
- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
+ python_path=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ print (setuptools._distutils.sysconfig.get_python_inc ());"`
+ plat_python_path=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ print (setuptools._distutils.sysconfig.get_python_inc (plat_specific=1));"`
if test -n "${python_path}"; then
if test "${plat_python_path}" != "${python_path}"; then
python_path="-I$python_path -I$plat_python_path"
@@ -12441,7 +12441,7 @@ $as_echo_n "checking for Python library path... " >&6; }
# join all versioning strings, on some systems
# major/minor numbers could be in different list elements
-from distutils.sysconfig import *
+from setuptools._distutils.sysconfig import *
e = get_config_var('VERSION')
if e is not None:
print(e)
@@ -12467,8 +12467,8 @@ _ACEOF
ac_python_libdir=`cat<<EOD | $PYTHON -
# There should be only one
-import distutils.sysconfig
-e = distutils.sysconfig.get_config_var('LIBDIR')
+import setuptools._distutils.sysconfig
+e = setuptools._distutils.sysconfig.get_config_var('LIBDIR')
if e is not None:
print (e)
EOD`
@@ -12476,8 +12476,8 @@ EOD`
# Now, for the library:
ac_python_library=`cat<<EOD | $PYTHON -
-import distutils.sysconfig
-c = distutils.sysconfig.get_config_vars()
+import setuptools._distutils.sysconfig
+c = setuptools._distutils.sysconfig.get_config_vars()
if 'LDVERSION' in c:
print ('python'+c['LDVERSION'])
else:
@@ -12496,7 +12496,7 @@ EOD`
else
# old way: use libpython from python_configdir
ac_python_libdir=`$PYTHON -c \
- "from distutils.sysconfig import get_python_lib as f; \
+ "from setuptools._distutils.sysconfig import get_python_lib as f; \
import os; \
print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
@@ -12519,8 +12519,8 @@ $as_echo "$PYTHON_LDFLAGS" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python site-packages path" >&5
$as_echo_n "checking for Python site-packages path... " >&6; }
if test -z "$PYTHON_SITE_PKG"; then
- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_lib(0,0));"`
+ PYTHON_SITE_PKG=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ print (setuptools._distutils.sysconfig.get_python_lib(0,0));"`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_SITE_PKG" >&5
$as_echo "$PYTHON_SITE_PKG" >&6; }
@@ -12532,8 +12532,8 @@ $as_echo "$PYTHON_SITE_PKG" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra libraries" >&5
$as_echo_n "checking python extra libraries... " >&6; }
if test -z "$PYTHON_EXTRA_LIBS"; then
- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
- conf = distutils.sysconfig.get_config_var; \
+ PYTHON_EXTRA_LIBS=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ conf = setuptools._distutils.sysconfig.get_config_var; \
print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LIBS" >&5
@@ -12546,8 +12546,8 @@ $as_echo "$PYTHON_EXTRA_LIBS" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking python extra linking flags" >&5
$as_echo_n "checking python extra linking flags... " >&6; }
if test -z "$PYTHON_EXTRA_LDFLAGS"; then
- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
- conf = distutils.sysconfig.get_config_var; \
+ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import setuptools._distutils.sysconfig; \
+ conf = setuptools._distutils.sysconfig.get_config_var; \
print (conf('LINKFORSHARED'))"`
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_EXTRA_LDFLAGS" >&5
@@ -15577,5 +15577,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
-
-
From 20a51ce086fa4c6801a6d519c620ea83f4effb92 Mon Sep 17 00:00:00 2001
From: Douglas Burke <dburke.gw@gmail.com>
Date: Thu, 7 Oct 2021 18:48:29 -0400
Subject: [PATCH 3/3] Ensure we have a setuptools which contains distutils
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index 60d90c72f0..52ce9e6df4 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,5 +1,5 @@
[build-system]
-requires = ["setuptools",
+requires = ["setuptools>=49.1.2",
"wheel",
"oldest-supported-numpy",
]

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:90433611f99a54ab8e9fe8b7dfd67a86661955f8cf3a8f6aa90ae0e3c4d70d17
size 134767384