From 26df548f9711f65082860777eac971577075806e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 26 Oct 2021 14:49:43 -0700 Subject: [PATCH 1/5] src/sage/rings/number_field/number_field_base.pyx: Handle failing import of AA, RLF --- src/sage/rings/number_field/number_field_base.pyx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/sage/rings/number_field/number_field_base.pyx b/src/sage/rings/number_field/number_field_base.pyx index ce59b8fae3e..26d09cf9ed3 100644 --- a/src/sage/rings/number_field/number_field_base.pyx +++ b/src/sage/rings/number_field/number_field_base.pyx @@ -361,8 +361,16 @@ cdef class NumberField(Field): if self._gen_approx is not None or self._embedding is None: return - from sage.rings.qqbar import AA - from sage.rings.real_lazy import RLF + try: + from sage.rings.qqbar import AA + except ImportError: + AA = None + + try: + from sage.rings.real_lazy import RLF + except ImportError: + RLF = None + codomain = self._embedding.codomain() if codomain is AA or codomain is RLF: self._gen_approx = [] From 054a8a611199bc864860a50c7d61efdf72208aff Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 26 Oct 2021 14:50:14 -0700 Subject: [PATCH 2/5] src/sage/rings/real_double.pyx: Handle failing import of RLF, RR --- src/sage/rings/real_double.pyx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/sage/rings/real_double.pyx b/src/sage/rings/real_double.pyx index 9fc00418b7d..0138121769d 100644 --- a/src/sage/rings/real_double.pyx +++ b/src/sage/rings/real_double.pyx @@ -356,7 +356,11 @@ cdef class RealDoubleField_class(sage.rings.abc.RealDoubleField): return ToRDF(S) from .rational_field import QQ - from .real_lazy import RLF + try: + from .real_lazy import RLF + except ImportError: + RLF = None + if S is ZZ or S is QQ or S is RLF: return ToRDF(S) @@ -372,10 +376,14 @@ cdef class RealDoubleField_class(sage.rings.abc.RealDoubleField): else: return None - from .real_mpfr import RR - connecting = RR._internal_coerce_map_from(S) - if connecting is not None: - return ToRDF(RR) * connecting + try: + from .real_mpfr import RR + except ImportError: + pass + else: + connecting = RR._internal_coerce_map_from(S) + if connecting is not None: + return ToRDF(RR) * connecting def _magma_init_(self, magma): r""" From 5ff97b151dc19506924b2bcda566187af17d1b35 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 26 Oct 2021 14:54:41 -0700 Subject: [PATCH 3/5] src/sage/schemes/plane_conics/con_number_field.py: Move imports of RLF, AA into methods --- src/sage/schemes/plane_conics/con_number_field.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sage/schemes/plane_conics/con_number_field.py b/src/sage/schemes/plane_conics/con_number_field.py index fdd9e2c02ad..f055ceb8ebd 100644 --- a/src/sage/schemes/plane_conics/con_number_field.py +++ b/src/sage/schemes/plane_conics/con_number_field.py @@ -21,8 +21,8 @@ # https://www.gnu.org/licenses/ # **************************************************************************** -from sage.rings.all import (AA, RLF, PolynomialRing) from sage.rings.rational_field import is_RationalField +from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from .con_field import ProjectiveConic_field @@ -343,6 +343,9 @@ def is_locally_solvable(self, p): if self._local_obstruction is None: from sage.categories.map import Map from sage.categories.all import Rings + from sage.rings.qqbar import AA + from sage.rings.real_lazy import RLF + if not (isinstance(p, Map) and p.category_for().is_subcategory(Rings())) or p.codomain() is AA or p.codomain() is RLF: self._local_obstruction = p return False @@ -387,6 +390,7 @@ def local_obstructions(self, finite=True, infinite=True, read_cache=True): if read_cache and self._infinite_obstructions is not None: obs0 = self._infinite_obstructions else: + from sage.rings.qqbar import AA for b in B.embeddings(AA): if not self.is_locally_solvable(b): obs0.append(b) From 35cdcffd4d6ac6350b8860e16b12a21335b83434 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 3 Nov 2021 22:48:06 -0700 Subject: [PATCH 4/5] src/sage/groups/misc_gps/argument_groups.py: Remove unused imports --- src/sage/groups/misc_gps/argument_groups.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/sage/groups/misc_gps/argument_groups.py b/src/sage/groups/misc_gps/argument_groups.py index 199a6a3f678..708d06c6998 100644 --- a/src/sage/groups/misc_gps/argument_groups.py +++ b/src/sage/groups/misc_gps/argument_groups.py @@ -1825,16 +1825,10 @@ def create_key_and_extra_args(self, sage: ArgumentGroup('Arg_CC') is ArgumentGroup(domain=CC) # indirect doctest True """ - from sage.rings.complex_arb import ComplexBallField - from sage.rings.complex_mpfr import ComplexField_class - from sage.rings.complex_interval_field import ComplexIntervalField_class from sage.rings.integer_ring import ZZ from sage.misc.misc import exactly_one_is_true from sage.rings.qqbar import AA from sage.rings.rational_field import QQ - from sage.rings.real_arb import RealBallField - from sage.rings.real_mpfr import RealField_class - from sage.rings.real_mpfi import RealIntervalField_class if not exactly_one_is_true( (data is not None, From 59b67d3625fc72ac7db0b83cf8465cb7c4255c56 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 3 Nov 2021 22:50:12 -0700 Subject: [PATCH 5/5] src/sage/schemes/projective/projective_morphism.py: Remove unused imports --- src/sage/schemes/projective/projective_morphism.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/sage/schemes/projective/projective_morphism.py b/src/sage/schemes/projective/projective_morphism.py index 7d72d6dcf4c..08873f92600 100644 --- a/src/sage/schemes/projective/projective_morphism.py +++ b/src/sage/schemes/projective/projective_morphism.py @@ -77,8 +77,6 @@ import sage.rings.abc from sage.rings.all import Integer from sage.rings.algebraic_closure_finite_field import AlgebraicClosureFiniteField_generic -from sage.rings.complex_mpfr import ComplexField_class -from sage.rings.complex_interval_field import ComplexIntervalField_class from sage.rings.finite_rings.finite_field_constructor import is_FiniteField from sage.rings.finite_rings.finite_field_constructor import is_PrimeFiniteField from sage.rings.finite_rings.finite_field_constructor import GF @@ -89,8 +87,6 @@ from sage.rings.qqbar import QQbar, number_field_elements_from_algebraics from sage.rings.quotient_ring import QuotientRing_generic from sage.rings.rational_field import QQ -from sage.rings.real_mpfr import RealField_class -from sage.rings.real_mpfi import RealIntervalField_class from sage.schemes.generic.morphism import SchemeMorphism_polynomial