Skip to content

Commit 54dbcbf

Browse files
author
Release Manager
committed
gh-36589: Replace relative imports by absolute ones in a few packages <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> As preparation for compiling with meson, we replace relative imports by absolute ones. Moreover, relative imports are not used consistently in the codebase and result in issues for doctesting with pytest (which admittedly is a limitation of pytest). We normalize the relative imports in a few smaller packages to be absolute imports. Small code-style improvements along the way (mainly to nicely order the imports) <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [ ] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: #36589 Reported by: Tobias Diez Reviewer(s): Dima Pasechnik
2 parents 671f7d5 + aac6ca2 commit 54dbcbf

File tree

18 files changed

+146
-85
lines changed

18 files changed

+146
-85
lines changed

src/sage/arith/all.py

Lines changed: 85 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,96 @@
11
from sage.misc.lazy_import import lazy_import
22

3-
from .misc import (algdep, bernoulli, is_prime, is_prime_power,
4-
is_pseudoprime, is_pseudoprime_power,
5-
prime_powers, primes_first_n, eratosthenes, primes,
6-
next_prime_power, next_probable_prime, next_prime,
7-
previous_prime, previous_prime_power, random_prime,
8-
divisors, sigma, gcd, GCD, xlcm, xgcd, xkcd,
9-
inverse_mod, get_gcd, get_inverse_mod, power_mod,
10-
rational_reconstruction, mqrr_rational_reconstruction,
11-
trial_division, factor, prime_divisors, odd_part, prime_to_m_part,
12-
is_square, is_squarefree, euler_phi, carmichael_lambda, crt, CRT,
13-
CRT_list, CRT_basis, CRT_vectors, multinomial, multinomial_coefficients,
14-
binomial, factorial, kronecker_symbol, kronecker, legendre_symbol,
15-
primitive_root, nth_prime, quadratic_residues, moebius,
16-
continuant, number_of_divisors, hilbert_symbol, hilbert_conductor,
17-
hilbert_conductor_inverse, falling_factorial, rising_factorial,
18-
integer_ceil, integer_floor,
19-
two_squares, three_squares, four_squares, sum_of_k_squares,
20-
subfactorial, is_power_of_two, differences,
3+
from sage.arith.misc import (
4+
algdep,
5+
bernoulli,
6+
is_prime,
7+
is_prime_power,
8+
is_pseudoprime,
9+
is_pseudoprime_power,
10+
prime_powers,
11+
primes_first_n,
12+
eratosthenes,
13+
primes,
14+
next_prime_power,
15+
next_probable_prime,
16+
next_prime,
17+
previous_prime,
18+
previous_prime_power,
19+
random_prime,
20+
divisors,
21+
sigma,
22+
gcd,
23+
GCD,
24+
xlcm,
25+
xgcd,
26+
xkcd,
27+
inverse_mod,
28+
get_gcd,
29+
get_inverse_mod,
30+
power_mod,
31+
rational_reconstruction,
32+
mqrr_rational_reconstruction,
33+
trial_division,
34+
factor,
35+
prime_divisors,
36+
odd_part,
37+
prime_to_m_part,
38+
is_square,
39+
is_squarefree,
40+
euler_phi,
41+
carmichael_lambda,
42+
crt,
43+
CRT,
44+
CRT_list,
45+
CRT_basis,
46+
CRT_vectors,
47+
multinomial,
48+
multinomial_coefficients,
49+
binomial,
50+
factorial,
51+
kronecker_symbol,
52+
kronecker,
53+
legendre_symbol,
54+
primitive_root,
55+
nth_prime,
56+
quadratic_residues,
57+
moebius,
58+
continuant,
59+
number_of_divisors,
60+
hilbert_symbol,
61+
hilbert_conductor,
62+
hilbert_conductor_inverse,
63+
falling_factorial,
64+
rising_factorial,
65+
integer_ceil,
66+
integer_floor,
67+
two_squares,
68+
three_squares,
69+
four_squares,
70+
sum_of_k_squares,
71+
subfactorial,
72+
is_power_of_two,
73+
differences,
2174
sort_complex_numbers_for_display,
22-
fundamental_discriminant, squarefree_divisors,
23-
radical, binomial_coefficients, jacobi_symbol,
75+
fundamental_discriminant,
76+
squarefree_divisors,
77+
radical,
78+
binomial_coefficients,
79+
jacobi_symbol,
2480
dedekind_sum,
25-
prime_factors, prime_range, valuation)
81+
prime_factors,
82+
prime_range,
83+
valuation,
84+
)
2685

27-
lazy_import('sage.arith.misc', ('Sigma', 'Moebius', 'Euler_Phi'), deprecation=30322)
86+
lazy_import("sage.arith.misc", ("Sigma", "Moebius", "Euler_Phi"), deprecation=30322)
87+
88+
from sage.arith.functions import lcm
2889

29-
from .functions import lcm
3090
LCM = lcm
3191

32-
from .srange import xsrange, srange, ellipsis_iter, ellipsis_range
92+
from sage.arith.srange import xsrange, srange, ellipsis_iter, ellipsis_range
93+
3394
sxrange = xsrange
3495

3596
σ = sigma

src/sage/arith/power.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ square-and-multiply algorithm.
1717

1818
from cysignals.signals cimport sig_check
1919

20-
from .long cimport integer_check_long
20+
from sage.arith.long cimport integer_check_long
2121

2222

2323
cpdef generic_power(a, n) noexcept:

src/sage/cpython/all.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
from .debug import getattr_debug, type_debug
2-
from .getattr import raw_getattr
1+
from sage.cpython.debug import getattr_debug, type_debug
2+
from sage.cpython.getattr import raw_getattr

src/sage/cpython/debug.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ cdef extern from "Python.h":
2121
cdef extern from "sage/cpython/debugimpl.c":
2222
void _type_debug(PyTypeObject*)
2323

24-
from .getattr cimport AttributeErrorMessage
24+
from sage.cpython.getattr cimport AttributeErrorMessage
2525

2626

2727
# Determine subtype_traverse, subtype_clear, subtype_dealloc functions

src/sage/data_structures/all.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11

2-
from .bitset import Bitset, FrozenBitset
2+
from sage.data_structures.bitset import Bitset, FrozenBitset

src/sage/data_structures/bitset.pxd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
# http://www.gnu.org/licenses/
88
#*****************************************************************************
99

10-
from .bitset_base cimport bitset_t
10+
from sage.data_structures.bitset_base cimport bitset_t
1111

1212
# Python layer over bitset_t
1313
cdef class FrozenBitset:

src/sage/data_structures/bitset.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ linear in ``capacity``.
3131
# http://www.gnu.org/licenses/
3232
#*****************************************************************************
3333

34-
from .bitset_base cimport *
34+
from sage.data_structures.bitset_base cimport *
3535
from cpython.object cimport Py_LT, Py_LE, Py_EQ, Py_NE, Py_GT, Py_GE
3636

3737

src/sage/misc/all.py

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
from .lazy_attribute import lazy_attribute, lazy_class_attribute
2-
from .lazy_import import lazy_import
1+
from sage.misc.lazy_attribute import lazy_attribute, lazy_class_attribute
2+
from sage.misc.lazy_import import lazy_import
33

4-
from .all__sagemath_objects import *
5-
from .all__sagemath_environment import *
6-
from .all__sagemath_repl import *
4+
from sage.misc.all__sagemath_objects import *
5+
from sage.misc.all__sagemath_environment import *
6+
from sage.misc.all__sagemath_repl import *
77

8-
from .misc import (BackslashOperator,
8+
from sage.misc.misc import (BackslashOperator,
99
exists, forall, is_iterator,
1010
random_sublist,
1111
pad_zeros,
@@ -15,27 +15,27 @@
1515
lazy_import('sage.misc.misc', 'union',
1616
deprecation=32096)
1717

18-
from .banner import version
18+
from sage.misc.banner import version
1919

20-
from .dev_tools import import_statements
20+
from sage.misc.dev_tools import import_statements
2121

22-
from .html import html, pretty_print_default
22+
from sage.misc.html import html, pretty_print_default
2323

24-
from .table import table
24+
from sage.misc.table import table
2525

26-
from .sage_timeit_class import timeit
26+
from sage.misc.sage_timeit_class import timeit
2727

28-
from .edit_module import edit
28+
from sage.misc.edit_module import edit
2929

30-
from .map_threaded import map_threaded
30+
from sage.misc.map_threaded import map_threaded
3131

32-
from .session import load_session, save_session, show_identifiers
32+
from sage.misc.session import load_session, save_session, show_identifiers
3333

34-
from .remote_file import get_remote_file
34+
from sage.misc.remote_file import get_remote_file
3535

36-
from .mrange import xmrange, mrange, xmrange_iter, mrange_iter, cartesian_product_iterator
36+
from sage.misc.mrange import xmrange, mrange, xmrange_iter, mrange_iter, cartesian_product_iterator
3737

38-
from .fpickle import pickle_function, unpickle_function
38+
from sage.misc.fpickle import pickle_function, unpickle_function
3939

4040
lazy_import('sage.misc.pager', 'pager')
4141

@@ -45,21 +45,21 @@
4545
'constructions', 'help'])
4646
lazy_import('pydoc', 'help', 'python_help')
4747

48-
from .classgraph import class_graph
48+
from sage.misc.classgraph import class_graph
4949

50-
from .reset import reset, restore
50+
from sage.misc.reset import reset, restore
5151

52-
from .mathml import mathml
52+
from sage.misc.mathml import mathml
5353

54-
from .defaults import (set_default_variable_name,
54+
from sage.misc.defaults import (set_default_variable_name,
5555
series_precision, set_series_precision)
5656

5757
lazy_import("sage.misc.cython", "cython_lambda")
5858
lazy_import("sage.misc.cython", "cython_compile", "cython")
5959

60-
from .func_persist import func_persist
60+
from sage.misc.func_persist import func_persist
6161

62-
from .functional import (additive_order,
62+
from sage.misc.functional import (additive_order,
6363
base_ring,
6464
base_field,
6565
basis,
@@ -118,15 +118,15 @@
118118
transpose)
119119

120120

121-
from .latex import LatexExpr, latex, view
121+
from sage.misc.latex import LatexExpr, latex, view
122122

123-
from .randstate import seed, set_random_seed, initial_seed, current_randstate
123+
from sage.misc.randstate import seed, set_random_seed, initial_seed, current_randstate
124124

125-
from .prandom import *
125+
from sage.misc.prandom import *
126126

127-
from .timing import walltime, cputime
127+
from sage.misc.timing import walltime, cputime
128128

129-
from .explain_pickle import explain_pickle, unpickle_newobj, unpickle_global, unpickle_build, unpickle_instantiate, unpickle_persistent, unpickle_extension, unpickle_appends
129+
from sage.misc.explain_pickle import explain_pickle, unpickle_newobj, unpickle_global, unpickle_build, unpickle_instantiate, unpickle_persistent, unpickle_extension, unpickle_appends
130130

131131
lazy_import('sage.misc.inline_fortran', 'fortran')
132132

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
from .temporary_file import tmp_dir, tmp_filename
1+
from sage.misc.temporary_file import tmp_dir, tmp_filename

src/sage/misc/all__sagemath_objects.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,35 @@
22

33
import sage.structure.all # to break a cyclic import
44

5-
from .lazy_attribute import lazy_attribute, lazy_class_attribute
6-
from .lazy_import import lazy_import
5+
from sage.misc.lazy_attribute import lazy_attribute, lazy_class_attribute
6+
from sage.misc.lazy_import import lazy_import
77

8-
from .verbose import (set_verbose, set_verbose_files,
8+
from sage.misc.verbose import (set_verbose, set_verbose_files,
99
get_verbose_files, unset_verbose_files, get_verbose)
1010
lazy_import('sage.misc.verbose', 'verbose',
1111
deprecation=17815)
12-
from .call import attrcall
12+
from sage.misc.call import attrcall
1313

14-
from .misc_c import prod, running_total, balanced_sum
14+
from sage.misc.misc_c import prod, running_total, balanced_sum
1515
mul = prod
1616
add = sum
1717

18-
from .repr import repr_lincomb
18+
from sage.misc.repr import repr_lincomb
1919

20-
from .flatten import flatten
20+
from sage.misc.flatten import flatten
2121

22-
from .persist import save, load, dumps, loads, db, db_save
22+
from sage.misc.persist import save, load, dumps, loads, db, db_save
2323

24-
from .constant_function import ConstantFunction
24+
from sage.misc.constant_function import ConstantFunction
2525

26-
from .sage_unittest import TestSuite
26+
from sage.misc.sage_unittest import TestSuite
2727

28-
from .decorators import specialize, sage_wraps, infix_operator
28+
from sage.misc.decorators import specialize, sage_wraps, infix_operator
2929

30-
from .unknown import Unknown, UnknownError
30+
from sage.misc.unknown import Unknown, UnknownError
3131

32-
from .cachefunc import CachedFunction, cached_function, cached_method, cached_in_parent_method, disk_cached_function
32+
from sage.misc.cachefunc import CachedFunction, cached_function, cached_method, cached_in_parent_method, disk_cached_function
3333

34-
from .abstract_method import abstract_method
34+
from sage.misc.abstract_method import abstract_method
3535

36-
from .timing import walltime, cputime
36+
from sage.misc.timing import walltime, cputime

0 commit comments

Comments
 (0)