1- import versioneer
2- from packaging .version import Version
31import os
4-
5- try :
6- import importlib .metadata as metadata
7- get_version = lambda x : metadata .version (x )
8- PkgNotFound = metadata .PackageNotFoundError
9- except ImportError :
10- import pkg_resources
11- get_version = lambda x : pkg_resources .get_distribution (x ).version
12- PkgNotFound = pkg_resources .DistributionNotFound
13-
142from setuptools import setup , find_packages
15-
3+ import versioneer
164
175def min_max (pkgs , pkg_name ):
186 pkg = [p for p in pkgs if pkg_name in p ][0 ]
@@ -22,31 +10,8 @@ def min_max(pkgs, pkg_name):
2210 vmax = pkg .split (maxsign )[- 1 ]
2311 return vmin , vmax
2412
25-
26- def numpy_compat (required ):
27- new_reqs = [r for r in required if "numpy" not in r and "sympy" not in r ]
28- sympy_lb , sympy_ub = min_max (required , "sympy" )
29- numpy_lb , numpy_ub = min_max (required , "numpy" )
30-
31- # Due to api changes in numpy 2.0, it requires sympy 1.12.1 at the minimum
32- # Check if sympy is installed and enforce numpy version accordingly.
33- # If sympy isn't installed, enforce sympy>=1.12.1 and numpy>=2.0
34- try :
35- sympy_version = Version (get_version ("sympy" ))
36- min_ver2 = Version ("1.12.1" )
37- if sympy_version < min_ver2 :
38- new_reqs .extend ([f"numpy>{ numpy_lb } ,<2.0" , f"sympy=={ sympy_version } " ])
39- else :
40- new_reqs .extend ([f"numpy>=2.0,<{ numpy_ub } " , f"sympy=={ sympy_version } " ])
41- except PkgNotFound :
42- new_reqs .extend ([f"sympy>=1.12.1,<{ sympy_ub } " , f"numpy>=2.0,<{ numpy_ub } " ])
43-
44- return new_reqs
45-
46-
4713with open ('requirements.txt' ) as f :
4814 required = f .read ().splitlines ()
49- required = numpy_compat (required )
5015
5116with open ('requirements-optional.txt' ) as f :
5217 optionals = f .read ().splitlines ()
0 commit comments