From 3fe393c8815fcb389ecfc095e108f529716aa7e3 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 20 Mar 2023 20:23:58 -0700 Subject: [PATCH 01/15] Remove many empty __init__.py files when all.py files are present --- src/sage/algebras/{__init__.py => letterplace/all.py} | 0 src/sage/algebras/lie_algebras/__init__.py | 0 src/sage/algebras/lie_conformal_algebras/__init__.py | 0 src/sage/algebras/quantum_groups/__init__.py | 0 src/sage/algebras/quatalg/__init__.py | 0 src/sage/algebras/steenrod/__init__.py | 0 src/sage/calculus/__init__.py | 0 src/sage/calculus/transforms/__init__.py | 0 src/sage/coding/__init__.py | 0 src/sage/coding/source_coding/__init__.py | 0 src/sage/combinat/__init__.py | 0 src/sage/combinat/chas/__init__.py | 0 src/sage/combinat/cluster_algebra_quiver/__init__.py | 0 src/sage/combinat/crystals/__init__.py | 0 src/sage/combinat/designs/__init__.py | 0 src/sage/combinat/matrices/__init__.py | 0 src/sage/combinat/ncsf_qsym/__init__.py | 0 src/sage/combinat/ncsym/__init__.py | 0 src/sage/combinat/path_tableaux/__init__.py | 0 src/sage/combinat/posets/__init__.py | 0 src/sage/combinat/rigged_configurations/__init__.py | 0 src/sage/combinat/root_system/__init__.py | 0 src/sage/combinat/sf/__init__.py | 0 src/sage/combinat/species/__init__.py | 0 src/sage/crypto/block_cipher/__init__.py | 0 src/sage/crypto/public_key/__init__.py | 0 src/sage/data_structures/__init__.py | 0 src/sage/databases/__init__.py | 0 src/sage/dynamics/__init__.py | 0 src/sage/dynamics/arithmetic_dynamics/__init__.py | 0 src/sage/dynamics/complex_dynamics/__init__.py | 0 src/sage/game_theory/__init__.py | 0 src/sage/games/__init__.py | 0 src/sage/geometry/__init__.py | 0 src/sage/geometry/hyperbolic_space/__init__.py | 0 src/sage/geometry/polyhedron/__init__.py | 0 src/sage/geometry/riemannian_manifolds/__init__.py | 0 src/sage/geometry/triangulation/__init__.py | 0 src/sage/groups/__init__.py | 0 src/sage/groups/abelian_gps/__init__.py | 0 src/sage/groups/additive_abelian/__init__.py | 0 src/sage/groups/matrix_gps/__init__.py | 0 src/sage/groups/perm_gps/__init__.py | 0 src/sage/homology/__init__.py | 0 src/sage/interacts/__init__.py | 0 src/sage/knots/__init__.py | 0 src/sage/lfunctions/__init__.py | 0 src/sage/logic/__init__.py | 0 src/sage/manifolds/__init__.py | 0 src/sage/modular/__init__.py | 0 src/sage/modular/abvar/__init__.py | 0 src/sage/modular/arithgroup/__init__.py | 0 src/sage/modular/btquotients/__init__.py | 0 src/sage/modular/hecke/__init__.py | 0 src/sage/modular/local_comp/__init__.py | 0 src/sage/modular/modform/__init__.py | 0 src/sage/modular/modform_hecketriangle/__init__.py | 0 src/sage/modular/modsym/__init__.py | 0 src/sage/modular/overconvergent/__init__.py | 0 src/sage/modular/pollack_stevens/__init__.py | 0 src/sage/modular/quatalg/__init__.py | 0 src/sage/modular/ssmod/__init__.py | 0 src/sage/modules/__init__.py | 0 src/sage/monoids/__init__.py | 0 src/sage/parallel/__init__.py | 0 src/sage/probability/__init__.py | 0 src/sage/quadratic_forms/__init__.py | 0 src/sage/quadratic_forms/genera/__init__.py | 0 src/sage/rings/asymptotic/__init__.py | 0 src/sage/rings/function_field/__init__.py | 0 src/sage/rings/invariants/__init__.py | 0 src/sage/rings/padics/__init__.py | 0 src/sage/rings/polynomial/padics/__init__.py | 0 .../__init__.py => rings/polynomial/padics/all.py} | 0 src/sage/rings/polynomial/weil/__init__.py | 0 src/sage/rings/semirings/__init__.py | 0 src/sage/sandpiles/__init__.py | 0 src/sage/sat/__init__.py | 0 src/sage/schemes/__init__.py | 0 src/sage/schemes/affine/__init__.py | 0 src/sage/schemes/berkovich/__init__.py | 0 src/sage/schemes/curves/__init__.py | 0 src/sage/schemes/cyclic_covers/__init__.py | 0 src/sage/schemes/elliptic_curves/__init__.py | 0 src/sage/schemes/generic/__init__.py | 0 src/sage/schemes/hyperelliptic_curves/__init__.py | 0 src/sage/schemes/jacobians/__init__.py | 0 src/sage/schemes/plane_conics/__init__.py | 0 src/sage/schemes/plane_quartics/__init__.py | 0 src/sage/schemes/product_projective/__init__.py | 0 src/sage/schemes/projective/__init__.py | 0 src/sage/schemes/riemann_surfaces/__init__.py | 0 .../fusion_rings/__init__.py => schemes/riemann_surfaces/all.py} | 0 src/sage/schemes/toric/__init__.py | 0 src/sage/schemes/toric/sheaf/__init__.py | 0 .../hecke_algebras/__init__.py => schemes/toric/sheaf/all.py} | 0 src/sage/server/__init__.py | 0 src/sage/stats/__init__.py | 0 src/sage/stats/distributions/__init__.py | 0 .../letterplace/__init__.py => stats/distributions/all.py} | 0 src/sage/stats/hmm/__init__.py | 0 src/sage/tensor/__init__.py | 0 src/sage/tensor/modules/__init__.py | 0 src/sage/topology/__init__.py | 0 src/sage/typeset/__init__.py | 0 105 files changed, 0 insertions(+), 0 deletions(-) rename src/sage/algebras/{__init__.py => letterplace/all.py} (100%) delete mode 100644 src/sage/algebras/lie_algebras/__init__.py delete mode 100644 src/sage/algebras/lie_conformal_algebras/__init__.py delete mode 100644 src/sage/algebras/quantum_groups/__init__.py delete mode 100644 src/sage/algebras/quatalg/__init__.py delete mode 100644 src/sage/algebras/steenrod/__init__.py delete mode 100644 src/sage/calculus/__init__.py delete mode 100644 src/sage/calculus/transforms/__init__.py delete mode 100644 src/sage/coding/__init__.py delete mode 100644 src/sage/coding/source_coding/__init__.py delete mode 100644 src/sage/combinat/__init__.py delete mode 100644 src/sage/combinat/chas/__init__.py delete mode 100644 src/sage/combinat/cluster_algebra_quiver/__init__.py delete mode 100644 src/sage/combinat/crystals/__init__.py delete mode 100644 src/sage/combinat/designs/__init__.py delete mode 100644 src/sage/combinat/matrices/__init__.py delete mode 100644 src/sage/combinat/ncsf_qsym/__init__.py delete mode 100644 src/sage/combinat/ncsym/__init__.py delete mode 100644 src/sage/combinat/path_tableaux/__init__.py delete mode 100644 src/sage/combinat/posets/__init__.py delete mode 100644 src/sage/combinat/rigged_configurations/__init__.py delete mode 100644 src/sage/combinat/root_system/__init__.py delete mode 100644 src/sage/combinat/sf/__init__.py delete mode 100644 src/sage/combinat/species/__init__.py delete mode 100644 src/sage/crypto/block_cipher/__init__.py delete mode 100644 src/sage/crypto/public_key/__init__.py delete mode 100644 src/sage/data_structures/__init__.py delete mode 100644 src/sage/databases/__init__.py delete mode 100644 src/sage/dynamics/__init__.py delete mode 100644 src/sage/dynamics/arithmetic_dynamics/__init__.py delete mode 100644 src/sage/dynamics/complex_dynamics/__init__.py delete mode 100644 src/sage/game_theory/__init__.py delete mode 100644 src/sage/games/__init__.py delete mode 100644 src/sage/geometry/__init__.py delete mode 100644 src/sage/geometry/hyperbolic_space/__init__.py delete mode 100644 src/sage/geometry/polyhedron/__init__.py delete mode 100644 src/sage/geometry/riemannian_manifolds/__init__.py delete mode 100644 src/sage/geometry/triangulation/__init__.py delete mode 100644 src/sage/groups/__init__.py delete mode 100644 src/sage/groups/abelian_gps/__init__.py delete mode 100644 src/sage/groups/additive_abelian/__init__.py delete mode 100644 src/sage/groups/matrix_gps/__init__.py delete mode 100644 src/sage/groups/perm_gps/__init__.py delete mode 100644 src/sage/homology/__init__.py delete mode 100644 src/sage/interacts/__init__.py delete mode 100644 src/sage/knots/__init__.py delete mode 100644 src/sage/lfunctions/__init__.py delete mode 100644 src/sage/logic/__init__.py delete mode 100644 src/sage/manifolds/__init__.py delete mode 100644 src/sage/modular/__init__.py delete mode 100644 src/sage/modular/abvar/__init__.py delete mode 100644 src/sage/modular/arithgroup/__init__.py delete mode 100644 src/sage/modular/btquotients/__init__.py delete mode 100644 src/sage/modular/hecke/__init__.py delete mode 100644 src/sage/modular/local_comp/__init__.py delete mode 100644 src/sage/modular/modform/__init__.py delete mode 100644 src/sage/modular/modform_hecketriangle/__init__.py delete mode 100644 src/sage/modular/modsym/__init__.py delete mode 100644 src/sage/modular/overconvergent/__init__.py delete mode 100644 src/sage/modular/pollack_stevens/__init__.py delete mode 100644 src/sage/modular/quatalg/__init__.py delete mode 100644 src/sage/modular/ssmod/__init__.py delete mode 100644 src/sage/modules/__init__.py delete mode 100644 src/sage/monoids/__init__.py delete mode 100644 src/sage/parallel/__init__.py delete mode 100644 src/sage/probability/__init__.py delete mode 100644 src/sage/quadratic_forms/__init__.py delete mode 100644 src/sage/quadratic_forms/genera/__init__.py delete mode 100644 src/sage/rings/asymptotic/__init__.py delete mode 100644 src/sage/rings/function_field/__init__.py delete mode 100644 src/sage/rings/invariants/__init__.py delete mode 100644 src/sage/rings/padics/__init__.py delete mode 100644 src/sage/rings/polynomial/padics/__init__.py rename src/sage/{algebras/finite_dimensional_algebras/__init__.py => rings/polynomial/padics/all.py} (100%) delete mode 100644 src/sage/rings/polynomial/weil/__init__.py delete mode 100644 src/sage/rings/semirings/__init__.py delete mode 100644 src/sage/sandpiles/__init__.py delete mode 100644 src/sage/sat/__init__.py delete mode 100644 src/sage/schemes/__init__.py delete mode 100644 src/sage/schemes/affine/__init__.py delete mode 100644 src/sage/schemes/berkovich/__init__.py delete mode 100644 src/sage/schemes/curves/__init__.py delete mode 100644 src/sage/schemes/cyclic_covers/__init__.py delete mode 100644 src/sage/schemes/elliptic_curves/__init__.py delete mode 100644 src/sage/schemes/generic/__init__.py delete mode 100644 src/sage/schemes/hyperelliptic_curves/__init__.py delete mode 100644 src/sage/schemes/jacobians/__init__.py delete mode 100644 src/sage/schemes/plane_conics/__init__.py delete mode 100644 src/sage/schemes/plane_quartics/__init__.py delete mode 100644 src/sage/schemes/product_projective/__init__.py delete mode 100644 src/sage/schemes/projective/__init__.py delete mode 100644 src/sage/schemes/riemann_surfaces/__init__.py rename src/sage/{algebras/fusion_rings/__init__.py => schemes/riemann_surfaces/all.py} (100%) delete mode 100644 src/sage/schemes/toric/__init__.py delete mode 100644 src/sage/schemes/toric/sheaf/__init__.py rename src/sage/{algebras/hecke_algebras/__init__.py => schemes/toric/sheaf/all.py} (100%) delete mode 100644 src/sage/server/__init__.py delete mode 100644 src/sage/stats/__init__.py delete mode 100644 src/sage/stats/distributions/__init__.py rename src/sage/{algebras/letterplace/__init__.py => stats/distributions/all.py} (100%) delete mode 100644 src/sage/stats/hmm/__init__.py delete mode 100644 src/sage/tensor/__init__.py delete mode 100644 src/sage/tensor/modules/__init__.py delete mode 100644 src/sage/topology/__init__.py delete mode 100644 src/sage/typeset/__init__.py diff --git a/src/sage/algebras/__init__.py b/src/sage/algebras/letterplace/all.py similarity index 100% rename from src/sage/algebras/__init__.py rename to src/sage/algebras/letterplace/all.py diff --git a/src/sage/algebras/lie_algebras/__init__.py b/src/sage/algebras/lie_algebras/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/algebras/lie_conformal_algebras/__init__.py b/src/sage/algebras/lie_conformal_algebras/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/algebras/quantum_groups/__init__.py b/src/sage/algebras/quantum_groups/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/algebras/quatalg/__init__.py b/src/sage/algebras/quatalg/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/algebras/steenrod/__init__.py b/src/sage/algebras/steenrod/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/calculus/__init__.py b/src/sage/calculus/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/calculus/transforms/__init__.py b/src/sage/calculus/transforms/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/coding/__init__.py b/src/sage/coding/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/coding/source_coding/__init__.py b/src/sage/coding/source_coding/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/__init__.py b/src/sage/combinat/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/chas/__init__.py b/src/sage/combinat/chas/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/cluster_algebra_quiver/__init__.py b/src/sage/combinat/cluster_algebra_quiver/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/crystals/__init__.py b/src/sage/combinat/crystals/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/designs/__init__.py b/src/sage/combinat/designs/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/matrices/__init__.py b/src/sage/combinat/matrices/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/ncsf_qsym/__init__.py b/src/sage/combinat/ncsf_qsym/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/ncsym/__init__.py b/src/sage/combinat/ncsym/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/path_tableaux/__init__.py b/src/sage/combinat/path_tableaux/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/posets/__init__.py b/src/sage/combinat/posets/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/rigged_configurations/__init__.py b/src/sage/combinat/rigged_configurations/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/root_system/__init__.py b/src/sage/combinat/root_system/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/sf/__init__.py b/src/sage/combinat/sf/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/combinat/species/__init__.py b/src/sage/combinat/species/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/crypto/block_cipher/__init__.py b/src/sage/crypto/block_cipher/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/crypto/public_key/__init__.py b/src/sage/crypto/public_key/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/data_structures/__init__.py b/src/sage/data_structures/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/databases/__init__.py b/src/sage/databases/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/dynamics/__init__.py b/src/sage/dynamics/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/dynamics/arithmetic_dynamics/__init__.py b/src/sage/dynamics/arithmetic_dynamics/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/dynamics/complex_dynamics/__init__.py b/src/sage/dynamics/complex_dynamics/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/game_theory/__init__.py b/src/sage/game_theory/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/games/__init__.py b/src/sage/games/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/geometry/__init__.py b/src/sage/geometry/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/geometry/hyperbolic_space/__init__.py b/src/sage/geometry/hyperbolic_space/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/geometry/polyhedron/__init__.py b/src/sage/geometry/polyhedron/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/geometry/riemannian_manifolds/__init__.py b/src/sage/geometry/riemannian_manifolds/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/geometry/triangulation/__init__.py b/src/sage/geometry/triangulation/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/groups/__init__.py b/src/sage/groups/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/groups/abelian_gps/__init__.py b/src/sage/groups/abelian_gps/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/groups/additive_abelian/__init__.py b/src/sage/groups/additive_abelian/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/groups/matrix_gps/__init__.py b/src/sage/groups/matrix_gps/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/groups/perm_gps/__init__.py b/src/sage/groups/perm_gps/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/homology/__init__.py b/src/sage/homology/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/interacts/__init__.py b/src/sage/interacts/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/knots/__init__.py b/src/sage/knots/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/lfunctions/__init__.py b/src/sage/lfunctions/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/logic/__init__.py b/src/sage/logic/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/manifolds/__init__.py b/src/sage/manifolds/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/__init__.py b/src/sage/modular/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/abvar/__init__.py b/src/sage/modular/abvar/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/arithgroup/__init__.py b/src/sage/modular/arithgroup/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/btquotients/__init__.py b/src/sage/modular/btquotients/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/hecke/__init__.py b/src/sage/modular/hecke/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/local_comp/__init__.py b/src/sage/modular/local_comp/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/modform/__init__.py b/src/sage/modular/modform/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/modform_hecketriangle/__init__.py b/src/sage/modular/modform_hecketriangle/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/modsym/__init__.py b/src/sage/modular/modsym/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/overconvergent/__init__.py b/src/sage/modular/overconvergent/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/pollack_stevens/__init__.py b/src/sage/modular/pollack_stevens/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/quatalg/__init__.py b/src/sage/modular/quatalg/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modular/ssmod/__init__.py b/src/sage/modular/ssmod/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modules/__init__.py b/src/sage/modules/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/monoids/__init__.py b/src/sage/monoids/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/parallel/__init__.py b/src/sage/parallel/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/probability/__init__.py b/src/sage/probability/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/quadratic_forms/__init__.py b/src/sage/quadratic_forms/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/quadratic_forms/genera/__init__.py b/src/sage/quadratic_forms/genera/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/rings/asymptotic/__init__.py b/src/sage/rings/asymptotic/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/rings/function_field/__init__.py b/src/sage/rings/function_field/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/rings/invariants/__init__.py b/src/sage/rings/invariants/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/rings/padics/__init__.py b/src/sage/rings/padics/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/rings/polynomial/padics/__init__.py b/src/sage/rings/polynomial/padics/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/algebras/finite_dimensional_algebras/__init__.py b/src/sage/rings/polynomial/padics/all.py similarity index 100% rename from src/sage/algebras/finite_dimensional_algebras/__init__.py rename to src/sage/rings/polynomial/padics/all.py diff --git a/src/sage/rings/polynomial/weil/__init__.py b/src/sage/rings/polynomial/weil/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/rings/semirings/__init__.py b/src/sage/rings/semirings/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/sandpiles/__init__.py b/src/sage/sandpiles/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/sat/__init__.py b/src/sage/sat/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/__init__.py b/src/sage/schemes/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/affine/__init__.py b/src/sage/schemes/affine/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/berkovich/__init__.py b/src/sage/schemes/berkovich/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/curves/__init__.py b/src/sage/schemes/curves/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/cyclic_covers/__init__.py b/src/sage/schemes/cyclic_covers/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/elliptic_curves/__init__.py b/src/sage/schemes/elliptic_curves/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/generic/__init__.py b/src/sage/schemes/generic/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/hyperelliptic_curves/__init__.py b/src/sage/schemes/hyperelliptic_curves/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/jacobians/__init__.py b/src/sage/schemes/jacobians/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/plane_conics/__init__.py b/src/sage/schemes/plane_conics/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/plane_quartics/__init__.py b/src/sage/schemes/plane_quartics/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/product_projective/__init__.py b/src/sage/schemes/product_projective/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/projective/__init__.py b/src/sage/schemes/projective/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/riemann_surfaces/__init__.py b/src/sage/schemes/riemann_surfaces/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/algebras/fusion_rings/__init__.py b/src/sage/schemes/riemann_surfaces/all.py similarity index 100% rename from src/sage/algebras/fusion_rings/__init__.py rename to src/sage/schemes/riemann_surfaces/all.py diff --git a/src/sage/schemes/toric/__init__.py b/src/sage/schemes/toric/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/schemes/toric/sheaf/__init__.py b/src/sage/schemes/toric/sheaf/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/algebras/hecke_algebras/__init__.py b/src/sage/schemes/toric/sheaf/all.py similarity index 100% rename from src/sage/algebras/hecke_algebras/__init__.py rename to src/sage/schemes/toric/sheaf/all.py diff --git a/src/sage/server/__init__.py b/src/sage/server/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/stats/__init__.py b/src/sage/stats/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/stats/distributions/__init__.py b/src/sage/stats/distributions/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/algebras/letterplace/__init__.py b/src/sage/stats/distributions/all.py similarity index 100% rename from src/sage/algebras/letterplace/__init__.py rename to src/sage/stats/distributions/all.py diff --git a/src/sage/stats/hmm/__init__.py b/src/sage/stats/hmm/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/tensor/__init__.py b/src/sage/tensor/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/tensor/modules/__init__.py b/src/sage/tensor/modules/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/topology/__init__.py b/src/sage/topology/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/typeset/__init__.py b/src/sage/typeset/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 From 915dc241f17de64ca07ac9eb02a37cbdba2c07fc Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 20 Mar 2023 20:47:39 -0700 Subject: [PATCH 02/15] Remove some more empty / almost empty __init__.py files when all.py files are present --- src/sage/dynamics/cellular_automata/__init__.py | 3 --- src/sage/libs/gap/__init__.py | 1 - src/sage/rings/valuation/__init__.py | 0 3 files changed, 4 deletions(-) delete mode 100644 src/sage/dynamics/cellular_automata/__init__.py delete mode 100644 src/sage/libs/gap/__init__.py delete mode 100644 src/sage/rings/valuation/__init__.py diff --git a/src/sage/dynamics/cellular_automata/__init__.py b/src/sage/dynamics/cellular_automata/__init__.py deleted file mode 100644 index bd469e79134..00000000000 --- a/src/sage/dynamics/cellular_automata/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -r""" -Cellular Automata -""" diff --git a/src/sage/libs/gap/__init__.py b/src/sage/libs/gap/__init__.py deleted file mode 100644 index faee3554865..00000000000 --- a/src/sage/libs/gap/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# libgap diff --git a/src/sage/rings/valuation/__init__.py b/src/sage/rings/valuation/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 From 9957360eb5539a42207ff733d3e821c3f27c6ce0 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 21 Mar 2023 13:52:15 -0700 Subject: [PATCH 03/15] sage.misc.package_dir.walk_packages: New, use in sage.misc.dev_tools --- src/sage/misc/dev_tools.py | 4 +- src/sage/misc/package_dir.py | 122 +++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+), 2 deletions(-) diff --git a/src/sage/misc/dev_tools.py b/src/sage/misc/dev_tools.py index 9b2f8a504c9..c18253358ba 100644 --- a/src/sage/misc/dev_tools.py +++ b/src/sage/misc/dev_tools.py @@ -169,7 +169,7 @@ def load_submodules(module=None, exclude_pattern=None): load sage.geometry.polyhedron.palp_database... succeeded load sage.geometry.polyhedron.ppl_lattice_polygon... succeeded """ - import pkgutil + from .package_dir import walk_packages if module is None: import sage @@ -181,7 +181,7 @@ def load_submodules(module=None, exclude_pattern=None): else: exclude = None - for importer, module_name, ispkg in pkgutil.walk_packages(module.__path__, module.__name__ + '.'): + for importer, module_name, ispkg in walk_packages(module.__path__, module.__name__ + '.'): if ispkg or module_name in sys.modules: continue diff --git a/src/sage/misc/package_dir.py b/src/sage/misc/package_dir.py index 17e0ce7b72c..bb4e34d5c26 100644 --- a/src/sage/misc/package_dir.py +++ b/src/sage/misc/package_dir.py @@ -14,6 +14,7 @@ import os import glob +import sys from contextlib import contextmanager @@ -211,3 +212,124 @@ def cython_namespace_package_support(): yield finally: Cython.Utils.is_package_dir = Cython.Build.Cythonize.is_package_dir = Cython.Build.Dependencies.is_package_dir = orig_is_package_dir + + +def walk_packages(path=None, prefix='', onerror=None): + r""" + Yield :class:`pkgutil.ModuleInfo` for all modules recursively on ``path``. + + This version of the standard library function :func:`pkgutil.walk_packages` + addresses https://github.com/python/cpython/issues/73444 by handling + the implicit namespace packages in the package layout used by Sage; + see :func:`is_package_or_sage_namespace_package_dir`. + + INPUT: + + - ``path`` -- a list of paths to look for modules in or + ``None`` (all accessible modules). + + - ``prefix`` -- a string to output on the front of every module name + on output. + + - ``onerror`` -- a function which gets called with one argument (the + name of the package which was being imported) if any exception + occurs while trying to import a package. If ``None``, ignore + :class:`ImportError` but propagate all other exceptions. + + EXAMPLES:: + + sage: sorted(sage.misc.package_dir.walk_packages(sage.misc.__path__)) # a namespace package + [..., ModuleInfo(module_finder=FileFinder('.../sage/misc'), name='package_dir', ispkg=False), ...] + """ + # Adapted from https://github.com/python/cpython/blob/3.11/Lib/pkgutil.py + + def iter_modules(path=None, prefix=''): + """ + Yield :class:`ModuleInfo` for all submodules on ``path``. + """ + from pkgutil import get_importer, iter_importers, ModuleInfo + + if path is None: + importers = iter_importers() + elif isinstance(path, str): + raise ValueError("path must be None or list of paths to look for modules in") + else: + importers = map(get_importer, path) + + yielded = {} + for i in importers: + for name, ispkg in iter_importer_modules(i, prefix): + if name not in yielded: + yielded[name] = 1 + yield ModuleInfo(i, name, ispkg) + + def iter_importer_modules(importer, prefix=''): + r""" + Yield :class:`ModuleInfo` for all modules of ``importer``. + """ + from importlib.machinery import FileFinder + + if isinstance(importer, FileFinder): + if importer.path is None or not os.path.isdir(importer.path): + return + + yielded = {} + import inspect + try: + filenames = os.listdir(importer.path) + except OSError: + # ignore unreadable directories like import does + filenames = [] + filenames.sort() # handle packages before same-named modules + + for fn in filenames: + modname = inspect.getmodulename(fn) + if modname and (modname in ['__init__', 'all'] + or modname.startswith('all__') + or modname in yielded): + continue + + path = os.path.join(importer.path, fn) + ispkg = False + + if not modname and os.path.isdir(path) and '.' not in fn: + modname = fn + if not (ispkg := is_package_or_sage_namespace_package_dir(path)): + continue + + if modname and '.' not in modname: + yielded[modname] = 1 + yield prefix + modname, ispkg + + elif not hasattr(importer, 'iter_modules'): + yield from [] + + else: + yield from importer.iter_modules(prefix) + + def seen(p, m={}): + if p in m: + return True + m[p] = True + + for info in iter_modules(path, prefix): + yield info + + if info.ispkg: + try: + __import__(info.name) + except ImportError: + if onerror is not None: + onerror(info.name) + except Exception: + if onerror is not None: + onerror(info.name) + else: + raise + else: + path = getattr(sys.modules[info.name], '__path__', None) or [] + + # don't traverse path items we've seen before + path = [p for p in path if not seen(p)] + + yield from walk_packages(path, info.name + '.', onerror) From 8a9ff3f6c972d9197c6c74450252c26fc7c2e25f Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 21 Mar 2023 17:36:52 -0700 Subject: [PATCH 04/15] Remove most remaining empty / almost empty __init__.py files when all.py files are present --- src/sage/categories/examples/{__init__.py => all.py} | 0 src/sage/coding/codecan/{__init__.py => all.py} | 0 src/sage/coding/guruswami_sudan/{__init__.py => all.py} | 0 .../__init__.py => geometry/hyperplane_arrangement/all.py} | 0 .../__init__.py => polyhedron/combinatorial_polyhedron/all.py} | 0 .../{combinatorial_polyhedron/__init__.py => modules/all.py} | 0 .../polyhedron/modules/__init__.py => graphs/base/all.py} | 0 src/sage/graphs/{base/__init__.py => generators/all.py} | 0 .../{graphs/generators/__init__.py => groups/affine_gps/all.py} | 0 src/sage/groups/{affine_gps/__init__.py => lie_gps/all.py} | 0 src/sage/groups/{lie_gps/__init__.py => misc_gps/all.py} | 0 .../__init__.py => semimonomial_transformations/all.py} | 0 .../__init__.py => manifolds/differentiable/all.py} | 0 .../manifolds/differentiable/{__init__.py => examples/all.py} | 0 .../{differentiable/examples/__init__.py => subsets/all.py} | 0 src/sage/matroids/__init__.py | 2 -- src/sage/modular/quasimodform/__init__.py | 1 - .../{manifolds/subsets/__init__.py => modules/fg_pid/all.py} | 0 src/sage/modules/{fg_pid/__init__.py => fp_graded/all.py} | 0 src/sage/modules/fp_graded/{__init__.py => steenrod/all.py} | 0 src/sage/quivers/__init__.py | 0 .../{modules/fp_graded/steenrod/__init__.py => quivers/all.py} | 0 src/sage/rings/convert/__init__.py | 0 src/sage/{plot/__init__.py => rings/convert/all.py} | 0 src/sage/rings/function_field/drinfeld_modules/__init__.py | 0 .../function_field/drinfeld_modules/all.py} | 0 src/sage/symbolic/__init__.py | 0 src/sage/symbolic/integration/__init__.py | 0 28 files changed, 3 deletions(-) rename src/sage/categories/examples/{__init__.py => all.py} (100%) rename src/sage/coding/codecan/{__init__.py => all.py} (100%) rename src/sage/coding/guruswami_sudan/{__init__.py => all.py} (100%) rename src/sage/{functions/__init__.py => geometry/hyperplane_arrangement/all.py} (100%) rename src/sage/geometry/{hyperplane_arrangement/__init__.py => polyhedron/combinatorial_polyhedron/all.py} (100%) rename src/sage/geometry/polyhedron/{combinatorial_polyhedron/__init__.py => modules/all.py} (100%) rename src/sage/{geometry/polyhedron/modules/__init__.py => graphs/base/all.py} (100%) rename src/sage/graphs/{base/__init__.py => generators/all.py} (100%) rename src/sage/{graphs/generators/__init__.py => groups/affine_gps/all.py} (100%) rename src/sage/groups/{affine_gps/__init__.py => lie_gps/all.py} (100%) rename src/sage/groups/{lie_gps/__init__.py => misc_gps/all.py} (100%) rename src/sage/groups/{misc_gps/__init__.py => semimonomial_transformations/all.py} (100%) rename src/sage/{groups/semimonomial_transformations/__init__.py => manifolds/differentiable/all.py} (100%) rename src/sage/manifolds/differentiable/{__init__.py => examples/all.py} (100%) rename src/sage/manifolds/{differentiable/examples/__init__.py => subsets/all.py} (100%) delete mode 100644 src/sage/matroids/__init__.py delete mode 100644 src/sage/modular/quasimodform/__init__.py rename src/sage/{manifolds/subsets/__init__.py => modules/fg_pid/all.py} (100%) rename src/sage/modules/{fg_pid/__init__.py => fp_graded/all.py} (100%) mode change 100644 => 100755 rename src/sage/modules/fp_graded/{__init__.py => steenrod/all.py} (100%) delete mode 100644 src/sage/quivers/__init__.py rename src/sage/{modules/fp_graded/steenrod/__init__.py => quivers/all.py} (100%) mode change 100755 => 100644 delete mode 100644 src/sage/rings/convert/__init__.py rename src/sage/{plot/__init__.py => rings/convert/all.py} (100%) delete mode 100644 src/sage/rings/function_field/drinfeld_modules/__init__.py rename src/sage/{plot/plot3d/__init__.py => rings/function_field/drinfeld_modules/all.py} (100%) delete mode 100644 src/sage/symbolic/__init__.py delete mode 100644 src/sage/symbolic/integration/__init__.py diff --git a/src/sage/categories/examples/__init__.py b/src/sage/categories/examples/all.py similarity index 100% rename from src/sage/categories/examples/__init__.py rename to src/sage/categories/examples/all.py diff --git a/src/sage/coding/codecan/__init__.py b/src/sage/coding/codecan/all.py similarity index 100% rename from src/sage/coding/codecan/__init__.py rename to src/sage/coding/codecan/all.py diff --git a/src/sage/coding/guruswami_sudan/__init__.py b/src/sage/coding/guruswami_sudan/all.py similarity index 100% rename from src/sage/coding/guruswami_sudan/__init__.py rename to src/sage/coding/guruswami_sudan/all.py diff --git a/src/sage/functions/__init__.py b/src/sage/geometry/hyperplane_arrangement/all.py similarity index 100% rename from src/sage/functions/__init__.py rename to src/sage/geometry/hyperplane_arrangement/all.py diff --git a/src/sage/geometry/hyperplane_arrangement/__init__.py b/src/sage/geometry/polyhedron/combinatorial_polyhedron/all.py similarity index 100% rename from src/sage/geometry/hyperplane_arrangement/__init__.py rename to src/sage/geometry/polyhedron/combinatorial_polyhedron/all.py diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py b/src/sage/geometry/polyhedron/modules/all.py similarity index 100% rename from src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py rename to src/sage/geometry/polyhedron/modules/all.py diff --git a/src/sage/geometry/polyhedron/modules/__init__.py b/src/sage/graphs/base/all.py similarity index 100% rename from src/sage/geometry/polyhedron/modules/__init__.py rename to src/sage/graphs/base/all.py diff --git a/src/sage/graphs/base/__init__.py b/src/sage/graphs/generators/all.py similarity index 100% rename from src/sage/graphs/base/__init__.py rename to src/sage/graphs/generators/all.py diff --git a/src/sage/graphs/generators/__init__.py b/src/sage/groups/affine_gps/all.py similarity index 100% rename from src/sage/graphs/generators/__init__.py rename to src/sage/groups/affine_gps/all.py diff --git a/src/sage/groups/affine_gps/__init__.py b/src/sage/groups/lie_gps/all.py similarity index 100% rename from src/sage/groups/affine_gps/__init__.py rename to src/sage/groups/lie_gps/all.py diff --git a/src/sage/groups/lie_gps/__init__.py b/src/sage/groups/misc_gps/all.py similarity index 100% rename from src/sage/groups/lie_gps/__init__.py rename to src/sage/groups/misc_gps/all.py diff --git a/src/sage/groups/misc_gps/__init__.py b/src/sage/groups/semimonomial_transformations/all.py similarity index 100% rename from src/sage/groups/misc_gps/__init__.py rename to src/sage/groups/semimonomial_transformations/all.py diff --git a/src/sage/groups/semimonomial_transformations/__init__.py b/src/sage/manifolds/differentiable/all.py similarity index 100% rename from src/sage/groups/semimonomial_transformations/__init__.py rename to src/sage/manifolds/differentiable/all.py diff --git a/src/sage/manifolds/differentiable/__init__.py b/src/sage/manifolds/differentiable/examples/all.py similarity index 100% rename from src/sage/manifolds/differentiable/__init__.py rename to src/sage/manifolds/differentiable/examples/all.py diff --git a/src/sage/manifolds/differentiable/examples/__init__.py b/src/sage/manifolds/subsets/all.py similarity index 100% rename from src/sage/manifolds/differentiable/examples/__init__.py rename to src/sage/manifolds/subsets/all.py diff --git a/src/sage/matroids/__init__.py b/src/sage/matroids/__init__.py deleted file mode 100644 index 39cf60e3a53..00000000000 --- a/src/sage/matroids/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ - -__all__ = ["all"] diff --git a/src/sage/modular/quasimodform/__init__.py b/src/sage/modular/quasimodform/__init__.py deleted file mode 100644 index 6e633f48916..00000000000 --- a/src/sage/modular/quasimodform/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import all diff --git a/src/sage/manifolds/subsets/__init__.py b/src/sage/modules/fg_pid/all.py similarity index 100% rename from src/sage/manifolds/subsets/__init__.py rename to src/sage/modules/fg_pid/all.py diff --git a/src/sage/modules/fg_pid/__init__.py b/src/sage/modules/fp_graded/all.py old mode 100644 new mode 100755 similarity index 100% rename from src/sage/modules/fg_pid/__init__.py rename to src/sage/modules/fp_graded/all.py diff --git a/src/sage/modules/fp_graded/__init__.py b/src/sage/modules/fp_graded/steenrod/all.py similarity index 100% rename from src/sage/modules/fp_graded/__init__.py rename to src/sage/modules/fp_graded/steenrod/all.py diff --git a/src/sage/quivers/__init__.py b/src/sage/quivers/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/modules/fp_graded/steenrod/__init__.py b/src/sage/quivers/all.py old mode 100755 new mode 100644 similarity index 100% rename from src/sage/modules/fp_graded/steenrod/__init__.py rename to src/sage/quivers/all.py diff --git a/src/sage/rings/convert/__init__.py b/src/sage/rings/convert/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/plot/__init__.py b/src/sage/rings/convert/all.py similarity index 100% rename from src/sage/plot/__init__.py rename to src/sage/rings/convert/all.py diff --git a/src/sage/rings/function_field/drinfeld_modules/__init__.py b/src/sage/rings/function_field/drinfeld_modules/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/plot/plot3d/__init__.py b/src/sage/rings/function_field/drinfeld_modules/all.py similarity index 100% rename from src/sage/plot/plot3d/__init__.py rename to src/sage/rings/function_field/drinfeld_modules/all.py diff --git a/src/sage/symbolic/__init__.py b/src/sage/symbolic/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/symbolic/integration/__init__.py b/src/sage/symbolic/integration/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 From 8dcea985c28452f7bd7f25aeaa6f0a1282bcdf25 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 21 Mar 2023 20:07:26 -0700 Subject: [PATCH 05/15] src/sage/symbolic/integration/all.py: New --- src/sage/symbolic/integration/all.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/sage/symbolic/integration/all.py diff --git a/src/sage/symbolic/integration/all.py b/src/sage/symbolic/integration/all.py new file mode 100644 index 00000000000..e69de29bb2d From 7f8eb6a3a19ce6205e6abb95a1d289cd1529926b Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 21 Mar 2023 20:13:44 -0700 Subject: [PATCH 06/15] is_package_or_sage_namespace_package_dir: Update doctest after namespacification --- src/sage/misc/package_dir.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/misc/package_dir.py b/src/sage/misc/package_dir.py index bb4e34d5c26..5e3bc440b4b 100644 --- a/src/sage/misc/package_dir.py +++ b/src/sage/misc/package_dir.py @@ -177,7 +177,7 @@ def is_package_or_sage_namespace_package_dir(path, *, distribution_filter=None): Not a package:: - sage: directory = os.path.join(os.path.dirname(sage.symbolic.__file__), 'ginac'); directory + sage: directory = os.path.join(sage.symbolic.__path__[0], 'ginac'); directory '.../sage/symbolic/ginac' sage: is_package_or_sage_namespace_package_dir(directory) False From f13d6e93ead771b0acf7769f442ad662ef3ffa71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Fri, 24 Mar 2023 17:40:38 -0700 Subject: [PATCH 07/15] src/sage/symbolic/pynac.pxi: Work around https://github.com/cython/cython/issues/5335 --- src/sage/symbolic/pynac.pxi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/symbolic/pynac.pxi b/src/sage/symbolic/pynac.pxi index 4015657b951..03da305ca97 100644 --- a/src/sage/symbolic/pynac.pxi +++ b/src/sage/symbolic/pynac.pxi @@ -3,9 +3,9 @@ Declarations for pynac, a Python frontend for ginac Check that we can externally cimport this (:trac:`18825`):: - sage: cython( # long time; random compiler warnings # optional - sage.misc.cython + sage: cython( # optional - sage.misc.cython ....: ''' - ....: from sage.symbolic cimport expression + ....: cimport sage.symbolic.expression ....: ''') """ From 5ee730dbb56fa85d3657f7968b0ab0bdefa59a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Fri, 24 Mar 2023 17:41:37 -0700 Subject: [PATCH 08/15] src/sage/misc/cython.py: Add doctests for PEP 420 support, https://github.com/cython/cython/issues/5335 --- src/sage/misc/cython.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/sage/misc/cython.py b/src/sage/misc/cython.py index 109e555abe4..fea06f8a333 100644 --- a/src/sage/misc/cython.py +++ b/src/sage/misc/cython.py @@ -211,6 +211,28 @@ def cython(filename, verbose=0, compile_message=False, sage: cython(''' ....: cdef size_t foo = 3/2 ....: ''') + + Check that Cython supports PEP 420 packages:: + + sage: cython(''' + ....: cimport sage.misc.cachefunc + ....: ''') + + sage: cython(''' + ....: from sage.misc.cachefunc cimport cache_key + ....: ''') + + In Cython 0.29.33 using `from PACKAGE cimport MODULE` is broken + when `PACKAGE` is a namespace package, see :trac:`35322`:: + + sage: cython(''' + ....: from sage.misc cimport cachefunc + ....: ''') + Traceback (most recent call last): + ... + RuntimeError: Error compiling Cython file: + ... + ...: 'sage/misc.pxd' not found """ if not filename.endswith('pyx'): print("Warning: file (={}) should have extension .pyx".format(filename), file=sys.stderr) From dc8b3c50d849746ec69e11b45ebc33ceb9e3d0e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Fri, 24 Mar 2023 18:07:18 -0700 Subject: [PATCH 09/15] is_package_or_sage_namespace_package_dir: Update more doctests after namespacification --- src/sage/misc/package_dir.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sage/misc/package_dir.py b/src/sage/misc/package_dir.py index 5e3bc440b4b..d4e5cb3bc7a 100644 --- a/src/sage/misc/package_dir.py +++ b/src/sage/misc/package_dir.py @@ -155,7 +155,7 @@ def is_package_or_sage_namespace_package_dir(path, *, distribution_filter=None): :mod:`sage.cpython` is an ordinary package:: sage: from sage.misc.package_dir import is_package_or_sage_namespace_package_dir - sage: directory = os.path.dirname(sage.cpython.__file__); directory + sage: directory = sage.cpython.__path__[0]; directory '.../sage/cpython' sage: is_package_or_sage_namespace_package_dir(directory) True @@ -163,14 +163,14 @@ def is_package_or_sage_namespace_package_dir(path, *, distribution_filter=None): :mod:`sage.libs.mpfr` only has an ``__init__.pxd`` file, but we consider it a package directory for consistency with Cython:: - sage: directory = os.path.join(os.path.dirname(sage.libs.all.__file__), 'mpfr'); directory + sage: directory = os.path.join(sage.libs.__path__[0], 'mpfr'); directory '.../sage/libs/mpfr' sage: is_package_or_sage_namespace_package_dir(directory) True :mod:`sage` is designated to become an implicit namespace package:: - sage: directory = os.path.dirname(sage.env.__file__); directory + sage: directory = sage.__path__[0]; directory '.../sage' sage: is_package_or_sage_namespace_package_dir(directory) True From 884b18f0693b9a50659a80222a76c0be9969aa5e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 Mar 2023 11:56:48 -0700 Subject: [PATCH 10/15] src/sage/combinat/words: Move documentation from __init__.py to all.py --- src/sage/combinat/words/__init__.py | 41 -------------------------- src/sage/combinat/words/all.py | 45 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 41 deletions(-) delete mode 100644 src/sage/combinat/words/__init__.py diff --git a/src/sage/combinat/words/__init__.py b/src/sage/combinat/words/__init__.py deleted file mode 100644 index 4dc6dd45dba..00000000000 --- a/src/sage/combinat/words/__init__.py +++ /dev/null @@ -1,41 +0,0 @@ -r""" -Combinatorics on words - -**Main modules and their methods:** - -- :ref:`sage.combinat.words.abstract_word` -- :ref:`sage.combinat.words.finite_word` -- :ref:`sage.combinat.words.infinite_word` -- :ref:`sage.combinat.words.alphabet` -- :ref:`sage.combinat.words.words` -- :ref:`sage.combinat.words.paths` -- :ref:`sage.combinat.words.morphism` -- :ref:`sage.combinat.words.shuffle_product` -- :ref:`sage.combinat.words.suffix_trees` - -Main classes and functions meant to be used by the user: - - :func:`~sage.combinat.words.word.Word`, - :class:`~sage.combinat.words.words.FiniteWords`, - :class:`~sage.combinat.words.words.InfiniteWords`, - :func:`~sage.combinat.words.words.Words`, - :func:`~sage.combinat.words.alphabet.Alphabet`, - :class:`~sage.combinat.words.morphism.WordMorphism`, - :class:`~sage.combinat.words.paths.WordPaths`. - -A list of common words can be accessed through ``words.`` and are listed in -the :ref:`words catalog `. - -**Internal representation of words:** - -- :ref:`sage.combinat.words.word` -- :ref:`sage.combinat.words.word_char` -- :ref:`sage.combinat.words.word_datatypes` -- :ref:`sage.combinat.words.word_infinite_datatypes` - -**Options:** - -- :ref:`sage.combinat.words.word_options` - -See :func:`~sage.combinat.words.word_options.WordOptions`. -""" diff --git a/src/sage/combinat/words/all.py b/src/sage/combinat/words/all.py index 078ca4e48ab..687b572c8e5 100644 --- a/src/sage/combinat/words/all.py +++ b/src/sage/combinat/words/all.py @@ -1,3 +1,48 @@ +r""" +Combinatorics on words + +**Main modules and their methods:** + +- :ref:`sage.combinat.words.abstract_word` +- :ref:`sage.combinat.words.finite_word` +- :ref:`sage.combinat.words.infinite_word` +- :ref:`sage.combinat.words.alphabet` +- :ref:`sage.combinat.words.words` +- :ref:`sage.combinat.words.paths` +- :ref:`sage.combinat.words.morphism` +- :ref:`sage.combinat.words.shuffle_product` +- :ref:`sage.combinat.words.suffix_trees` + +Main classes and functions meant to be used by the user: + + :func:`~sage.combinat.words.word.Word`, + :class:`~sage.combinat.words.words.FiniteWords`, + :class:`~sage.combinat.words.words.InfiniteWords`, + :func:`~sage.combinat.words.words.Words`, + :func:`~sage.combinat.words.alphabet.Alphabet`, + :class:`~sage.combinat.words.morphism.WordMorphism`, + :class:`~sage.combinat.words.paths.WordPaths`. + +A list of common words can be accessed through ``words.`` and are listed in +the :ref:`words catalog `. + +**Internal representation of words:** + +- :ref:`sage.combinat.words.word` +- :ref:`sage.combinat.words.word_char` +- :ref:`sage.combinat.words.word_datatypes` +- :ref:`sage.combinat.words.word_infinite_datatypes` + +**Options:** + +- :ref:`sage.combinat.words.word_options` + +See :func:`~sage.combinat.words.word_options.WordOptions`. +""" +# install the docstring of this module to the containing package +from sage.misc.namespace_package import install_doc +install_doc(__package__, __doc__) + from .alphabet import Alphabet, build_alphabet from .morphism import WordMorphism from .paths import WordPaths From 8c4ea799e9567f2f1cfb9e973c318b9907f7af2c Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 Mar 2023 11:58:35 -0700 Subject: [PATCH 11/15] src/sage/modules/with_basis: Move documentation from __init__.py to all.py --- src/sage/modules/with_basis/{__init__.py => all.py} | 3 +++ 1 file changed, 3 insertions(+) rename src/sage/modules/with_basis/{__init__.py => all.py} (67%) diff --git a/src/sage/modules/with_basis/__init__.py b/src/sage/modules/with_basis/all.py similarity index 67% rename from src/sage/modules/with_basis/__init__.py rename to src/sage/modules/with_basis/all.py index 8cafbaa9b89..1f352bcc768 100644 --- a/src/sage/modules/with_basis/__init__.py +++ b/src/sage/modules/with_basis/all.py @@ -8,3 +8,6 @@ .. SEEALSO:: The category :class:`ModulesWithBasis` """ +# install the docstring of this module to the containing package +from sage.misc.namespace_package import install_doc +install_doc(__package__, __doc__) From 4837e0bd35a39394995c3749ec5a037af4b6287a Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 Mar 2023 12:00:11 -0700 Subject: [PATCH 12/15] src/sage/groups/perm_gps/partn_ref*: Change to namespace packages --- src/sage/groups/perm_gps/partn_ref/{__init__.py => all.py} | 0 src/sage/groups/perm_gps/partn_ref2/{__init__.py => all.py} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/sage/groups/perm_gps/partn_ref/{__init__.py => all.py} (100%) rename src/sage/groups/perm_gps/partn_ref2/{__init__.py => all.py} (100%) diff --git a/src/sage/groups/perm_gps/partn_ref/__init__.py b/src/sage/groups/perm_gps/partn_ref/all.py similarity index 100% rename from src/sage/groups/perm_gps/partn_ref/__init__.py rename to src/sage/groups/perm_gps/partn_ref/all.py diff --git a/src/sage/groups/perm_gps/partn_ref2/__init__.py b/src/sage/groups/perm_gps/partn_ref2/all.py similarity index 100% rename from src/sage/groups/perm_gps/partn_ref2/__init__.py rename to src/sage/groups/perm_gps/partn_ref2/all.py From 9e8afdd7544a4656b72067f7586688a10b182cd8 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 Mar 2023 12:07:50 -0700 Subject: [PATCH 13/15] src/sage_setup/autogen/interpreters/__init__.py: Generate sage.ext.interpreters as a namespace package --- src/sage_setup/autogen/interpreters/__init__.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sage_setup/autogen/interpreters/__init__.py b/src/sage_setup/autogen/interpreters/__init__.py index 13d3eed1735..c3534aeccf9 100644 --- a/src/sage_setup/autogen/interpreters/__init__.py +++ b/src/sage_setup/autogen/interpreters/__init__.py @@ -199,6 +199,11 @@ def rebuild(dirname, force=False): except OSError: if not os.path.isdir(dirname): raise + # Remove leftover file from before move to namespace packages + try: + os.remove(os.path.join(dirname, '__init__.py')) + except FileNotFoundError: + pass # Although multiple files are generated by this function, since # they are all generated at once it suffices to make sure if just @@ -208,7 +213,7 @@ class NeedToRebuild(Exception): try: if force: raise NeedToRebuild("-> Force rebuilding interpreters") - gen_file = os.path.join(dirname, '__init__.py') + gen_file = os.path.join(dirname, 'all.py') if not os.path.isfile(gen_file): raise NeedToRebuild("-> First build of interpreters") @@ -230,5 +235,5 @@ class NeedToRebuild(Exception): for interp in _INTERPRETERS: build_interp(interp(), dirname) - with open(os.path.join(dirname, '__init__.py'), 'w') as f: + with open(os.path.join(dirname, 'all.py'), 'w') as f: f.write("# " + AUTOGEN_WARN) From cb5577a74f4744fd74a0f127d2d7d44fcd2eeedb Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 Mar 2023 18:55:15 -0700 Subject: [PATCH 14/15] src/doc/en/reference: Update module lists --- src/doc/en/reference/combinat/module_list.rst | 2 +- src/doc/en/reference/modules/index.rst | 2 +- src/sage/modules/all.py | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/doc/en/reference/combinat/module_list.rst b/src/doc/en/reference/combinat/module_list.rst index fc7ec70194c..6a523f32e43 100644 --- a/src/doc/en/reference/combinat/module_list.rst +++ b/src/doc/en/reference/combinat/module_list.rst @@ -367,7 +367,7 @@ Comprehensive Module List sage/combinat/tutorial sage/combinat/vector_partition sage/combinat/words/abstract_word - sage/combinat/words + sage/combinat/words/all sage/combinat/words/alphabet sage/combinat/words/finite_word sage/combinat/words/infinite_word diff --git a/src/doc/en/reference/modules/index.rst b/src/doc/en/reference/modules/index.rst index c6109643c35..24851df37a7 100644 --- a/src/doc/en/reference/modules/index.rst +++ b/src/doc/en/reference/modules/index.rst @@ -29,7 +29,7 @@ Modules with basis .. toctree:: :maxdepth: 1 - sage/modules/with_basis/__init__ + sage/modules/with_basis/all sage/modules/with_basis/cell_module sage/modules/with_basis/indexed_element sage/modules/with_basis/invariant diff --git a/src/sage/modules/all.py b/src/sage/modules/all.py index a90258d7ec8..87621e61b29 100644 --- a/src/sage/modules/all.py +++ b/src/sage/modules/all.py @@ -23,6 +23,8 @@ from .vector_space_morphism import linear_transformation +from .with_basis.all import * + from sage.misc.lazy_import import lazy_import lazy_import('sage.modules.filtered_vector_space', 'FilteredVectorSpace') From 4b397a7c27c5be5754334f724b45b1fee313e05c Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 27 Mar 2023 22:42:13 -0700 Subject: [PATCH 15/15] src/sage/combinat/all.py: Update reference --- src/sage/combinat/all.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/combinat/all.py b/src/sage/combinat/all.py index a378e86b5d3..2206ea2873a 100644 --- a/src/sage/combinat/all.py +++ b/src/sage/combinat/all.py @@ -26,7 +26,7 @@ - :ref:`sage.combinat.species.all` - :ref:`sage.combinat.designs.all` - :ref:`sage.combinat.posets.all` -- :ref:`sage.combinat.words` +- :ref:`sage.combinat.words.all` - :ref:`sage.combinat.bijectionist` Utilities