From 6ef81a73a6627e30d5439bb41b0b7170cdc2bd8d Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 4 Jan 2025 19:39:10 +0800 Subject: [PATCH 1/2] Replace `pari.all` imports by direct imports from pari and cypari --- src/sage/arith/misc.py | 20 +++++++++---------- src/sage/combinat/sloane_functions.py | 2 +- src/sage/databases/cremona.py | 4 ++-- .../arithmetic_dynamics/projective_ds.py | 2 +- src/sage/functions/special.py | 2 +- src/sage/groups/perm_gps/constructor.py | 2 +- src/sage/interfaces/genus2reduction.py | 2 +- src/sage/interfaces/gp.py | 2 +- src/sage/libs/pari/__init__.py | 6 ++++-- src/sage/libs/pari/all.py | 3 ++- src/sage/matrix/matrix1.pyx | 2 +- src/sage/matrix/matrix_rational_dense.pyx | 2 +- src/sage/misc/randstate.pyx | 2 +- src/sage/modular/cusps.py | 3 ++- src/sage/modules/free_module_element.pyx | 2 +- src/sage/quadratic_forms/binary_qf.py | 3 ++- .../quadratic_form__automorphisms.py | 2 +- .../quadratic_form__ternary_Tornaria.py | 2 +- src/sage/rings/complex_mpc.pyx | 4 +++- src/sage/rings/complex_mpfr.pyx | 2 +- src/sage/rings/factorint_pari.pyx | 2 +- .../rings/finite_rings/element_ntl_gf2e.pyx | 2 +- .../rings/finite_rings/finite_field_givaro.py | 2 +- .../finite_rings/finite_field_ntl_gf2e.py | 2 +- src/sage/rings/finite_rings/integer_mod.pyx | 3 ++- .../rings/finite_rings/integer_mod_ring.py | 3 ++- src/sage/rings/fraction_field.py | 2 +- src/sage/rings/infinity.py | 3 ++- src/sage/rings/laurent_series_ring.py | 2 +- src/sage/rings/number_field/galois_group.py | 2 +- src/sage/rings/number_field/maps.py | 2 +- src/sage/rings/number_field/number_field.py | 3 ++- .../rings/number_field/number_field_ideal.py | 4 ++-- .../rings/number_field/number_field_rel.py | 4 ++-- src/sage/rings/number_field/order.py | 2 +- .../small_primes_of_degree_one.py | 2 +- .../rings/number_field/splitting_field.py | 3 ++- src/sage/rings/number_field/totallyreal.pyx | 2 +- .../rings/number_field/totallyreal_rel.py | 2 +- src/sage/rings/number_field/unit_group.py | 2 +- .../rings/padics/padic_ZZ_pX_CA_element.pyx | 2 +- .../rings/padics/padic_ZZ_pX_CR_element.pyx | 2 +- .../rings/padics/padic_ZZ_pX_FM_element.pyx | 2 +- .../padics/padic_floating_point_element.pyx | 2 +- .../rings/padics/padic_generic_element.pyx | 2 +- src/sage/rings/polynomial/cyclotomic.pyx | 2 +- .../rings/polynomial/multi_polynomial_ring.py | 2 +- .../polynomial_padic_capped_relative_dense.py | 3 ++- .../padics/polynomial_padic_flat.py | 2 +- .../rings/polynomial/polynomial_element.pyx | 4 +++- .../polynomial/polynomial_element_generic.py | 2 +- src/sage/rings/polynomial/polynomial_gf2x.pyx | 2 +- .../polynomial_integer_dense_flint.pyx | 3 ++- .../polynomial_integer_dense_ntl.pyx | 3 ++- .../polynomial/polynomial_modn_dense_ntl.pyx | 3 ++- .../polynomial/polynomial_real_mpfr_dense.pyx | 2 +- src/sage/rings/polynomial/polynomial_ring.py | 4 ++-- .../rings/polynomial/polynomial_template.pxi | 2 +- src/sage/rings/power_series_mpoly.pyx | 2 +- src/sage/rings/power_series_pari.pyx | 2 +- .../elliptic_curves/descent_two_isogeny.pyx | 2 +- src/sage/schemes/elliptic_curves/ell_point.py | 3 ++- .../schemes/elliptic_curves/isogeny_class.py | 2 +- src/sage/structure/factorization.py | 2 +- src/sage/structure/sage_object.pyx | 2 +- src/sage/symbolic/pynac_impl.pxi | 2 +- 66 files changed, 99 insertions(+), 80 deletions(-) diff --git a/src/sage/arith/misc.py b/src/sage/arith/misc.py index 637ed9192bd..0b03c450eb9 100644 --- a/src/sage/arith/misc.py +++ b/src/sage/arith/misc.py @@ -265,7 +265,7 @@ def norm(v): raise NotImplementedError("proof and height bound only implemented for real and complex numbers") else: - from sage.libs.pari.all import pari + from sage.libs.pari import pari y = pari(z) f = y.algdep(degree) @@ -378,7 +378,7 @@ def bernoulli(n, algorithm='default', num_threads=1): from sage.libs.flint.arith_sage import bernoulli_number as flint_bernoulli return flint_bernoulli(n) elif algorithm == 'pari' or algorithm == 'gp': - from sage.libs.pari.all import pari + from sage.libs.pari import pari x = pari(n).bernfrac() # Use the PARI C library return Rational(x) elif algorithm == 'gap': @@ -470,7 +470,7 @@ def factorial(n, algorithm='gmp'): if algorithm == 'gmp': return ZZ(n).factorial() elif algorithm == 'pari': - from sage.libs.pari.all import pari + from sage.libs.pari import pari return pari.factorial(n) else: raise ValueError('unknown algorithm') @@ -3164,7 +3164,7 @@ def __call__(self, n): return ZZ.zero() if n <= 2: return ZZ.one() - from sage.libs.pari.all import pari + from sage.libs.pari import pari return ZZ(pari(n).eulerphi()) def plot(self, xmin=1, xmax=50, pointsize=30, rgbcolor=(0, 0, 1), @@ -4425,7 +4425,7 @@ def primitive_root(n, check=True): sage: primitive_root(mpz(-46)) # needs sage.libs.pari 5 """ - from sage.libs.pari.all import pari + from sage.libs.pari import pari if not check: return ZZ(pari(n).znprimroot()) n = ZZ(n).abs() @@ -4482,7 +4482,7 @@ def nth_prime(n): """ if n <= 0: raise ValueError("nth prime meaningless for nonpositive n (=%s)" % n) - from sage.libs.pari.all import pari + from sage.libs.pari import pari return ZZ(pari.prime(n)) @@ -4600,7 +4600,7 @@ def __call__(self, n): # Use fast PARI algorithm if n == 0: return ZZ.zero() - from sage.libs.pari.all import pari + from sage.libs.pari import pari return ZZ(pari(n).moebius()) def __repr__(self): @@ -4685,7 +4685,7 @@ def range(self, start, stop=None, step=None): return self.range(start, 0, step) + [ZZ.zero()] +\ self.range(step, stop, step) - from sage.libs.pari.all import pari + from sage.libs.pari import pari if step == 1: v = pari('vector(%s, i, moebius(i-1+%s))' % (stop - start, start)) @@ -4815,7 +4815,7 @@ def number_of_divisors(n): m = ZZ(n) if m.is_zero(): raise ValueError("input must be nonzero") - from sage.libs.pari.all import pari + from sage.libs.pari import pari return ZZ(pari(m).numdiv()) @@ -4888,7 +4888,7 @@ def hilbert_symbol(a, b, p, algorithm='pari'): if algorithm == "pari": if p == -1: p = 0 - from sage.libs.pari.all import pari + from sage.libs.pari import pari return ZZ(pari(a).hilbert(b, p)) elif algorithm == 'direct': diff --git a/src/sage/combinat/sloane_functions.py b/src/sage/combinat/sloane_functions.py index b9651829109..12580cbb8ca 100644 --- a/src/sage/combinat/sloane_functions.py +++ b/src/sage/combinat/sloane_functions.py @@ -6796,7 +6796,7 @@ def _powerful_numbers_in_range(self, n, m): n = max(n, 4) # Use PARI directly -- much faster. - from sage.libs.pari.all import pari + from sage.libs.pari import pari L = pari('v=listcreate(); for(i=%s,%s,if(vecmin(factor(i)[,2])>1,listput(v,i))); v' % (n, m)) return [ZZ(x) for x in L] # not very many, so not much overhead diff --git a/src/sage/databases/cremona.py b/src/sage/databases/cremona.py index ca859214155..a476863ad15 100644 --- a/src/sage/databases/cremona.py +++ b/src/sage/databases/cremona.py @@ -559,7 +559,7 @@ def cremona_to_lmfdb(cremona_label, CDB=None): sage: for label in ['438.c2','306.b','462.f3']: ....: assert(cremona_to_lmfdb(lmfdb_to_cremona(label)) == label) """ - from sage.libs.pari.all import pari + from sage.libs.pari import pari m = cremona_label_regex.match(cremona_label) if m is None: raise ValueError("Invalid Cremona label") @@ -609,7 +609,7 @@ def lmfdb_to_cremona(lmfdb_label, CDB=None): sage: cremona_to_lmfdb('990j1') '990.h3' """ - from sage.libs.pari.all import pari + from sage.libs.pari import pari m = lmfdb_label_regex.match(lmfdb_label) if m is None: raise ValueError("Invalid LMFDB label") diff --git a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py index 591693e5af8..1d540a43657 100644 --- a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py @@ -116,7 +116,7 @@ class initialization directly. lazy_import('sage.rings.padics.factory', 'Qp') lazy_import('sage.rings.qqbar', 'number_field_elements_from_algebraics') -from sage.libs.pari.all import PariError +from cypari2.handle_error import PariError class DynamicalSystem_projective(SchemeMorphism_polynomial_projective_space, diff --git a/src/sage/functions/special.py b/src/sage/functions/special.py index 308171af3cd..e3b9bf14702 100644 --- a/src/sage/functions/special.py +++ b/src/sage/functions/special.py @@ -453,7 +453,7 @@ def elliptic_j(z, prec=53): z = CC(z) except ValueError: raise ValueError("elliptic_j only defined for complex arguments.") - from sage.libs.pari.all import pari + from sage.libs.pari import pari return CC(pari(z).ellj()) diff --git a/src/sage/groups/perm_gps/constructor.py b/src/sage/groups/perm_gps/constructor.py index 63c9aecd5d3..fabc7a6c9d3 100644 --- a/src/sage/groups/perm_gps/constructor.py +++ b/src/sage/groups/perm_gps/constructor.py @@ -28,7 +28,7 @@ lazy_import('sage.combinat.permutation', ['Permutation', 'from_cycles']) try: - from sage.libs.pari.all import pari_gen + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/interfaces/genus2reduction.py b/src/sage/interfaces/genus2reduction.py index 913188f9182..487287386e6 100644 --- a/src/sage/interfaces/genus2reduction.py +++ b/src/sage/interfaces/genus2reduction.py @@ -36,7 +36,7 @@ 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 +from sage.libs.pari import pari roman_numeral = ["", "I", "II", "III", "IV", "V", "VI", "VII"] diff --git a/src/sage/interfaces/gp.py b/src/sage/interfaces/gp.py index b98c050d889..eeefad9cd44 100644 --- a/src/sage/interfaces/gp.py +++ b/src/sage/interfaces/gp.py @@ -145,7 +145,7 @@ from sage.env import DOT_SAGE from sage.interfaces.tab_completion import ExtraTabCompletion -from sage.libs.pari.all import pari +from sage.libs.pari import pari from sage.misc.instancedoc import instancedoc from sage.misc.lazy_import import lazy_import from sage.misc.verbose import verbose diff --git a/src/sage/libs/pari/__init__.py b/src/sage/libs/pari/__init__.py index b5bc281db4d..7d01109e276 100644 --- a/src/sage/libs/pari/__init__.py +++ b/src/sage/libs/pari/__init__.py @@ -173,6 +173,10 @@ 3.60546360143265208591582056420772677481026899659802474544 # 32-bit """ +from cypari2 import Pari + +from sage.ext.memory import init_memory_functions + def _get_pari_instance(): """ @@ -181,14 +185,12 @@ def _get_pari_instance(): sage: pari # indirect doctest Interface to the PARI C library """ - from cypari2 import Pari stack_initial = 1024 * 1024 stack_max = 1024 * stack_initial P = Pari(stack_initial, stack_max) # pari_init_opts() overrides MPIR's memory allocation functions, # so we need to reset them. - from sage.ext.memory import init_memory_functions init_memory_functions() # PARI sets debugmem=1 by default but we do not want those warning diff --git a/src/sage/libs/pari/all.py b/src/sage/libs/pari/all.py index 6cef5978cc1..e896e5b09ea 100644 --- a/src/sage/libs/pari/all.py +++ b/src/sage/libs/pari/all.py @@ -1,3 +1,4 @@ -from cypari2.gen import Gen as pari_gen from cypari2 import PariError +from cypari2.gen import Gen as pari_gen + from sage.libs.pari import pari diff --git a/src/sage/matrix/matrix1.pyx b/src/sage/matrix/matrix1.pyx index 96a175825b3..41b1786bd52 100644 --- a/src/sage/matrix/matrix1.pyx +++ b/src/sage/matrix/matrix1.pyx @@ -87,7 +87,7 @@ cdef class Matrix(Matrix0): [1.000000000, 2.000000000; 3.000000000, 1.000000000] # 32-bit [1.00000000000000, 2.00000000000000; 3.00000000000000, 1.00000000000000] # 64-bit """ - from sage.libs.pari.all import pari + from sage.libs.pari import pari return pari.matrix(self._nrows, self._ncols, self._list()) def _gap_init_(self): diff --git a/src/sage/matrix/matrix_rational_dense.pyx b/src/sage/matrix/matrix_rational_dense.pyx index 40c63470617..b9438883765 100644 --- a/src/sage/matrix/matrix_rational_dense.pyx +++ b/src/sage/matrix/matrix_rational_dense.pyx @@ -119,7 +119,7 @@ from sage.misc.verbose import verbose # ######################################################## # PARI C library -from sage.libs.pari.all import PariError +from cypari2.handle_error import PariError from sage.libs.pari.convert_gmp cimport INTFRAC_to_mpq from sage.libs.pari.convert_flint cimport rational_matrix, _new_GEN_from_fmpq_mat_t from cypari2.stack cimport clear_stack diff --git a/src/sage/misc/randstate.pyx b/src/sage/misc/randstate.pyx index fe3351d126b..db700897568 100644 --- a/src/sage/misc/randstate.pyx +++ b/src/sage/misc/randstate.pyx @@ -790,7 +790,7 @@ cdef class randstate: """ global _pari_seed_randstate if _pari_seed_randstate is not self: - from sage.libs.pari.all import pari + from sage.libs.pari import pari if self._pari_saved_seed is not None: seed = self._pari_saved_seed diff --git a/src/sage/modular/cusps.py b/src/sage/modular/cusps.py index 7a4a2628096..6d72d35ca49 100644 --- a/src/sage/modular/cusps.py +++ b/src/sage/modular/cusps.py @@ -40,7 +40,8 @@ from sage.structure.richcmp import richcmp try: - from sage.libs.pari.all import pari, pari_gen + from sage.libs.pari import pari + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/modules/free_module_element.pyx b/src/sage/modules/free_module_element.pyx index a9d074007f0..840ea71f68d 100644 --- a/src/sage/modules/free_module_element.pyx +++ b/src/sage/modules/free_module_element.pyx @@ -1055,7 +1055,7 @@ cdef class FreeModuleElement(Vector): # abstract base class sage: pari(L) # needs sage.libs.pari [[0, 1, 2, 3], [0, 1, 8, 27], [0, 1, 32, 243]] """ - from sage.libs.pari.all import pari + from sage.libs.pari import pari return pari(self.list()) def _pari_init_(self): diff --git a/src/sage/quadratic_forms/binary_qf.py b/src/sage/quadratic_forms/binary_qf.py index 202da0652ff..a6707c242f5 100644 --- a/src/sage/quadratic_forms/binary_qf.py +++ b/src/sage/quadratic_forms/binary_qf.py @@ -60,7 +60,8 @@ try: - from sage.libs.pari.all import pari_gen, pari + from sage.libs.pari import pari + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/quadratic_forms/quadratic_form__automorphisms.py b/src/sage/quadratic_forms/quadratic_form__automorphisms.py index 4fa4d4fe1ff..b19c7939252 100644 --- a/src/sage/quadratic_forms/quadratic_form__automorphisms.py +++ b/src/sage/quadratic_forms/quadratic_form__automorphisms.py @@ -181,7 +181,7 @@ def short_vector_list_up_to_length(self, len_bound, up_to_sign_flag=False): raise ValueError("Quadratic form must be positive definite " "in order to enumerate short vectors") - from sage.libs.pari.all import pari + from sage.libs.pari import pari if len_bound <= 0: return [] diff --git a/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py b/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py index 3922767e870..7e277d899ea 100644 --- a/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +++ b/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py @@ -537,7 +537,7 @@ def representation_number_list(self, B): sage: Q.representation_number_list(10) # needs sage.libs.pari [1, 16, 112, 448, 1136, 2016, 3136, 5504, 9328, 12112] """ - from sage.libs.pari.all import pari + from sage.libs.pari import pari ans = pari(1).concat(self.__pari__().qfrep(B - 1, 1) * 2) return ans.sage() diff --git a/src/sage/rings/complex_mpc.pyx b/src/sage/rings/complex_mpc.pyx index d6bcb664a49..28d521ec604 100644 --- a/src/sage/rings/complex_mpc.pyx +++ b/src/sage/rings/complex_mpc.pyx @@ -74,7 +74,9 @@ from sage.structure.richcmp cimport rich_to_bool from sage.categories.map cimport Map try: - from sage.libs.pari.all import pari, pari_gen, PariError + from sage.libs.pari import pari + from cypari2.handle_error import PariError + from cypari2.gen cimport Gen as pari_gen except ImportError: pari_gen = PariError = () diff --git a/src/sage/rings/complex_mpfr.pyx b/src/sage/rings/complex_mpfr.pyx index d24e61d2823..d3dee1b278e 100644 --- a/src/sage/rings/complex_mpfr.pyx +++ b/src/sage/rings/complex_mpfr.pyx @@ -56,7 +56,7 @@ cimport gmpy2 gmpy2.import_gmpy2() try: - from sage.libs.pari.all import pari_gen + from cypari2.gen cimport Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/rings/factorint_pari.pyx b/src/sage/rings/factorint_pari.pyx index a8d748c5845..4316dc2de01 100644 --- a/src/sage/rings/factorint_pari.pyx +++ b/src/sage/rings/factorint_pari.pyx @@ -16,7 +16,7 @@ AUTHORS: # http://www.gnu.org/licenses/ #***************************************************************************** -from sage.libs.pari.all import pari +from sage.libs.pari import pari from sage.rings.integer cimport Integer diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx index 2c1c25254c4..7d7abe463e1 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx @@ -40,7 +40,7 @@ from sage.structure.element cimport Vector from sage.rings.finite_rings.finite_field_base cimport FiniteField -from sage.libs.pari.all import pari +from sage.libs.pari import pari from cypari2.gen cimport Gen from cypari2.stack cimport clear_stack diff --git a/src/sage/rings/finite_rings/finite_field_givaro.py b/src/sage/rings/finite_rings/finite_field_givaro.py index ea40970b276..b1dfe8be331 100644 --- a/src/sage/rings/finite_rings/finite_field_givaro.py +++ b/src/sage/rings/finite_rings/finite_field_givaro.py @@ -22,7 +22,7 @@ from sage.rings.finite_rings.finite_field_base import FiniteField from sage.rings.integer import Integer from sage.rings.finite_rings.element_givaro import Cache_givaro -from sage.libs.pari.all import pari +from sage.libs.pari import pari class FiniteField_givaro(FiniteField): diff --git a/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py b/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py index 92404849b4e..7e051bc8b74 100644 --- a/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py +++ b/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py @@ -16,7 +16,7 @@ #***************************************************************************** from sage.rings.finite_rings.finite_field_base import FiniteField -from sage.libs.pari.all import pari +from sage.libs.pari import pari from sage.rings.integer import Integer diff --git a/src/sage/rings/finite_rings/integer_mod.pyx b/src/sage/rings/finite_rings/integer_mod.pyx index 19525b40937..46a3c5c5d82 100644 --- a/src/sage/rings/finite_rings/integer_mod.pyx +++ b/src/sage/rings/finite_rings/integer_mod.pyx @@ -87,7 +87,8 @@ from sage.arith.long cimport ( import sage.rings.rational as rational try: - from sage.libs.pari.all import pari, PariError + from sage.libs.pari import pari + from cypari2.handle_error import PariError except ImportError: class PariError(Exception): pass diff --git a/src/sage/rings/finite_rings/integer_mod_ring.py b/src/sage/rings/finite_rings/integer_mod_ring.py index 893fde4e929..fe550a8f427 100644 --- a/src/sage/rings/finite_rings/integer_mod_ring.py +++ b/src/sage/rings/finite_rings/integer_mod_ring.py @@ -77,7 +77,8 @@ import sage.rings.quotient_ring as quotient_ring try: - from sage.libs.pari.all import pari, PariError + from sage.libs.pari import pari + from cypari2.handle_error import PariError except ImportError: class PariError(Exception): pass diff --git a/src/sage/rings/fraction_field.py b/src/sage/rings/fraction_field.py index 4e3e923c263..60ba0a5763f 100644 --- a/src/sage/rings/fraction_field.py +++ b/src/sage/rings/fraction_field.py @@ -692,7 +692,7 @@ def _element_constructor_(self, x, y=None, coerce=True): y = py_scalar_to_element(y) try: - from sage.libs.pari.all import pari_gen + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/rings/infinity.py b/src/sage/rings/infinity.py index 986b32cb5d5..70208389fa4 100644 --- a/src/sage/rings/infinity.py +++ b/src/sage/rings/infinity.py @@ -334,7 +334,8 @@ def __pari__(self): sage: pari(oo) # needs sage.libs.pari +oo """ - from sage.libs.pari.all import pari + from sage.libs.pari import pari + if self._sign >= 0: return pari('oo') else: diff --git a/src/sage/rings/laurent_series_ring.py b/src/sage/rings/laurent_series_ring.py index 1feba6e675b..ef3bbe00ba3 100644 --- a/src/sage/rings/laurent_series_ring.py +++ b/src/sage/rings/laurent_series_ring.py @@ -46,7 +46,7 @@ from sage.structure.unique_representation import UniqueRepresentation try: - from sage.libs.pari.all import pari_gen + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/rings/number_field/galois_group.py b/src/sage/rings/number_field/galois_group.py index c974c3df6ff..83c9d665d20 100644 --- a/src/sage/rings/number_field/galois_group.py +++ b/src/sage/rings/number_field/galois_group.py @@ -16,7 +16,7 @@ from sage.misc.superseded import deprecation from sage.misc.cachefunc import cached_method from sage.misc.lazy_attribute import lazy_attribute -from sage.libs.pari.all import pari +from sage.libs.pari import pari from sage.rings.infinity import infinity from sage.rings.number_field.number_field import refine_embedding from sage.rings.number_field.morphism import NumberFieldHomomorphism_im_gens diff --git a/src/sage/rings/number_field/maps.py b/src/sage/rings/number_field/maps.py index 8d8eb1b69ef..00422d022f3 100644 --- a/src/sage/rings/number_field/maps.py +++ b/src/sage/rings/number_field/maps.py @@ -45,7 +45,7 @@ import sage.rings.rational_field as rational_field -from sage.libs.pari.all import pari +from sage.libs.pari import pari QQ = rational_field.RationalField() diff --git a/src/sage/rings/number_field/number_field.py b/src/sage/rings/number_field/number_field.py index dbd8e7e2edf..37db309bbde 100644 --- a/src/sage/rings/number_field/number_field.py +++ b/src/sage/rings/number_field/number_field.py @@ -211,7 +211,8 @@ def proof_flag(t): from . import number_field_element from . import number_field_element_quadratic from .number_field_ideal import NumberFieldIdeal, NumberFieldFractionalIdeal -from sage.libs.pari.all import pari, pari_gen +from sage.libs.pari import pari +from cypari2.gen import Gen as pari_gen from sage.rings.rational_field import QQ from sage.rings.integer_ring import ZZ diff --git a/src/sage/rings/number_field/number_field_ideal.py b/src/sage/rings/number_field/number_field_ideal.py index 171fba9af6e..afdcd3267af 100644 --- a/src/sage/rings/number_field/number_field_ideal.py +++ b/src/sage/rings/number_field/number_field_ideal.py @@ -119,7 +119,7 @@ def __init__(self, field, gens, coerce=True): if len(gens) == 1 and isinstance(gens[0], (list, tuple)): gens = gens[0] - from sage.libs.pari.all import pari_gen + from cypari2.gen import Gen as pari_gen if len(gens) == 1 and isinstance(gens[0], pari_gen): # Init from PARI gens = gens[0] @@ -2641,7 +2641,7 @@ def _pari_bid_(self, flag=1): sage: bid.getattr('clgp') [2, [2]] """ - from sage.libs.pari.all import PariError + from cypari2.handle_error import PariError try: bid = self._bid if flag == 2: diff --git a/src/sage/rings/number_field/number_field_rel.py b/src/sage/rings/number_field/number_field_rel.py index 7ea070b113e..3021f3496b1 100644 --- a/src/sage/rings/number_field/number_field_rel.py +++ b/src/sage/rings/number_field/number_field_rel.py @@ -101,7 +101,7 @@ from sage.rings.number_field.order import (RelativeOrder, relative_order_from_ring_generators) from sage.rings.number_field.morphism import RelativeNumberFieldHomomorphism_from_abs -from sage.libs.pari.all import pari_gen +from cypari2.gen import Gen as pari_gen from sage.categories.homset import Hom from sage.categories.sets_cat import Sets @@ -1665,7 +1665,7 @@ def _pari_relative_structure(self): elif f.poldegree() == 1: # PARI's rnfpolredbest() does not always return a # polynomial with integral coefficients in this case. - from sage.libs.pari.all import pari + from sage.libs.pari import pari g = f.variable() alpha = -f[0]/f[1] beta = pari(0).Mod(f) diff --git a/src/sage/rings/number_field/order.py b/src/sage/rings/number_field/order.py index fd5662048df..fe33c456ead 100644 --- a/src/sage/rings/number_field/order.py +++ b/src/sage/rings/number_field/order.py @@ -91,7 +91,7 @@ from sage.rings.monomials import monomials -from sage.libs.pari.all import pari +from sage.libs.pari import pari def quadratic_order_class_number(disc): diff --git a/src/sage/rings/number_field/small_primes_of_degree_one.py b/src/sage/rings/number_field/small_primes_of_degree_one.py index ff30a006bba..541130e8a71 100644 --- a/src/sage/rings/number_field/small_primes_of_degree_one.py +++ b/src/sage/rings/number_field/small_primes_of_degree_one.py @@ -134,7 +134,7 @@ def __init__(self, field, num_integer_primes=10000, max_iterations=100): self._lc = self._poly.leading_coefficient() # this uses that [ O_K : Z[a] ]^2 = | disc(f(x)) / disc(O_K) | - from sage.libs.pari.all import pari + from sage.libs.pari import pari self._prod_of_small_primes = ZZ(pari('TEMPn = %s; TEMPps = primes(TEMPn); prod(X = 1, TEMPn, TEMPps[X])' % num_integer_primes)) self._prod_of_small_primes //= self._prod_of_small_primes.gcd(self._poly.discriminant() * self._lc) diff --git a/src/sage/rings/number_field/splitting_field.py b/src/sage/rings/number_field/splitting_field.py index 28c5486f171..aa8e5cb1ed4 100644 --- a/src/sage/rings/number_field/splitting_field.py +++ b/src/sage/rings/number_field/splitting_field.py @@ -22,7 +22,8 @@ from sage.rings.number_field.number_field import NumberField from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.rational_field import RationalField -from sage.libs.pari.all import pari, PariError +from sage.libs.pari import pari +from cypari2.handle_error import PariError class SplittingFieldAbort(Exception): diff --git a/src/sage/rings/number_field/totallyreal.pyx b/src/sage/rings/number_field/totallyreal.pyx index 14e55237dd1..928f65f1e1c 100644 --- a/src/sage/rings/number_field/totallyreal.pyx +++ b/src/sage/rings/number_field/totallyreal.pyx @@ -89,7 +89,7 @@ import math import sys from sage.libs.gmp.mpz cimport * -from sage.libs.pari.all import pari +from sage.libs.pari import pari from cypari2.gen cimport Gen as pari_gen from sage.libs.pari.misc cimport new_t_POL_from_int_star diff --git a/src/sage/rings/number_field/totallyreal_rel.py b/src/sage/rings/number_field/totallyreal_rel.py index ac3f52a544c..e7b2829e7a4 100644 --- a/src/sage/rings/number_field/totallyreal_rel.py +++ b/src/sage/rings/number_field/totallyreal_rel.py @@ -100,7 +100,7 @@ from sage.rings.number_field.number_field import NumberField from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.number_field.totallyreal import weed_fields, odlyzko_bound_totallyreal, enumerate_totallyreal_fields_prim -from sage.libs.pari.all import pari +from sage.libs.pari import pari from sage.rings.integer_ring import ZZ from sage.rings.rational_field import QQ diff --git a/src/sage/rings/number_field/unit_group.py b/src/sage/rings/number_field/unit_group.py index eb6b46ed82e..d6ee8be1e94 100644 --- a/src/sage/rings/number_field/unit_group.py +++ b/src/sage/rings/number_field/unit_group.py @@ -167,7 +167,7 @@ from sage.groups.abelian_gps.values import AbelianGroupWithValues_class from sage.structure.proof.proof import get_flag -from sage.libs.pari.all import pari +from sage.libs.pari import pari from sage.misc.misc_c import prod from sage.rings.integer_ring import ZZ diff --git a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx index 0e826c40db8..3373413adda 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx @@ -183,7 +183,7 @@ from sage.libs.ntl.ntl_ZZ cimport ntl_ZZ from sage.libs.ntl.ntl_ZZ_p cimport ntl_ZZ_p from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.padics.padic_generic_element cimport pAdicGenericElement -from sage.libs.pari.all import pari_gen +from cypari2.gen cimport Gen as pari_gen from sage.interfaces.abc import GpElement from sage.rings.finite_rings.integer_mod import IntegerMod_abstract from sage.rings.finite_rings.integer_mod_ring import IntegerModRing diff --git a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx index 5db54020fb2..e8c8e870e0c 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx @@ -201,7 +201,7 @@ from sage.libs.ntl.ntl_ZZ cimport ntl_ZZ from sage.libs.ntl.ntl_ZZ_p cimport ntl_ZZ_p from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.padics.padic_generic_element cimport pAdicGenericElement -from sage.libs.pari.all import pari_gen +from cypari2.gen cimport Gen as pari_gen from sage.interfaces.abc import GpElement from sage.rings.finite_rings.integer_mod import IntegerMod_abstract from sage.rings.padics.padic_ext_element cimport pAdicExtElement diff --git a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx index de3df469423..9ed7b653450 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx @@ -143,7 +143,7 @@ from sage.libs.ntl.ntl_ZZ cimport ntl_ZZ from sage.libs.ntl.ntl_ZZ_p cimport ntl_ZZ_p from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.rational cimport Rational -from sage.libs.pari.all import pari_gen +from cypari2.gen cimport Gen as pari_gen from sage.interfaces.abc import GpElement from sage.rings.finite_rings.integer_mod import IntegerMod_abstract from sage.rings.finite_rings.integer_mod_ring import IntegerModRing diff --git a/src/sage/rings/padics/padic_floating_point_element.pyx b/src/sage/rings/padics/padic_floating_point_element.pyx index ceae683a62c..e7c0976c6f9 100644 --- a/src/sage/rings/padics/padic_floating_point_element.pyx +++ b/src/sage/rings/padics/padic_floating_point_element.pyx @@ -21,7 +21,7 @@ AUTHORS: include "sage/libs/linkages/padics/mpz.pxi" include "FP_template.pxi" -from sage.libs.pari.all import pari +from sage.libs.pari import pari from sage.libs.pari.convert_gmp cimport new_gen_from_padic from sage.rings.finite_rings.integer_mod import Mod diff --git a/src/sage/rings/padics/padic_generic_element.pyx b/src/sage/rings/padics/padic_generic_element.pyx index 81b164a03f9..4fd31a65d90 100644 --- a/src/sage/rings/padics/padic_generic_element.pyx +++ b/src/sage/rings/padics/padic_generic_element.pyx @@ -3514,7 +3514,7 @@ cdef class pAdicGenericElement(LocalGenericElement): ans = None if algorithm == "pari": - from sage.libs.pari.all import PariError + from cypari2.handle_error import PariError try: # use pari ans = parent(self.__pari__().sqrt()) diff --git a/src/sage/rings/polynomial/cyclotomic.pyx b/src/sage/rings/polynomial/cyclotomic.pyx index e9eb5675b90..f9e09ce4fd3 100644 --- a/src/sage/rings/polynomial/cyclotomic.pyx +++ b/src/sage/rings/polynomial/cyclotomic.pyx @@ -36,7 +36,7 @@ from sage.rings.integer_ring import ZZ from sage.structure.element cimport parent try: - from sage.libs.pari.all import pari + from sage.libs.pari import pari except ImportError: pass diff --git a/src/sage/rings/polynomial/multi_polynomial_ring.py b/src/sage/rings/polynomial/multi_polynomial_ring.py index 26c32fe036c..ddf3d3f614a 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ring.py +++ b/src/sage/rings/polynomial/multi_polynomial_ring.py @@ -69,7 +69,7 @@ import sage.interfaces.abc try: - from sage.libs.pari.all import pari_gen + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py b/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py index 668f66fe574..51239d3d9db 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py @@ -21,7 +21,8 @@ from sage.rings.fraction_field_element import FractionFieldElement import copy -from sage.libs.pari.all import pari, pari_gen +from sage.libs.pari import pari +from cypari2.gen import Gen as pari_gen from sage.misc.lazy_import import lazy_import from sage.rings.infinity import infinity diff --git a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py index 4db824cd0cc..d26f7e10e71 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py @@ -11,7 +11,7 @@ from sage.rings.polynomial.polynomial_element import Polynomial_generic_dense, Polynomial from sage.rings.polynomial.padics.polynomial_padic import Polynomial_padic from sage.rings.infinity import infinity -from sage.libs.pari.all import pari_gen +from cypari2.gen import Gen as pari_gen import sage.rings.padics.misc diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 05de5dfe104..b0149fdb7c0 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -81,7 +81,9 @@ from sage.structure.richcmp cimport (richcmp, richcmp_item, rich_to_bool, rich_to_bool_sgn) try: - from sage.libs.pari.all import pari, pari_gen, PariError + from sage.libs.pari import pari + from cypari2.handle_error import PariError + from cypari2.gen cimport Gen as pari_gen except ImportError: pari_gen = () pari = None diff --git a/src/sage/rings/polynomial/polynomial_element_generic.py b/src/sage/rings/polynomial/polynomial_element_generic.py index db8139bddad..677c542ed20 100644 --- a/src/sage/rings/polynomial/polynomial_element_generic.py +++ b/src/sage/rings/polynomial/polynomial_element_generic.py @@ -35,7 +35,7 @@ from sage.rings.polynomial.polynomial_singular_interface import Polynomial_singular_repr try: - from sage.libs.pari.all import pari_gen + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/rings/polynomial/polynomial_gf2x.pyx b/src/sage/rings/polynomial/polynomial_gf2x.pyx index cf4a224dda9..7a5eeb7ffae 100644 --- a/src/sage/rings/polynomial/polynomial_gf2x.pyx +++ b/src/sage/rings/polynomial/polynomial_gf2x.pyx @@ -26,7 +26,7 @@ include "sage/libs/ntl/ntl_GF2X_linkage.pxi" # and then the interface include "polynomial_template.pxi" -from sage.libs.pari.all import pari +from sage.libs.pari import pari from sage.libs.m4ri cimport mzd_write_bit, mzd_read_bit from sage.matrix.matrix_mod2_dense cimport Matrix_mod2_dense diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx index fc2ab9b584e..8070c07b9d1 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx @@ -55,7 +55,8 @@ from sage.libs.ntl.ntl_ZZX cimport ntl_ZZX from sage.rings.integer_ring import ZZ from sage.rings.rational_field import QQ -from sage.libs.pari.all import pari, pari_gen +from sage.libs.pari import pari +from cypari2.gen cimport Gen as pari_gen from sage.structure.factorization import Factorization from sage.rings.fraction_field_element import FractionFieldElement diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx b/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx index 142c7b324ad..696357327e1 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx +++ b/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx @@ -58,7 +58,8 @@ from sage.rings.integer cimport Integer from sage.rings.real_mpfr cimport RealNumber from sage.rings.real_mpfi cimport RealIntervalFieldElement -from sage.libs.pari.all import pari, pari_gen +from sage.libs.pari import pari +from cypari2.gen cimport Gen as pari_gen from sage.structure.factorization import Factorization from sage.structure.element import coerce_binop diff --git a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx index 68605382f1f..9261fdcc206 100644 --- a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx +++ b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx @@ -36,7 +36,8 @@ from cysignals.signals cimport sig_on, sig_off from sage.rings.polynomial.polynomial_element cimport Polynomial, _dict_to_list -from sage.libs.pari.all import pari, pari_gen +from sage.libs.pari import pari +from cypari2.gen cimport Gen as pari_gen from sage.rings.integer cimport smallInteger diff --git a/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx b/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx index cfcdcabdcb5..e2c401ebaca 100644 --- a/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +++ b/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx @@ -41,7 +41,7 @@ from sage.structure.element import coerce_binop from sage.libs.mpfr cimport * try: - from sage.libs.pari.all import pari_gen + from cypari2.gen cimport Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/rings/polynomial/polynomial_ring.py b/src/sage/rings/polynomial/polynomial_ring.py index 6be288de70f..9e1aef5dea5 100644 --- a/src/sage/rings/polynomial/polynomial_ring.py +++ b/src/sage/rings/polynomial/polynomial_ring.py @@ -159,7 +159,7 @@ from sage.rings.number_field.number_field_base import NumberField try: - from sage.libs.pari.all import pari_gen + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () @@ -3608,7 +3608,7 @@ def irreducible_element(self, n, algorithm=None): - Jeroen Demeyer (September 2014): add "ffprimroot" algorithm, see :issue:`8373`. """ - from sage.libs.pari.all import pari + from sage.libs.pari import pari from sage.rings.finite_rings.conway_polynomials import (conway_polynomial, exists_conway_polynomial) diff --git a/src/sage/rings/polynomial/polynomial_template.pxi b/src/sage/rings/polynomial/polynomial_template.pxi index b76d62a9e92..c65eefee383 100644 --- a/src/sage/rings/polynomial/polynomial_template.pxi +++ b/src/sage/rings/polynomial/polynomial_template.pxi @@ -20,7 +20,7 @@ from sage.structure.element import coerce_binop from sage.structure.richcmp cimport rich_to_bool from sage.rings.fraction_field_element import FractionFieldElement from sage.rings.integer cimport Integer -from sage.libs.pari.all import pari_gen +from cypari2.gen cimport Gen as pari_gen import operator diff --git a/src/sage/rings/power_series_mpoly.pyx b/src/sage/rings/power_series_mpoly.pyx index 741b0ad94e7..255c9d0ee03 100644 --- a/src/sage/rings/power_series_mpoly.pyx +++ b/src/sage/rings/power_series_mpoly.pyx @@ -8,7 +8,7 @@ from sage.rings import power_series_poly try: - from sage.libs.pari.all import PariError + from cypari2.handle_error import PariError except ImportError: PariError = () diff --git a/src/sage/rings/power_series_pari.pyx b/src/sage/rings/power_series_pari.pyx index 350362cadb7..bd76579346e 100644 --- a/src/sage/rings/power_series_pari.pyx +++ b/src/sage/rings/power_series_pari.pyx @@ -71,7 +71,7 @@ AUTHORS: from cypari2.gen cimport Gen as pari_gen from cypari2.pari_instance cimport get_var from cypari2.paridecl cimport gel, typ, lg, valp, varn, t_POL, t_SER, t_RFRAC, t_VEC -from sage.libs.pari.all import pari +from sage.libs.pari import pari from sage.rings.polynomial.polynomial_element cimport Polynomial from sage.rings.power_series_ring_element cimport PowerSeries diff --git a/src/sage/schemes/elliptic_curves/descent_two_isogeny.pyx b/src/sage/schemes/elliptic_curves/descent_two_isogeny.pyx index 16bad60ba56..91e870a8780 100644 --- a/src/sage/schemes/elliptic_curves/descent_two_isogeny.pyx +++ b/src/sage/schemes/elliptic_curves/descent_two_isogeny.pyx @@ -1318,7 +1318,7 @@ def two_descent_by_two_isogeny_work(Integer c, Integer d, p_list_len += 1 else: # Factor more slowly using Pari via Python. - from sage.libs.pari.all import pari + from sage.libs.pari import pari d = Integer(0) mpz_set(d.value, d_mpz) primes = list(pari(d).factor()[0]) diff --git a/src/sage/schemes/elliptic_curves/ell_point.py b/src/sage/schemes/elliptic_curves/ell_point.py index d05196240a1..50f0c609437 100644 --- a/src/sage/schemes/elliptic_curves/ell_point.py +++ b/src/sage/schemes/elliptic_curves/ell_point.py @@ -160,7 +160,8 @@ lazy_import('sage.schemes.generic.morphism', 'SchemeMorphism') try: - from sage.libs.pari.all import pari, PariError + from sage.libs.pari import pari + from cypari2.handle_error import PariError except ImportError: PariError = () diff --git a/src/sage/schemes/elliptic_curves/isogeny_class.py b/src/sage/schemes/elliptic_curves/isogeny_class.py index 13edc68a022..bffdbbdfc01 100644 --- a/src/sage/schemes/elliptic_curves/isogeny_class.py +++ b/src/sage/schemes/elliptic_curves/isogeny_class.py @@ -1207,7 +1207,7 @@ def isogeny_degrees_cm(E, verbose=False): if verbose: print("CM case, discriminant = %s" % d) - from sage.libs.pari.all import pari + from sage.libs.pari import pari from sage.sets.set import Set from sage.arith.misc import kronecker as kronecker_symbol diff --git a/src/sage/structure/factorization.py b/src/sage/structure/factorization.py index ab3fa717031..e1279fec42f 100644 --- a/src/sage/structure/factorization.py +++ b/src/sage/structure/factorization.py @@ -918,7 +918,7 @@ def __pari__(self): sage: pari(g) # needs sage.libs.pari [x - 1, 1; x + 1, 1; x^4 - x^3 + x^2 - x + 1, 1; x^4 + x^3 + x^2 + x + 1, 1] """ - from sage.libs.pari.all import pari + from sage.libs.pari import pari from itertools import chain n = len(self) diff --git a/src/sage/structure/sage_object.pyx b/src/sage/structure/sage_object.pyx index 7102316be70..8605cc2c729 100644 --- a/src/sage/structure/sage_object.pyx +++ b/src/sage/structure/sage_object.pyx @@ -972,7 +972,7 @@ cdef class SageObject: return self.__pari except AttributeError: pass - from sage.libs.pari.all import pari + from sage.libs.pari import pari x = pari(self._pari_init_()) if self._interface_is_cached_(): try: diff --git a/src/sage/symbolic/pynac_impl.pxi b/src/sage/symbolic/pynac_impl.pxi index fcd084cea81..6b2d45499df 100644 --- a/src/sage/symbolic/pynac_impl.pxi +++ b/src/sage/symbolic/pynac_impl.pxi @@ -43,7 +43,7 @@ from sage.libs.gmp.all cimport * 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.libs.pari import pari from sage.misc.persist import loads, dumps from sage.rings.integer_ring import ZZ from sage.rings.integer cimport Integer, smallInteger From e8463079e84ec807fd6231b0b0d15197837563c7 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 4 Jan 2025 20:10:55 +0800 Subject: [PATCH 2/2] More replacements of `pari.all` --- src/sage/combinat/combinat.py | 2 +- src/sage/combinat/partition.py | 2 +- src/sage/combinat/partition_tuple.py | 2 +- src/sage/modular/btquotients/btquotient.py | 2 +- src/sage/modular/multiple_zeta.py | 2 +- src/sage/modular/ssmod/ssmod.py | 2 +- src/sage/rings/complex_mpc.pyx | 2 +- src/sage/rings/complex_mpfr.pyx | 11 ++++++----- src/sage/rings/pari_ring.py | 8 ++++---- src/sage/rings/polynomial/polynomial_element.pyx | 2 +- .../rings/polynomial/polynomial_rational_flint.pyx | 2 +- .../rings/polynomial/polynomial_real_mpfr_dense.pyx | 2 +- src/sage/rings/power_series_poly.pyx | 3 ++- .../schemes/elliptic_curves/ell_rational_field.py | 2 +- src/sage/schemes/elliptic_curves/gal_reps.py | 2 +- src/sage/schemes/elliptic_curves/period_lattice.py | 2 +- .../hyperelliptic_finite_field.py | 2 +- src/sage/schemes/projective/proj_bdd_height.py | 2 +- 18 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/sage/combinat/combinat.py b/src/sage/combinat/combinat.py index 03c1797abfb..e0217176636 100644 --- a/src/sage/combinat/combinat.py +++ b/src/sage/combinat/combinat.py @@ -184,7 +184,7 @@ from sage.structure.element import Element lazy_import('sage.interfaces.maxima_lib', 'maxima') -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') lazy_import('sage.misc.prandom', 'randint') diff --git a/src/sage/combinat/partition.py b/src/sage/combinat/partition.py index 6b6a7edfa4c..ddd9db89bcc 100644 --- a/src/sage/combinat/partition.py +++ b/src/sage/combinat/partition.py @@ -317,7 +317,7 @@ lazy_import('sage.combinat.skew_partition', 'SkewPartition') lazy_import('sage.combinat.partition_tuple', 'PartitionTuple') lazy_import('sage.combinat.root_system.weyl_group', 'WeylGroup') -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') lazy_import('sage.groups.perm_gps.permgroup', 'PermutationGroup') lazy_import("sage.symbolic.ring", "var") diff --git a/src/sage/combinat/partition_tuple.py b/src/sage/combinat/partition_tuple.py index 527df5a2728..1e72c26ca29 100644 --- a/src/sage/combinat/partition_tuple.py +++ b/src/sage/combinat/partition_tuple.py @@ -275,7 +275,7 @@ class of modules for the algebras, which are generalisations of the Specht from sage.structure.unique_representation import UniqueRepresentation lazy_import('sage.groups.perm_gps.permgroup', 'PermutationGroup') -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') # ------------------------------------------------- # Partition tuple - element class diff --git a/src/sage/modular/btquotients/btquotient.py b/src/sage/modular/btquotients/btquotient.py index 280acec8874..19d4bde3e36 100644 --- a/src/sage/modular/btquotients/btquotient.py +++ b/src/sage/modular/btquotients/btquotient.py @@ -66,7 +66,7 @@ lazy_import('sage.algebras.quatalg.quaternion_algebra', 'QuaternionAlgebra') lazy_import('sage.graphs.graph', 'Graph') -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') lazy_import('sage.plot.colors', 'rainbow') lazy_import('sage.rings.number_field.number_field', 'NumberField') lazy_import('sage.rings.padics.factory', ['Qp', 'Zp']) diff --git a/src/sage/modular/multiple_zeta.py b/src/sage/modular/multiple_zeta.py index 8bcbb1101de..77597d2ec17 100644 --- a/src/sage/modular/multiple_zeta.py +++ b/src/sage/modular/multiple_zeta.py @@ -195,7 +195,7 @@ from sage.rings.rational_field import QQ from sage.sets.positive_integers import PositiveIntegers -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') # multiplicative generators for weight <= 17 diff --git a/src/sage/modular/ssmod/ssmod.py b/src/sage/modular/ssmod/ssmod.py index 9913e554a02..ce475e0f10f 100644 --- a/src/sage/modular/ssmod/ssmod.py +++ b/src/sage/modular/ssmod/ssmod.py @@ -79,7 +79,7 @@ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.structure.richcmp import richcmp_method, richcmp -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') ZZy = PolynomialRing(ZZ, 'y') diff --git a/src/sage/rings/complex_mpc.pyx b/src/sage/rings/complex_mpc.pyx index 28d521ec604..8bd4e04f948 100644 --- a/src/sage/rings/complex_mpc.pyx +++ b/src/sage/rings/complex_mpc.pyx @@ -76,7 +76,7 @@ from sage.categories.map cimport Map try: from sage.libs.pari import pari from cypari2.handle_error import PariError - from cypari2.gen cimport Gen as pari_gen + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = PariError = () diff --git a/src/sage/rings/complex_mpfr.pyx b/src/sage/rings/complex_mpfr.pyx index d3dee1b278e..720ec37b969 100644 --- a/src/sage/rings/complex_mpfr.pyx +++ b/src/sage/rings/complex_mpfr.pyx @@ -56,9 +56,10 @@ cimport gmpy2 gmpy2.import_gmpy2() try: - from cypari2.gen cimport Gen as pari_gen + from cypari2.gen import Gen as pari_gen + from cypari2.handle_error import PariError except ImportError: - pari_gen = () + pari_gen = PariError = () # Some objects that are not imported at startup in order to break # circular imports @@ -1434,7 +1435,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): """ if self.is_real(): return self.real().__pari__() - return sage.libs.pari.all.pari.complex(self.real() or 0, self.imag()) + return sage.libs.pari.pari.complex(self.real() or 0, self.imag()) def __mpc__(self): """ @@ -2401,7 +2402,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): """ try: return self._parent(self.__pari__().eta(not omit_frac)) - except sage.libs.pari.all.PariError: + except PariError: raise ValueError("value must be in the upper half plane") def sin(self): @@ -2878,7 +2879,7 @@ cdef class ComplexNumber(sage.structure.element.FieldElement): """ try: return self._parent(self.__pari__().gamma()) - except sage.libs.pari.all.PariError: + except PariError: from sage.rings.infinity import UnsignedInfinityRing return UnsignedInfinityRing.gen() diff --git a/src/sage/rings/pari_ring.py b/src/sage/rings/pari_ring.py index b8f2b62d5a7..b27e22e06e6 100644 --- a/src/sage/rings/pari_ring.py +++ b/src/sage/rings/pari_ring.py @@ -16,12 +16,12 @@ # # https://www.gnu.org/licenses/ # **************************************************************************** -import sage.libs.pari.all as pari from sage.categories.rings import Rings -from sage.structure.parent import Parent +from sage.libs.pari import pari +from sage.misc.fast_methods import Singleton from sage.structure.element import RingElement +from sage.structure.parent import Parent from sage.structure.richcmp import richcmp -from sage.misc.fast_methods import Singleton class Pari(RingElement): @@ -44,7 +44,7 @@ def __init__(self, x, parent=None) -> None: if parent is None: parent = _inst RingElement.__init__(self, parent) - self.__x = pari.pari(x) + self.__x = pari(x) def __repr__(self) -> str: """ diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index b0149fdb7c0..cb99e202f7c 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -83,7 +83,7 @@ from sage.structure.richcmp cimport (richcmp, richcmp_item, try: from sage.libs.pari import pari from cypari2.handle_error import PariError - from cypari2.gen cimport Gen as pari_gen + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () pari = None diff --git a/src/sage/rings/polynomial/polynomial_rational_flint.pyx b/src/sage/rings/polynomial/polynomial_rational_flint.pyx index c11592cf2d6..98bfbbd3ffa 100644 --- a/src/sage/rings/polynomial/polynomial_rational_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_rational_flint.pyx @@ -38,7 +38,7 @@ from sage.libs.flint.fmpq_poly_sage cimport * from sage.libs.gmp.mpz cimport * from sage.libs.gmp.mpq cimport * -from cypari2.gen import Gen as pari_gen +from cypari2.gen cimport Gen as pari_gen from sage.rings.complex_arb cimport ComplexBall from sage.rings.integer cimport Integer, smallInteger diff --git a/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx b/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx index e2c401ebaca..44faac21762 100644 --- a/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +++ b/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx @@ -41,7 +41,7 @@ from sage.structure.element import coerce_binop from sage.libs.mpfr cimport * try: - from cypari2.gen cimport Gen as pari_gen + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () diff --git a/src/sage/rings/power_series_poly.pyx b/src/sage/rings/power_series_poly.pyx index c284b06a5e4..9acde829d4a 100644 --- a/src/sage/rings/power_series_poly.pyx +++ b/src/sage/rings/power_series_poly.pyx @@ -8,7 +8,8 @@ from sage.structure.element cimport Element from sage.rings.infinity import infinity try: - from sage.libs.pari.all import pari_gen, PariError + from cypari2.handle_error import PariError + from cypari2.gen import Gen as pari_gen except ImportError: pari_gen = () PariError = () diff --git a/src/sage/schemes/elliptic_curves/ell_rational_field.py b/src/sage/schemes/elliptic_curves/ell_rational_field.py index 134531ad1a5..96a9cca752a 100644 --- a/src/sage/schemes/elliptic_curves/ell_rational_field.py +++ b/src/sage/schemes/elliptic_curves/ell_rational_field.py @@ -80,7 +80,7 @@ from sage.structure.element import Element, RingElement lazy_import("sage.functions.log", "log") -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') lazy_import("sage.functions.gamma", "gamma_inc") lazy_import('sage.interfaces.gp', 'gp') diff --git a/src/sage/schemes/elliptic_curves/gal_reps.py b/src/sage/schemes/elliptic_curves/gal_reps.py index 8f0e0ed9a60..428bf4bebf6 100644 --- a/src/sage/schemes/elliptic_curves/gal_reps.py +++ b/src/sage/schemes/elliptic_curves/gal_reps.py @@ -125,7 +125,7 @@ from sage.rings.real_mpfr import RealField from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') def _ex_set(p): diff --git a/src/sage/schemes/elliptic_curves/period_lattice.py b/src/sage/schemes/elliptic_curves/period_lattice.py index 54cd135dea9..a4a44405671 100644 --- a/src/sage/schemes/elliptic_curves/period_lattice.py +++ b/src/sage/schemes/elliptic_curves/period_lattice.py @@ -120,7 +120,7 @@ from sage.schemes.elliptic_curves.constructor import EllipticCurve from sage.structure.richcmp import richcmp_method, richcmp, richcmp_not_equal -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') lazy_import('sage.rings.number_field.number_field', 'refine_embedding') diff --git a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py index 469e3eaa2f8..d2981b4fbd8 100644 --- a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py +++ b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py @@ -61,7 +61,7 @@ from sage.misc.functional import rank from sage.misc.lazy_import import lazy_import -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') lazy_import('sage.schemes.hyperelliptic_curves.hypellfrob', 'hypellfrob') from sage.schemes.curves.projective_curve import ProjectivePlaneCurve_finite_field diff --git a/src/sage/schemes/projective/proj_bdd_height.py b/src/sage/schemes/projective/proj_bdd_height.py index 232f51188b4..b8fbb265b8d 100644 --- a/src/sage/schemes/projective/proj_bdd_height.py +++ b/src/sage/schemes/projective/proj_bdd_height.py @@ -28,7 +28,7 @@ from sage.schemes.projective.projective_space import ProjectiveSpace lazy_import('sage.geometry.polyhedron.constructor', 'Polyhedron') -lazy_import('sage.libs.pari.all', 'pari') +lazy_import('sage.libs.pari', 'pari') lazy_import('sage.matrix.constructor', ['matrix', 'column_matrix']) lazy_import('sage.modules.free_module_element', 'vector') lazy_import('sage.rings.number_field.unit_group', 'UnitGroup')