Skip to content

Commit dfdd7da

Browse files
author
Release Manager
committed
gh-36765: Update to new conway-polynomials python package Fix #32747 by switching to the newly-minted [conway-polynomials package](https://pypi.org/project/conway-polynomials/0.7/) on pypi. IMO `sage.databases.conway` (which makes the dict immutable by wrapping it in a class) is of dubious value but I've left everything alone for now. URL: #36765 Reported by: Michael Orlitzky Reviewer(s): François Bissey, Matthias Köppe, Michael Orlitzky, Tobias Diez
2 parents 2ab6da5 + 1685d81 commit dfdd7da

16 files changed

+47
-96
lines changed
+19-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
1-
conway_polynomials: Tables of Conway polynomials over finite fields
2-
===================================================================
1+
conway_polynomials: Python interface to Frank Lübeck's Conway polynomial database
2+
=================================================================================
33

44
Description
55
-----------
66

7-
Frank Lübeck's tables of Conway polynomials over finite fields.
7+
This python module evolved from the old SageMath *conway_polynomials*
8+
package once hosted at,
89

9-
Upstream contact
10+
http://files.sagemath.org/spkg/upstream/conway_polynomials/
11+
12+
It's still maintained by Sage developers, but having a pip-installable
13+
interface to the data will make it easier to install SageMath via pip
14+
or another package manager.
15+
16+
17+
License
18+
-------
19+
20+
GPL version 3 or later
21+
22+
23+
Upstream Contact
1024
----------------
1125

12-
http://www.math.rwth-aachen.de/~Frank.Luebeck/data/ConwayPol/
26+
https://github.com/sagemath/conway-polynomials
+5-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
tarball=conway_polynomials-VERSION.tar.bz2
2-
sha1=d4d89bda60ac54e73121f84635e774766e19a8b6
3-
md5=a2725ba21f44554196781424d957f68a
4-
cksum=1387933493
1+
tarball=conway-polynomials-VERSION.tar.gz
2+
sha1=cf0904c184d7f947eaae0de1b0e2e47411e9cfda
3+
md5=ddc0e82da67120efc353a6ec29c4cca2
4+
cksum=2976854063
5+
upstream_url=https://files.pythonhosted.org/packages/source/c/conway-polynomials/conway-polynomials-VERSION.tar.gz
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
| $(PYTHON)
1+
| $(PYTHON_TOOLCHAIN) $(PYTHON)
22

33
----------
44
All lines of this file are ignored except the first.
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sagemath-db-conway-polynomials
1+
conway-polynomials
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dev-python/conway-polynomials
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
conway-polynomials >=0.8
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.5
1+
0.8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
SAGE_SPKG_CONFIGURE([conway_polynomials], [
2+
SAGE_PYTHON_PACKAGE_CHECK([conway_polynomials])
3+
])
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
exec python3 spkg-install.py
1+
cd src && sdh_pip_install .

build/pkgs/conway_polynomials/spkg-install.py

-20
This file was deleted.

src/sage/databases/all.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
EXAMPLES::
2424
2525
sage: ConwayPolynomials()
26-
Frank Luebeck's database of Conway polynomials
26+
Frank Lübeck's database of Conway polynomials
2727
2828
sage: CremonaDatabase()
2929
Cremona's database of elliptic curves with conductor...

src/sage/databases/conway.py

+7-17
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# -*- coding: utf-8 -*-
22
r"""
3-
Frank Luebeck's tables of Conway polynomials over finite fields
3+
Frank Lübeck's tables of Conway polynomials over finite fields
44
"""
55
# ****************************************************************************
66
#
@@ -15,12 +15,6 @@
1515
# https://www.gnu.org/licenses/
1616
# ****************************************************************************
1717
from collections.abc import Mapping
18-
import pickle
19-
20-
from sage.features.databases import DatabaseConwayPolynomials
21-
22-
_conwaydict = None
23-
2418

2519
class DictInMapping(Mapping):
2620
def __init__(self, dict):
@@ -95,14 +89,10 @@ def __init__(self):
9589
9690
sage: c = ConwayPolynomials()
9791
sage: c
98-
Frank Luebeck's database of Conway polynomials
92+
Frank Lübeck's database of Conway polynomials
9993
"""
100-
global _conwaydict
101-
if _conwaydict is None:
102-
_CONWAYDATA = DatabaseConwayPolynomials().absolute_filename()
103-
with open(_CONWAYDATA, 'rb') as f:
104-
_conwaydict = pickle.load(f)
105-
self._store = _conwaydict
94+
import conway_polynomials
95+
self._store = conway_polynomials.database()
10696

10797
def __repr__(self):
10898
"""
@@ -112,9 +102,9 @@ def __repr__(self):
112102
113103
sage: c = ConwayPolynomials()
114104
sage: c.__repr__()
115-
"Frank Luebeck's database of Conway polynomials"
105+
"Frank Lübeck's database of Conway polynomials"
116106
"""
117-
return "Frank Luebeck's database of Conway polynomials"
107+
return "Frank Lübeck's database of Conway polynomials"
118108

119109
def __getitem__(self, key):
120110
"""
@@ -152,7 +142,7 @@ def __len__(self):
152142
153143
sage: c = ConwayPolynomials()
154144
sage: len(c)
155-
35352
145+
35357
156146
"""
157147
try:
158148
return self._len

src/sage/env.py

-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,6 @@ def var(key: str, *fallbacks: Optional[str], force: bool = False) -> Optional[st
195195
SAGE_PKG_CONFIG_PATH = var("SAGE_PKG_CONFIG_PATH")
196196

197197
# installation directories for various packages
198-
CONWAY_POLYNOMIALS_DATA_DIR = var("CONWAY_POLYNOMIALS_DATA_DIR", join(SAGE_SHARE, "conway_polynomials"))
199198
GRAPHS_DATA_DIR = var("GRAPHS_DATA_DIR", join(SAGE_SHARE, "graphs"))
200199
ELLCURVE_DATA_DIR = var("ELLCURVE_DATA_DIR", join(SAGE_SHARE, "ellcurves"))
201200
POLYTOPE_DATA_DIR = var("POLYTOPE_DATA_DIR", join(SAGE_SHARE, "reflexive_polytopes"))

src/sage/features/__init__.py

+4-9
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,6 @@ def __repr__(self):
252252
sage: GapPackage("grape") # indirect doctest
253253
Feature('gap_package_grape')
254254
255-
sage: from sage.features.databases import DatabaseConwayPolynomials
256-
sage: DatabaseConwayPolynomials() # indirect doctest
257-
Feature('conway_polynomials': Frank Luebeck's database of Conway polynomials)
258255
"""
259256
description = f'{self.name!r}: {self.description}' if self.description else f'{self.name!r}'
260257
return f'Feature({description})'
@@ -342,11 +339,10 @@ def is_standard(self):
342339
343340
EXAMPLES::
344341
345-
sage: from sage.features.databases import DatabaseCremona, DatabaseConwayPolynomials
342+
sage: from sage.features.databases import DatabaseCremona
346343
sage: DatabaseCremona().is_standard()
347344
False
348-
sage: DatabaseConwayPolynomials().is_standard()
349-
True
345+
350346
"""
351347
if self.name.startswith('sage.'):
352348
return True
@@ -358,11 +354,10 @@ def is_optional(self):
358354
359355
EXAMPLES::
360356
361-
sage: from sage.features.databases import DatabaseCremona, DatabaseConwayPolynomials
357+
sage: from sage.features.databases import DatabaseCremona
362358
sage: DatabaseCremona().is_optional()
363359
True
364-
sage: DatabaseConwayPolynomials().is_optional()
365-
False
360+
366361
"""
367362
return self._spkg_type() == 'optional'
368363

src/sage/features/databases.py

+1-35
Original file line numberDiff line numberDiff line change
@@ -19,43 +19,10 @@
1919

2020
from . import StaticFile, PythonModule
2121
from sage.env import (
22-
CONWAY_POLYNOMIALS_DATA_DIR,
2322
CREMONA_MINI_DATA_DIR, CREMONA_LARGE_DATA_DIR,
2423
POLYTOPE_DATA_DIR)
2524

2625

27-
class DatabaseConwayPolynomials(StaticFile):
28-
r"""
29-
A :class:`~sage.features.Feature` which describes the presence of :ref:`Frank Luebeck's
30-
database of Conway polynomials <spkg_conway_polynomials>`.
31-
32-
EXAMPLES::
33-
34-
sage: from sage.features.databases import DatabaseConwayPolynomials
35-
sage: DatabaseConwayPolynomials().is_present()
36-
FeatureTestResult('conway_polynomials', True)
37-
"""
38-
39-
def __init__(self):
40-
r"""
41-
TESTS::
42-
43-
sage: from sage.features.databases import DatabaseConwayPolynomials
44-
sage: isinstance(DatabaseConwayPolynomials(), DatabaseConwayPolynomials)
45-
True
46-
"""
47-
if CONWAY_POLYNOMIALS_DATA_DIR:
48-
search_path = [CONWAY_POLYNOMIALS_DATA_DIR]
49-
else:
50-
search_path = []
51-
StaticFile.__init__(self, "conway_polynomials",
52-
filename='conway_polynomials.p',
53-
search_path=search_path,
54-
spkg='conway_polynomials',
55-
description="Frank Luebeck's database of Conway polynomials",
56-
type='standard')
57-
58-
5926
CREMONA_DATA_DIRS = set([CREMONA_MINI_DATA_DIR, CREMONA_LARGE_DATA_DIR])
6027

6128

@@ -197,8 +164,7 @@ def __init__(self, name='polytopes_db', dirname='Full3D'):
197164

198165

199166
def all_features():
200-
return [DatabaseConwayPolynomials(),
201-
DatabaseCremona(), DatabaseCremona('cremona_mini'),
167+
return [DatabaseCremona(), DatabaseCremona('cremona_mini'),
202168
DatabaseJones(),
203169
DatabaseKnotInfo(),
204170
DatabaseCubicHecke(),

src/setup.cfg.m4

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ install_requires =
1414
SPKG_INSTALL_REQUIRES_sage_conf
1515
SPKG_INSTALL_REQUIRES_six
1616
dnl From build/pkgs/sagelib/dependencies
17+
SPKG_INSTALL_REQUIRES_conway_polynomials
1718
SPKG_INSTALL_REQUIRES_cypari
1819
SPKG_INSTALL_REQUIRES_cysignals
1920
SPKG_INSTALL_REQUIRES_cython

0 commit comments

Comments
 (0)