sagemath/sage

Modularization of sagelib: Break out a separate package sagemath-standard-no-symbolics

mkoeppe opened this issue · 164 comments

This is a subset distribution that includes all of sagemath-standard except for sage.symbolic and modules that use that.

As preparation, we remove gratuitous module-level imports from sage.symbolic, sage.functions, sage.calculus which block this modularization.

  • either by making these imports lazy_import

  • or by moving module-level imports to individual methods

  • or by replacing unnecessary uses of symbolic functions

  • or by using .abc (see #32414)
    The command git grep -E '^from.*sage[.](symbolic|calculus|functions).*import' helps to find these imports.

  • #32411/#32413/#32415/#32416: Remove unnecessary uses of SR and symbolic functions

  • #32599: sage.structure, sage.sets: Remove hard dependencies on the symbolic ring / polynomial rings

  • #32593: sage.modules, sage.matrix: Remove import-time dependencies on the symbolic ring

  • #32708: sage.tensor.modules: remove dependency on sage.manifolds

  • #32712 sage.tensor.modules: make doctests involving SR optional

  • #32717: Remove use of sage.functions.other.sqrt (outside of sage.symbolic, sage.functions, sage.manifolds)

  • #32731: Avoid ceil, floor from sage.functions.other in non-symbolic uses

  • #32794: sage.functions.log.log: Move to sage.misc.functional

  • #33392: sage.matrix: Modularization fixes after #33159

  • #32724: Replace ... is SR by isinstance(..., sage.rings.abc.SymbolicRing) to handle symbolic subrings

  • #32609 Remove more unnecessary uses of SR and symbolic functions in sage.combinat

  • #34215 Removing remaining uses of is_CallableSymbolicExpression

  • #34217 sage.combinat.finite_state_machine: Remove use of "var"

  • #25827: Methods __round__, __trunc__, __floor__, __ceil__

  • #32718: Remove module-level imports from sage.symbolic etc. (outside of sage.symbolic, sage.calculus etc.)

  • #32721: Remove abuse of predefined x in doctests

  • #33673: sage.categories.classical_crystals: Remove use of sage.symbolic

  • #33674: sage.combinat.root_system.coxeter_type: Replace module-level import of SR

To test:

./bootstrap && ./configure && make build && ./sage -sh -c '(cd pkgs/sagemath-standard-no-symbolics && SAGE_NUM_THREADS=16 tox -v -v -v -e sagepython-sagewheels-nopypi)'

See also:

  • #31695 Modularization of sagelib: Break out separate package sagemath-symbolics

Depends on #34547
Depends on #16522
Depends on #34855

CC: @kliem @egourgoulhon @tobiasdiez @anneschilling

Component: refactoring

Issue created by migration from https://trac.sagemath.org/ticket/32601

Changed dependencies from #29865 to #29865, #32599, #32593

Description changed:

--- 
+++ 
@@ -1,2 +1,8 @@
 This is a subset distribution that includes all of `sagemath-standard` except for `sage.symbolic` and modules that use that.
 
+To test:
+
+```
+./bootstrap && make build && ./sage -sh -c '(cd pkgs/sagemath-standard-no-symbolics && tox -v -v -v -e python-sagewheels-nopypi)'
+```
+

Changed dependencies from #29865, #32599, #32593 to #32575, #29865, #32599, #32593

Changed dependencies from #32575, #29865, #32599, #32593 to #32575, #32442, #29865, #32599, #32593

Last 10 new commits:

adae38etrac 32575: Sphinx's install-requires.txt: allow version 4.2
1131c86Merge #32575
8af6041Merge tag '9.5.beta2' into t/32442/__configure__make___with_sage_venv_the_default
b3f7d34.gitignore: Add /venv
fc4b641configure.ac: Remove conveniene symlinks before (re)creating them
8bcbf1dMakefile (distclean): Remove convenience symlinks prefix, venv
dcb4a08configure.ac: Indicate default in help string for --with-sage-venv
9a63841Merge #32442
934fc6bsrc/setup.cfg.m4, src/pyproject.toml.m4: Add memory_allocator
89bb042pkgs/sagemath-standard-no-symbolics: Fixup

Commit: 89bb042

Changed dependencies from #32575, #32442, #29865, #32599, #32593 to #32575, #32442, #29865, #32599, #32593, #32608

Branch pushed to git repo; I updated commit sha1. New commits:

80baf7bsage.{dynamics,geometry,interfaces}.all: Use lazy_import for imports from modules not in sagemath-standard-no-symbolics

Changed commit from 89bb042 to 80baf7b

comment:8
    from sage.quadratic_forms.genera.genus import genera
  File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-gcc11/pkgs/sagemath-standard-no-symbolics/.tox/python-sagewheels-nopypi/lib/python3.9/site-packages/sage/quadratic_forms/genera/genus.py", line 35, in <module>
    from sage.functions.gamma import gamma
ModuleNotFoundError: No module named 'sage.functions'

Description changed:

--- 
+++ 
@@ -1,4 +1,11 @@
 This is a subset distribution that includes all of `sagemath-standard` except for `sage.symbolic` and modules that use that.
+
+As preparation, we remove gratuitous module-level imports from `sage.symbolic`, `sage.functions`, `sage.calculus`. `git grep -E 'sage[.](symbolic|calculus|functions).*import'` helps to find them.
+
+- #32411/#32413/#32415/#32416: Remove unnecessary uses of `SR` and symbolic functions
+- #32599: `sage.structure`, `sage.sets`: Remove hard dependencies on the symbolic ring / polynomial rings
+- #32593: `sage.modules`, `sage.matrix`: Remove import-time dependencies on the symbolic ring
+
 
 To test:
 

Description changed:

--- 
+++ 
@@ -1,6 +1,6 @@
 This is a subset distribution that includes all of `sagemath-standard` except for `sage.symbolic` and modules that use that.
 
-As preparation, we remove gratuitous module-level imports from `sage.symbolic`, `sage.functions`, `sage.calculus`. `git grep -E 'sage[.](symbolic|calculus|functions).*import'` helps to find them.
+As preparation, we remove gratuitous module-level imports from `sage.symbolic`, `sage.functions`, `sage.calculus`. The command `git grep -E '^from.*sage[.](symbolic|calculus|functions).*import'` helps to find them.
 
 - #32411/#32413/#32415/#32416: Remove unnecessary uses of `SR` and symbolic functions
 - #32599: `sage.structure`, `sage.sets`: Remove hard dependencies on the symbolic ring / polynomial rings

Description changed:

--- 
+++ 
@@ -3,6 +3,7 @@
 As preparation, we remove gratuitous module-level imports from `sage.symbolic`, `sage.functions`, `sage.calculus`. The command `git grep -E '^from.*sage[.](symbolic|calculus|functions).*import'` helps to find them.
 
 - #32411/#32413/#32415/#32416: Remove unnecessary uses of `SR` and symbolic functions
+- #32609 Remove more unnecessary uses of `SR` and symbolic functions in `sage.combinat`
 - #32599: `sage.structure`, `sage.sets`: Remove hard dependencies on the symbolic ring / polynomial rings
 - #32593: `sage.modules`, `sage.matrix`: Remove import-time dependencies on the symbolic ring
 

Description changed:

--- 
+++ 
@@ -1,6 +1,11 @@
 This is a subset distribution that includes all of `sagemath-standard` except for `sage.symbolic` and modules that use that.
 
-As preparation, we remove gratuitous module-level imports from `sage.symbolic`, `sage.functions`, `sage.calculus`. The command `git grep -E '^from.*sage[.](symbolic|calculus|functions).*import'` helps to find them.
+As preparation, we remove gratuitous module-level imports from `sage.symbolic`, `sage.functions`, `sage.calculus` which block this modularization.
+- either by making these imports `lazy_import`
+- or by moving module-level imports to individual methods
+- or by replacing unnecessary uses of symbolic functions
+- or by using .abc (see #32414)
+The command `git grep -E '^from.*sage[.](symbolic|calculus|functions).*import'` helps to find these imports.
 
 - #32411/#32413/#32415/#32416: Remove unnecessary uses of `SR` and symbolic functions
 - #32609 Remove more unnecessary uses of `SR` and symbolic functions in `sage.combinat`

Description changed:

--- 
+++ 
@@ -11,7 +11,7 @@
 - #32609 Remove more unnecessary uses of `SR` and symbolic functions in `sage.combinat`
 - #32599: `sage.structure`, `sage.sets`: Remove hard dependencies on the symbolic ring / polynomial rings
 - #32593: `sage.modules`, `sage.matrix`: Remove import-time dependencies on the symbolic ring
-
+- #32708: `sage.tensor.modules`: remove dependency on `sage.manifolds`
 
 To test:
 

Description changed:

--- 
+++ 
@@ -1,4 +1,4 @@
-This is a subset distribution that includes all of `sagemath-standard` except for `sage.symbolic` and modules that use that.
+This is a subset distribution that includes all of **sagemath-standard** except for `sage.symbolic` and modules that use that.
 
 As preparation, we remove gratuitous module-level imports from `sage.symbolic`, `sage.functions`, `sage.calculus` which block this modularization.
 - either by making these imports `lazy_import`
@@ -19,3 +19,5 @@
 ./bootstrap && make build && ./sage -sh -c '(cd pkgs/sagemath-standard-no-symbolics && tox -v -v -v -e python-sagewheels-nopypi)'
 ```
 
+See also:
+- #31695 Modularization of sagelib: Break out separate package **sagemath-symbolics**

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

b484d51src/sage/symbolic/callable.py: Fixup
fad87c0Expression.is_callable: New
4bc059bsrc/sage/ext/fast_callable.pyx: Remove use of is_CallableSymbolicExpression
8624925src/sage/symbolic/ring.pyx: Update doctest output with deprecation warning
37da733src/sage/sets/condition_set.py: Remove use of is_CallableSymbolicExpression
80a8f9esage.plot: Remove use of is_CallableSymbolicExpression, is_SymbolicEquation
a287531src/sage/schemes/elliptic_curves/constructor.py: Remove use of SR, is_SymbolicEquation; add test for symbolic input
c9861d1src/sage/interfaces/qepcad.py: Remove use of is_SymbolicEquation
341337asrc/sage/ext/fast_callable.pyx: Remove use of is_SymbolicVariable
2c02ba9Merge #32665

Changed commit from 80baf7b to 2c02ba9

Description changed:

--- 
+++ 
@@ -16,7 +16,7 @@
 To test:
 
 ```
-./bootstrap && make build && ./sage -sh -c '(cd pkgs/sagemath-standard-no-symbolics && tox -v -v -v -e python-sagewheels-nopypi)'
+./bootstrap && make build && ./sage -sh -c '(cd pkgs/sagemath-standard-no-symbolics && SAGE_NUM_THREADS=16 tox -v -v -v -e py39-sagewheels-nopypi)'
 ```
 
 See also:

Branch pushed to git repo; I updated commit sha1. New commits:

e9fc48dMerge tag '9.5.beta3' into t/29865/t/29865-modularizarion-sage-objects
f79f0f8pkgs/sagemath-objects/setup.py: On sdist or egg_info, do not run find_python_sources
9600217pkgs/sagemath-objects/tox.ini: passenv SAGE_NUM_THREADS*
6bd807bpkgs/sagemath-categories/tox.ini: passenv SAGE_NUM_THREADS*
c60d2d4Merge #29865
c38d3d6src/requirements.txt.m4: Add memory_allocator

Changed commit from 2c02ba9 to c38d3d6

Branch pushed to git repo; I updated commit sha1. New commits:

efb68ffsrc/sage/quadratic_forms/genera/genus.py: Move imports from sage.functions, sage.symbolic into method

Changed commit from c38d3d6 to efb68ff

Description changed:

--- 
+++ 
@@ -12,6 +12,8 @@
 - #32599: `sage.structure`, `sage.sets`: Remove hard dependencies on the symbolic ring / polynomial rings
 - #32593: `sage.modules`, `sage.matrix`: Remove import-time dependencies on the symbolic ring
 - #32708: `sage.tensor.modules`: remove dependency on `sage.manifolds`
+- #32712 `sage.tensor.modules`: make doctests involving `SR` optional
+- #32717: Remove use of `sage.functions.other.sqrt` (outside of `sage.symbolic`, `sage.functions`, `sage.manifolds`)
 
 To test:
 

Description changed:

--- 
+++ 
@@ -14,6 +14,7 @@
 - #32708: `sage.tensor.modules`: remove dependency on `sage.manifolds`
 - #32712 `sage.tensor.modules`: make doctests involving `SR` optional
 - #32717: Remove use of `sage.functions.other.sqrt` (outside of `sage.symbolic`, `sage.functions`, `sage.manifolds`)
+- #25827: Methods `__round__`, `__trunc__`, `__floor__`, `__ceil__`
 
 To test:
 

Changed commit from efb68ff to 0a90634

Branch pushed to git repo; I updated commit sha1. New commits:

a8caa9esrc/sage/quadratic_forms: Move imports from sage.functions into methods
0a90634src/sage/sat/converters/polybori.py: Use ceil method instead of sage.functions.other.ceil

Description changed:

--- 
+++ 
@@ -15,6 +15,7 @@
 - #32712 `sage.tensor.modules`: make doctests involving `SR` optional
 - #32717: Remove use of `sage.functions.other.sqrt` (outside of `sage.symbolic`, `sage.functions`, `sage.manifolds`)
 - #25827: Methods `__round__`, `__trunc__`, `__floor__`, `__ceil__`
+- #32718: Remove module-level imports from `sage.symbolic` etc. (outside of `sage.symbolic`, `sage.calculus` etc.)
 
 To test:
 

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

ac58286Matrix.gram_schmidt: Use sage.rings.abc
6d4ee6eMatrix.gram_schmidt: Use sage.rings.abc (fixup)
3ea1f8bMerge #32635
ddaf8d4src/sage/modular/pollack_stevens/dist.pyx: Remove unused import
75bb729src/sage/quadratic_forms/ternary.pyx: Remove unused import
77075d5src/sage/lfunctions/zero_sums.pyx: Move import from sage.symbolic into method
072f1a7src/sage/combinat/crystals/tensor_product_element.pyx: Remove unused import
2623ef9src/sage/rings/polynomial/weil/weil_polynomials.pyx: Replace use of sage.functions.generalized.sgn by method .sign()
0ce36acsrc/sage/groups/braid.py: Replace use of sage.functions.generalized.sgn by method .sign()
832dad7pkgs/sagemath-standard-no-symbolics/MANIFEST.in.m4: Exclude sage/lfunctions, sage/libs/giac.p*

Changed commit from 0a90634 to 832dad7

Changed commit from 832dad7 to d5e24d5

Branch pushed to git repo; I updated commit sha1. New commits:

6b0fbdaFor isinstance tests, import Expression from sage.structure.element
d5e24d5src/bin/sage-eval: Do not fail if sage.calculus.predefined is not available

Description changed:

--- 
+++ 
@@ -16,6 +16,7 @@
 - #32717: Remove use of `sage.functions.other.sqrt` (outside of `sage.symbolic`, `sage.functions`, `sage.manifolds`)
 - #25827: Methods `__round__`, `__trunc__`, `__floor__`, `__ceil__`
 - #32718: Remove module-level imports from `sage.symbolic` etc. (outside of `sage.symbolic`, `sage.calculus` etc.)
+- #32721: Remove abuse of predefined `x` in doctests
 
 To test:
 

Changed commit from d5e24d5 to a97497a

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

1ec0c48src/sage/features/sagemath.py: Add sage.rings.number_field
0063749src/sage/features/sagemath.py: Add features for modules that were optional extensions
14fd1e5src/doc/en/developer/coding_basics.rst: Update discussion of feature tags
27c53acsrc/sage/features/sagemath.py: Add 'sage.plot'
180e31dMerge #30887
10e8d63sage.features.sagemath: Use JoinFeature when tag is different from the actually tested module
654d09csage.features.sagemath: Change sage_optional_tags to sage_features
f63a7d0src/sage/features/: Move features depending on optional packages to separate files
4558791Merge tag '9.5.beta3' into t/32614/features_and_optional_tags_for_sage_subset_distributions
a97497aMerge #32614

Description changed:

--- 
+++ 
@@ -17,6 +17,7 @@
 - #25827: Methods `__round__`, `__trunc__`, `__floor__`, `__ceil__`
 - #32718: Remove module-level imports from `sage.symbolic` etc. (outside of `sage.symbolic`, `sage.calculus` etc.)
 - #32721: Remove abuse of predefined `x` in doctests
+- #32724: Replace `... is SR` by `isinstance(..., sage.rings.abc.SymbolicRing)` to handle symbolic subrings
 
 To test:
 

Branch pushed to git repo; I updated commit sha1. New commits:

46a05b3src/sage/rings/polynomial/polynomial_element.pyx: Use isinstance(..., sage.rings.abc.SymbolicRing) instead of ... is SR

Changed commit from a97497a to 46a05b3

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

c294939src/sage/rings/polynomial/polynomial_element.pyx: Use isinstance(..., sage.rings.abc.SymbolicRing) instead of ... is SR

Changed commit from 46a05b3 to c294939

Branch pushed to git repo; I updated commit sha1. New commits:

ecfcfdesrc/sage/plot: Import Expression from sage.structure.element

Changed commit from c294939 to ecfcfde

Branch pushed to git repo; I updated commit sha1. New commits:

deece17src/sage/plot/graphics.py: Use isinstance(tick_formatter, sage.rings.abc.Expression) instead of ... in SR

Changed commit from ecfcfde to deece17

comment:36
$ pkgs/sagemath-standard-no-symbolics/.tox/py39-sagewheels-nopypi/bin/sage -tp 4 src/sage/graphs/
sage -t --random-seed=0 src/sage/graphs/generic_graph.py  # 89 doctests failed
sage -t --random-seed=0 src/sage/graphs/graph.py  # Killed due to segmentation fault
sage -t --random-seed=0 src/sage/graphs/generators/distance_regular.pyx  # 32 doctests failed
sage -t --random-seed=0 src/sage/graphs/generators/smallgraphs.py  # 18 doctests failed
sage -t --random-seed=0 src/sage/graphs/generators/families.py  # 12 doctests failed
sage -t --random-seed=0 src/sage/graphs/graph_generators.py  # 5 doctests failed
sage -t --random-seed=0 src/sage/graphs/bipartite_graph.py  # 3 doctests failed
sage -t --random-seed=0 src/sage/graphs/tutte_polynomial.py  # 4 doctests failed
sage -t --random-seed=0 src/sage/graphs/generators/random.py  # 2 doctests failed
sage -t --random-seed=0 src/sage/graphs/generators/basic.py  # 4 doctests failed
sage -t --random-seed=0 src/sage/graphs/graph_latex.py  # 5 doctests failed
sage -t --random-seed=0 src/sage/graphs/graph_plot.py  # 30 doctests failed
sage -t --random-seed=0 src/sage/graphs/spanning_tree.pyx  # 2 doctests failed
sage -t --random-seed=0 src/sage/graphs/hypergraph_generators.py  # 2 doctests failed
sage -t --random-seed=0 src/sage/graphs/graph_decompositions/tree_decomposition.pyx  # 15 doctests failed
sage -t --random-seed=0 src/sage/graphs/matchpoly.pyx  # 2 doctests failed
sage -t --random-seed=0 src/sage/graphs/hyperbolicity.pyx  # 52 doctests failed
sage -t --random-seed=0 src/sage/graphs/traversals.pyx  # 7 doctests failed
sage -t --random-seed=0 src/sage/graphs/generic_graph_pyx.pyx  # 1 doctest failed

Changed commit from deece17 to fc17053

Branch pushed to git repo; I updated commit sha1. New commits:

fc17053Merge tag '9.5.beta4' into t/32601/modularization_of_sagelib__break_out_a_separate_package_sagemath_standard_no_symbolics

Branch pushed to git repo; I updated commit sha1. New commits:

51b554fsage.misc.functional: Move sqrt here from sage.functions.other
71165eagit grep -l 'functions.*import.*sqrt' | xargs sed -i.bak 's/from sage[.]functions[.].* import sqrt *$/from sage.misc.functional import sqrt/'
1214541git grep -l 'functions.*import.*sqrt' | xargs sed -i.bak 's/from sage[.]functions[.].* import _do_sqrt *$/from sage.misc.functional import _do_sqrt/'
4a752e0git grep -l 'functions.*import.*sqrt' | xargs sed -E -i.bak $'s/^( *)from (sage[.]functions[.].* import .*)(, *sqrt|sqrt, *)(.*)/\1from \2\4\\n\1from sage.misc.functional import sqrt/'
5952b37src/sage/misc/all.py: Add sqrt
905e800src/sage/misc/functional.py: Fix imports
451ac27src/sage/functions/other.py: Remove import from sage.rings.all
d04c7e4Merge #32717
4ae0cb2src/sage/dynamics/arithmetic_dynamics/projective_ds.py: lazy_import from sage.calculus
8d68649src/sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py: Use integer division instead of floor(.../...)

Changed commit from fc17053 to 8d68649

Changed commit from 8d68649 to 98916c6

Branch pushed to git repo; I updated commit sha1. New commits:

cebcda3Merge tag '9.5.beta4' into t/29039/pip_installable_package_sage_bootstrap
0026892Merge tag '9.5.beta5' into t/29039/pip_installable_package_sage_bootstrap
e068bd9Merge #29039
98916c6Merge branch 't/29865/t/29865-modularizarion-sage-objects' into t/32601/modularization_of_sagelib__break_out_a_separate_package_sagemath_standard_no_symbolics
comment:41
$ pkgs/sagemath-standard-no-symbolics/.tox/py39-sagewheels-nopypi/bin/sage -tp 4 src/sage/graphs/
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/generic_graph.py  # 46 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/graph.py  # Killed due to segmentation fault
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/generators/distance_regular.pyx  # 32 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/generators/smallgraphs.py  # 18 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/generators/families.py  # 12 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/generators/random.py  # 1 doctest failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/bipartite_graph.py  # 3 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/graph_generators.py  # 1 doctest failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/tutte_polynomial.py  # 2 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/generators/basic.py  # 4 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/graph_latex.py  # 5 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/hypergraph_generators.py  # 2 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/graph_decompositions/tree_decomposition.pyx  # 15 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/matchpoly.pyx  # 2 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/hyperbolicity.pyx  # 52 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/traversals.pyx  # 7 doctests failed
sage -t --random-seed=221465068303176183606154232015486911187 src/sage/graphs/generic_graph_pyx.pyx  # 1 doctest failed

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

00f5615src/sage/graphs/hyperbolicity.pyx: Remove unused import
27b44b9src/sage/modular/pollack_stevens/dist.pyx: Remove unused import
7f1d021src/sage/quadratic_forms/ternary.pyx: Remove unused import
d5cfe2asrc/sage/combinat/crystals/tensor_product_element.pyx: Remove unused import
d825aa8src/sage/combinat/crystals/littelmann_path.py: Use integer_floor instead of sage.functions.other.floor
9c35213src/sage/combinat/diagram_algebras.py: Use integer_floor, integer_ceil instead of importing from sage.functions
57551d3src/sage/graphs/generic_graph.py: Use integer_floor instead of sage.functions.other.floor
bed7308src/sage/geometry/polyhedron/base.py: Remove stray character
33a2e7bsrc/sage/geometry/polyhedron/base.py: Fix up imports
543d5bfMerge branch 'u/mkoeppe/avoid_ceil__floor_from_sage_functions_other_in_non_symbolic_uses' of git://trac.sagemath.org/sage into t/32601/modularization_of_sagelib__break_out_a_separate_package_sagemath_standard_no_symbolics

Changed commit from 98916c6 to 543d5bf

Description changed:

--- 
+++ 
@@ -14,6 +14,9 @@
 - #32708: `sage.tensor.modules`: remove dependency on `sage.manifolds`
 - #32712 `sage.tensor.modules`: make doctests involving `SR` optional
 - #32717: Remove use of `sage.functions.other.sqrt` (outside of `sage.symbolic`, `sage.functions`, `sage.manifolds`)
+- #32731: Avoid `ceil`, `floor` from `sage.functions.other` in non-symbolic uses
+- #32794: `sage.functions.log.log`: Move to `sage.misc.functional`
+
 - #25827: Methods `__round__`, `__trunc__`, `__floor__`, `__ceil__`
 - #32718: Remove module-level imports from `sage.symbolic` etc. (outside of `sage.symbolic`, `sage.calculus` etc.)
 - #32721: Remove abuse of predefined `x` in doctests

Changed dependencies from #29865, #32731 to #29865, #32731, #32794

comment:45
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/generic_graph.py  # 15 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/graph.py  # Killed due to segmentation fault
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/generators/distance_regular.pyx  # 7 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/generators/smallgraphs.py  # 18 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/generators/families.py  # 12 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/generators/random.py  # 1 doctest failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/tutte_polynomial.py  # 2 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/graph_generators.py  # 1 doctest failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/bipartite_graph.py  # 3 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/generic_graph_pyx.pyx  # 1 doctest failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/graph_latex.py  # 5 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/generators/basic.py  # 4 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/graph_decompositions/tree_decomposition.pyx  # 15 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/hypergraph_generators.py  # 2 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/matchpoly.pyx  # 2 doctests failed
sage -t --random-seed=49515356934901712207815916771738328605 src/sage/graphs/traversals.pyx  # 7 doctests failed

Changed commit from 543d5bf to 7373f4f

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

6be920asrc/sage/combinat/words/finite_word.py: Change import of log for symbolic use to import from sage.functions.log
238e97esrc/sage/matrix/operation_table.py: Change non-symbolic use of log to import from sage.misc.functional
94a81a9Merge #32794
42fc62bsrc/sage/groups/lie_gps/nilpotent_lie_group.py: Make another import from sage.manifolds lazy
7d12d1fsrc/sage/graphs/hypergraph_generators.py: Import binomial from sage.arith.misc
5fe8aa6src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx: Avoid imports from .all
6d5ec0agit grep -l 'all import cached' src/sage | xargs sed -E -i.bak $'s/^( *)from sage.*all import (cached_[a-z]*) *$/\1from sage.misc.cachefunc import \2/'
299bd0cgit grep -l 'all import .*Integer' src/sage | xargs sed -E -i.bak $'s/^( *)from sage.*all import Integer *$/\1from sage.rings.integer import Integer/'
54fa2eegit grep -l 'all import .*GF' src/sage | xargs sed -E -i.bak $'s/^( *)from sage.*all import GF *$/\1from sage.rings.finite_rings.finite_field_constructor import GF/'
7373f4fMerge #32733

Changed dependencies from #29865, #32731, #32794 to #29865, #32731, #32733, #32794

comment:48
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/generic_graph.py  # 15 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/graph.py  # Bad exit: 1
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/generators/distance_regular.pyx  # 7 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/generators/smallgraphs.py  # 18 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/generators/families.py  # 12 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/generators/random.py  # 1 doctest failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/graph_generators.py  # 1 doctest failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/tutte_polynomial.py  # 2 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/bipartite_graph.py  # 3 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/generators/basic.py  # 4 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/graph_latex.py  # 5 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/graph_decompositions/tree_decomposition.pyx  # 15 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/matchpoly.pyx  # 2 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/traversals.pyx  # 7 doctests failed
sage -t --random-seed=150700228486336030108077186454218443399 src/sage/graphs/generic_graph_pyx.pyx  # 1 doctest failed

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

3c821bdsage.functions.other._eval_floor_ceil: Handle elements of symbolic subrings like elements of SR
f1c9258src/sage/combinat/q_analogues.py: Handle symbolic subrings like SR
f98855bsrc/sage/dynamics/arithmetic_dynamics/projective_ds.py: Use sage.rings.abc.SymbolicRing instead of 'is SR'
7f1500esrc/sage/geometry/polyhedron/parent.py: For backend='normaliz', accept subrings of SR
76e0962[Diff]ScalarFieldAlgebra._coerce_map_from_: Also coerce from subrings of SR
b7470d1Matrix.is_{positive_operator,cross_positive,lyapunov_like}_on: Handle symbolic subrings like SR
5fca7fccontinued_fraction: Handle symbolic subrings like SR
038eb9fsrc/sage/symbolic/pynac_impl.pxi (py_is_integer, py_is_exact): Handle symbolic subrings like SR
ff83c4csage.repl.ipython_kernel (widget_from_tuple, slider): Handle symbolic subrings like SR
1c4c53cMerge branch 'u/mkoeppe/replace______is_sr__by_isinstance______sage_rings_abc_symbolicring__to_handle_symbolic_subrings' of git://trac.sagemath.org/sage into t/32601/modularization_of_sagelib__break_out_a_separate_package_sagemath_standard_no_symbolics

Changed commit from 7373f4f to 1c4c53c

Changed commit from 1c4c53c to 41a5f50

Branch pushed to git repo; I updated commit sha1. New commits:

2788e3fMerge #32769
6187f93Merge tag '9.5.beta6' into t/29865/t/29865-modularizarion-sage-objects
a6cc585build/pkgs/sage_setup/install-requires.txt: Fix version
743e004pkgs/sagemath-objects/MANIFEST.in: Add sage.misc.namespace_package
41a5f50Merge #29865

Changed commit from 41a5f50 to d805d10

Branch pushed to git repo; I updated commit sha1. New commits:

f9182b4Merge tag '9.5.beta5' into t/32733/remove_more__all_imports
2ce2751src/sage/interacts/library.py: Remove unused imports
23d8441src/sage/interacts/library.py: suppress pyflakes warning
48360b7src/sage/libs/eclib/interface.py: Remove unused import
e2d1765Merge tag '9.5.beta6' into t/32733/remove_more__all_imports
d805d10Merge #32733
comment:52

Cyclic import problem:

>>> import sage.categories.all
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-gcc11/pkgs/sagemath-standard-no-symbolics/.tox/py39-sagewheels-nopypi/lib/python3.9/site-packages/sage/categories/all.py", line 36, in <module>
    from .basic import *
  File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-gcc11/pkgs/sagemath-standard-no-symbolics/.tox/py39-sagewheels-nopypi/lib/python3.9/site-packages/sage/categories/basic.py", line 44, in <module>
    from .complete_discrete_valuation import CompleteDiscreteValuationRings
ImportError: cannot import name 'CompleteDiscreteValuationRings' from 'sage.categories.complete_discrete_valuation' (/Users/mkoeppe/s/sage/sage-rebasing/worktree-gcc11/pkgs/sagemath-standard-no-symbolics/.tox/py39-sagewheels-nopypi/lib/python3.9/site-packages/sage/categories/complete_discrete_valuation.py)

Changed commit from d805d10 to 531063a

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

48cab99Import Algebra from sage.rings.ring, not sage.algebras.algebra
9f5fd79Import CommutativeAlgebra from sage.rings.ring, not sage.rings.commutative_algebra
e606d35src/sage/rings/polynomial/polynomial_ring.py: fixup
0374024Merge #32870
2a4a323Merge tag '9.5.beta7' into t/29039/pip_installable_package_sage_bootstrap
30da94cMerge #29039
a72ee3bsrc/sage/all__sagemath_objects.py: Add some more imports
f3ee49bsrc/sage/all__sagemath_objects.py: Add definitions of Integer, RealNumber for doctesting
9ef0567Merge #29039
531063aMerge #29865

Changed dependencies from #29865, #32731, #32733, #32794 to #29865, #32731, #32733, #32794, #32913

Branch pushed to git repo; I updated commit sha1. New commits:

2cc0497build/pkgs/{sage_conf,sage_setup}/install: Do not use sdh_pip_editable_install
b1b5a09Merge #32913

Changed commit from 531063a to b1b5a09

comment:56

Replying to @mkoeppe:

Cyclic import problem

... has disappeared

comment:57
$ pkgs/sagemath-standard-no-symbolics/.tox/py39-sagewheels-nopypi/bin/sage-runtests -p 4 src/sage/graphs/
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/generic_graph.py  # 19 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/graph.py  # Bad exit: 1
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/generators/distance_regular.pyx  # 7 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/generators/smallgraphs.py  # 18 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/connectivity.pyx  # 2 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/graph_decompositions/fast_digraph.pyx  # 5 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/generators/families.py  # 12 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/generators/random.py  # 1 doctest failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/graph_generators.py  # 1 doctest failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/tutte_polynomial.py  # 2 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/generators/basic.py  # 4 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/matchpoly.pyx  # 2 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/generic_graph_pyx.pyx  # 1 doctest failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/bipartite_graph.py  # 3 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/graph_latex.py  # 5 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/graph_decompositions/tree_decomposition.pyx  # 15 doctests failed
sage -t --random-seed=334966994128161535997678980273883901472 src/sage/graphs/traversals.pyx  # 7 doctests failed

Branch pushed to git repo; I updated commit sha1. New commits:

98fa12asage.graphs.generators.random.RandomChordalGraph: Use sage.misc.functional.isqrt
d4aeaeesage.graphs.graph_decompositions.tree_decomposition.treelength_lowerbound: Avoid ceil from sage.functions, remove workaround for python 2 integer div
d2cdbf2src/sage/graphs/graph_latex.py: Mark doctests # optional - sage.symbolic

Changed commit from b1b5a09 to d2cdbf2

Changed commit from d2cdbf2 to 0781d78

Branch pushed to git repo; I updated commit sha1. New commits:

0781d78src/sage/groups/lie_gps/catalog.py: Use lazy_import

Changed dependencies from #29865, #32731, #32733, #32794, #32913 to #29865, #32731, #32733, #32794, #32913, #32888, #32916

Changed commit from 0781d78 to e45c0a2

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

df49677src/sage/graphs/graph_latex.py: Mark doctests # optional - sage.symbolic
8d7b7cdsrc/sage/graphs/generic_graph_pyx.pyx: In doctest, use math.pi with polar_plot
d062a72src/sage/graphs/matchpoly.pyx: Mark a doctest # optional - sage.symbolic
db13d3fsrc/sage/graphs/bipartite_graph.py: Mark some doctests # optional - sage.symbolic
bab8600src/sage/graphs/generators/families.py: Avoid using sage.functions.trig
7b7b4cdsrc/sage/graphs/graph.py: In doctests, use integer_ceil instead of ceil
d2ada01GenericGraph.laplacian_matrix: Import sqrt only when needed, add # optional - sage.symbolic
a6a3d4csrc/sage/graphs/generators/distance_regular.pyx: Avoid use of sage.functions.trig
9fa5543src/sage/graphs/generic_graph.py: Replace use of symbolic callable expression in doctest by lambda
e45c0a2Merge #32916

Changed commit from e45c0a2 to 9740dc7

Branch pushed to git repo; I updated commit sha1. New commits:

eb0552dsrc/sage/graphs/generators/basic.py: In doctest, remove unnecessary use of SR
b38bdf5src/sage/graphs/generators/smallgraphs.py: In doctest, remove unnecessary use of SR
2d1bb74src/sage/libs/symmetrica/symmetrica.pxi: Remove .all imports
53e5995src/sage/graphs/graph.py: In doctest, use integer_floor instead of floor
5bed573src/sage/graphs: Mark some doctests # optional - sage.symbolic
9740dc7src/sage/graphs/generators/families.py: Replace use of floor by //

Changed commit from 9740dc7 to a83ec5d

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

cf61104Merge branch 'develop' of git://github.com/sagemath/sage into public/refactoring/complexCycle
381dc67Add pxd file
1d0d20dTry global cimport
dfa1de0Use sage.rings.abc.ComplexIntervalField instead of soon-deprecated class
3f2d873Merge branch 'develop' of git://github.com/sagemath/sage into public/refactoring/complexCycle
acf57b5Fix typo
fb09fdaFix up imports
55da358Merge branch 'develop' of https://github.com/sagemath/sage into public/refactoring/complexCycle
401fee5Remove cycle around complex_double
a83ec5dMerge #30741

Changed commit from a83ec5d to c314e78

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

e7f538dsage.features.bliss: Change name of BlissLibrary feature to libbliss, remove it from all_features
12a2507src/sage/features/interfaces.py: Fix indentation in docstring
0dd76b6Merge tag '9.5.beta7' into t/32174/doctests__detect__safe__external_features_even_if____optional_external__is_not_used
07b2512src/sage/misc/latex.py: Conditionalize some doctests on latex_package_tkz_graph
cb1343732174: fix the --show-skipped doctest report
391dca1sage.misc.latex.png: Mark doctest # optional - imagemagick
6f311b3src/sage/doctest/external.py: Revert latex features to 'external'
3bfe1a132174: adapting the doctest listing external softwares
fdfe1a7src/sage/tests/cmdline.py: Mark a doctest # known bug #32697
c314e78Merge branch 'public/32174' of git://trac.sagemath.org/sage into t/32601/modularization_of_sagelib__break_out_a_separate_package_sagemath_standard_no_symbolics

Changed dependencies from #29865, #32731, #32733, #32794, #32913, #32888, #32916 to #29865, #32913, #32888, #33199

Changed dependencies from #29865, #32913, #32888, #33199 to #29865, #32913, #32888, #33199, #33146

Changed commit from c314e78 to 0a3f6f1

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

84a887eMerge #32999
0694b04git grep -l 'graphs.all.*import' | xargs sed -E -i.bak $'s/^( *)from sage.*all import Graph, DiGraph *$/\1from sage.graphs.graph import Graph\n\1from sage.graphs.digraph import Digraph/;s/from sage.*all import Graph/from sage.graphs.graph import Graph/;s/from sage.*all import DiGraph/from sage.graphs.digraph import DiGraph/;'
5ec356bgit grep -l 'graphs.all.*import' | xargs sed -E -i.bak 's/from sage.graphs.all import graphs/from sage.graphs.graph_generators import graphs/'
cfb1086src/sage/matroids/utilities.py: Replace imports from sage.graphs.all, sage.rings.all
f12c46fsrc/sage/sandpiles/sandpile.py: Fix up imports
1dbef4dgit grep -l 'import Digraph' | xargs sed -i.bak 's/import Digraph/import DiGraph/'
c51ad29Merge #33199
9b329d5some more specific imports in combinat
750af3dmodified imports of NN in combinat
0a3f6f1Merge #33146