diff --git a/src/sage/functions/hypergeometric.py b/src/sage/functions/hypergeometric.py index 50c60b25638..752b8422fc6 100644 --- a/src/sage/functions/hypergeometric.py +++ b/src/sage/functions/hypergeometric.py @@ -162,27 +162,27 @@ # https://www.gnu.org/licenses/ # **************************************************************************** +from functools import reduce + +from sage.arith.misc import binomial, factorial, rising_factorial +from sage.calculus.functional import derivative +from sage.functions.error import erf +from sage.functions.gamma import gamma +from sage.functions.hyperbolic import cosh, sinh +from sage.functions.log import exp, log +from sage.functions.other import sqrt, real_part +from sage.libs.mpmath import utils as mpmath_utils +from sage.misc.latex import latex +from sage.misc.misc_c import prod +from sage.rings.infinity import Infinity from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ from sage.rings.rational_field import QQ -from sage.rings.infinity import Infinity -from sage.arith.all import binomial, rising_factorial, factorial +from sage.structure.element import get_coercion_model from sage.symbolic.constants import pi +from sage.symbolic.expression import Expression from sage.symbolic.function import BuiltinFunction from sage.symbolic.ring import SR -from sage.structure.element import get_coercion_model -from sage.misc.latex import latex -from sage.misc.misc_c import prod -from sage.libs.mpmath import utils as mpmath_utils -from sage.symbolic.expression import Expression -from sage.calculus.functional import derivative -from functools import reduce - -from .gamma import gamma -from .other import sqrt, real_part -from .log import exp, log -from .hyperbolic import cosh, sinh -from .error import erf def rational_param_as_tuple(x): diff --git a/src/sage/functions/piecewise.py b/src/sage/functions/piecewise.py index 10d82e3709a..f73b016555c 100644 --- a/src/sage/functions/piecewise.py +++ b/src/sage/functions/piecewise.py @@ -1089,7 +1089,9 @@ def laplace(self, parameters, variable, x='x', s='t'): sage: f.laplace(t,s) (s + 1)*e^(-s)/s^2 + 2*e^(-s)/s - 1/s^2 """ - from sage.all import assume, exp, forget + from sage.symbolic.assumptions import assume, forget + from sage.functions.log import exp + x = SR.var(x) s = SR.var(s) assume(s>0) @@ -1180,7 +1182,8 @@ def fourier_series_cosine_coefficient(self, parameters, -3/5/pi """ - from sage.all import cos, pi + from sage.functions.trig import cos + from sage.symbolic.constants import pi L0 = (self.domain().sup() - self.domain().inf()) / 2 if not L: L = L0 @@ -1270,7 +1273,8 @@ def fourier_series_sine_coefficient(self, parameters, variable, 4/3/pi """ - from sage.all import sin, pi + from sage.functions.trig import sin + from sage.symbolic.constants import pi L0 = (self.domain().sup() - self.domain().inf()) / 2 if not L: L = L0 @@ -1358,7 +1362,10 @@ def fourier_series_partial_sum(self, parameters, variable, N, - 4/9*sin(3*pi*x)/pi^2 + 4*sin(pi*x)/pi^2 + 1/4 """ - from sage.all import pi, sin, cos, srange + from sage.symbolic.constants import pi + from sage.functions.trig import cos, sin + from sage.arith.srange import srange + if not L: L = (self.domain().sup() - self.domain().inf()) / 2 x = self.default_variable() diff --git a/src/sage/interfaces/axiom.py b/src/sage/interfaces/axiom.py index 2ec63939630..a015ffc67e5 100644 --- a/src/sage/interfaces/axiom.py +++ b/src/sage/interfaces/axiom.py @@ -836,7 +836,8 @@ def _sage_(self): return self._sage_domain() if type == "Float": - from sage.rings.all import RealField, ZZ + from sage.rings.real_mpfr import RealField + from sage.rings.integer_ring import ZZ prec = max(self.mantissa().length()._sage_(), 53) R = RealField(prec) x,e,b = self.unparsed_input_form().lstrip('float(').rstrip(')').split(',') diff --git a/src/sage/interfaces/fricas.py b/src/sage/interfaces/fricas.py index 202a756b0ef..9e39c9b6e45 100644 --- a/src/sage/interfaces/fricas.py +++ b/src/sage/interfaces/fricas.py @@ -1217,7 +1217,9 @@ def _get_sage_type(self, domain): sage: fricas(0)._get_sage_type(m) # optional - fricas Univariate Polynomial Ring in y over Univariate Polynomial Ring in x over Algebraic Field """ - from sage.rings.all import QQbar, RDF, PolynomialRing + from sage.rings.qqbar import QQbar + from sage.rings.real_double import RDF + from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.fraction_field import FractionField from sage.rings.finite_rings.integer_mod_ring import Integers from sage.rings.finite_rings.finite_field_constructor import FiniteField @@ -1730,7 +1732,8 @@ def convert_rootOf(x, y): ex, _ = FriCASElement._parse_and_eval(fricas_InputForm) # postprocessing of rootOf - from sage.rings.all import QQbar, PolynomialRing + from sage.rings.qqbar import QQbar + from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing while rootOf: for var, poly in rootOf.items(): pvars = poly.variables() diff --git a/src/sage/interfaces/genus2reduction.py b/src/sage/interfaces/genus2reduction.py index 7a4794daf22..6fa64b68cca 100644 --- a/src/sage/interfaces/genus2reduction.py +++ b/src/sage/interfaces/genus2reduction.py @@ -34,7 +34,9 @@ # **************************************************************************** from sage.structure.sage_object import SageObject -from sage.rings.all import ZZ, QQ, PolynomialRing +from sage.rings.integer_ring import ZZ +from sage.rings.rational_field import QQ +from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.libs.pari.all import pari roman_numeral = ["", "I", "II", "III", "IV", "V", "VI", "VII"] diff --git a/src/sage/interfaces/maxima_abstract.py b/src/sage/interfaces/maxima_abstract.py index cc1d88160bb..544e3b678a3 100644 --- a/src/sage/interfaces/maxima_abstract.py +++ b/src/sage/interfaces/maxima_abstract.py @@ -1846,7 +1846,7 @@ def _matrix_(self, R): [ 3 3/2 1 3/4] [ 4 2 4/3 1] """ - from sage.matrix.all import MatrixSpace + from sage.matrix.matrix_space import MatrixSpace self._check_valid() P = self.parent() nrows = int(P.eval('length(%s)'%self.name())) diff --git a/src/sage/interfaces/octave.py b/src/sage/interfaces/octave.py index 81d48cf3c10..f8f426c67e6 100644 --- a/src/sage/interfaces/octave.py +++ b/src/sage/interfaces/octave.py @@ -508,7 +508,7 @@ def solve_linear_system(self, A, b): m = A.nrows() if m != len(b): raise ValueError("dimensions of A and b must be compatible") - from sage.matrix.all import MatrixSpace + from sage.matrix.matrix_space import MatrixSpace from sage.rings.rational_field import QQ MS = MatrixSpace(QQ,m,1) b = MS(list(b)) # converted b to a "column vector" @@ -707,7 +707,7 @@ def _matrix_(self, R=None): if self.iscomplex(): w = [[to_complex(x,R) for x in row] for row in w] - from sage.matrix.all import MatrixSpace + from sage.matrix.matrix_space import MatrixSpace return MatrixSpace(R, nrows, ncols)(w) def _vector_(self, R=None): diff --git a/src/sage/interfaces/sage0.py b/src/sage/interfaces/sage0.py index a43a059e0ec..9eddb7019f7 100644 --- a/src/sage/interfaces/sage0.py +++ b/src/sage/interfaces/sage0.py @@ -159,7 +159,8 @@ def __init__(self, if python: command = 'python -u' prompt = re.compile(b'>>> ') - init_code.append('from sage.all import *') + environment = 'sage.all' + init_code.append(f'from {environment} import *') else: command = ' '.join([ 'sage-ipython', diff --git a/src/sage/interfaces/scilab.py b/src/sage/interfaces/scilab.py index 8349739633c..75ab263a53e 100644 --- a/src/sage/interfaces/scilab.py +++ b/src/sage/interfaces/scilab.py @@ -486,7 +486,7 @@ def _matrix_(self, R): [1.00000000000000 2.00000000000000] [3.00000000000000 4.50000000000000] """ - from sage.matrix.all import MatrixSpace + from sage.matrix.matrix_space import MatrixSpace s = str(self).strip() v = s.split('\n ') nrows = len(v) diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py index 0518caaa9b2..2a127cfe482 100644 --- a/src/sage/interfaces/singular.py +++ b/src/sage/interfaces/singular.py @@ -1656,15 +1656,19 @@ def sage_global_ring(self): br = ZZ is_extension = False elif charstr[0] in ['0', 'QQ']: - from sage.all import QQ + from sage.rings.rational_field import QQ br = QQ elif charstr[0].startswith('Float'): - from sage.all import RealField, ceil, log + from sage.rings.real_mpfr import RealField + from sage.functions.other import ceil + from sage.misc.functional import log prec = singular.eval('ringlist(basering)[1][2][1]') br = RealField(ceil((ZZ(prec)+1)/log(2,10))) is_extension = False elif charstr[0]=='complex': - from sage.all import ComplexField, ceil, log + from sage.rings.complex_mpfr import ComplexField + from sage.functions.other import ceil + from sage.misc.functional import log prec = singular.eval('ringlist(basering)[1][2][1]') br = ComplexField(ceil((ZZ(prec)+1)/log(2,10))) is_extension = False @@ -1684,7 +1688,7 @@ def sage_global_ring(self): if is_extension: minpoly = singular.eval('minpoly') if minpoly == '0': - from sage.all import Frac + from sage.rings.fraction_field import FractionField as Frac BR = Frac(br[charstr[1]]) else: is_short = singular.eval('short') @@ -1701,7 +1705,7 @@ def sage_global_ring(self): # Now, we form the polynomial ring over BR with the given variables, # using Singular's term order from sage.rings.polynomial.term_order import termorder_from_singular - from sage.all import PolynomialRing + from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing # Meanwhile Singulars quotient rings are also of 'ring' type, not 'qring' as it was in the past. # To find out if a singular ring is a quotient ring or not checking for ring type does not help # and instead of that we check if the quotient ring is zero or not: diff --git a/src/sage/interfaces/sympy.py b/src/sage/interfaces/sympy.py index 2c847d56892..aca0a43fa67 100644 --- a/src/sage/interfaces/sympy.py +++ b/src/sage/interfaces/sympy.py @@ -453,7 +453,7 @@ def _sympysage_rf(self): sage: assert rising_factorial(x,y)._sympy_() == rfxy.rewrite('gamma', piecewise=False) sage: assert rising_factorial(x,y) == rfxy._sage_() """ - from sage.arith.all import rising_factorial + from sage.arith.misc import rising_factorial return rising_factorial(self.args[0]._sage_(), self.args[1]._sage_()) def _sympysage_ff(self): @@ -466,7 +466,7 @@ def _sympysage_ff(self): sage: assert falling_factorial(x,y)._sympy_() == ffxy.rewrite('gamma') # known bug sage: assert falling_factorial(x,y) == ffxy._sage_() """ - from sage.arith.all import falling_factorial + from sage.arith.misc import falling_factorial return falling_factorial(self.args[0]._sage_(), self.args[1]._sage_()) def _sympysage_lgamma(self): diff --git a/src/sage/symbolic/pynac_impl.pxi b/src/sage/symbolic/pynac_impl.pxi index fe9451d668d..a610add5ef8 100644 --- a/src/sage/symbolic/pynac_impl.pxi +++ b/src/sage/symbolic/pynac_impl.pxi @@ -35,6 +35,9 @@ Pynac interface from cpython cimport * from libc cimport math +from sage.arith.misc import bernoulli, factorial, GCD as gcd, is_prime +from sage.arith.functions import lcm +from sage.cpython.string cimport str_to_bytes, char_to_str from sage.ext.stdsage cimport PY_NEW from sage.libs.gmp.all cimport * from sage.libs.gsl.types cimport * @@ -42,15 +45,7 @@ from sage.libs.gsl.complex cimport * from sage.libs.gsl.gamma cimport gsl_sf_lngamma_complex_e from sage.libs.mpmath import utils as mpmath_utils from sage.libs.pari.all import pari - -from sage.cpython.string cimport str_to_bytes, char_to_str - -from sage.arith.all import gcd, lcm, is_prime, factorial, bernoulli - -from sage.structure.coerce cimport coercion_model -from sage.structure.element cimport Element, parent from sage.misc.persist import loads, dumps - from sage.rings.integer_ring import ZZ from sage.rings.integer cimport Integer, smallInteger from sage.rings.rational cimport Rational @@ -58,7 +53,8 @@ from sage.rings.real_mpfr import RR, RealField from sage.rings.rational cimport rational_power_parts from sage.rings.real_double cimport RealDoubleElement from sage.rings.cc import CC - +from sage.structure.coerce cimport coercion_model +from sage.structure.element cimport Element, parent from sage.symbolic.function cimport Function @@ -2391,7 +2387,7 @@ def register_symbol(obj, conversions, nargs=None): this can be deduced automatically. EXAMPLES:: - + sage: from sage.symbolic.expression import register_symbol as rs sage: rs(SR(5),{'maxima':'five'}) sage: SR(maxima_calculus('five')) diff --git a/src/sage/symbolic/substitution_map_impl.pxi b/src/sage/symbolic/substitution_map_impl.pxi index d53b9971c6e..ea60e899d1a 100644 --- a/src/sage/symbolic/substitution_map_impl.pxi +++ b/src/sage/symbolic/substitution_map_impl.pxi @@ -29,13 +29,13 @@ cdef class SubstitutionMap(SageObject): Apply the substitution to a symbolic expression EXAMPLES:: - + sage: from sage.symbolic.expression import make_map sage: subs = make_map({x:x+1}) sage: subs.apply_to(x^2, 0) (x + 1)^2 """ - return new_Expression_from_GEx(expr._parent, + return new_Expression_from_GEx(expr._parent, expr._gobj.subs_map(self._gmapobj, options)) def _repr_(self): @@ -43,7 +43,7 @@ cdef class SubstitutionMap(SageObject): Return the string representation EXAMPLES:: - + sage: from sage.symbolic.expression import make_map sage: make_map({x:x+1}) SubsMap @@ -94,4 +94,4 @@ cpdef SubstitutionMap make_map(subs_dict): smap.insert(make_pair((k)._gobj, (v)._gobj)) return new_SubstitutionMap_from_GExMap(smap) - +