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
3+ import versioneer
154
165
176def min_max (pkgs , pkg_name ):
@@ -23,30 +12,8 @@ def min_max(pkgs, pkg_name):
2312 return vmin , vmax
2413
2514
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-
4715with open ('requirements.txt' ) as f :
4816 required = f .read ().splitlines ()
49- required = numpy_compat (required )
5017
5118with open ('requirements-optional.txt' ) as f :
5219 optionals = f .read ().splitlines ()
0 commit comments