passagemath-graphs 10.5.43__tar.gz → 10.6.1rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {passagemath_graphs-10.5.43/passagemath_graphs.egg-info → passagemath_graphs-10.6.1rc1}/PKG-INFO +5 -6
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/README.rst +1 -1
- passagemath_graphs-10.6.1rc1/VERSION.txt +1 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1/passagemath_graphs.egg-info}/PKG-INFO +5 -6
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/passagemath_graphs.egg-info/SOURCES.txt +2 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/passagemath_graphs.egg-info/requires.txt +2 -2
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/pyproject.toml +6 -7
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/abstract_tree.py +188 -17
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/cluster_algebra_quiver/interact.py +1 -2
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/cluster_algebra_quiver/mutation_type.py +518 -519
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/cluster_algebra_quiver/quiver.py +233 -205
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/covering_design.py +2 -6
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/database.py +11 -10
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/designs_pyx.pyx +2 -2
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/evenly_distributed_sets.pyx +4 -4
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/latin_squares.py +53 -20
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/orthogonal_arrays.py +2 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx +22 -21
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/resolvable_bibd.py +191 -157
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/subhypergraph_search.pyx +4 -4
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/twographs.py +2 -2
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/finite_state_machine.py +6 -6
- passagemath_graphs-10.6.1rc1/sage/combinat/posets/bubble_shuffle.py +247 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/d_complete.py +3 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/elements.py +3 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/hasse_cython.pyx +1 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/hasse_diagram.py +16 -22
- passagemath_graphs-10.6.1rc1/sage/combinat/posets/hochschild_lattice.py +158 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/incidence_algebras.py +14 -16
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/lattices.py +51 -53
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/linear_extensions.py +10 -12
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/meson.build +2 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/moebius_algebra.py +4 -4
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/poset_examples.py +70 -23
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/posets.py +294 -103
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/databases/knotinfo_db.py +2 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/asteroidal_triples.pyx +24 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/boost_graph.pxd +3 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/boost_interface.cpp +4 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/c_graph.pyx +1 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/dense_graph.pxd +5 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/dense_graph.pyx +44 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/static_sparse_backend.pyx +8 -5
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/static_sparse_graph.pyx +86 -15
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/bipartite_graph.py +59 -36
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/centrality.pyx +82 -9
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/cographs.py +1 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/comparability.pyx +64 -26
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/convexity_properties.pyx +52 -9
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/digraph.py +439 -95
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/digraph_generators.py +174 -102
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/dot2tex_utils.py +1 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/basic.py +1 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/distance_regular.pyx +1 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/families.py +37 -27
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/random.py +2 -2
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/smallgraphs.py +3 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generic_graph.py +558 -86
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generic_graph_pyx.pyx +58 -11
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/genus.pyx +3 -4
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph.py +291 -8
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_database.py +67 -12
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/clique_separators.pyx +24 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/fast_digraph.pyx +1 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/graph_products.pyx +67 -21
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/meson.build +7 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/slice_decomposition.pyx +34 -8
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_generators.py +45 -32
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_generators_pyx.pyx +15 -15
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_latex.py +1 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_list.py +52 -9
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_plot.py +7 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/hyperbolicity.pyx +2 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/isoperimetric_inequalities.pyx +42 -6
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/line_graph.pyx +153 -37
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/matching_covered_graph.py +84 -60
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/meson.build +6 -2
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/orientations.py +3 -18
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/path_enumeration.pyx +2 -2
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/strongly_regular_db.pyx +15 -15
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/traversals.pyx +13 -12
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/tutte_polynomial.py +1 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/weakly_chordal.pyx +50 -8
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/knots/free_knotinfo_monoid.py +3 -3
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/knots/knotinfo.py +102 -82
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/knots/link.py +72 -39
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/cubical_complex.py +4 -5
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/delta_complex.py +4 -4
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_complex.py +0 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_complex_catalog.py +6 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_complex_examples.py +4 -16
- passagemath_graphs-10.5.43/VERSION.txt +0 -1
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/MANIFEST.in +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/passagemath_graphs.egg-info/dependency_links.txt +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/passagemath_graphs.egg-info/top_level.txt +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/all__sagemath_graphs.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/all__sagemath_graphs.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/binary_tree.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/cluster_algebra_quiver/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/cluster_algebra_quiver/cluster_seed.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/cluster_algebra_quiver/mutation_class.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/MOLS_handbook_data.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/bibd.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/block_design.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/covering_array.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/design_catalog.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/designs_pyx.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/difference_family.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/difference_matrices.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/ext_rep.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/gen_quadrangles_with_spread.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/group_divisible_designs.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/incidence_structures.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/meson.build +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/orthogonal_arrays_build_recursive.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/designs/steiner_quadruple_systems.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/finite_state_machine_generators.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/graph_path.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/interval_posets.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/nu_tamari_lattice.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/ordered_tree.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/cartesian_product.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/forest.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/linear_extension_iterator.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/posets/mobile.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/rooted_tree.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/shard_order.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/tamari_lattices.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/combinat/yang_baxter_graph.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/databases/all__sagemath_graphs.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/ext_data/all__sagemath_graphs.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/ext_data/graphs/graph_plot_js.html +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/ext_data/kenzo/CP2.txt +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/ext_data/kenzo/CP3.txt +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/ext_data/kenzo/CP4.txt +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/ext_data/kenzo/README.txt +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/ext_data/kenzo/S4.txt +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/boost_graph.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/c_graph.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/graph_backends.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/graph_backends.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/meson.build +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/overview.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/sparse_graph.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/sparse_graph.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/static_dense_graph.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/static_dense_graph.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/static_sparse_backend.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/base/static_sparse_graph.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/connectivity.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/connectivity.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/convexity_properties.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/distances_all_pairs.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/distances_all_pairs.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/domination.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/edge_connectivity.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/chessboard.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/classical_geometries.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/degree_sequence.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/intersection.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/meson.build +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/platonic_solids.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generators/world_map.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/generic_graph_pyx.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_coloring.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/bandwidth.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/cutwidth.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/fast_digraph.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/modular_decomposition.hpp +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/modular_decomposition.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/modular_decomposition.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/slice_decomposition.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/tree_decomposition.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/tree_decomposition.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/vertex_separation.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_decompositions/vertex_separation.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_editor.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_input.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/graph_plot_js.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/hypergraph_generators.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/independent_sets.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/independent_sets.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/isgci.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/lovasz_theta.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/matching.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/partial_cube.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/pq_trees.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/print_graphs.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/schnyder.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/spanning_tree.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/traversals.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/trees.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/trees.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/graphs/views.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/groups/all__sagemath_graphs.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/groups/perm_gps/all__sagemath_graphs.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/groups/perm_gps/partn_ref/all__sagemath_graphs.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/groups/perm_gps/partn_ref/refinement_graphs.pxd +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/groups/perm_gps/partn_ref/refinement_graphs.pyx +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/knots/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/knots/gauss_code.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/knots/knot.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/knots/knot_table.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/sandpiles/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/sandpiles/examples.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/sandpiles/sandpile.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/all.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/cell_complex.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/filtered_simplicial_complex.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/moment_angle_complex.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_complex_homset.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_complex_morphism.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_set.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_set_catalog.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_set_constructions.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_set_examples.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/sage/topology/simplicial_set_morphism.py +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/setup.cfg +0 -0
- {passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/setup.py +0 -0
{passagemath_graphs-10.5.43/passagemath_graphs.egg-info → passagemath_graphs-10.6.1rc1}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: passagemath-graphs
|
3
|
-
Version: 10.
|
3
|
+
Version: 10.6.1rc1
|
4
4
|
Summary: passagemath: Graphs, posets, hypergraphs, designs, abstract complexes, combinatorial polyhedra, abelian sandpiles, quivers
|
5
5
|
Author-email: The Sage Developers <sage-support@googlegroups.com>
|
6
6
|
Maintainer: Matthias Köppe, passagemath contributors
|
@@ -19,20 +19,19 @@ Classifier: Intended Audience :: Science/Research
|
|
19
19
|
Classifier: Operating System :: POSIX
|
20
20
|
Classifier: Operating System :: MacOS :: MacOS X
|
21
21
|
Classifier: Programming Language :: Python :: 3 :: Only
|
22
|
-
Classifier: Programming Language :: Python :: 3.9
|
23
22
|
Classifier: Programming Language :: Python :: 3.10
|
24
23
|
Classifier: Programming Language :: Python :: 3.11
|
25
24
|
Classifier: Programming Language :: Python :: 3.12
|
26
25
|
Classifier: Programming Language :: Python :: 3.13
|
27
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
28
27
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
29
|
-
Requires-Python: <3.14,>=3.
|
28
|
+
Requires-Python: <3.14,>=3.10
|
30
29
|
Description-Content-Type: text/x-rst
|
31
30
|
Requires-Dist: gmpy2~=2.1.b999
|
32
31
|
Requires-Dist: cysignals!=1.12.0,>=1.11.2
|
33
32
|
Requires-Dist: memory_allocator
|
34
|
-
Requires-Dist: passagemath-categories
|
35
|
-
Requires-Dist: passagemath-environment
|
33
|
+
Requires-Dist: passagemath-categories==10.6.1rc1
|
34
|
+
Requires-Dist: passagemath-environment==10.6.1rc1
|
36
35
|
Provides-Extra: test
|
37
36
|
Requires-Dist: passagemath-repl; extra == "test"
|
38
37
|
Provides-Extra: benzene
|
@@ -133,7 +132,7 @@ passagemath attempts to support all major Linux distributions and recent version
|
|
133
132
|
macOS. Use on Windows currently requires the use of Windows Subsystem for Linux or
|
134
133
|
virtualization.
|
135
134
|
|
136
|
-
Complete sets of binary wheels are provided on PyPI for Python versions 3.
|
135
|
+
Complete sets of binary wheels are provided on PyPI for Python versions 3.10.x-3.13.x.
|
137
136
|
Python 3.13.x is also supported, but some third-party packages are still missing wheels,
|
138
137
|
so compilation from source is triggered for those.
|
139
138
|
|
@@ -39,7 +39,7 @@ passagemath attempts to support all major Linux distributions and recent version
|
|
39
39
|
macOS. Use on Windows currently requires the use of Windows Subsystem for Linux or
|
40
40
|
virtualization.
|
41
41
|
|
42
|
-
Complete sets of binary wheels are provided on PyPI for Python versions 3.
|
42
|
+
Complete sets of binary wheels are provided on PyPI for Python versions 3.10.x-3.13.x.
|
43
43
|
Python 3.13.x is also supported, but some third-party packages are still missing wheels,
|
44
44
|
so compilation from source is triggered for those.
|
45
45
|
|
@@ -0,0 +1 @@
|
|
1
|
+
10.6.1.rc1
|
{passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1/passagemath_graphs.egg-info}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: passagemath-graphs
|
3
|
-
Version: 10.
|
3
|
+
Version: 10.6.1rc1
|
4
4
|
Summary: passagemath: Graphs, posets, hypergraphs, designs, abstract complexes, combinatorial polyhedra, abelian sandpiles, quivers
|
5
5
|
Author-email: The Sage Developers <sage-support@googlegroups.com>
|
6
6
|
Maintainer: Matthias Köppe, passagemath contributors
|
@@ -19,20 +19,19 @@ Classifier: Intended Audience :: Science/Research
|
|
19
19
|
Classifier: Operating System :: POSIX
|
20
20
|
Classifier: Operating System :: MacOS :: MacOS X
|
21
21
|
Classifier: Programming Language :: Python :: 3 :: Only
|
22
|
-
Classifier: Programming Language :: Python :: 3.9
|
23
22
|
Classifier: Programming Language :: Python :: 3.10
|
24
23
|
Classifier: Programming Language :: Python :: 3.11
|
25
24
|
Classifier: Programming Language :: Python :: 3.12
|
26
25
|
Classifier: Programming Language :: Python :: 3.13
|
27
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
28
27
|
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
29
|
-
Requires-Python: <3.14,>=3.
|
28
|
+
Requires-Python: <3.14,>=3.10
|
30
29
|
Description-Content-Type: text/x-rst
|
31
30
|
Requires-Dist: gmpy2~=2.1.b999
|
32
31
|
Requires-Dist: cysignals!=1.12.0,>=1.11.2
|
33
32
|
Requires-Dist: memory_allocator
|
34
|
-
Requires-Dist: passagemath-categories
|
35
|
-
Requires-Dist: passagemath-environment
|
33
|
+
Requires-Dist: passagemath-categories==10.6.1rc1
|
34
|
+
Requires-Dist: passagemath-environment==10.6.1rc1
|
36
35
|
Provides-Extra: test
|
37
36
|
Requires-Dist: passagemath-repl; extra == "test"
|
38
37
|
Provides-Extra: benzene
|
@@ -133,7 +132,7 @@ passagemath attempts to support all major Linux distributions and recent version
|
|
133
132
|
macOS. Use on Windows currently requires the use of Windows Subsystem for Linux or
|
134
133
|
virtualization.
|
135
134
|
|
136
|
-
Complete sets of binary wheels are provided on PyPI for Python versions 3.
|
135
|
+
Complete sets of binary wheels are provided on PyPI for Python versions 3.10.x-3.13.x.
|
137
136
|
Python 3.13.x is also supported, but some third-party packages are still missing wheels,
|
138
137
|
so compilation from source is triggered for those.
|
139
138
|
|
{passagemath_graphs-10.5.43 → passagemath_graphs-10.6.1rc1}/passagemath_graphs.egg-info/SOURCES.txt
RENAMED
@@ -56,12 +56,14 @@ sage/combinat/designs/steiner_quadruple_systems.py
|
|
56
56
|
sage/combinat/designs/subhypergraph_search.pyx
|
57
57
|
sage/combinat/designs/twographs.py
|
58
58
|
sage/combinat/posets/all.py
|
59
|
+
sage/combinat/posets/bubble_shuffle.py
|
59
60
|
sage/combinat/posets/cartesian_product.py
|
60
61
|
sage/combinat/posets/d_complete.py
|
61
62
|
sage/combinat/posets/elements.py
|
62
63
|
sage/combinat/posets/forest.py
|
63
64
|
sage/combinat/posets/hasse_cython.pyx
|
64
65
|
sage/combinat/posets/hasse_diagram.py
|
66
|
+
sage/combinat/posets/hochschild_lattice.py
|
65
67
|
sage/combinat/posets/incidence_algebras.py
|
66
68
|
sage/combinat/posets/lattices.py
|
67
69
|
sage/combinat/posets/linear_extension_iterator.pyx
|
@@ -3,10 +3,10 @@
|
|
3
3
|
# Minimum requirements for the build system to execute.
|
4
4
|
requires = [
|
5
5
|
'setuptools >= 77.0.0',
|
6
|
-
'passagemath-setup
|
6
|
+
'passagemath-setup == 10.6.1rc1',
|
7
7
|
'pkgconfig',
|
8
|
-
'passagemath-environment
|
9
|
-
'passagemath-categories
|
8
|
+
'passagemath-environment == 10.6.1rc1',
|
9
|
+
'passagemath-categories == 10.6.1rc1',
|
10
10
|
'cython >=3.0, != 3.0.3, <4.0', 'cython >=3.0.8,<3.1.0',
|
11
11
|
'gmpy2 ~=2.1.b999',
|
12
12
|
'cysignals >=1.11.2, != 1.12.0',
|
@@ -21,8 +21,8 @@ dependencies = [
|
|
21
21
|
'gmpy2 ~=2.1.b999',
|
22
22
|
'cysignals >=1.11.2, != 1.12.0',
|
23
23
|
'memory_allocator',
|
24
|
-
'passagemath-categories
|
25
|
-
'passagemath-environment
|
24
|
+
'passagemath-categories == 10.6.1rc1',
|
25
|
+
'passagemath-environment == 10.6.1rc1',
|
26
26
|
]
|
27
27
|
dynamic = ["version"]
|
28
28
|
license = "GPL-2.0-or-later"
|
@@ -38,7 +38,6 @@ classifiers = [
|
|
38
38
|
"Operating System :: POSIX",
|
39
39
|
"Operating System :: MacOS :: MacOS X",
|
40
40
|
"Programming Language :: Python :: 3 :: Only",
|
41
|
-
"Programming Language :: Python :: 3.9",
|
42
41
|
"Programming Language :: Python :: 3.10",
|
43
42
|
"Programming Language :: Python :: 3.11",
|
44
43
|
"Programming Language :: Python :: 3.12",
|
@@ -46,7 +45,7 @@ classifiers = [
|
|
46
45
|
"Programming Language :: Python :: Implementation :: CPython",
|
47
46
|
"Topic :: Scientific/Engineering :: Mathematics",
|
48
47
|
]
|
49
|
-
requires-python = ">=3.
|
48
|
+
requires-python = ">=3.10, <3.14"
|
50
49
|
|
51
50
|
[project.urls]
|
52
51
|
"release notes" = "https://github.com/passagemath/passagemath/releases"
|
@@ -277,8 +277,7 @@ class AbstractTree:
|
|
277
277
|
while stack:
|
278
278
|
node = stack.pop()
|
279
279
|
action(node)
|
280
|
-
for
|
281
|
-
subtree = node[-i - 1]
|
280
|
+
for subtree in reversed(node):
|
282
281
|
if not subtree.is_empty():
|
283
282
|
stack.append(subtree)
|
284
283
|
|
@@ -640,8 +639,7 @@ class AbstractTree:
|
|
640
639
|
# subtrees, and should not be exploded again, but instead
|
641
640
|
# should be manipulated and removed from the stack.
|
642
641
|
stack.append(None)
|
643
|
-
for
|
644
|
-
subtree = node[-i - 1]
|
642
|
+
for subtree in reversed(node):
|
645
643
|
if not subtree.is_empty():
|
646
644
|
stack.append(subtree)
|
647
645
|
else:
|
@@ -649,6 +647,114 @@ class AbstractTree:
|
|
649
647
|
node = stack.pop()
|
650
648
|
action(node)
|
651
649
|
|
650
|
+
def contour_traversal(self, first_action=None, middle_action=None, final_action=None, leaf_action=None):
|
651
|
+
r"""
|
652
|
+
Run the counterclockwise contour traversal algorithm (iterative
|
653
|
+
implementation) and subject every node encountered
|
654
|
+
to some procedure ``first_action``, ``middle_action`` or ``final_action`` each time it reaches it.
|
655
|
+
|
656
|
+
ALGORITHM:
|
657
|
+
|
658
|
+
- if the root is a leaf, apply `leaf_action`
|
659
|
+
- else
|
660
|
+
- apply `first_action` to the root
|
661
|
+
- iteratively apply `middle_action` to the root and traverse each subtree
|
662
|
+
from the leftmost one to the rightmost one
|
663
|
+
- apply `final_action` to the root
|
664
|
+
|
665
|
+
INPUT:
|
666
|
+
|
667
|
+
- ``first_action`` -- (optional) a function which takes a node as
|
668
|
+
input, and does something the first time it is reached during exploration
|
669
|
+
|
670
|
+
- ``middle_action`` -- (optional) a function which takes a node as
|
671
|
+
input, and does something each time it explore one of its children
|
672
|
+
|
673
|
+
- ``final_action`` -- (optional) a function which takes a node as
|
674
|
+
input, and does something the last time it is reached during exploration
|
675
|
+
|
676
|
+
- ``leaf_action`` -- (optional) a function which takes a leaf as
|
677
|
+
input, and does something when it is reached during exploration.
|
678
|
+
|
679
|
+
OUTPUT:
|
680
|
+
|
681
|
+
``None``. (This is *not* an iterator.)
|
682
|
+
|
683
|
+
TESTS::
|
684
|
+
|
685
|
+
sage: l = []
|
686
|
+
sage: t = OrderedTree([[],[[],[],]]).canonical_labelling()
|
687
|
+
sage: t
|
688
|
+
1[2[], 3[4[], 5[]]]
|
689
|
+
sage: t.contour_traversal(lambda node: (l.append(node.label()),l.append('a')),
|
690
|
+
....: lambda node: (l.append(node.label()),l.append('b')),
|
691
|
+
....: lambda node: (l.append(node.label()),l.append('c')),
|
692
|
+
....: lambda node: (l.append(node.label())))
|
693
|
+
sage: l
|
694
|
+
[1, 'a', 1, 'b', 2, 1, 'b', 3, 'a', 3, 'b', 4, 3, 'b', 5, 3, 'c', 1, 'c']
|
695
|
+
|
696
|
+
sage: l = []
|
697
|
+
sage: b = BinaryTree([[None,[]],[[[],[]],[]]]).canonical_labelling()
|
698
|
+
sage: b
|
699
|
+
3[1[., 2[., .]], 7[5[4[., .], 6[., .]], 8[., .]]]
|
700
|
+
sage: b.contour_traversal(lambda node: l.append(node.label()),
|
701
|
+
....: lambda node: l.append(node.label()),
|
702
|
+
....: lambda node: l.append(node.label()),
|
703
|
+
....: None)
|
704
|
+
sage: l
|
705
|
+
[3, 3, 1, 1, 1, 2, 2, 2, 2, 1, 3, 7, 7, 5, 5, 4, 4, 4, 4, 5, 6, 6, 6, 6, 5, 7, 8, 8, 8, 8, 7, 3]
|
706
|
+
|
707
|
+
The following test checks that things do not go wrong if some among
|
708
|
+
the descendants of the tree are equal or even identical::
|
709
|
+
|
710
|
+
sage: u = BinaryTree(None)
|
711
|
+
sage: v = BinaryTree([u, u])
|
712
|
+
sage: w = BinaryTree([v, v])
|
713
|
+
sage: t = BinaryTree([w, w])
|
714
|
+
sage: t.node_number()
|
715
|
+
7
|
716
|
+
sage: l = []
|
717
|
+
sage: t.contour_traversal(first_action = lambda node: l.append(0))
|
718
|
+
sage: len(l)
|
719
|
+
7
|
720
|
+
"""
|
721
|
+
if first_action is None:
|
722
|
+
def first_action(x):
|
723
|
+
return
|
724
|
+
if middle_action is None:
|
725
|
+
def middle_action(x):
|
726
|
+
return
|
727
|
+
if final_action is None:
|
728
|
+
def final_action(x):
|
729
|
+
return
|
730
|
+
if leaf_action is None:
|
731
|
+
def leaf_action(x):
|
732
|
+
return
|
733
|
+
stack = []
|
734
|
+
stack.append(self)
|
735
|
+
corners = [0, 0]
|
736
|
+
while stack:
|
737
|
+
node = stack.pop()
|
738
|
+
if not node:
|
739
|
+
leaf_action(node)
|
740
|
+
corners.pop()
|
741
|
+
corners[-1] += 1
|
742
|
+
elif not corners[-1]:
|
743
|
+
first_action(node)
|
744
|
+
middle_action(node)
|
745
|
+
stack.append(node)
|
746
|
+
stack.append(node[0])
|
747
|
+
corners.append(0)
|
748
|
+
elif corners[-1] == len(node):
|
749
|
+
final_action(node)
|
750
|
+
corners.pop()
|
751
|
+
corners[-1] += 1
|
752
|
+
else:
|
753
|
+
middle_action(node)
|
754
|
+
stack.append(node)
|
755
|
+
stack.append(node[corners[-1]])
|
756
|
+
corners.append(0)
|
757
|
+
|
652
758
|
def breadth_first_order_traversal(self, action=None):
|
653
759
|
r"""
|
654
760
|
Run the breadth-first post-order traversal algorithm
|
@@ -824,12 +930,41 @@ class AbstractTree:
|
|
824
930
|
True
|
825
931
|
sage: [T.node_number_at_depth(i) for i in range(3)]
|
826
932
|
[0, 0, 0]
|
933
|
+
|
934
|
+
Check that we do not hit a recursion limit::
|
935
|
+
|
936
|
+
sage: T = OrderedTree([])
|
937
|
+
sage: for _ in range(9999):
|
938
|
+
....: T = OrderedTree([T])
|
939
|
+
sage: T.node_number_at_depth(2000)
|
940
|
+
1
|
827
941
|
"""
|
828
942
|
if self.is_empty():
|
829
|
-
return
|
830
|
-
|
831
|
-
|
832
|
-
|
943
|
+
return 0
|
944
|
+
m = 0
|
945
|
+
|
946
|
+
def fr_action(node):
|
947
|
+
nonlocal m, depths, depth
|
948
|
+
if depths[-1] == depth:
|
949
|
+
m += 1
|
950
|
+
|
951
|
+
def m_action(node):
|
952
|
+
nonlocal depths
|
953
|
+
depths.append(depths[-1] + 1)
|
954
|
+
|
955
|
+
def fn_action(node):
|
956
|
+
nonlocal depths
|
957
|
+
depths.pop()
|
958
|
+
|
959
|
+
def lf_action(node):
|
960
|
+
nonlocal m, depths, depth
|
961
|
+
if depths[-1] == depth:
|
962
|
+
m += 1
|
963
|
+
depths.pop()
|
964
|
+
|
965
|
+
depths = [0]
|
966
|
+
self.contour_traversal(fr_action, m_action, fn_action, lf_action)
|
967
|
+
return Integer(m)
|
833
968
|
|
834
969
|
def paths_to_the_right(self, path):
|
835
970
|
r"""
|
@@ -1053,11 +1188,25 @@ class AbstractTree:
|
|
1053
1188
|
2
|
1054
1189
|
sage: BinaryTree([[None, [[], []]], None]).node_number()
|
1055
1190
|
5
|
1191
|
+
|
1192
|
+
TESTS:
|
1193
|
+
|
1194
|
+
Check that we do not hit a recursion limit::
|
1195
|
+
|
1196
|
+
sage: T = OrderedTree([])
|
1197
|
+
sage: for _ in range(9999):
|
1198
|
+
....: T = OrderedTree([T])
|
1199
|
+
sage: T.node_number()
|
1200
|
+
10000
|
1056
1201
|
"""
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1202
|
+
count = 0
|
1203
|
+
|
1204
|
+
def incr(node):
|
1205
|
+
nonlocal count
|
1206
|
+
count += 1
|
1207
|
+
|
1208
|
+
self.iterative_pre_order_traversal(incr)
|
1209
|
+
return Integer(count)
|
1061
1210
|
|
1062
1211
|
def depth(self):
|
1063
1212
|
"""
|
@@ -1080,11 +1229,33 @@ class AbstractTree:
|
|
1080
1229
|
0
|
1081
1230
|
sage: BinaryTree([[],[[],[]]]).depth()
|
1082
1231
|
3
|
1232
|
+
|
1233
|
+
TESTS:
|
1234
|
+
|
1235
|
+
Check that we do not hit a recursion limit::
|
1236
|
+
|
1237
|
+
sage: T = OrderedTree([])
|
1238
|
+
sage: for _ in range(9999):
|
1239
|
+
....: T = OrderedTree([T])
|
1240
|
+
sage: T.depth()
|
1241
|
+
10000
|
1083
1242
|
"""
|
1084
|
-
if self:
|
1085
|
-
return
|
1086
|
-
|
1087
|
-
|
1243
|
+
if self.is_empty():
|
1244
|
+
return 0
|
1245
|
+
m = []
|
1246
|
+
|
1247
|
+
def action(node):
|
1248
|
+
nonlocal m
|
1249
|
+
if node.is_empty():
|
1250
|
+
m.append(-1)
|
1251
|
+
elif not bool(node):
|
1252
|
+
m.append(0)
|
1253
|
+
else:
|
1254
|
+
mx = max(m.pop() for _ in node)
|
1255
|
+
m.append(mx + 1)
|
1256
|
+
|
1257
|
+
self.contour_traversal(final_action=action, leaf_action=action)
|
1258
|
+
return Integer(m[0] + 1)
|
1088
1259
|
|
1089
1260
|
def _ascii_art_(self):
|
1090
1261
|
r"""
|
@@ -1308,7 +1479,7 @@ class AbstractTree:
|
|
1308
1479
|
while l_repr:
|
1309
1480
|
tr = l_repr.pop(0)
|
1310
1481
|
acc += UnicodeArt([" "]) + tr
|
1311
|
-
if not
|
1482
|
+
if not l_repr:
|
1312
1483
|
lf_sep += "─" * (tr._root) + "╮"
|
1313
1484
|
ls_sep += " " * (tr._root) + "│"
|
1314
1485
|
else:
|
@@ -1,8 +1,7 @@
|
|
1
1
|
# sage_setup: distribution = sagemath-graphs
|
2
2
|
r"""
|
3
|
-
Interactive
|
3
|
+
Interactive display of quivers
|
4
4
|
"""
|
5
|
-
|
6
5
|
import ipywidgets as widgets
|
7
6
|
from sage.misc.latex import latex
|
8
7
|
from sage.repl.rich_output.pretty_print import pretty_print
|