From 2e2c6419aeac01424d9e0aa4f0e2dec378b9febb Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 24 Feb 2024 06:49:40 +0000 Subject: [PATCH 1/6] Specify all dependencies of sagelib in pyproject.toml --- pyproject.toml | 128 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000000..309a86cb59b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,128 @@ +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + # 68.1.0 Promote pyproject.toml's [tool.setuptools] out of beta. + # 68.1.1 Fix editable install finder handling of nested packages + 'setuptools >= 68.1.1', # TODO: Remove this one once me migrate to meson + 'cypari2 >=2.1.1', + 'cysignals >=1.10.2', + # Exclude 3.0.3 because of https://github.com/cython/cython/issues/5748 + 'cython >=3.0, != 3.0.3', + 'gmpy2 ~=2.1.b999', + 'memory-allocator', + 'numpy >=1.19', + 'jinja2 >=3.0', + 'pkgconfig', # TODO: Remove this one once me migrate to meson +] +build-backend = "setuptools.build_meta" + +[tool.conda-lock] +platforms = [ + 'osx-64', 'linux-64', 'linux-aarch64', 'osx-arm64' +] + +[project] +name = 'sagemath-standard' +dynamic = ["version"] +description = "Sage: Open Source Mathematics Software" +dependencies = [ + 'six >=1.15.0', + 'conway-polynomials >=0.8', + 'cypari2 >=2.1.1', + 'cysignals >=1.10.2', + 'cython >=3.0, != 3.0.3', + 'gmpy2 >=2.1.0', + 'importlib_metadata >=4.13', + 'importlib_resources >= 5.7', + 'jupyter_core >=4.6.3', + 'lrcalc ~=2.1', + 'memory-allocator', + 'numpy >=1.19', + 'pplpy >=0.8.6', + 'primecountpy', + 'requests >=2.13.0', + 'typing_extensions >= 4.4.0', + 'ipython >=7.13.0', + 'pexpect >=4.8.0', + 'networkx >=2.4, <3.3', + 'scipy >=1.5, <1.12', + 'sympy >=1.6, <2.0', + 'matplotlib >=3.5.1', + 'pillow >=7.2.0', + 'mpmath >=1.1.0', + 'ipykernel >=5.2.1', + 'jupyter-client', + 'ipywidgets >=7.5.1', + 'fpylll >=0.5.9', + 'ptyprocess > 0.5', + 'sphinx >=5.2', # TODO: Remove this one the part of sage.misc using sphinx is moved to docbuild +] + +[external] +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config" +] + +host-requires = [ + "virtual:interface/blas", + "pkg:generic/boost", + "pkg:generic/brial", + "pkg:generic/cddlib", + "pkg:generic/cliquer", + "pkg:generic/ecl", + "pkg:generic/eclib", + "pkg:generic/ecm", + "pkg:generic/fflas-ffpack", + "pkg:generic/fplll", + "pkg:generic/flint", + "pkg:generic/libgd", + "pkg:generic/gap", + "pkg:generic/gfan", + "pkg:generic/giac", + "pkg:generic/givaro", + "pkg:generic/glpk", + "pkg:generic/gmp", + "pkg:generic/gsl", + "pkg:generic/iml", + "pkg:generic/lcalc", + "pkg:generic/libbraiding", + "pkg:generic/libhomfly", + "pkg:generic/linbox", + "pkg:generic/lrcalc", + "pkg:generic/m4ri", + "pkg:generic/m4rie", + "pkg:generic/maxima", + "pkg:generic/mpc", + "pkg:generic/mpfi", + "pkg:generic/mpfr", + "pkg:generic/nauty", + "pkg:generic/ntl", + "pkg:generic/palp", + "pkg:generic/pari", + "pkg:generic/pari-elldata", + "pkg:generic/pari-galdata", + "pkg:generic/pari-seadata", + "pkg:generic/planarity", + "pkg:generic/ppl", + "pkg:generic/primesieve", + "pkg:generic/primecount", + "pkg:generic/qhull", + "pkg:generic/rw", + "pkg:generic/singular", + "pkg:generic/symmetrica", + "pkg:generic/sympow", +] + +[dependency-groups] +test = [ + "pytest", + "pytest-xdist", + "coverage", +] +docs = [ + "sphinx", + "sphinx-inline-tabs", + "furo", +] From 2e024dfa96a9c20a1b5294e2cd5d9fb588e1516b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 24 Feb 2024 07:57:01 +0000 Subject: [PATCH 2/6] Add runtime dependencies --- pyproject.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 309a86cb59b..43c833aab0b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -115,6 +115,12 @@ host-requires = [ "pkg:generic/sympow", ] +dependencies = [ + "pkg:generic/tachyon", + "pkg:generic/sagemath-polytopes-db", + "pkg:generic/sagemath-elliptic-curves", +] + [dependency-groups] test = [ "pytest", From 50ca3a59af8b3e7a5c8338cd69af443a4790746f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 25 Feb 2024 09:47:51 +0000 Subject: [PATCH 3/6] Add linting dependencies to pyproject.toml --- pyproject.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 43c833aab0b..89f948ab5bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -132,3 +132,8 @@ docs = [ "sphinx-inline-tabs", "furo", ] +lint = [ + "relint", + "pycodestyle", + "flake8-rst-docstrings", +] From 2f9b2dd24a4d9ec02cf5d78a2d40fd76a86b2a2f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 27 Feb 2024 03:07:09 +0000 Subject: [PATCH 4/6] Add sagemath-graphs as dependency --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 89f948ab5bf..07cfa87cbf2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -119,6 +119,7 @@ dependencies = [ "pkg:generic/tachyon", "pkg:generic/sagemath-polytopes-db", "pkg:generic/sagemath-elliptic-curves", + "pkg:generic/sagemath-graphs", ] [dependency-groups] From c7beb901fb01dbd2da9c7e44553767b0df53020e Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 28 Oct 2024 22:55:32 +0800 Subject: [PATCH 5/6] readd comment --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 4d664f76d40..ba26126d0fe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -89,6 +89,8 @@ content-type = "text/markdown" platforms = [ 'osx-64', 'linux-64', 'linux-aarch64', 'osx-arm64' ] + +# External dependencies in the format proposed by https://peps.python.org/pep-0725 [external] build-requires = [ "virtual:compiler/c", From 320250bdbf1961063d345cd34465ea3a52352a4b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 3 Nov 2024 12:50:15 +0800 Subject: [PATCH 6/6] add ruff as lint dependency --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index ba26126d0fe..9840e43b7a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -168,6 +168,7 @@ docs = [ ] lint = [ "relint", + "ruff", "pycodestyle", "flake8-rst-docstrings", ]