From fc3e7888f53b923a107e6fb63db706eb574e773d Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 06:59:31 -0500 Subject: [PATCH 01/13] build/pkgs/conway_polynomials: update to v0.7 --- build/pkgs/conway_polynomials/SPKG.rst | 22 +++++++++++++++---- build/pkgs/conway_polynomials/checksums.ini | 9 ++++---- .../conway_polynomials/distros/gentoo.txt | 1 + .../conway_polynomials/install-requires.txt | 1 + .../conway_polynomials/package-version.txt | 2 +- .../pkgs/conway_polynomials/spkg-configure.m4 | 3 +++ build/pkgs/conway_polynomials/spkg-install.in | 2 +- build/pkgs/conway_polynomials/spkg-install.py | 20 ----------------- 8 files changed, 30 insertions(+), 30 deletions(-) create mode 100644 build/pkgs/conway_polynomials/distros/gentoo.txt create mode 100644 build/pkgs/conway_polynomials/install-requires.txt create mode 100644 build/pkgs/conway_polynomials/spkg-configure.m4 delete mode 100644 build/pkgs/conway_polynomials/spkg-install.py diff --git a/build/pkgs/conway_polynomials/SPKG.rst b/build/pkgs/conway_polynomials/SPKG.rst index 64a5bad04df..f282bea1e02 100644 --- a/build/pkgs/conway_polynomials/SPKG.rst +++ b/build/pkgs/conway_polynomials/SPKG.rst @@ -1,12 +1,26 @@ -conway_polynomials: Tables of Conway polynomials over finite fields +Python interface to Frank Lübeck's Conway polynomial database =================================================================== Description ----------- -Frank Lübeck's tables of Conway polynomials over finite fields. +This python module evolved from the old SageMath *conway_polynomials* +package once hosted at, -Upstream contact + http://files.sagemath.org/spkg/upstream/conway_polynomials/ + +It's still maintained by Sage developers, but having a pip-installable +interface to the data will make it easier to install SageMath via pip +or another package manager. + + +License +------- + +GPL version 3 or later + + +Upstream Contact ---------------- -http://www.math.rwth-aachen.de/~Frank.Luebeck/data/ConwayPol/ +https://github.com/sagemath/conway-polynomials diff --git a/build/pkgs/conway_polynomials/checksums.ini b/build/pkgs/conway_polynomials/checksums.ini index cedb5575263..ddceaaa769d 100644 --- a/build/pkgs/conway_polynomials/checksums.ini +++ b/build/pkgs/conway_polynomials/checksums.ini @@ -1,4 +1,5 @@ -tarball=conway_polynomials-VERSION.tar.bz2 -sha1=d4d89bda60ac54e73121f84635e774766e19a8b6 -md5=a2725ba21f44554196781424d957f68a -cksum=1387933493 +tarball=conway-polynomials-VERSION.tar.gz +sha1=a822baa014c68ab44f654d8a88b2ea81436a26ef +md5=779cfaad6fc4413fa5b4d5a17e5e9ceb +cksum=634397699 +upstream_url=https://files.pythonhosted.org/packages/source/c/conway-polynomials/conway-polynomials-VERSION.tar.gz diff --git a/build/pkgs/conway_polynomials/distros/gentoo.txt b/build/pkgs/conway_polynomials/distros/gentoo.txt new file mode 100644 index 00000000000..28b8f1b864b --- /dev/null +++ b/build/pkgs/conway_polynomials/distros/gentoo.txt @@ -0,0 +1 @@ +dev-python/conway-polynomials diff --git a/build/pkgs/conway_polynomials/install-requires.txt b/build/pkgs/conway_polynomials/install-requires.txt new file mode 100644 index 00000000000..9f6ba0d94af --- /dev/null +++ b/build/pkgs/conway_polynomials/install-requires.txt @@ -0,0 +1 @@ +conway-polynomials >=0.7 diff --git a/build/pkgs/conway_polynomials/package-version.txt b/build/pkgs/conway_polynomials/package-version.txt index 2eb3c4fe4ee..eb49d7c7fdc 100644 --- a/build/pkgs/conway_polynomials/package-version.txt +++ b/build/pkgs/conway_polynomials/package-version.txt @@ -1 +1 @@ -0.5 +0.7 diff --git a/build/pkgs/conway_polynomials/spkg-configure.m4 b/build/pkgs/conway_polynomials/spkg-configure.m4 new file mode 100644 index 00000000000..f55f76cbe05 --- /dev/null +++ b/build/pkgs/conway_polynomials/spkg-configure.m4 @@ -0,0 +1,3 @@ +SAGE_SPKG_CONFIGURE([conway_polynomials], [ + SAGE_PYTHON_PACKAGE_CHECK([conway_polynomials]) +]) diff --git a/build/pkgs/conway_polynomials/spkg-install.in b/build/pkgs/conway_polynomials/spkg-install.in index a917196c0c4..deba1bb42bb 100644 --- a/build/pkgs/conway_polynomials/spkg-install.in +++ b/build/pkgs/conway_polynomials/spkg-install.in @@ -1 +1 @@ -exec python3 spkg-install.py +cd src && sdh_pip_install . diff --git a/build/pkgs/conway_polynomials/spkg-install.py b/build/pkgs/conway_polynomials/spkg-install.py deleted file mode 100644 index cb192719d63..00000000000 --- a/build/pkgs/conway_polynomials/spkg-install.py +++ /dev/null @@ -1,20 +0,0 @@ -import os -import pickle - -SAGE_SHARE = os.getenv('SAGE_SHARE') -install_root = os.path.join(SAGE_SHARE, 'conway_polynomials') - -def create_db(): - db = {} - from src import conway_polynomials - for p, n, v in conway_polynomials: - if not p in db: - db[p] = {} - db[p][n] = v - if not os.path.exists(install_root): - os.makedirs(install_root) - with open(os.path.join(install_root, 'conway_polynomials.p'), 'wb') as f: - pickle.dump(db, f) - -if __name__ == '__main__': - create_db() From 90decf7b49ee48c1dc2247cdd6e0021d5c121e38 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 07:15:49 -0500 Subject: [PATCH 02/13] src/sage/databases/conway.py: update for conway-polynomials-0.7 --- src/sage/databases/conway.py | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/sage/databases/conway.py b/src/sage/databases/conway.py index 600c5a7c1ff..dc4fc94bbb4 100644 --- a/src/sage/databases/conway.py +++ b/src/sage/databases/conway.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- r""" -Frank Luebeck's tables of Conway polynomials over finite fields +Frank Lübeck's tables of Conway polynomials over finite fields """ # **************************************************************************** # @@ -15,13 +15,9 @@ # https://www.gnu.org/licenses/ # **************************************************************************** from collections.abc import Mapping -import pickle from sage.features.databases import DatabaseConwayPolynomials -_conwaydict = None - - class DictInMapping(Mapping): def __init__(self, dict): """ @@ -95,14 +91,10 @@ def __init__(self): sage: c = ConwayPolynomials() sage: c - Frank Luebeck's database of Conway polynomials + Frank Lübeck's database of Conway polynomials """ - global _conwaydict - if _conwaydict is None: - _CONWAYDATA = DatabaseConwayPolynomials().absolute_filename() - with open(_CONWAYDATA, 'rb') as f: - _conwaydict = pickle.load(f) - self._store = _conwaydict + import conway_polynomials + self._store = conway_polynomials.database() def __repr__(self): """ @@ -112,9 +104,9 @@ def __repr__(self): sage: c = ConwayPolynomials() sage: c.__repr__() - "Frank Luebeck's database of Conway polynomials" + "Frank Lübeck's database of Conway polynomials" """ - return "Frank Luebeck's database of Conway polynomials" + return "Frank Lübeck's database of Conway polynomials" def __getitem__(self, key): """ @@ -152,7 +144,7 @@ def __len__(self): sage: c = ConwayPolynomials() sage: len(c) - 35352 + 35357 """ try: return self._len From bdf36ab2325797004c887e61504a466e499d2178 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 07:22:11 -0500 Subject: [PATCH 03/13] src/sage/features/databases.py: update for conway-polynomials-0.7 --- src/sage/features/databases.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/sage/features/databases.py b/src/sage/features/databases.py index f9b297b1e30..3e8acf46759 100644 --- a/src/sage/features/databases.py +++ b/src/sage/features/databases.py @@ -19,15 +19,15 @@ from . import StaticFile, PythonModule from sage.env import ( - CONWAY_POLYNOMIALS_DATA_DIR, CREMONA_MINI_DATA_DIR, CREMONA_LARGE_DATA_DIR, POLYTOPE_DATA_DIR) -class DatabaseConwayPolynomials(StaticFile): +class DatabaseConwayPolynomials(PythonModule): r""" - A :class:`~sage.features.Feature` which describes the presence of :ref:`Frank Luebeck's - database of Conway polynomials `. + A :class:`~sage.features.Feature` which describes the presence of + :ref:`Frank Lübeck's database of Conway polynomials + `. EXAMPLES:: @@ -44,16 +44,13 @@ def __init__(self): sage: isinstance(DatabaseConwayPolynomials(), DatabaseConwayPolynomials) True """ - if CONWAY_POLYNOMIALS_DATA_DIR: - search_path = [CONWAY_POLYNOMIALS_DATA_DIR] - else: - search_path = [] - StaticFile.__init__(self, "conway_polynomials", - filename='conway_polynomials.p', - search_path=search_path, - spkg='conway_polynomials', - description="Frank Luebeck's database of Conway polynomials", - type='standard') + PythonModule.__init__( + self, + "conway_polynomials", + spkg='conway_polynomials', + description="Frank Lübeck's database of Conway polynomials", + type="standard" + ) CREMONA_DATA_DIRS = set([CREMONA_MINI_DATA_DIR, CREMONA_LARGE_DATA_DIR]) From b801eaaec6e5c626b726faa62d85cd8abf2aab74 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 08:01:36 -0500 Subject: [PATCH 04/13] src/sage/env.py: drop obsolete CONWAY_POLYNOMIALS_DATA_DIR There's now a python package providing a standard interface to this data. --- src/sage/env.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sage/env.py b/src/sage/env.py index 4515e90e912..16de5bd0bb7 100644 --- a/src/sage/env.py +++ b/src/sage/env.py @@ -195,7 +195,6 @@ def var(key: str, *fallbacks: Optional[str], force: bool = False) -> Optional[st SAGE_PKG_CONFIG_PATH = var("SAGE_PKG_CONFIG_PATH") # installation directories for various packages -CONWAY_POLYNOMIALS_DATA_DIR = var("CONWAY_POLYNOMIALS_DATA_DIR", join(SAGE_SHARE, "conway_polynomials")) GRAPHS_DATA_DIR = var("GRAPHS_DATA_DIR", join(SAGE_SHARE, "graphs")) ELLCURVE_DATA_DIR = var("ELLCURVE_DATA_DIR", join(SAGE_SHARE, "ellcurves")) POLYTOPE_DATA_DIR = var("POLYTOPE_DATA_DIR", join(SAGE_SHARE, "reflexive_polytopes")) From 48d6e9c69108525667fc3d9584d8cc425d0b7b4b Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 16:27:33 -0500 Subject: [PATCH 05/13] build/pkgs/conway_polynomials/SPKG.rst: fix header Add back the "conway_polynomials: " prefix in the header to fix the package's inclusion into the TOC. --- build/pkgs/conway_polynomials/SPKG.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/pkgs/conway_polynomials/SPKG.rst b/build/pkgs/conway_polynomials/SPKG.rst index f282bea1e02..f5755f505d3 100644 --- a/build/pkgs/conway_polynomials/SPKG.rst +++ b/build/pkgs/conway_polynomials/SPKG.rst @@ -1,5 +1,5 @@ -Python interface to Frank Lübeck's Conway polynomial database -=================================================================== +conway_polynomials: Python interface to Frank Lübeck's Conway polynomial database +================================================================================= Description ----------- From 4b45b63375a4c242bde8ec64dc8e1442772a2bbe Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 16:32:37 -0500 Subject: [PATCH 06/13] build/pkgs/conway_polynomials/dependencies: add $(PYTHON_TOOLCHAIN) --- build/pkgs/conway_polynomials/dependencies | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/conway_polynomials/dependencies b/build/pkgs/conway_polynomials/dependencies index 6b134137610..78d6ec8d5a7 100644 --- a/build/pkgs/conway_polynomials/dependencies +++ b/build/pkgs/conway_polynomials/dependencies @@ -1,4 +1,4 @@ -| $(PYTHON) +| $(PYTHON_TOOLCHAIN) $(PYTHON) ---------- All lines of this file are ignored except the first. From a76e0fdda13881ae91749c16b99986b71f81af99 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 19:46:39 -0500 Subject: [PATCH 07/13] =?UTF-8?q?src/sage/databases/all.py:=20Luebeck=20->?= =?UTF-8?q?=20L=C3=BCbeck=20to=20match=20conway.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes a failing doctest describing the database. --- src/sage/databases/all.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/databases/all.py b/src/sage/databases/all.py index 8f0daa2aac7..a6571c7a5df 100644 --- a/src/sage/databases/all.py +++ b/src/sage/databases/all.py @@ -23,7 +23,7 @@ EXAMPLES:: sage: ConwayPolynomials() - Frank Luebeck's database of Conway polynomials + Frank Lübeck's database of Conway polynomials sage: CremonaDatabase() Cremona's database of elliptic curves with conductor... From bb55f5ee87347756fe15c2f5db8eba5ab703fdcc Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 19:47:26 -0500 Subject: [PATCH 08/13] =?UTF-8?q?src/sage/features/=5F=5Finit=5F=5F.py:=20?= =?UTF-8?q?Luebeck=20->=20L=C3=BCbeck=20to=20match=20databases.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes a failing doctest for the description of the Conway polynomials database. --- src/sage/features/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/features/__init__.py b/src/sage/features/__init__.py index cabd63a1a24..796496d07b5 100644 --- a/src/sage/features/__init__.py +++ b/src/sage/features/__init__.py @@ -254,7 +254,7 @@ def __repr__(self): sage: from sage.features.databases import DatabaseConwayPolynomials sage: DatabaseConwayPolynomials() # indirect doctest - Feature('conway_polynomials': Frank Luebeck's database of Conway polynomials) + Feature('conway_polynomials': Frank Lübeck's database of Conway polynomials) """ description = f'{self.name!r}: {self.description}' if self.description else f'{self.name!r}' return f'Feature({description})' From c5795080f040e54fb617b9cddefb13df3d91e7ba Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 22:48:12 -0500 Subject: [PATCH 09/13] src/setup.cfg.m4: pull in conway_polynomial's install-requires as deps conway_polynomials is a python package now and can be depended upon via the python tooling. --- src/setup.cfg.m4 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/setup.cfg.m4 b/src/setup.cfg.m4 index 41ac1c08bfa..7a5bfb61c26 100644 --- a/src/setup.cfg.m4 +++ b/src/setup.cfg.m4 @@ -14,6 +14,7 @@ install_requires = SPKG_INSTALL_REQUIRES_sage_conf SPKG_INSTALL_REQUIRES_six dnl From build/pkgs/sagelib/dependencies + SPKG_INSTALL_REQUIRES_conway_polynomials SPKG_INSTALL_REQUIRES_cypari SPKG_INSTALL_REQUIRES_cysignals SPKG_INSTALL_REQUIRES_cython From a2ab364cbc052e144140c9317035b4257fc3180c Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 24 Nov 2023 22:51:46 -0500 Subject: [PATCH 10/13] src/sage/features: forego detection of conway_polynomials The conway_polynomials package is now a standard python dependency of sagelib and does not need to be detected at runtime. --- src/sage/features/__init__.py | 13 ++++--------- src/sage/features/databases.py | 33 +-------------------------------- 2 files changed, 5 insertions(+), 41 deletions(-) diff --git a/src/sage/features/__init__.py b/src/sage/features/__init__.py index 796496d07b5..be55d44d0c2 100644 --- a/src/sage/features/__init__.py +++ b/src/sage/features/__init__.py @@ -252,9 +252,6 @@ def __repr__(self): sage: GapPackage("grape") # indirect doctest Feature('gap_package_grape') - sage: from sage.features.databases import DatabaseConwayPolynomials - sage: DatabaseConwayPolynomials() # indirect doctest - Feature('conway_polynomials': Frank Lübeck's database of Conway polynomials) """ description = f'{self.name!r}: {self.description}' if self.description else f'{self.name!r}' return f'Feature({description})' @@ -342,11 +339,10 @@ def is_standard(self): EXAMPLES:: - sage: from sage.features.databases import DatabaseCremona, DatabaseConwayPolynomials + sage: from sage.features.databases import DatabaseCremona sage: DatabaseCremona().is_standard() False - sage: DatabaseConwayPolynomials().is_standard() - True + """ if self.name.startswith('sage.'): return True @@ -358,11 +354,10 @@ def is_optional(self): EXAMPLES:: - sage: from sage.features.databases import DatabaseCremona, DatabaseConwayPolynomials + sage: from sage.features.databases import DatabaseCremona sage: DatabaseCremona().is_optional() True - sage: DatabaseConwayPolynomials().is_optional() - False + """ return self._spkg_type() == 'optional' diff --git a/src/sage/features/databases.py b/src/sage/features/databases.py index 3e8acf46759..bca8c094b30 100644 --- a/src/sage/features/databases.py +++ b/src/sage/features/databases.py @@ -23,36 +23,6 @@ POLYTOPE_DATA_DIR) -class DatabaseConwayPolynomials(PythonModule): - r""" - A :class:`~sage.features.Feature` which describes the presence of - :ref:`Frank Lübeck's database of Conway polynomials - `. - - EXAMPLES:: - - sage: from sage.features.databases import DatabaseConwayPolynomials - sage: DatabaseConwayPolynomials().is_present() - FeatureTestResult('conway_polynomials', True) - """ - - def __init__(self): - r""" - TESTS:: - - sage: from sage.features.databases import DatabaseConwayPolynomials - sage: isinstance(DatabaseConwayPolynomials(), DatabaseConwayPolynomials) - True - """ - PythonModule.__init__( - self, - "conway_polynomials", - spkg='conway_polynomials', - description="Frank Lübeck's database of Conway polynomials", - type="standard" - ) - - CREMONA_DATA_DIRS = set([CREMONA_MINI_DATA_DIR, CREMONA_LARGE_DATA_DIR]) @@ -194,8 +164,7 @@ def __init__(self, name='polytopes_db', dirname='Full3D'): def all_features(): - return [DatabaseConwayPolynomials(), - DatabaseCremona(), DatabaseCremona('cremona_mini'), + return [DatabaseCremona(), DatabaseCremona('cremona_mini'), DatabaseJones(), DatabaseKnotInfo(), DatabaseCubicHecke(), From c0dc661b701483338a6a09c9641f31afd9fa19d5 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sat, 25 Nov 2023 07:35:03 -0500 Subject: [PATCH 11/13] src/sage/databases/conway.py: drop DatabaseConwayPolynomials import The feature detection for Conway polynomials was removed; they're always installed via a python package now. --- src/sage/databases/conway.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/sage/databases/conway.py b/src/sage/databases/conway.py index dc4fc94bbb4..b1f76292ce8 100644 --- a/src/sage/databases/conway.py +++ b/src/sage/databases/conway.py @@ -16,8 +16,6 @@ # **************************************************************************** from collections.abc import Mapping -from sage.features.databases import DatabaseConwayPolynomials - class DictInMapping(Mapping): def __init__(self, dict): """ From e6af986b030e8108cdb1206ebda18128bc6676ee Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Mon, 27 Nov 2023 13:09:30 +0000 Subject: [PATCH 12/13] conda now has this package independently of Sage --- build/pkgs/conway_polynomials/distros/conda.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/conway_polynomials/distros/conda.txt b/build/pkgs/conway_polynomials/distros/conda.txt index a8228a35e86..3283bb6c3ee 100644 --- a/build/pkgs/conway_polynomials/distros/conda.txt +++ b/build/pkgs/conway_polynomials/distros/conda.txt @@ -1 +1 @@ -sagemath-db-conway-polynomials +conway-polynomials From 1685d81026d60a794199f0fc9408434092c7827f Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 28 Nov 2023 09:25:31 -0500 Subject: [PATCH 13/13] build/pkgs/conway_polynomials: update to v0.8 --- build/pkgs/conway_polynomials/checksums.ini | 6 +++--- build/pkgs/conway_polynomials/install-requires.txt | 2 +- build/pkgs/conway_polynomials/package-version.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build/pkgs/conway_polynomials/checksums.ini b/build/pkgs/conway_polynomials/checksums.ini index ddceaaa769d..eeb24706c7d 100644 --- a/build/pkgs/conway_polynomials/checksums.ini +++ b/build/pkgs/conway_polynomials/checksums.ini @@ -1,5 +1,5 @@ tarball=conway-polynomials-VERSION.tar.gz -sha1=a822baa014c68ab44f654d8a88b2ea81436a26ef -md5=779cfaad6fc4413fa5b4d5a17e5e9ceb -cksum=634397699 +sha1=cf0904c184d7f947eaae0de1b0e2e47411e9cfda +md5=ddc0e82da67120efc353a6ec29c4cca2 +cksum=2976854063 upstream_url=https://files.pythonhosted.org/packages/source/c/conway-polynomials/conway-polynomials-VERSION.tar.gz diff --git a/build/pkgs/conway_polynomials/install-requires.txt b/build/pkgs/conway_polynomials/install-requires.txt index 9f6ba0d94af..308e934cef1 100644 --- a/build/pkgs/conway_polynomials/install-requires.txt +++ b/build/pkgs/conway_polynomials/install-requires.txt @@ -1 +1 @@ -conway-polynomials >=0.7 +conway-polynomials >=0.8 diff --git a/build/pkgs/conway_polynomials/package-version.txt b/build/pkgs/conway_polynomials/package-version.txt index eb49d7c7fdc..aec258df73d 100644 --- a/build/pkgs/conway_polynomials/package-version.txt +++ b/build/pkgs/conway_polynomials/package-version.txt @@ -1 +1 @@ -0.7 +0.8