Skip to content

Minor modernization by removing outdated workarounds #40262

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 8 additions & 16 deletions src/sage/misc/cython.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,14 @@
import builtins
import os
import re
import sys
import shutil
import sys
import webbrowser
from pathlib import Path

from sage.env import (SAGE_LOCAL, cython_aliases,
sage_include_directories)
from sage.env import SAGE_LOCAL, cython_aliases, sage_include_directories
from sage.misc.cachefunc import cached_function
from sage.misc.sage_ostools import restore_cwd, redirection
from sage.misc.sage_ostools import redirection, restore_cwd
from sage.misc.temporary_file import spyx_tmp, tmp_filename
from sage.repl.user_globals import get_globals

Expand Down Expand Up @@ -355,20 +354,13 @@ def cython(filename, verbose=0, compile_message=False,
includes = [os.getcwd()] + standard_includes

# Now do the actual build, directly calling Cython and distutils
from distutils.log import set_verbosity

import Cython.Compiler.Options
from Cython.Build import cythonize
from Cython.Compiler.Errors import CompileError
import Cython.Compiler.Options

try:
from setuptools.dist import Distribution
from setuptools.extension import Extension
except ImportError:
# Fall back to distutils (stdlib); note that it is deprecated
# in Python 3.10, 3.11; https://www.python.org/dev/peps/pep-0632/
from distutils.dist import Distribution
from distutils.core import Extension
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is the user guaranteed to have setuptools installed? (If no why is this fallback in place in the first place?)


from distutils.log import set_verbosity
from setuptools.dist import Distribution
from setuptools.extension import Extension
set_verbosity(verbose)

Cython.Compiler.Options.annotate = annotate
Expand Down
45 changes: 27 additions & 18 deletions src/sage/quadratic_forms/genera/genus.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,22 @@
#
# https://www.gnu.org/licenses/
# ****************************************************************************
from pathlib import Path
from copy import copy, deepcopy
from pathlib import Path

from sage.misc.lazy_import import lazy_import
from sage.misc.misc_c import prod
from sage.misc.cachefunc import cached_method
from sage.arith.functions import lcm as LCM
from sage.arith.misc import fundamental_discriminant
from sage.matrix.matrix_space import MatrixSpace
from sage.matrix.constructor import matrix
from sage.rings.integer_ring import ZZ
from sage.rings.rational_field import QQ
from sage.rings.integer import Integer
from sage.matrix.matrix_space import MatrixSpace
from sage.misc.cachefunc import cached_method
from sage.misc.lazy_import import lazy_import
from sage.misc.misc_c import prod
from sage.misc.verbose import verbose
from sage.quadratic_forms.special_values import quadratic_L_function__exact
from sage.rings.integer import Integer
from sage.rings.integer_ring import ZZ
from sage.rings.rational_field import QQ

lazy_import('sage.quadratic_forms.genera.normal_form', '_min_nonsquare')
lazy_import('sage.interfaces.magma', 'magma')

Expand Down Expand Up @@ -120,8 +121,7 @@
return genera


# #35557: In Python < 3.10, a staticmethod cannot be called directly
_genera_staticmethod = staticmethod(genera)
genera = staticmethod(genera)


def _local_genera(p, rank, det_val, max_scale, even):
Expand Down Expand Up @@ -172,8 +172,8 @@
Genus symbol at 5: 5^-2,
Genus symbol at 5: 5^2]
"""
from sage.misc.mrange import cantor_product
from sage.combinat.integer_lists.invlex import IntegerListsLex
from sage.misc.mrange import cantor_product
scales_rks = [] # contains possibilities for scales and ranks
for rkseq in IntegerListsLex(rank, length=max_scale + 1): # rank sequences
# sum(rkseq) = rank
Expand Down Expand Up @@ -2871,8 +2871,10 @@
[0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 0 2]
"""
from sage.quadratic_forms.quadratic_form import QuadraticForm
from sage.quadratic_forms.quadratic_form import quadratic_form_from_invariants
from sage.quadratic_forms.quadratic_form import (
QuadraticForm,
quadratic_form_from_invariants,
)
sminus = self.signature_pair_of_matrix()[1]
det = self.determinant()
m = self.rank()
Expand Down Expand Up @@ -2907,7 +2909,10 @@
....: G = genera((2,2), det, even=False)
....: assert all(g==Genus(g.representative()) for g in G)
"""
from sage.modules.free_quadratic_module_integer_symmetric import IntegralLattice, local_modification
from sage.modules.free_quadratic_module_integer_symmetric import (
IntegralLattice,
local_modification,
)
q = self.rational_representative()
# the associated quadratic form xGx.T/2 should be integral
L = IntegralLattice(4 * q).maximal_overlattice()
Expand Down Expand Up @@ -3059,15 +3064,19 @@
if self.signature_pair()[0] == 0:
e = ZZ(-1)
d = - 4 * self.determinant()
from sage.quadratic_forms.binary_qf import BinaryQF_reduced_representatives
from sage.quadratic_forms.binary_qf import (

Check warning on line 3067 in src/sage/quadratic_forms/genera/genus.py

View check run for this annotation

Codecov / codecov/patch

src/sage/quadratic_forms/genera/genus.py#L3067

Added line #L3067 was not covered by tests
BinaryQF_reduced_representatives,
)
for q in BinaryQF_reduced_representatives(d, proper=False):
if q[1] % 2 == 0: # we want integrality of the gram matrix
m = e*matrix(ZZ, 2, [q[0], q[1] // 2, q[1] // 2, q[2]])
if Genus(m) == self:
representatives.append(m)
if n > 2:
from sage.quadratic_forms.quadratic_form import QuadraticForm
from sage.quadratic_forms.quadratic_form__neighbors import neighbor_iteration
from sage.quadratic_forms.quadratic_form__neighbors import (
neighbor_iteration,
)
e = ZZ.one()
if not self.is_even():
e = ZZ(2)
Expand Down Expand Up @@ -3152,10 +3161,10 @@
sage: GS._standard_mass() # needs sage.symbolic
1/48
"""
from sage.functions.gamma import gamma
from sage.functions.transcendental import zeta
from sage.symbolic.constants import pi
from sage.symbolic.ring import SR
from sage.functions.transcendental import zeta
from sage.functions.gamma import gamma
n = self.dimension()
if n % 2 == 0:
s = n // 2
Expand Down
Loading
Loading