diff --git a/.ci/write-dockerfile.sh b/.ci/write-dockerfile.sh index 75737acf106..e3e0d5d170c 100755 --- a/.ci/write-dockerfile.sh +++ b/.ci/write-dockerfile.sh @@ -279,7 +279,7 @@ $ADD Makefile VERSION.txt COPYING.txt condarc.yml README.md bootstrap bootstrap- $ADD config/config.rpath /new/config/config.rpath $ADD src/doc/bootstrap /new/src/doc/bootstrap $ADD src/bin /new/src/bin -$ADD src/Pipfile.m4 src/pyproject.toml src/requirements.txt.m4 src/setup.cfg.m4 src/VERSION.txt /new/src/ +$ADD src/Pipfile.m4 src/pyproject.toml src/requirements.txt.m4 src/VERSION.txt /new/src/ $ADD m4 /new/m4 $ADD pkgs /new/pkgs $ADD build /new/build diff --git a/.github/workflows/dist.yml b/.github/workflows/dist.yml index 448b843622a..2e063b9280e 100644 --- a/.github/workflows/dist.yml +++ b/.github/workflows/dist.yml @@ -181,7 +181,7 @@ jobs: # SPKGs to install as system packages SPKGS: _bootstrap _prereq # Non-Python packages to install as spkgs - TARGETS_PRE: gmp mpfr mpc bliss coxeter3 mcqd meataxe sirocco boost_cropped tdlib + TARGETS_PRE: gmp mpfr mpc bliss coxeter3 mcqd meataxe sirocco boost_cropped tdlib brial CIBW_BUILD: "*${{ matrix.build }}*" # Disable building PyPy wheels on all platforms CIBW_SKIP: "pp*" @@ -255,6 +255,10 @@ jobs: run: | "${{ steps.python.outputs.python-path }}" -m cibuildwheel unpacked/sagemath*bliss* + - name: sagemath-brial + run: | + "${{ steps.python.outputs.python-path }}" -m cibuildwheel unpacked/sagemath*brial* + - name: sagemath-coxeter3 run: | "${{ steps.python.outputs.python-path }}" -m cibuildwheel unpacked/sagemath*coxeter3* @@ -263,6 +267,13 @@ jobs: run: | "${{ steps.python.outputs.python-path }}" -m cibuildwheel unpacked/sagemath*mcqd* + - name: sagemath-tdlib + run: | + case "${{ matrix.arch }}" in + sagemath*tdlib:i686) ;; # broken - boost-related + *) "${{ steps.python.outputs.python-path }}" -m cibuildwheel unpacked/sagemath*tdlib* + esac + - uses: actions/upload-artifact@v4 with: name: ${{ matrix.os }}-${{ matrix.build }}-${{ matrix.arch }}-wheels diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 4f3d1441544..eac0859b7ec 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -28,6 +28,7 @@ on: "debian-bullseye", "debian-bookworm", "debian-trixie", + "debian-trixie-python3.12", "debian-sid", "linuxmint-20.1", "linuxmint-20.2", @@ -45,6 +46,7 @@ on: "fedora-36", "fedora-37", "fedora-38", + "fedora-38-python3.12", "fedora-39", "fedora-40", "fedora-41", @@ -58,8 +60,10 @@ on: "archlinux-latest", "opensuse-15.5-gcc_11-python3.11", "opensuse-tumbleweed-python3.10", - "opensuse-tumbleweed", + "opensuse-tumbleweed-python3.11", + "opensuse-tumbleweed-python3.12", "conda-forge-python3.11", + "conda-forge", "ubuntu-bionic-gcc_8-i386", "debian-bullseye-i386", ] diff --git a/.github/workflows/doctest-problem-matcher.json b/.github/workflows/doctest-problem-matcher.json new file mode 100644 index 00000000000..35bd4731d2d --- /dev/null +++ b/.github/workflows/doctest-problem-matcher.json @@ -0,0 +1,17 @@ +{ + "problemMatcher": [ + { + "owner": "doctest-failure", + "severity": "error", + "pattern": [ + { + "regexp": "^(\\[(\\S*)-[0-9.a-z]\\] )?File \"(\\S*)\", line ([0-9]*), in (\\S*)\\s*$(\\[(\\S*)-[0-9.a-z]\\] )?^(Failed example):", + "code": 2, + "file": 3, + "line": 4, + "message": 7, + } + ] + } + ] +} diff --git a/.gitignore b/.gitignore index 70a6739c33b..4972f493bf5 100644 --- a/.gitignore +++ b/.gitignore @@ -52,9 +52,10 @@ /src/environment-optional-3.11.yml /src/setup.cfg -/src/requirements.txt +/src/requirements*.txt /src/Pipfile /src/Pipfile.lock +/src/pyproject.toml /Pipfile /Pipfile.lock @@ -185,21 +186,12 @@ __pycache__/ build/temp.*/ build/bin/sage-build-env-config -# Generated files in build -build/pkgs/cypari/version_requirements.txt -build/pkgs/cysignals/version_requirements.txt -build/pkgs/cython/version_requirements.txt -build/pkgs/gmpy2/version_requirements.txt -build/pkgs/jupyter_core/version_requirements.txt -build/pkgs/memory_allocator/version_requirements.txt -build/pkgs/numpy/version_requirements.txt -build/pkgs/pkgconfig/version_requirements.txt -build/pkgs/pplpy/version_requirements.txt -build/pkgs/setuptools/version_requirements.txt -build/pkgs/wheel/version_requirements.txt +# Vendored on sdist/install +/src/sage/libs/mpmath/_vendor/mpmath* # Generated files in the top-level source trees /pkgs/*/build +/pkgs/*/cython_debug /pkgs/*/dist /pkgs/*/MANIFEST /pkgs/*/*.egg-info @@ -207,6 +199,7 @@ build/pkgs/wheel/version_requirements.txt /pkgs/*/venv* /pkgs/*/.venv* +/pkgs/sage-conf/pyproject.toml /pkgs/sage-conf_pypi/sage_root/config.log /pkgs/sage-conf_pypi/sage_root/config.status /pkgs/sage-conf_pypi/sage_root/local/ @@ -219,6 +212,7 @@ build/pkgs/wheel/version_requirements.txt /pkgs/sagemath-objects/setup.cfg /pkgs/sagemath-bliss/setup.cfg +/pkgs/sagemath-brial/setup.cfg /pkgs/sagemath-coxeter3/setup.cfg /pkgs/sagemath-mcqd/setup.cfg /pkgs/sagemath-meataxe/setup.cfg @@ -227,8 +221,36 @@ build/pkgs/wheel/version_requirements.txt /pkgs/sagemath-categories/setup.cfg /pkgs/sagemath-environment/setup.cfg /pkgs/sagemath-repl/setup.cfg +/pkgs/sagemath-polyhedra/setup.cfg +/pkgs/sagemath-combinat/setup.cfg +/pkgs/sagemath-graphs/setup.cfg +/pkgs/sagemath-groups/setup.cfg +/pkgs/sagemath-modules/setup.cfg +/pkgs/sagemath-schemes/setup.cfg +/pkgs/sagemath-plot/setup.cfg +/pkgs/sagemath-symbolics/setup.cfg +/pkgs/sagemath-standard-no-symbolics/setup.cfg +/pkgs/sagemath-flint/setup.cfg +/pkgs/sagemath-gap/setup.cfg +/pkgs/sagemath-giac/setup.cfg +/pkgs/sagemath-glpk/setup.cfg +/pkgs/sagemath-homfly/setup.cfg +/pkgs/sagemath-linbox/setup.cfg +/pkgs/sagemath-mpmath/setup.cfg +/pkgs/sagemath-ntl/setup.cfg +/pkgs/sagemath-pari/setup.cfg +/pkgs/sagemath-singular/setup.cfg +/pkgs/sagemath-brial/setup.cfg +/pkgs/sagemath-eclib/setup.cfg +/pkgs/sagemath-lcalc/setup.cfg +/pkgs/sagemath-libbraiding/setup.cfg +/pkgs/sagemath-libecm/setup.cfg + +/pkgs/*/pyproject.toml + /pkgs/sagemath-objects/pyproject.toml /pkgs/sagemath-bliss/pyproject.toml +/pkgs/sagemath-brial/pyproject.toml /pkgs/sagemath-coxeter3/pyproject.toml /pkgs/sagemath-mcqd/pyproject.toml /pkgs/sagemath-meataxe/pyproject.toml @@ -239,6 +261,7 @@ build/pkgs/wheel/version_requirements.txt /pkgs/sagemath-repl/pyproject.toml /pkgs/sagemath-objects/requirements*.txt /pkgs/sagemath-bliss/requirements*.txt +/pkgs/sagemath-brial/requirements*.txt /pkgs/sagemath-coxeter3/requirements*.txt /pkgs/sagemath-mcqd/requirements*.txt /pkgs/sagemath-meataxe/requirements*.txt @@ -247,7 +270,43 @@ build/pkgs/wheel/version_requirements.txt /pkgs/sagemath-categories/requirements*.txt /pkgs/sagemath-environment/requirements*.txt /pkgs/sagemath-repl/requirements*.txt +/pkgs/sagemath-polyhedra/requirements*.txt +/pkgs/sagemath-combinat/requirements*.txt +/pkgs/sagemath-graphs/requirements*.txt +/pkgs/sagemath-groups/requirements*.txt +/pkgs/sagemath-modules/requirements*.txt +/pkgs/sagemath-plot/requirements*.txt +/pkgs/sagemath-schemes/requirements*.txt +/pkgs/sagemath-symbolics/requirements*.txt +/pkgs/sagemath-standard-no-symbolics/requirements*.txt +/pkgs/sagemath-flint/requirements*.txt +/pkgs/sagemath-gap/requirements*.txt +/pkgs/sagemath-giac/requirements*.txt +/pkgs/sagemath-glpk/requirements*.txt +/pkgs/sagemath-homfly/requirements*.txt +/pkgs/sagemath-linbox/requirements*.txt +/pkgs/sagemath-mpmath/requirements*.txt +/pkgs/sagemath-ntl/requirements*.txt +/pkgs/sagemath-pari/requirements*.txt +/pkgs/sagemath-singular/requirements*.txt +/pkgs/sagemath-brial/requirements*.txt +/pkgs/sagemath-eclib/requirements*.txt +/pkgs/sagemath-lcalc/requirements*.txt +/pkgs/sagemath-libbraiding/requirements*.txt +/pkgs/sagemath-libecm/requirements*.txt + /pkgs/sagemath-categories/MANIFEST.in +/pkgs/sagemath-polyhedra/MANIFEST.in +/pkgs/sagemath-combinat/MANIFEST.in +/pkgs/sagemath-graphs/MANIFEST.in +/pkgs/sagemath-groups/MANIFEST.in +/pkgs/sagemath-modules/MANIFEST.in +/pkgs/sagemath-plot/MANIFEST.in +/pkgs/sagemath-schemes/MANIFEST.in +/pkgs/sagemath-symbolics/MANIFEST.in +/pkgs/sagemath-standard-no-symbolics/MANIFEST.in + +/pkgs/sagemath-mpmath/vendor.txt # same for old locations - before Issue #31577 /build/pkgs/*/src/build @@ -274,6 +333,9 @@ src/*.egg-info/ /src/bin/sage-env-config /src/bin/sage-src-env-config +# Generated by sage-generate-meson +/src/**/meson.build + # Virtual environments /venv src/.env @@ -299,3 +361,8 @@ src/.coverage/ # git worktree worktree* **/worktree* + +# Pyodide +**/.pyodide-xbuildenv +/emsdk/ +/venv-pyodide*/ diff --git a/Makefile b/Makefile index 53d2c689843..e7866190a63 100644 --- a/Makefile +++ b/Makefile @@ -178,17 +178,6 @@ bootstrap-clean: rm -f src/Pipfile rm -f src/requirements.txt rm -f src/setup.cfg - rm -f build/pkgs/cypari/version_requirements.txt - rm -f build/pkgs/cysignals/version_requirements.txt - rm -f build/pkgs/cython/version_requirements.txt - rm -f build/pkgs/gmpy2/version_requirements.txt - rm -f build/pkgs/jupyter_core/version_requirements.txt - rm -f build/pkgs/memory_allocator/version_requirements.txt - rm -f build/pkgs/numpy/version_requirements.txt - rm -f build/pkgs/pkgconfig/version_requirements.txt - rm -f build/pkgs/pplpy/version_requirements.txt - rm -f build/pkgs/setuptools/version_requirements.txt - rm -f build/pkgs/wheel/version_requirements.txt # Remove absolutely everything which isn't part of the git repo maintainer-clean: distclean bootstrap-clean diff --git a/bootstrap b/bootstrap index 5f04a1e208c..25a728de8d1 100755 --- a/bootstrap +++ b/bootstrap @@ -33,15 +33,6 @@ MAKE="${MAKE:-make}" bootstrap () { - for pkgname in cypari cysignals cython gmpy2 jupyter_core memory_allocator numpy pkgconfig pplpy setuptools wheel; do - # Write the version_requirements.txt files for dependencies declared in pyproject.toml - target=build/pkgs/${pkgname}/version_requirements.txt - if [ "${BOOTSTRAP_QUIET}" = "no" ]; then - echo "bootstrap:$LINENO: installing '"$target"'" - fi - echo "# Generated by SAGE_ROOT/bootstrap based on src/pyproject.toml; do not edit directly" > $target - sage-get-system-packages install-requires ${pkgname} >> $target - done for a in m4/sage_spkg_configures.m4 m4/sage_spkg_versions.m4 m4/sage_spkg_versions_toml.m4; do if [ "${BOOTSTRAP_QUIET}" = "no" ]; then echo "bootstrap:$LINENO: installing '"$a"'" @@ -232,19 +223,7 @@ save () { src/environment-optional-3.[89].yml src/environment-optional-3.1[0-9].yml \ src/Pipfile \ src/pyproject.toml \ - src/requirements.txt \ - src/setup.cfg \ - build/pkgs/cypari/version_requirements.txt \ - build/pkgs/cysignals/version_requirements.txt \ - build/pkgs/cython/version_requirements.txt \ - build/pkgs/gmpy2/version_requirements.txt \ - build/pkgs/jupyter_core/version_requirements.txt \ - build/pkgs/memory_allocator/version_requirements.txt \ - build/pkgs/numpy/version_requirements.txt \ - build/pkgs/pkgconfig/version_requirements.txt \ - build/pkgs/pplpy/version_requirements.txt \ - build/pkgs/setuptools/version_requirements.txt \ - build/pkgs/wheel/version_requirements.txt + src/requirements.txt # Update version; this re-computes the checksum sage-package update configure "$NEWCONFVERSION" diff --git a/bootstrap-conda b/bootstrap-conda index c64e2a72b6c..e1a7476b90e 100755 --- a/bootstrap-conda +++ b/bootstrap-conda @@ -10,7 +10,8 @@ STRIP_COMMENTS="sed s/#.*//;" shopt -s extglob -DEVELOP_SPKG_PATTERN="@(_develop$(for a in $(head -n 1 build/pkgs/_develop/dependencies); do echo -n "|"$a; done))" +eval $(sage-package dependencies --format=shell :all:) +DEVELOP_SPKG_PATTERN="@(_develop|${runtime_deps__develop// /|})" BOOTSTRAP_PACKAGES=_bootstrap PACKAGES= OPTIONAL_PACKAGES= @@ -139,18 +140,22 @@ echo >&2 $0:$LINENO: generate conda environment files if [ ! -f $SYSTEM_PACKAGES_FILE ]; then SYSTEM_PACKAGES_FILE=$PKG_SCRIPTS/version_requirements.txt fi - if grep -q SAGERUNTIME $PKG_SCRIPTS/dependencies $PKG_SCRIPTS/dependencies_order_only 2>/dev/null; then - : # cannot install packages that depend on the Sage library - else - case "$PKG_BASE:$PKG_TYPE" in - $DEVELOP_SPKG_PATTERN:*) FD=4;; - *:standard) FD="4 5";; - *) FD=5;; - esac - ${STRIP_COMMENTS} $SYSTEM_PACKAGES_FILE | while read -r line; do - [ -n "$line" ] && for fd in $FD; do echo >&$fd " - $line"; done - done - fi + eval DEPS=\"\$runtime_deps_$PKG_BASE\ \$build_deps_$PKG_BASE\ \$order_only_deps_$PKG_BASE\" + case "$DEPS" in + *SAGERUNTIME*) + # cannot install packages that depend on the Sage library + ;; + *) + case "$PKG_BASE:$PKG_TYPE" in + $DEVELOP_SPKG_PATTERN:*) FD=4;; + *:standard) FD="4 5";; + *) FD=5;; + esac + ${STRIP_COMMENTS} $SYSTEM_PACKAGES_FILE | while read -r line; do + [ -n "$line" ] && for fd in $FD; do echo >&$fd " - $line"; done + done + ;; + esac done ) 4>> /dev/null 5>> src/environment-optional-template.yml diff --git a/build/bin/sage-get-system-packages b/build/bin/sage-get-system-packages index f28e0356375..b65ab936ad7 100755 --- a/build/bin/sage-get-system-packages +++ b/build/bin/sage-get-system-packages @@ -101,9 +101,14 @@ for PKG_BASE in $SPKGS; do *pyproject.toml) SYSTEM_PACKAGES_FILE="$SAGE_ROOT"/$NAME if [ -f "$SYSTEM_PACKAGES_FILE" ]; then - # Extract from the "requires" block in src/pyproject.toml + # Extract from src/pyproject.toml: + # - from the "[build-system] requires" value + # - from "[project] dependencies", + # - from "[project.optional-dependencies]" # Packages are in the format "'sage-conf ~= 10.3b3'," - PACKAGE_INFO=$(sed -n '/requires *= *\[/,/^\]/s/^ *'\''\('$PKG_BASE'.*\)'\'',/\1/p' "$SAGE_ROOT/src/pyproject.toml") + # Accept dashes and underscores in package names as equivalent: + PKG_REGEX=$(echo $PKG_BASE | sed 's/[-_]/[-_]/g') + PACKAGE_INFO=$(sed -En '/(requires|dependencies|R) *= *\[/,/^\]/s/^ *'\''('$PKG_REGEX'.*)'\'',/\1/p' "$SAGE_ROOT/src/pyproject.toml" | sort -u) if [ -n "$PACKAGE_INFO" ]; then echo "$PACKAGE_INFO" | ${STRIP_COMMENTS} [ $SYSTEM = versions ] || break diff --git a/build/bin/sage-site b/build/bin/sage-site index 842ce89a81a..552d49fb1e6 100755 --- a/build/bin/sage-site +++ b/build/bin/sage-site @@ -92,6 +92,19 @@ if [ "$1" = "-advanced" -o "$1" = "--advanced" ]; then exit 0 fi +# Delegation + +if [ "$1" = '-distribution' -o "$1" = '--distribution' ]; then + distribution=$(echo "$2" | cut -f1 -d'[' | tr _ -) + case "$2" in + *\[*\]) extras_suffix=-$(echo "$2" | cut -f2 -d'[' | sed 's/,/--/;s/]//;');; + *) extras_suffix= + esac + shift 2 + + exec "$SAGE_ROOT"/pkgs/$distribution/.tox/sagepython-sagewheels-nopypi-norequirements$extras_suffix/bin/sage "$@" +fi + ##################################################################### # Package handling ##################################################################### diff --git a/build/bin/sage-spkg b/build/bin/sage-spkg index 6af5214c27f..0b30d615352 100755 --- a/build/bin/sage-spkg +++ b/build/bin/sage-spkg @@ -97,6 +97,7 @@ Other options: use at your own risk -n: automatically reply "n" for all prompts regarding experimental and old-style packages + -d: only download the package -o: allow fetching the package from its upstream URL when it is not available from the Sage mirrors (yet) -c: after installing, run the test suite for the package; diff --git a/build/make/Makefile.in b/build/make/Makefile.in index 420dadb9364..0170f0433f5 100644 --- a/build/make/Makefile.in +++ b/build/make/Makefile.in @@ -141,12 +141,34 @@ PYPI_WHEEL_PACKAGES = $(PYPI_NOARCH_WHEEL_PACKAGES) \ sagemath_objects \ sagemath_repl \ sagemath_categories \ + sagemath_modules \ + sagemath_plot \ + sagemath_polyhedra \ + sagemath_graphs \ + sagemath_combinat \ + sagemath_schemes \ + sagemath_giac \ + sagemath_flint \ + sagemath_pari \ + sagemath_gap \ + sagemath_homfly \ + sagemath_linbox \ + sagemath_ntl \ + sagemath_brial \ + sagemath_eclib \ + sagemath_lcalc \ + sagemath_libbraiding \ + sagemath_libecm \ sagemath_bliss \ sagemath_mcqd \ sagemath_tdlib \ sagemath_coxeter3 \ sagemath_sirocco \ - sagemath_meataxe + sagemath_meataxe \ + sagemath_symbolics \ + sagemath_glpk \ + sagemath_mpmath \ + sagemath_standard_no_symbolics # sage_docbuild is here, not in PYPI_WHEEL_PACKAGES, because it depends on sagelib WHEEL_PACKAGES = $(PYPI_WHEEL_PACKAGES) \ @@ -187,7 +209,6 @@ $(foreach pkgname,$(PIP_PACKAGES),\ $(SAGE_LOCAL)/$(SPKG_INST_RELDIR)/.dummy: touch $@ - # Filtered by installation tree $(foreach tree,SAGE_LOCAL SAGE_VENV SAGE_DOCS, \ $(eval $(tree)_INSTALLED_PACKAGE_INSTS = \ @@ -199,6 +220,9 @@ $(foreach tree,SAGE_LOCAL SAGE_VENV SAGE_DOCS, \ $(if $(findstring $(tree),$(trees_$(pkgname))), \ $(inst_$(pkgname)))))) +# Optional dependencies +$(foreach pkgname,$(INSTALLED_PACKAGES),\ + $(eval optional_inst_$(pkgname) = $(inst_$(pkgname)))) ############################################################################### @@ -548,10 +572,11 @@ debug-check: # # Positional arguments: # $(1): package name +# $(2): empty or one of "build_", "check_" pkg_deps = \ $(if $(filter gcc,$(1)),,$$(GCC_DEP))\ - $(foreach dep,$(deps_$(1)),\ - $(if $(value inst_$(dep)),$$(inst_$(dep)),$(dep))) + $(foreach dep,$($(2)deps_$(1)),\ + $(if $(value inst_$(dep)),$$(inst_$(dep)),$(dep))) # ============================= normal packages ============================== # Generate build rules for 'normal' packages; this template is used to generate @@ -599,62 +624,73 @@ pkg_deps = \ # Positional arguments: # $(1): package name # $(2): package version -# $(3): package dependencies -# $(4): package tree variable +# $(3): package build dependencies +# $(4): package dependencies +# $(5): package check dependencies +# $(6): package tree variable define NORMAL_PACKAGE_templ ########################################## $(1)-build-deps: $(3) -$$($(4))/$(SPKG_INST_RELDIR)/$(1)-$(2): $(3) - +$(MAKE_REC) $(1)-$(4)-no-deps +$(1)-deps: $(1)-build-deps $(4) -$(1): $$($(4))/$(SPKG_INST_RELDIR)/$(1)-$(2) +$$($(6))/$(SPKG_INST_RELDIR)/$(1)-$(2): $(4) $(3) $(if $(check_deps_$(1)),$$(and $$(filter-out no,$$(SAGE_CHECK_$(1))),$(5))) + +$(MAKE_REC) $(1)-$(6)-no-deps -$(1)-ensure: $(inst_$(1)) +$(1): $$($(6))/$(SPKG_INST_RELDIR)/$(1)-$(2) -$(1)-$(4)-no-deps: - +@if [ -z '$$($(4))' ]; then \ - echo "Error: The installation tree $(4) has been disabled" 2>&1; \ - echo "$$($(4)_DISABLED_MESSAGE)" 2>&1; \ +$(1)-ensure: $$(inst_$(1)) + +$(1)-$(6)-build-no-deps: + +@if [ -z '$$($(6))' ]; then \ + echo "Error: The installation tree $(6) has been disabled" 2>&1; \ + echo "$$($(6)_DISABLED_MESSAGE)" 2>&1; \ exit 1; \ - else \ - sage-logger -p 'SAGE_CHECK=$$(SAGE_CHECK_$(1)) PATH=$$(SAGE_SRC)/bin:$$($(4))/bin:$$$$PATH $$(SAGE_SPKG) $$(SAGE_SPKG_OPTIONS) \ - $(if $(filter $(1),$(TOOLCHAIN_DEPS)),--keep-existing) \ - $(1)-$(2) $$($(4))' '$$(SAGE_LOGS)/$(1)-$(2).log'; \ fi -$(1)-no-deps: $(1)-$(4)-no-deps +$(1)-build-no-deps: $(1)-$(6)-build-no-deps -$(1)-$(4)-check: - $(PLUS)@sage-logger -p 'PATH=$$(SAGE_SRC)/bin:$$($(4))/bin:$$$$PATH $$(SAGE_SPKG) --check-only $(1)-$(2) $$($(4))' '$$(SAGE_LOGS)/$(1)-$(2).log' +$(1)-$(6)-no-deps: $(1)-$(6)-build-no-deps + +@sage-logger -p 'SAGE_CHECK=$$(SAGE_CHECK_$(1)) PATH=$$(SAGE_SRC)/bin:$$($(6))/bin:$$$$PATH $$(SAGE_SPKG) $$(SAGE_SPKG_OPTIONS) \ + $(if $(filter $(1),$(TOOLCHAIN_DEPS)),--keep-existing) \ + $(1)-$(2) $$($(6))' '$$(SAGE_LOGS)/$(1)-$(2).log'; \ -$(1)-check: $(1)-$(4)-check +$(1)-no-deps: $(1)-$(6)-no-deps -$(1)-$(4)-uninstall: - if [ -d '$$($(4))' ]; then \ +$(1)-$(6)-check: + $(PLUS)@sage-logger -p 'PATH=$$(SAGE_SRC)/bin:$$($(6))/bin:$$$$PATH $$(SAGE_SPKG) --check-only $(1)-$(2) $$($(6))' '$$(SAGE_LOGS)/$(1)-$(2).log' + +$(1)-check: $(1)-$(6)-check + +$(1)-$(6)-uninstall: + if [ -d '$$($(6))' ]; then \ sage-spkg-uninstall $(if $(filter $(1),$(TOOLCHAIN_DEPS)),--keep-files) \ - $(1) '$$($(4))'; \ + $(1) '$$($(6))'; \ fi -$(1)-uninstall: $(1)-$(4)-uninstall +$(1)-uninstall: $(1)-$(6)-uninstall $(1)-clean: $(1)-uninstall -.PHONY: $(1) $(1)-$(4)-uninstall $(1)-uninstall $(1)-clean $(1)-build-deps $(1)-no-deps +.PHONY: $(1) $(1)-$(6)-uninstall $(1)-uninstall $(1)-clean $(1)-build-deps $(1)-no-deps endef ################################################################# $(foreach pkgname, $(NORMAL_PACKAGES),\ $(foreach tree, $(trees_$(pkgname)), \ $(eval $(call NORMAL_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),\ - $(call pkg_deps,$(pkgname)),$(tree))))) + $(call pkg_deps,$(pkgname),build_),\ + $(call pkg_deps,$(pkgname)),\ + $(call pkg_deps,$(pkgname),check_),$(tree))))) ifdef DEBUG_RULES $(info # Rules for standard packages) $(foreach pkgname, $(NORMAL_PACKAGES),\ $(foreach tree, $(trees_$(pkgname)), \ $(info $(call NORMAL_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),\ - $(call pkg_deps,$(pkgname)),$(tree))))) + $(call pkg_deps,$(pkgname),build_),\ + $(call pkg_deps,$(pkgname)),\ + $(call pkg_deps,$(pkgname),check_),$(tree))))) endif # ================================ pip packages =============================== @@ -669,14 +705,17 @@ endif # Positional arguments: # $(1): package name -# $(2): package dependencies +# $(2): package build dependencies +# $(3): package dependencies define PIP_PACKAGE_templ $(1)-build-deps: $(2) -$(1): $(2) +$(1)-deps: $(1)-build-deps $(3) + +$(1): $(3) $(2) +$(MAKE_REC) $(1)-no-deps -$(1)-ensure: $(inst_$(1)) +$(1)-ensure: $$(inst_$(1)) $(1)-no-deps: $(AM_V_at)sage-logger -p 'sage --pip install -r "$$(SAGE_ROOT)/build/pkgs/$(1)/requirements.txt"' '$$(SAGE_LOGS)/$(1).log' @@ -690,12 +729,14 @@ $(1)-clean: $(1)-uninstall endef $(foreach pkgname,$(PIP_PACKAGES),\ - $(eval $(call PIP_PACKAGE_templ,$(pkgname),$(call pkg_deps,$(pkgname))))) + $(eval $(call PIP_PACKAGE_templ,$(pkgname),$(call pkg_deps,$(pkgname),build_),\ + $(call pkg_deps,$(pkgname))))) ifdef DEBUG_RULES $(info # Rules for pip packages) $(foreach pkgname,$(PIP_PACKAGES),\ - $(info $(call PIP_PACKAGE_templ,$(pkgname),$(call pkg_deps,$(pkgname))))) + $(info $(call PIP_PACKAGE_templ,$(pkgname),$(call pkg_deps,$(pkgname),build_),\ + $(call pkg_deps,$(pkgname))))) endif # ============================= script packages ============================== @@ -772,11 +813,13 @@ $(1)-uninstall: $(1)-$(4)-uninstall $(1)-clean: $(1)-uninstall -$(1)-sdist: FORCE python_build sage_setup cython +$(1)-sdist: FORCE python_build sage_setup cython meson_python $(AM_V_at) cd '$$(SAGE_ROOT)' && \ . '$$(SAGE_ROOT)/src/bin/sage-src-env-config' && \ . '$$(SAGE_ROOT)/src/bin/sage-env-config' && \ . '$$(SAGE_ROOT)/src/bin/sage-env' && \ + export CXXFLAGS="$$$$CXXFLAGS $$$$(echo "$$$$CXX" | sed -En "s/.*(-std=[a-z0-9+]*).*/\1/p")" && \ + export CXX=$$$$(echo "$$$$CXX" | sed 's/-std=[a-z0-9+]*//g') && \ '$$(SAGE_ROOT)/build/pkgs/$(1)/spkg-src' # Recursive tox invocation @@ -795,13 +838,13 @@ endef $(foreach pkgname,$(SCRIPT_PACKAGES),\ $(foreach tree, $(trees_$(pkgname)), \ - $(eval $(call SCRIPT_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),$(call pkg_deps,$(pkgname)),$(tree))))) + $(eval $(call SCRIPT_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),$(call pkg_deps,$(pkgname),build_),$(tree))))) ifdef DEBUG_RULES $(info # Rules for script packages) $(foreach pkgname,$(SCRIPT_PACKAGES),\ $(foreach tree, $(trees_$(pkgname)), \ - $(info $(call SCRIPT_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),$(call pkg_deps,$(pkgname)),$(tree))))) + $(info $(call SCRIPT_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),$(call pkg_deps,$(pkgname),build_),$(tree))))) endif # sagelib depends on this so that its install script is always executed diff --git a/build/make/install b/build/make/install index 04c9ef1378a..9940b8eea24 100755 --- a/build/make/install +++ b/build/make/install @@ -78,7 +78,7 @@ look_for_errors() { for f in `ls -tr $1 2>/dev/null`; do # Look for recent error message in log file. # Note that "tail -n 20 ..." doesn't work on Solaris. - if tail -$2 $f 2>/dev/null | grep "$3" &>/dev/null; then + if tail -$2 $f 2>/dev/null | grep -E "$3" &>/dev/null; then base_f=`basename $f .log` # stat(1) is not portable between Linux and macOS, so we extract it from ls -lf timestamp=`ls -l $f | awk -F' ' '{print $6, $7, $8}'` 2> /dev/null @@ -113,7 +113,7 @@ The following package(s) may have failed to build (not necessarily during this run of 'make $@'): EOF - look_for_errors "$SAGE_LOGS/*.log" 20 "^Error" package >&2 + look_for_errors "$SAGE_LOGS/*.log" 20 "^(Error|Failure building)" package >&2 cat >&2 <&2 <=0.8 +conway-polynomials diff --git a/build/pkgs/cypari/version_requirements.txt b/build/pkgs/cypari/version_requirements.txt new file mode 100644 index 00000000000..dd37c156e1a --- /dev/null +++ b/build/pkgs/cypari/version_requirements.txt @@ -0,0 +1 @@ +cypari2 diff --git a/build/pkgs/cysignals/version_requirements.txt b/build/pkgs/cysignals/version_requirements.txt new file mode 100644 index 00000000000..3335306cb5b --- /dev/null +++ b/build/pkgs/cysignals/version_requirements.txt @@ -0,0 +1 @@ +cysignals diff --git a/build/pkgs/cython/version_requirements.txt b/build/pkgs/cython/version_requirements.txt new file mode 100644 index 00000000000..f6629e02456 --- /dev/null +++ b/build/pkgs/cython/version_requirements.txt @@ -0,0 +1 @@ +cython diff --git a/build/pkgs/emsdk/SPKG.rst b/build/pkgs/emsdk/SPKG.rst new file mode 100644 index 00000000000..f5405c9aa83 --- /dev/null +++ b/build/pkgs/emsdk/SPKG.rst @@ -0,0 +1,21 @@ +emsdk: Emscripten (WebAssembly compiler toolchain) developer toolkit +==================================================================== + +Description +----------- + +The Emscripten toolchain is distributed as a standalone Emscripten SDK. +It is a package manager, providing all the required tools, such as +Clang, Python and Node.js. + + +License +------- + +MIT/Expat + + +Upstream Contact +---------------- + +https://github.com/emscripten-core/emsdk diff --git a/build/pkgs/emsdk/dependencies b/build/pkgs/emsdk/dependencies new file mode 100644 index 00000000000..a2de60c67eb --- /dev/null +++ b/build/pkgs/emsdk/dependencies @@ -0,0 +1 @@ +pyodide_build | git diff --git a/build/pkgs/emsdk/spkg-install.in b/build/pkgs/emsdk/spkg-install.in new file mode 100644 index 00000000000..02e4848c95f --- /dev/null +++ b/build/pkgs/emsdk/spkg-install.in @@ -0,0 +1,15 @@ +set -e +# https://pyodide.org/en/stable/development/building-and-testing-packages.html#building-binary-packages-for-pyodide +if [ -r "$SAGE_ROOT"/emsdk/.git ]; then + (cd "$SAGE_ROOT"/emsdk && git pull) +elif [ -d "$SAGE_ROOT"/emsdk ]; then + (cd "$SAGE_ROOT"/emsdk && ./emsdk update) +else + (cd "$SAGE_ROOT" && git clone https://github.com/emscripten-core/emsdk.git) +fi +. "$SAGE_ROOT"/venv-pyodide-build/bin/activate +cd "$SAGE_ROOT"/emsdk +PYODIDE_EMSCRIPTEN_VERSION=$(pyodide config get emscripten_version) +./emsdk install ${PYODIDE_EMSCRIPTEN_VERSION} +./emsdk activate ${PYODIDE_EMSCRIPTEN_VERSION} +#source emsdk_env.sh diff --git a/build/pkgs/emsdk/type b/build/pkgs/emsdk/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/emsdk/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/fpylll/version_requirements.txt b/build/pkgs/fpylll/version_requirements.txt index e040e7daa1e..8a3e3a7ecd0 100644 --- a/build/pkgs/fpylll/version_requirements.txt +++ b/build/pkgs/fpylll/version_requirements.txt @@ -1 +1 @@ -fpylll >=0.5.9 +fpylll diff --git a/build/pkgs/gcc/dependencies b/build/pkgs/gcc/dependencies index 34a0cdf783d..ce89e44dff4 100644 --- a/build/pkgs/gcc/dependencies +++ b/build/pkgs/gcc/dependencies @@ -1,4 +1,4 @@ -| $(MP_LIBRARY) mpfr mpc zlib xz +| $(MP_LIBRARY) mpfr mpc zlib xz zstd ------------------------------------------------------------------------ NOTE: all dependencies of GCC must be order-only dependencies diff --git a/build/pkgs/gmpy2/version_requirements.txt b/build/pkgs/gmpy2/version_requirements.txt new file mode 100644 index 00000000000..1777652f249 --- /dev/null +++ b/build/pkgs/gmpy2/version_requirements.txt @@ -0,0 +1 @@ +gmpy2 diff --git a/build/pkgs/importlib_metadata/version_requirements.txt b/build/pkgs/importlib_metadata/version_requirements.txt index a093079f483..bbb07547a19 100644 --- a/build/pkgs/importlib_metadata/version_requirements.txt +++ b/build/pkgs/importlib_metadata/version_requirements.txt @@ -1,3 +1 @@ -# According to https://pypi.org/project/importlib-metadata/, -# 4.13 provides the features of Python 3.11 importlib.metadata -importlib_metadata >=4.13; python_version<"3.11" +importlib_metadata diff --git a/build/pkgs/importlib_resources/version_requirements.txt b/build/pkgs/importlib_resources/version_requirements.txt index be3b17269df..58ad1bd3335 100644 --- a/build/pkgs/importlib_resources/version_requirements.txt +++ b/build/pkgs/importlib_resources/version_requirements.txt @@ -1,3 +1 @@ -# According to https://pypi.org/project/importlib-resources/, -# version 5.7 provides the features of Python 3.11 importlib.resources -importlib_resources >= 5.7; python_version<"3.11" +importlib_resources diff --git a/build/pkgs/ipykernel/version_requirements.txt b/build/pkgs/ipykernel/version_requirements.txt index 5ceec358940..d919f6f3190 100644 --- a/build/pkgs/ipykernel/version_requirements.txt +++ b/build/pkgs/ipykernel/version_requirements.txt @@ -1 +1 @@ -ipykernel >=5.2.1 +ipykernel diff --git a/build/pkgs/ipython/version_requirements.txt b/build/pkgs/ipython/version_requirements.txt index a52df49c421..49a7ffe2a95 100644 --- a/build/pkgs/ipython/version_requirements.txt +++ b/build/pkgs/ipython/version_requirements.txt @@ -1 +1 @@ -ipython >=7.13.0 +ipython diff --git a/build/pkgs/ipywidgets/version_requirements.txt b/build/pkgs/ipywidgets/version_requirements.txt index 1e974c72842..f582a4a3283 100644 --- a/build/pkgs/ipywidgets/version_requirements.txt +++ b/build/pkgs/ipywidgets/version_requirements.txt @@ -1 +1 @@ -ipywidgets >=7.5.1 +ipywidgets diff --git a/build/pkgs/jupyter_core/version_requirements.txt b/build/pkgs/jupyter_core/version_requirements.txt new file mode 100644 index 00000000000..19df36408c9 --- /dev/null +++ b/build/pkgs/jupyter_core/version_requirements.txt @@ -0,0 +1 @@ +jupyter-core diff --git a/build/pkgs/lrcalc_python/version_requirements.txt b/build/pkgs/lrcalc_python/version_requirements.txt index 8b44d97f4b5..b854d5c73dd 100644 --- a/build/pkgs/lrcalc_python/version_requirements.txt +++ b/build/pkgs/lrcalc_python/version_requirements.txt @@ -1 +1 @@ -lrcalc ~=2.1 +lrcalc diff --git a/build/pkgs/markdown_it_py/SPKG.rst b/build/pkgs/markdown_it_py/SPKG.rst new file mode 100644 index 00000000000..756b7a8a4bc --- /dev/null +++ b/build/pkgs/markdown_it_py/SPKG.rst @@ -0,0 +1,16 @@ +markdown_it_py: Python port of markdown-it. Markdown parsing, done right! +========================================================================= + +Description +----------- + +Python port of markdown-it. Markdown parsing, done right! + +License +------- + +Upstream Contact +---------------- + +https://pypi.org/project/markdown-it-py/ + diff --git a/build/pkgs/markdown_it_py/checksums.ini b/build/pkgs/markdown_it_py/checksums.ini new file mode 100644 index 00000000000..446f3725667 --- /dev/null +++ b/build/pkgs/markdown_it_py/checksums.ini @@ -0,0 +1,5 @@ +tarball=markdown_it_py-VERSION-py3-none-any.whl +sha1=3982b43b7efd8f976d0d89f7ea110a7db73194c4 +md5=261d52f83b11ca9280c84c7692de7c9d +cksum=1940511663 +upstream_url=https://pypi.io/packages/py3/m/markdown_it_py/markdown_it_py-VERSION-py3-none-any.whl diff --git a/build/pkgs/markdown_it_py/dependencies b/build/pkgs/markdown_it_py/dependencies new file mode 100644 index 00000000000..27a6d9a4865 --- /dev/null +++ b/build/pkgs/markdown_it_py/dependencies @@ -0,0 +1,4 @@ +mdurl | $(PYTHON_TOOLCHAIN) $(PYTHON) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/markdown_it_py/package-version.txt b/build/pkgs/markdown_it_py/package-version.txt new file mode 100644 index 00000000000..4a36342fcab --- /dev/null +++ b/build/pkgs/markdown_it_py/package-version.txt @@ -0,0 +1 @@ +3.0.0 diff --git a/build/pkgs/markdown_it_py/type b/build/pkgs/markdown_it_py/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/markdown_it_py/type @@ -0,0 +1 @@ +standard diff --git a/build/pkgs/markdown_it_py/version_requirements.txt b/build/pkgs/markdown_it_py/version_requirements.txt new file mode 100644 index 00000000000..ad6bebcd4c9 --- /dev/null +++ b/build/pkgs/markdown_it_py/version_requirements.txt @@ -0,0 +1 @@ +markdown-it-py diff --git a/build/pkgs/matplotlib/version_requirements.txt b/build/pkgs/matplotlib/version_requirements.txt index 28e7a7d265b..6ccafc3f904 100644 --- a/build/pkgs/matplotlib/version_requirements.txt +++ b/build/pkgs/matplotlib/version_requirements.txt @@ -1,3 +1 @@ -# Issue #33642: Set lower bound for use of matplotlib color maps introduced in #33491, -# and to suppress deprecation warnings (https://github.com/matplotlib/matplotlib/pull/21073) -matplotlib >=3.5.1 +matplotlib diff --git a/build/pkgs/mdurl/SPKG.rst b/build/pkgs/mdurl/SPKG.rst new file mode 100644 index 00000000000..e5548425392 --- /dev/null +++ b/build/pkgs/mdurl/SPKG.rst @@ -0,0 +1,16 @@ +mdurl: Markdown URL utilities +============================= + +Description +----------- + +Markdown URL utilities + +License +------- + +Upstream Contact +---------------- + +https://pypi.org/project/mdurl/ + diff --git a/build/pkgs/mdurl/checksums.ini b/build/pkgs/mdurl/checksums.ini new file mode 100644 index 00000000000..f429e0c01eb --- /dev/null +++ b/build/pkgs/mdurl/checksums.ini @@ -0,0 +1,5 @@ +tarball=mdurl-VERSION-py3-none-any.whl +sha1=a26cf93cb2fe37f85fee4ea2f1c372cde26dd8b9 +md5=7db14dc5d739bfca141f035953620659 +cksum=1224661636 +upstream_url=https://pypi.io/packages/py3/m/mdurl/mdurl-VERSION-py3-none-any.whl diff --git a/build/pkgs/mdurl/dependencies b/build/pkgs/mdurl/dependencies new file mode 100644 index 00000000000..47296a7bace --- /dev/null +++ b/build/pkgs/mdurl/dependencies @@ -0,0 +1,4 @@ + | $(PYTHON_TOOLCHAIN) $(PYTHON) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/mdurl/package-version.txt b/build/pkgs/mdurl/package-version.txt new file mode 100644 index 00000000000..d917d3e26ad --- /dev/null +++ b/build/pkgs/mdurl/package-version.txt @@ -0,0 +1 @@ +0.1.2 diff --git a/build/pkgs/mdurl/type b/build/pkgs/mdurl/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/mdurl/type @@ -0,0 +1 @@ +standard diff --git a/build/pkgs/mdurl/version_requirements.txt b/build/pkgs/mdurl/version_requirements.txt new file mode 100644 index 00000000000..38dba49310d --- /dev/null +++ b/build/pkgs/mdurl/version_requirements.txt @@ -0,0 +1 @@ +mdurl diff --git a/build/pkgs/memory_allocator/version_requirements.txt b/build/pkgs/memory_allocator/version_requirements.txt new file mode 100644 index 00000000000..fad07b22ebe --- /dev/null +++ b/build/pkgs/memory_allocator/version_requirements.txt @@ -0,0 +1 @@ +memory_allocator diff --git a/build/pkgs/mpmath/version_requirements.txt b/build/pkgs/mpmath/version_requirements.txt index 8c3f379fbd4..dda7c273a8d 100644 --- a/build/pkgs/mpmath/version_requirements.txt +++ b/build/pkgs/mpmath/version_requirements.txt @@ -1 +1 @@ -mpmath >=1.1.0, <1.4 +mpmath diff --git a/build/pkgs/networkx/version_requirements.txt b/build/pkgs/networkx/version_requirements.txt index 2ff86e7c737..4d07dfe2f85 100644 --- a/build/pkgs/networkx/version_requirements.txt +++ b/build/pkgs/networkx/version_requirements.txt @@ -1 +1 @@ -networkx >=2.4 +networkx diff --git a/build/pkgs/numpy/version_requirements.txt b/build/pkgs/numpy/version_requirements.txt new file mode 100644 index 00000000000..24ce15ab7ea --- /dev/null +++ b/build/pkgs/numpy/version_requirements.txt @@ -0,0 +1 @@ +numpy diff --git a/build/pkgs/pexpect/version_requirements.txt b/build/pkgs/pexpect/version_requirements.txt index e89d50d66c3..808fb07afdc 100644 --- a/build/pkgs/pexpect/version_requirements.txt +++ b/build/pkgs/pexpect/version_requirements.txt @@ -1 +1 @@ -pexpect >=4.8.0 +pexpect diff --git a/build/pkgs/pillow/version_requirements.txt b/build/pkgs/pillow/version_requirements.txt index 7dbe09f5f5c..3868fb16b89 100644 --- a/build/pkgs/pillow/version_requirements.txt +++ b/build/pkgs/pillow/version_requirements.txt @@ -1 +1 @@ -pillow >=7.2.0 +pillow diff --git a/build/pkgs/pkgconfig/version_requirements.txt b/build/pkgs/pkgconfig/version_requirements.txt new file mode 100644 index 00000000000..549fd1bf164 --- /dev/null +++ b/build/pkgs/pkgconfig/version_requirements.txt @@ -0,0 +1 @@ +pkgconfig diff --git a/build/pkgs/pplpy/version_requirements.txt b/build/pkgs/pplpy/version_requirements.txt new file mode 100644 index 00000000000..a03a50a38f5 --- /dev/null +++ b/build/pkgs/pplpy/version_requirements.txt @@ -0,0 +1 @@ +pplpy diff --git a/build/pkgs/ptyprocess/version_requirements.txt b/build/pkgs/ptyprocess/version_requirements.txt index 4527bfdd3d1..57ebb2d6bdd 100644 --- a/build/pkgs/ptyprocess/version_requirements.txt +++ b/build/pkgs/ptyprocess/version_requirements.txt @@ -1 +1 @@ -ptyprocess > 0.5 +ptyprocess diff --git a/build/pkgs/pyodide_build/SPKG.rst b/build/pkgs/pyodide_build/SPKG.rst new file mode 100644 index 00000000000..5974c5d47bf --- /dev/null +++ b/build/pkgs/pyodide_build/SPKG.rst @@ -0,0 +1,18 @@ +pyodide_build: "Tools for building Pyodide" +=========================================== + +Description +----------- + +"Tools for building Pyodide" + +License +------- + +MPL-2.0 + +Upstream Contact +---------------- + +https://pypi.org/project/pyodide-build/ + diff --git a/build/pkgs/pyodide_build/dependencies b/build/pkgs/pyodide_build/dependencies new file mode 100644 index 00000000000..47296a7bace --- /dev/null +++ b/build/pkgs/pyodide_build/dependencies @@ -0,0 +1,4 @@ + | $(PYTHON_TOOLCHAIN) $(PYTHON) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/pyodide_build/package-version.txt b/build/pkgs/pyodide_build/package-version.txt new file mode 100644 index 00000000000..d21d277be51 --- /dev/null +++ b/build/pkgs/pyodide_build/package-version.txt @@ -0,0 +1 @@ +0.25.0 diff --git a/build/pkgs/pyodide_build/spkg-install.in b/build/pkgs/pyodide_build/spkg-install.in new file mode 100644 index 00000000000..9de6140d773 --- /dev/null +++ b/build/pkgs/pyodide_build/spkg-install.in @@ -0,0 +1,13 @@ +set -e +SAGE_VENV_PYODIDE_BUILD="$SAGE_ROOT/venv-pyodide-build" +if [ ! -d "$SAGE_VENV_PYODIDE_BUILD" ]; then + python3 -m venv "$SAGE_VENV_PYODIDE_BUILD" +fi +cd "$SAGE_VENV_PYODIDE_BUILD" +. ./bin/activate +pip install pyodide-build==$PKG_VER +# https://pyodide.org/en/stable/development/building-and-testing-packages.html#testing-packages-against-pyodide +SAGE_VENV_PYODIDE="$SAGE_ROOT/venv-pyodide" +if [ ! -d "$SAGE_VENV_PYODIDE" ]; then + pyodide venv "$SAGE_VENV_PYODIDE" +fi diff --git a/build/pkgs/pyodide_build/type b/build/pkgs/pyodide_build/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/pyodide_build/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/pyodide_build/version_requirements.txt b/build/pkgs/pyodide_build/version_requirements.txt new file mode 100644 index 00000000000..d4e2e91318c --- /dev/null +++ b/build/pkgs/pyodide_build/version_requirements.txt @@ -0,0 +1 @@ +pyodide-build diff --git a/build/pkgs/python3/dependencies b/build/pkgs/python3/dependencies index c00db7fa1e0..9bdcf05edc4 100644 --- a/build/pkgs/python3/dependencies +++ b/build/pkgs/python3/dependencies @@ -1,4 +1,4 @@ -zlib readline sqlite libpng bzip2 liblzma libffi openssl | xz +zlib readline sqlite libpng bzip2 liblzma xz libffi openssl ---------- All lines of this file are ignored except the first. diff --git a/build/pkgs/python3/patches/2.6.5-FD_SETSIZE.patch b/build/pkgs/python3/patches/2.6.5-FD_SETSIZE.patch new file mode 100644 index 00000000000..d1e0aa7352e --- /dev/null +++ b/build/pkgs/python3/patches/2.6.5-FD_SETSIZE.patch @@ -0,0 +1,47 @@ +This patch has never been submitted upstream for some reason, but it simply +increases the default number of file descriptors the Python process can have on +Cygwin, which mitigates some issues; see +https://cygwin.com/ml/cygwin/2011-03/msg00651.html +diff --git a/Python-3.6.1/Modules/selectmodule.c.orig b/Python-3.6.1/Modules/selectmodule.c +index 47da493..ae60234 100644 +--- a/Modules/selectmodule.c ++++ b/Modules/selectmodule.c +@@ -8,6 +8,21 @@ + #define _GNU_SOURCE + #endif + ++/* Windows #defines FD_SETSIZE to 64 if FD_SETSIZE isn't already defined. ++ 64 is too small (too many people have bumped into that limit). ++ Here we boost it. ++ ++ Cygwin also defines FD_SETSIZE to 64, so also increase the limit on ++ Cygwin. We must do this before sys/types.h is included, which otherwise ++ sets FD_SETSIZE to the default. ++ ++ Users who want even more than the boosted limit should #define ++ FD_SETSIZE higher before this; e.g., via compiler /D switch. ++*/ ++#if (defined(MS_WINDOWS) || defined(__CYGWIN__)) && !defined(FD_SETSIZE) ++#define FD_SETSIZE 512 ++#endif ++ + #include "Python.h" + #include + +@@ -26,16 +41,6 @@ + #undef HAVE_BROKEN_POLL + #endif + +-/* Windows #defines FD_SETSIZE to 64 if FD_SETSIZE isn't already defined. +- 64 is too small (too many people have bumped into that limit). +- Here we boost it. +- Users who want even more than the boosted limit should #define +- FD_SETSIZE higher before this; e.g., via compiler /D switch. +-*/ +-#if defined(MS_WINDOWS) && !defined(FD_SETSIZE) +-#define FD_SETSIZE 512 +-#endif +- + #if defined(HAVE_POLL_H) + #include + #elif defined(HAVE_SYS_POLL_H) diff --git a/build/pkgs/python3/spkg-build.in b/build/pkgs/python3/spkg-build.in index f2a8b4311db..c8058023b28 100644 --- a/build/pkgs/python3/spkg-build.in +++ b/build/pkgs/python3/spkg-build.in @@ -73,26 +73,25 @@ sdh_configure --enable-shared $PYTHON_CONFIGURE # we need to provide paths into $SAGE_LOCAL, so that setup.py finds # the libraries needed for the extension modules - in particular sqlite3. # (The search code there does not know about CPATH and LIBRARY_PATH.) +make_LDFLAGS="-L. -Wl,-rpath,. -L$SAGE_LOCAL/lib $LDFLAGS" +make_CPPFLAGS="-I$SAGE_LOCAL/include $CPPFLAGS" -if [ "$UNAME" = "Darwin" ]; then - make_LDFLAGS="-L$SAGE_LOCAL/lib -L$SAGE_INST_LOCAL/lib $LDFLAGS" - # This enables python to find libpython - export DYLD_LIBRARY_PATH="." -fi +# Also, we need to add an rpath, like we do for SAGE_LOCAL in src/bin/sage-env. +# SAGE_INST_LOCAL is the installation hierarchy for the current package +# -- for python3, this is SAGE_VENV. +make_LDFLAGS="-Wl,-rpath,$SAGE_INST_LOCAL/lib $make_LDFLAGS" if [ "$UNAME" = "Linux" ]; then - make_LDFLAGS="-L. -Wl,-rpath,. -L$SAGE_LOCAL/lib $LDFLAGS" - make_CPPFLAGS="-I$SAGE_LOCAL/include $CPPFLAGS" - # Also, we need to add an rpath, like we do for SAGE_LOCAL in src/bin/sage-env. - # SAGE_INST_LOCAL is the installation hierarchy for the current package - # -- for python3, this is SAGE_VENV. - make_LDFLAGS="-Wl,-rpath,$SAGE_INST_LOCAL/lib $make_LDFLAGS" make_LDFLAGS="-Wl,-rpath-link,$SAGE_INST_LOCAL/lib $make_LDFLAGS" - # This enables python to find libpython - export LD_LIBRARY_PATH="." fi sdh_make LDFLAGS="$make_LDFLAGS" CPPFLAGS="$make_CPPFLAGS" +if [ "$UNAME" = "Darwin" ]; then + export DYLD_LIBRARY_PATH="." +else + export LD_LIBRARY_PATH="." +fi + # When building on a case-insensitive filesystem (on any OS, not just Windows) # the Python executable is output to the build directory as 'python.exe' if [ -f "python.exe" ]; then diff --git a/build/pkgs/requests/version_requirements.txt b/build/pkgs/requests/version_requirements.txt index 00427be38f3..f2293605cf1 100644 --- a/build/pkgs/requests/version_requirements.txt +++ b/build/pkgs/requests/version_requirements.txt @@ -1 +1 @@ -requests >=2.13.0 +requests diff --git a/build/pkgs/rich/SPKG.rst b/build/pkgs/rich/SPKG.rst new file mode 100644 index 00000000000..2348f3fce95 --- /dev/null +++ b/build/pkgs/rich/SPKG.rst @@ -0,0 +1,18 @@ +rich: Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal +===================================================================================================== + +Description +----------- + +Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal + +License +------- + +MIT + +Upstream Contact +---------------- + +https://pypi.org/project/rich/ + diff --git a/build/pkgs/rich/checksums.ini b/build/pkgs/rich/checksums.ini new file mode 100644 index 00000000000..094dfa801d2 --- /dev/null +++ b/build/pkgs/rich/checksums.ini @@ -0,0 +1,5 @@ +tarball=rich-VERSION-py3-none-any.whl +sha1=93aa7984e7e7524718bfb541cc2dc42809c5cd8d +md5=a8d2aa27ea73def9c1091c64a34746bc +cksum=2586776835 +upstream_url=https://pypi.io/packages/py3/r/rich/rich-VERSION-py3-none-any.whl diff --git a/build/pkgs/rich/dependencies b/build/pkgs/rich/dependencies new file mode 100644 index 00000000000..871af582e04 --- /dev/null +++ b/build/pkgs/rich/dependencies @@ -0,0 +1,4 @@ +$(PYTHON) markdown_it_py | $(PYTHON_TOOLCHAIN) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/rich/package-version.txt b/build/pkgs/rich/package-version.txt new file mode 100644 index 00000000000..fc9c00c1b3c --- /dev/null +++ b/build/pkgs/rich/package-version.txt @@ -0,0 +1 @@ +13.6.0 diff --git a/build/pkgs/rich/type b/build/pkgs/rich/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/rich/type @@ -0,0 +1 @@ +standard diff --git a/build/pkgs/rich/version_requirements.txt b/build/pkgs/rich/version_requirements.txt new file mode 100644 index 00000000000..3f382dd0d62 --- /dev/null +++ b/build/pkgs/rich/version_requirements.txt @@ -0,0 +1 @@ +rich diff --git a/build/pkgs/rpy2/version_requirements.txt b/build/pkgs/rpy2/version_requirements.txt index 769d7e61e92..8f389862688 100644 --- a/build/pkgs/rpy2/version_requirements.txt +++ b/build/pkgs/rpy2/version_requirements.txt @@ -1 +1 @@ -rpy2 >=3.3 +rpy2 diff --git a/build/pkgs/sage_conf/bootstrap b/build/pkgs/sage_conf/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sage_conf/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sage_conf/dependencies b/build/pkgs/sage_conf/dependencies index f2bd00aaf0d..ee496c195a2 100644 --- a/build/pkgs/sage_conf/dependencies +++ b/build/pkgs/sage_conf/dependencies @@ -1 +1 @@ - $(SAGE_ROOT)/pkgs/sage-conf/_sage_conf/_conf.py $(SAGE_ROOT)/pkgs/sage-conf/setup.cfg $(SAGE_ROOT)/pkgs/sage-conf/bin/sage-env-config | $(PYTHON_TOOLCHAIN) $(PYTHON) + $(SAGE_ROOT)/pkgs/sage-conf/_sage_conf/_conf.py $(SAGE_ROOT)/pkgs/sage-conf/pyproject.toml $(SAGE_ROOT)/pkgs/sage-conf/bin/sage-env-config | $(PYTHON_TOOLCHAIN) python_build $(PYTHON) diff --git a/build/pkgs/sage_docbuild/bootstrap b/build/pkgs/sage_docbuild/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sage_docbuild/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sage_setup/bootstrap b/build/pkgs/sage_setup/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sage_setup/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sage_setup/dependencies b/build/pkgs/sage_setup/dependencies index cae3faf9049..3e208902cf6 100644 --- a/build/pkgs/sage_setup/dependencies +++ b/build/pkgs/sage_setup/dependencies @@ -1,4 +1,4 @@ - cython pkgconfig jinja2 $(SAGE_ROOT)/pkgs/sage-setup/sage_setup/*.py $(SAGE_ROOT)/pkgs/sage-setup/sage_setup/autogen/interpreters/specs/*.py $(SAGE_ROOT)/pkgs/sage-setup/sage_setup/command/*.py | $(PYTHON_TOOLCHAIN) $(PYTHON) + cython pkgconfig jinja2 $(SAGE_ROOT)/pkgs/sage-setup/sage_setup/*.py $(SAGE_ROOT)/pkgs/sage-setup/sage_setup/autogen/interpreters/specs/*.py $(SAGE_ROOT)/pkgs/sage-setup/sage_setup/command/*.py | $(PYTHON_TOOLCHAIN) python_build $(PYTHON) ---------- All lines of this file are ignored except the first. diff --git a/build/pkgs/sage_setup/spkg-install.in b/build/pkgs/sage_setup/spkg-install.in old mode 100644 new mode 100755 index da7d7a2870f..6a1e8562035 --- a/build/pkgs/sage_setup/spkg-install.in +++ b/build/pkgs/sage_setup/spkg-install.in @@ -1,9 +1,25 @@ cd src + +export PIP_NO_INDEX=true +export PIP_FIND_LINKS="file://$SAGE_SPKG_WHEELS" + +# We ignore the setting of SAGE_WHEELS here because the +# modularized distributions all need a sage_setup wheel. + +# First build the sdist, then build the wheel from the sdist. +# https://pypa-build.readthedocs.io/en/latest/#python--m-build +# (Important because sagemath-objects uses MANIFEST.in for filtering.) +# Do not install the wheel. +DIST_DIR="$(mktemp -d)" +python3 -m build --outdir "$DIST_DIR"/dist . || sdh_die "Failure building sdist and wheel" + if [ "$SAGE_EDITABLE" = yes ]; then sdh_pip_editable_install . if [ "$SAGE_WHEELS" = yes ]; then sdh_build_and_store_wheel --no-isolation . fi else - sdh_pip_install . + wheel=$(cd "$DIST_DIR" && sdh_store_and_pip_install_wheel . >&2 && echo $wheel) fi + +ls -l "$wheel" diff --git a/build/pkgs/sage_sws2rst/bootstrap b/build/pkgs/sage_sws2rst/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sage_sws2rst/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagelib/bootstrap b/build/pkgs/sagelib/bootstrap index 2c9b3f78974..dc7b4d99db4 100755 --- a/build/pkgs/sagelib/bootstrap +++ b/build/pkgs/sagelib/bootstrap @@ -2,13 +2,13 @@ set -e export M4PATH="$SAGE_ROOT/m4" MACRO_PATTERN='SPKG_' -for infile in src/*.m4; do +for infile in $(pwd)/src/*.m4; do if [ -f "$infile" ]; then outfile="src/$(basename $infile .m4)" if [ "${BOOTSTRAP_QUIET}" = "no" ]; then echo "$0: installing $(pwd)/$outfile" fi - m4 "$infile" > "$outfile" + m4 -s "$infile" > "$outfile" if sed 's/#.*//' "$outfile" | grep -q -E "$MACRO_PATTERN"; then echo >&2 "$(pwd)/$infile: error: Unrecognized SPKG_ macro:" grep -E "$MACRO_PATTERN" "$outfile" >&2 diff --git a/build/pkgs/sagelib/dependencies b/build/pkgs/sagelib/dependencies index b1ebfd0825e..b33a29aaf2b 100644 --- a/build/pkgs/sagelib/dependencies +++ b/build/pkgs/sagelib/dependencies @@ -1,4 +1,4 @@ -FORCE $(SCRIPTS) boost_cropped $(BLAS) brial cliquer cypari cysignals cython ecl eclib ecm flint libgd gap giac givaro glpk gmpy2 gsl iml importlib_metadata importlib_resources jupyter_core lcalc lrcalc_python libbraiding libhomfly libpng linbox m4ri m4rie memory_allocator mpc mpfi mpfr $(MP_LIBRARY) ntl numpy pari pip pkgconfig planarity ppl pplpy primesieve primecount primecountpy $(PYTHON) requests rw sage_conf singular symmetrica typing_extensions $(PCFILES) | $(PYTHON_TOOLCHAIN) sage_setup $(PYTHON) pythran +FORCE $(SCRIPTS) boost_cropped $(BLAS) cliquer cypari cysignals cython ecl eclib ecm flint libgd gap giac givaro glpk gmpy2 gsl iml importlib_metadata importlib_resources jupyter_core lcalc lrcalc_python libbraiding libhomfly libpng linbox m4ri m4rie memory_allocator mpc mpfi mpfr $(MP_LIBRARY) ntl numpy pari pip pkgconfig planarity ppl pplpy primesieve primecount primecountpy $(PYTHON) requests rw sage_conf sagemath_mpmath singular symmetrica typing_extensions $(PCFILES) | $(PYTHON_TOOLCHAIN) sage_setup $(PYTHON) pythran ---------- All lines of this file are ignored except the first. diff --git a/build/pkgs/sagelib/dependencies_optional b/build/pkgs/sagelib/dependencies_optional new file mode 100644 index 00000000000..96f2ad18fa7 --- /dev/null +++ b/build/pkgs/sagelib/dependencies_optional @@ -0,0 +1 @@ +brial diff --git a/build/pkgs/sagelib/spkg-install.in b/build/pkgs/sagelib/spkg-install.in index 5c78e3459c8..95760654424 100644 --- a/build/pkgs/sagelib/spkg-install.in +++ b/build/pkgs/sagelib/spkg-install.in @@ -40,6 +40,13 @@ unset SAGE_PKG_CONFIG_PATH # spec, which includes setting a symlink to the installed documentation. # export SAGE_DOC=/doesnotexist +if [ "$SAGE_WHEELS" = yes ]; then + # For meson + export CXX=$(echo "$CXX" | sed 's/-std=[a-z0-9+]*//g') + export CYTHON=sage-cython + export CYTHON_FOR_BUILD=sage-cython +fi + SITEPACKAGESDIR=$(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])') # Make sure that an installed old version of sagelib in which sage is an ordinary package @@ -52,7 +59,7 @@ if [ "$SAGE_EDITABLE" = yes ]; then if [ "$SAGE_WHEELS" = yes ]; then # Additionally build a wheel (for use in other venvs) - cd $SAGE_PKGS/sagelib/src && time sdh_build_and_store_wheel --no-build-isolation . + cd $SAGE_PKGS/sagelib/src && time python3 -m build --no-isolation --wheel --skip-dependency-check -Csetup-args="--native-file=$(pwd)/sage-cython-native-file.ini" . && sdh_store_wheel . fi else # Now implied: "$SAGE_WHEELS" = yes @@ -60,7 +67,7 @@ else (cd "$SITEPACKAGESDIR" && rm -f sagemath-standard.egg-link) # Use --no-build-isolation to avoid rebuilds because of dependencies: # Compiling sage/interfaces/sagespawn.pyx because it depends on /private/var/folders/38/wnh4gf1552g_crsjnv2vmmww0000gp/T/pip-build-env-609n5985/overlay/lib/python3.10/site-packages/Cython/Includes/posix/unistd.pxd - sdh_pip_install --no-build-isolation . + sdh_pip_install --no-build-isolation -Csetup-args="--native-file=$(pwd)/sage-cython-native-file.ini" . fi # Remove (potentially invalid) star import caches. diff --git a/build/pkgs/sagemath_bliss/dependencies_check b/build/pkgs/sagemath_bliss/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_bliss/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_bliss/spkg-check b/build/pkgs/sagemath_bliss/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_bliss/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_bliss/spkg-install.in b/build/pkgs/sagemath_bliss/spkg-install.in deleted file mode 100644 index b880be42726..00000000000 --- a/build/pkgs/sagemath_bliss/spkg-install.in +++ /dev/null @@ -1,9 +0,0 @@ -cd src - -export PIP_NO_INDEX=true -export PIP_FIND_LINKS="file://$SAGE_SPKG_WHEELS" - -# Modularized install via wheels -# --no-build-isolation so that declared build dependencies, -# in particular sagemath-environment do not have to be present as wheels. -sdh_pip_install --no-build-isolation . diff --git a/build/pkgs/sagemath_bliss/spkg-install.in b/build/pkgs/sagemath_bliss/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_bliss/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_brial/SPKG.rst b/build/pkgs/sagemath_brial/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_brial/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_brial/bootstrap b/build/pkgs/sagemath_brial/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_brial/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_brial/dependencies b/build/pkgs/sagemath_brial/dependencies new file mode 100644 index 00000000000..c67d3febc34 --- /dev/null +++ b/build/pkgs/sagemath_brial/dependencies @@ -0,0 +1 @@ +cypari memory_allocator sagemath_categories sagemath_flint sagemath_modules iml linbox m4ri m4rie brial | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig $(PYTHON) diff --git a/build/pkgs/sagemath_brial/dependencies_check b/build/pkgs/sagemath_brial/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_brial/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_brial/package-version.txt b/build/pkgs/sagemath_brial/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_brial/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_brial/spkg-check b/build/pkgs/sagemath_brial/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_brial/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_brial/spkg-install.in b/build/pkgs/sagemath_brial/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_brial/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_brial/spkg-src b/build/pkgs/sagemath_brial/spkg-src new file mode 100755 index 00000000000..e911f19255e --- /dev/null +++ b/build/pkgs/sagemath_brial/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-brial +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_brial/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_brial + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_brial/src b/build/pkgs/sagemath_brial/src new file mode 120000 index 00000000000..91b20962d0b --- /dev/null +++ b/build/pkgs/sagemath_brial/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-brial \ No newline at end of file diff --git a/build/pkgs/sagemath_brial/type b/build/pkgs/sagemath_brial/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_brial/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_brial/version_requirements.txt b/build/pkgs/sagemath_brial/version_requirements.txt new file mode 100644 index 00000000000..c8732a9fefd --- /dev/null +++ b/build/pkgs/sagemath_brial/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-brial diff --git a/build/pkgs/sagemath_categories/dependencies b/build/pkgs/sagemath_categories/dependencies index 9fa43a64aae..de4c33c803c 100644 --- a/build/pkgs/sagemath_categories/dependencies +++ b/build/pkgs/sagemath_categories/dependencies @@ -1 +1 @@ - sagemath_objects | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build $(PYTHON) + sagemath_objects | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build meson_python $(PYTHON) diff --git a/build/pkgs/sagemath_combinat/SPKG.rst b/build/pkgs/sagemath_combinat/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_combinat/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_combinat/bootstrap b/build/pkgs/sagemath_combinat/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_combinat/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_combinat/dependencies b/build/pkgs/sagemath_combinat/dependencies new file mode 100644 index 00000000000..d13fa821529 --- /dev/null +++ b/build/pkgs/sagemath_combinat/dependencies @@ -0,0 +1,3 @@ +FORCE $(PYTHON) cysignals gmpy2 sagemath_categories symmetrica | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build + +# FORCE: Always run the spkg-install script diff --git a/build/pkgs/sagemath_combinat/dependencies_check b/build/pkgs/sagemath_combinat/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_combinat/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_combinat/package-version.txt b/build/pkgs/sagemath_combinat/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sagemath_combinat/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_combinat/spkg-check b/build/pkgs/sagemath_combinat/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_combinat/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_combinat/spkg-install.in b/build/pkgs/sagemath_combinat/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_combinat/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_combinat/spkg-src b/build/pkgs/sagemath_combinat/spkg-src new file mode 100755 index 00000000000..26f4990e312 --- /dev/null +++ b/build/pkgs/sagemath_combinat/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-categories +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_polyhedra/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_combinat + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_combinat/src b/build/pkgs/sagemath_combinat/src new file mode 120000 index 00000000000..e54728d0e47 --- /dev/null +++ b/build/pkgs/sagemath_combinat/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-combinat \ No newline at end of file diff --git a/build/pkgs/sagemath_combinat/type b/build/pkgs/sagemath_combinat/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/sagemath_combinat/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/sagemath_combinat/version_requirements.txt b/build/pkgs/sagemath_combinat/version_requirements.txt new file mode 100644 index 00000000000..e3618eeebb1 --- /dev/null +++ b/build/pkgs/sagemath_combinat/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-combinat diff --git a/build/pkgs/sagemath_coxeter3/dependencies b/build/pkgs/sagemath_coxeter3/dependencies index ada45656089..4389f7f5c85 100644 --- a/build/pkgs/sagemath_coxeter3/dependencies +++ b/build/pkgs/sagemath_coxeter3/dependencies @@ -1 +1 @@ - coxeter3 | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig $(PYTHON) + coxeter3 sagemath_objects sagemath_combinat sagemath_graphs sagemath_groups sagemath_modules | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig $(PYTHON) diff --git a/build/pkgs/sagemath_coxeter3/dependencies_check b/build/pkgs/sagemath_coxeter3/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_coxeter3/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_coxeter3/spkg-check b/build/pkgs/sagemath_coxeter3/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_coxeter3/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_coxeter3/spkg-install.in b/build/pkgs/sagemath_coxeter3/spkg-install.in index e38ca3ace8b..d83cc631c9a 120000 --- a/build/pkgs/sagemath_coxeter3/spkg-install.in +++ b/build/pkgs/sagemath_coxeter3/spkg-install.in @@ -1 +1 @@ -../sagemath_bliss/spkg-install.in \ No newline at end of file +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_eclib/SPKG.rst b/build/pkgs/sagemath_eclib/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_eclib/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_eclib/bootstrap b/build/pkgs/sagemath_eclib/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_eclib/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_eclib/dependencies b/build/pkgs/sagemath_eclib/dependencies new file mode 100644 index 00000000000..1c54e3643df --- /dev/null +++ b/build/pkgs/sagemath_eclib/dependencies @@ -0,0 +1 @@ +$(PYTHON) memory_allocator sagemath_categories sagemath_linbox sagemath_ntl sagemath_modules eclib | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig diff --git a/build/pkgs/sagemath_eclib/dependencies_check b/build/pkgs/sagemath_eclib/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_eclib/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_eclib/package-version.txt b/build/pkgs/sagemath_eclib/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_eclib/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_eclib/spkg-check b/build/pkgs/sagemath_eclib/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_eclib/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_eclib/spkg-install.in b/build/pkgs/sagemath_eclib/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_eclib/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_eclib/spkg-src b/build/pkgs/sagemath_eclib/spkg-src new file mode 100755 index 00000000000..85c63266776 --- /dev/null +++ b/build/pkgs/sagemath_eclib/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-eclib +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_eclib/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_eclib + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_eclib/src b/build/pkgs/sagemath_eclib/src new file mode 120000 index 00000000000..29caef4ca44 --- /dev/null +++ b/build/pkgs/sagemath_eclib/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-eclib \ No newline at end of file diff --git a/build/pkgs/sagemath_eclib/type b/build/pkgs/sagemath_eclib/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_eclib/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_eclib/version_requirements.txt b/build/pkgs/sagemath_eclib/version_requirements.txt new file mode 100644 index 00000000000..7f73c2726d1 --- /dev/null +++ b/build/pkgs/sagemath_eclib/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-eclib ~= 10.0 diff --git a/build/pkgs/sagemath_flint/SPKG.rst b/build/pkgs/sagemath_flint/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_flint/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_flint/bootstrap b/build/pkgs/sagemath_flint/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_flint/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_flint/dependencies b/build/pkgs/sagemath_flint/dependencies new file mode 100644 index 00000000000..59240896fe5 --- /dev/null +++ b/build/pkgs/sagemath_flint/dependencies @@ -0,0 +1 @@ +$(PYTHON) sagemath_categories sagemath_ntl flint | $(PYTHON_TOOLCHAIN) sage_setup cython pkgconfig sage_conf diff --git a/build/pkgs/sagemath_flint/dependencies_check b/build/pkgs/sagemath_flint/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_flint/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_flint/package-version.txt b/build/pkgs/sagemath_flint/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_flint/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_flint/spkg-check b/build/pkgs/sagemath_flint/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_flint/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_flint/spkg-install.in b/build/pkgs/sagemath_flint/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_flint/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_flint/spkg-src b/build/pkgs/sagemath_flint/spkg-src new file mode 100755 index 00000000000..557f275e331 --- /dev/null +++ b/build/pkgs/sagemath_flint/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-flint +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_flint/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_flint + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_flint/src b/build/pkgs/sagemath_flint/src new file mode 120000 index 00000000000..544b611bda1 --- /dev/null +++ b/build/pkgs/sagemath_flint/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-flint \ No newline at end of file diff --git a/build/pkgs/sagemath_flint/type b/build/pkgs/sagemath_flint/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_flint/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_flint/version_requirements.txt b/build/pkgs/sagemath_flint/version_requirements.txt new file mode 100644 index 00000000000..d1e5f7052f5 --- /dev/null +++ b/build/pkgs/sagemath_flint/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-flint ~= 10.0 diff --git a/build/pkgs/sagemath_gap/SPKG.rst b/build/pkgs/sagemath_gap/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_gap/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_gap/bootstrap b/build/pkgs/sagemath_gap/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_gap/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_gap/dependencies b/build/pkgs/sagemath_gap/dependencies new file mode 100644 index 00000000000..2b07fb54d8a --- /dev/null +++ b/build/pkgs/sagemath_gap/dependencies @@ -0,0 +1 @@ +$(PYTHON) sagemath_environment sagemath_categories sagemath_modules gap | $(PYTHON_TOOLCHAIN) sage_setup cython pkgconfig diff --git a/build/pkgs/sagemath_gap/dependencies_check b/build/pkgs/sagemath_gap/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_gap/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_gap/package-version.txt b/build/pkgs/sagemath_gap/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_gap/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_gap/spkg-check b/build/pkgs/sagemath_gap/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_gap/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_gap/spkg-install.in b/build/pkgs/sagemath_gap/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_gap/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_gap/spkg-src b/build/pkgs/sagemath_gap/spkg-src new file mode 100755 index 00000000000..f6030db6a8c --- /dev/null +++ b/build/pkgs/sagemath_gap/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-gap +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_gap/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_gap + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_gap/src b/build/pkgs/sagemath_gap/src new file mode 120000 index 00000000000..c6c9cb7af91 --- /dev/null +++ b/build/pkgs/sagemath_gap/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-gap \ No newline at end of file diff --git a/build/pkgs/sagemath_gap/type b/build/pkgs/sagemath_gap/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_gap/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_gap/version_requirements.txt b/build/pkgs/sagemath_gap/version_requirements.txt new file mode 100644 index 00000000000..228eac70b53 --- /dev/null +++ b/build/pkgs/sagemath_gap/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-gap ~= 10.0 diff --git a/build/pkgs/sagemath_giac/SPKG.rst b/build/pkgs/sagemath_giac/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_giac/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_giac/bootstrap b/build/pkgs/sagemath_giac/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_giac/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_giac/dependencies b/build/pkgs/sagemath_giac/dependencies new file mode 100644 index 00000000000..bb845cfb41c --- /dev/null +++ b/build/pkgs/sagemath_giac/dependencies @@ -0,0 +1 @@ +$(PYTHON) sagemath_categories giac | $(PYTHON_TOOLCHAIN) sage_setup cython pkgconfig diff --git a/build/pkgs/sagemath_giac/dependencies_check b/build/pkgs/sagemath_giac/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_giac/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_giac/package-version.txt b/build/pkgs/sagemath_giac/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_giac/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_giac/spkg-check b/build/pkgs/sagemath_giac/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_giac/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_giac/spkg-install.in b/build/pkgs/sagemath_giac/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_giac/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_giac/spkg-src b/build/pkgs/sagemath_giac/spkg-src new file mode 100755 index 00000000000..22a051ef282 --- /dev/null +++ b/build/pkgs/sagemath_giac/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-giac +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_giac/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_giac + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_giac/src b/build/pkgs/sagemath_giac/src new file mode 120000 index 00000000000..6c40ff4f747 --- /dev/null +++ b/build/pkgs/sagemath_giac/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-giac \ No newline at end of file diff --git a/build/pkgs/sagemath_giac/type b/build/pkgs/sagemath_giac/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_giac/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_giac/version_requirements.txt b/build/pkgs/sagemath_giac/version_requirements.txt new file mode 100644 index 00000000000..d823b1a7807 --- /dev/null +++ b/build/pkgs/sagemath_giac/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-giac ~= 10.0 diff --git a/build/pkgs/sagemath_glpk/SPKG.rst b/build/pkgs/sagemath_glpk/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_glpk/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_glpk/bootstrap b/build/pkgs/sagemath_glpk/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_glpk/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_glpk/dependencies b/build/pkgs/sagemath_glpk/dependencies new file mode 100644 index 00000000000..2246160f939 --- /dev/null +++ b/build/pkgs/sagemath_glpk/dependencies @@ -0,0 +1 @@ +sagemath_objects sagemath_categories glpk memory_allocator cysignals | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig sage_conf $(PYTHON) diff --git a/build/pkgs/sagemath_glpk/dependencies_check b/build/pkgs/sagemath_glpk/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_glpk/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_glpk/package-version.txt b/build/pkgs/sagemath_glpk/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_glpk/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_glpk/spkg-check b/build/pkgs/sagemath_glpk/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_glpk/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_glpk/spkg-install.in b/build/pkgs/sagemath_glpk/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_glpk/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_glpk/spkg-src b/build/pkgs/sagemath_glpk/spkg-src new file mode 100755 index 00000000000..bef8c96cc65 --- /dev/null +++ b/build/pkgs/sagemath_glpk/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-glpk +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_glpk/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_glpk + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_glpk/src b/build/pkgs/sagemath_glpk/src new file mode 120000 index 00000000000..2e3aeb20487 --- /dev/null +++ b/build/pkgs/sagemath_glpk/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-glpk \ No newline at end of file diff --git a/build/pkgs/sagemath_glpk/type b/build/pkgs/sagemath_glpk/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_glpk/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_glpk/version_requirements.txt b/build/pkgs/sagemath_glpk/version_requirements.txt new file mode 100644 index 00000000000..6b65542edd2 --- /dev/null +++ b/build/pkgs/sagemath_glpk/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-glpk ~= 10.0 diff --git a/build/pkgs/sagemath_graphs/SPKG.rst b/build/pkgs/sagemath_graphs/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_graphs/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_graphs/bootstrap b/build/pkgs/sagemath_graphs/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_graphs/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_graphs/dependencies b/build/pkgs/sagemath_graphs/dependencies new file mode 100644 index 00000000000..3727da5fe19 --- /dev/null +++ b/build/pkgs/sagemath_graphs/dependencies @@ -0,0 +1,3 @@ +FORCE $(PYTHON) cysignals gmpy2 boost_cropped sagemath_categories | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build + +# FORCE: Always run the spkg-install script diff --git a/build/pkgs/sagemath_graphs/dependencies_check b/build/pkgs/sagemath_graphs/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_graphs/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_graphs/package-version.txt b/build/pkgs/sagemath_graphs/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sagemath_graphs/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_graphs/spkg-check b/build/pkgs/sagemath_graphs/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_graphs/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_graphs/spkg-install.in b/build/pkgs/sagemath_graphs/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_graphs/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_graphs/spkg-src b/build/pkgs/sagemath_graphs/spkg-src new file mode 100755 index 00000000000..ecc13d8ccda --- /dev/null +++ b/build/pkgs/sagemath_graphs/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-categories +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_polyhedra/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_graphs + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_graphs/src b/build/pkgs/sagemath_graphs/src new file mode 120000 index 00000000000..142417d85ee --- /dev/null +++ b/build/pkgs/sagemath_graphs/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-graphs \ No newline at end of file diff --git a/build/pkgs/sagemath_graphs/type b/build/pkgs/sagemath_graphs/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/sagemath_graphs/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/sagemath_graphs/version_requirements.txt b/build/pkgs/sagemath_graphs/version_requirements.txt new file mode 100644 index 00000000000..1920d6f782c --- /dev/null +++ b/build/pkgs/sagemath_graphs/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-graphs diff --git a/build/pkgs/sagemath_groups/SPKG.rst b/build/pkgs/sagemath_groups/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_groups/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_groups/bootstrap b/build/pkgs/sagemath_groups/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_groups/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_groups/dependencies b/build/pkgs/sagemath_groups/dependencies new file mode 100644 index 00000000000..86362e1906e --- /dev/null +++ b/build/pkgs/sagemath_groups/dependencies @@ -0,0 +1,3 @@ +FORCE $(PYTHON) cysignals gmpy2 sagemath_modules sagemath_gap | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build + +# FORCE: Always run the spkg-install script diff --git a/build/pkgs/sagemath_groups/dependencies_check b/build/pkgs/sagemath_groups/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_groups/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_groups/package-version.txt b/build/pkgs/sagemath_groups/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sagemath_groups/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_groups/spkg-check b/build/pkgs/sagemath_groups/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_groups/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_groups/spkg-install.in b/build/pkgs/sagemath_groups/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_groups/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_groups/spkg-src b/build/pkgs/sagemath_groups/spkg-src new file mode 100755 index 00000000000..a1b5b0ade28 --- /dev/null +++ b/build/pkgs/sagemath_groups/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-groups +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_groups/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_groups + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_groups/src b/build/pkgs/sagemath_groups/src new file mode 120000 index 00000000000..b097bdeed4f --- /dev/null +++ b/build/pkgs/sagemath_groups/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-groups \ No newline at end of file diff --git a/build/pkgs/sagemath_groups/type b/build/pkgs/sagemath_groups/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/sagemath_groups/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/sagemath_groups/version_requirements.txt b/build/pkgs/sagemath_groups/version_requirements.txt new file mode 100644 index 00000000000..b7cb5550860 --- /dev/null +++ b/build/pkgs/sagemath_groups/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-groups diff --git a/build/pkgs/sagemath_homfly/SPKG.rst b/build/pkgs/sagemath_homfly/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_homfly/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_homfly/bootstrap b/build/pkgs/sagemath_homfly/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_homfly/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_homfly/dependencies b/build/pkgs/sagemath_homfly/dependencies new file mode 100644 index 00000000000..06784a6984d --- /dev/null +++ b/build/pkgs/sagemath_homfly/dependencies @@ -0,0 +1 @@ +$(PYTHON) sagemath_categories libhomfly | $(PYTHON_TOOLCHAIN) sage_setup cython pkgconfig diff --git a/build/pkgs/sagemath_homfly/dependencies_check b/build/pkgs/sagemath_homfly/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_homfly/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_homfly/package-version.txt b/build/pkgs/sagemath_homfly/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_homfly/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_homfly/spkg-check b/build/pkgs/sagemath_homfly/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_homfly/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_homfly/spkg-install.in b/build/pkgs/sagemath_homfly/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_homfly/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_homfly/spkg-src b/build/pkgs/sagemath_homfly/spkg-src new file mode 100755 index 00000000000..8ee94522cfd --- /dev/null +++ b/build/pkgs/sagemath_homfly/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-homfly +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_homfly/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_homfly + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_homfly/src b/build/pkgs/sagemath_homfly/src new file mode 120000 index 00000000000..1dbcf1093d1 --- /dev/null +++ b/build/pkgs/sagemath_homfly/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-homfly \ No newline at end of file diff --git a/build/pkgs/sagemath_homfly/type b/build/pkgs/sagemath_homfly/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_homfly/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_homfly/version_requirements.txt b/build/pkgs/sagemath_homfly/version_requirements.txt new file mode 100644 index 00000000000..2845344e07d --- /dev/null +++ b/build/pkgs/sagemath_homfly/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-homfly ~= 10.0 diff --git a/build/pkgs/sagemath_lcalc/SPKG.rst b/build/pkgs/sagemath_lcalc/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_lcalc/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_lcalc/bootstrap b/build/pkgs/sagemath_lcalc/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_lcalc/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_lcalc/dependencies b/build/pkgs/sagemath_lcalc/dependencies new file mode 100644 index 00000000000..e2dcd6b10b3 --- /dev/null +++ b/build/pkgs/sagemath_lcalc/dependencies @@ -0,0 +1 @@ +$(PYTHON) cypari memory_allocator sagemath_categories sagemath_flint sagemath_modules iml linbox m4ri m4rie | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig diff --git a/build/pkgs/sagemath_lcalc/dependencies_check b/build/pkgs/sagemath_lcalc/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_lcalc/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_lcalc/package-version.txt b/build/pkgs/sagemath_lcalc/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_lcalc/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_lcalc/spkg-check b/build/pkgs/sagemath_lcalc/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_lcalc/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_lcalc/spkg-install.in b/build/pkgs/sagemath_lcalc/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_lcalc/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_lcalc/spkg-src b/build/pkgs/sagemath_lcalc/spkg-src new file mode 100755 index 00000000000..48a157defe1 --- /dev/null +++ b/build/pkgs/sagemath_lcalc/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-lcalc +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_lcalc/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_lcalc + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_lcalc/src b/build/pkgs/sagemath_lcalc/src new file mode 120000 index 00000000000..9ae2adc6800 --- /dev/null +++ b/build/pkgs/sagemath_lcalc/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-lcalc \ No newline at end of file diff --git a/build/pkgs/sagemath_lcalc/type b/build/pkgs/sagemath_lcalc/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_lcalc/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_lcalc/version_requirements.txt b/build/pkgs/sagemath_lcalc/version_requirements.txt new file mode 100644 index 00000000000..4ea01ba7bb3 --- /dev/null +++ b/build/pkgs/sagemath_lcalc/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-lcalc ~= 10.0 diff --git a/build/pkgs/sagemath_libbraiding/SPKG.rst b/build/pkgs/sagemath_libbraiding/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_libbraiding/bootstrap b/build/pkgs/sagemath_libbraiding/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_libbraiding/dependencies b/build/pkgs/sagemath_libbraiding/dependencies new file mode 100644 index 00000000000..e2dcd6b10b3 --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/dependencies @@ -0,0 +1 @@ +$(PYTHON) cypari memory_allocator sagemath_categories sagemath_flint sagemath_modules iml linbox m4ri m4rie | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig diff --git a/build/pkgs/sagemath_libbraiding/dependencies_check b/build/pkgs/sagemath_libbraiding/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_libbraiding/package-version.txt b/build/pkgs/sagemath_libbraiding/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_libbraiding/spkg-check b/build/pkgs/sagemath_libbraiding/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_libbraiding/spkg-install.in b/build/pkgs/sagemath_libbraiding/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_libbraiding/spkg-src b/build/pkgs/sagemath_libbraiding/spkg-src new file mode 100755 index 00000000000..9cc2f40634f --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-libbraiding +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_libbraiding/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_libbraiding + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_libbraiding/src b/build/pkgs/sagemath_libbraiding/src new file mode 120000 index 00000000000..1b2e13e4b46 --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-libbraiding \ No newline at end of file diff --git a/build/pkgs/sagemath_libbraiding/type b/build/pkgs/sagemath_libbraiding/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_libbraiding/version_requirements.txt b/build/pkgs/sagemath_libbraiding/version_requirements.txt new file mode 100644 index 00000000000..fd27fbc9190 --- /dev/null +++ b/build/pkgs/sagemath_libbraiding/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-libbraiding ~= 10.0 diff --git a/build/pkgs/sagemath_libecm/SPKG.rst b/build/pkgs/sagemath_libecm/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_libecm/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_libecm/bootstrap b/build/pkgs/sagemath_libecm/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_libecm/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_libecm/dependencies b/build/pkgs/sagemath_libecm/dependencies new file mode 100644 index 00000000000..e2dcd6b10b3 --- /dev/null +++ b/build/pkgs/sagemath_libecm/dependencies @@ -0,0 +1 @@ +$(PYTHON) cypari memory_allocator sagemath_categories sagemath_flint sagemath_modules iml linbox m4ri m4rie | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig diff --git a/build/pkgs/sagemath_libecm/dependencies_check b/build/pkgs/sagemath_libecm/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_libecm/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_libecm/package-version.txt b/build/pkgs/sagemath_libecm/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_libecm/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_libecm/spkg-check b/build/pkgs/sagemath_libecm/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_libecm/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_libecm/spkg-install.in b/build/pkgs/sagemath_libecm/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_libecm/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_libecm/spkg-src b/build/pkgs/sagemath_libecm/spkg-src new file mode 100755 index 00000000000..30ee975c16d --- /dev/null +++ b/build/pkgs/sagemath_libecm/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-libecm +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_libecm/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_libecm + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_libecm/src b/build/pkgs/sagemath_libecm/src new file mode 120000 index 00000000000..318bd8eb934 --- /dev/null +++ b/build/pkgs/sagemath_libecm/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-libecm \ No newline at end of file diff --git a/build/pkgs/sagemath_libecm/type b/build/pkgs/sagemath_libecm/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_libecm/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_libecm/version_requirements.txt b/build/pkgs/sagemath_libecm/version_requirements.txt new file mode 100644 index 00000000000..3168d99c934 --- /dev/null +++ b/build/pkgs/sagemath_libecm/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-libecm ~= 10.0 diff --git a/build/pkgs/sagemath_linbox/SPKG.rst b/build/pkgs/sagemath_linbox/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_linbox/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_linbox/bootstrap b/build/pkgs/sagemath_linbox/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_linbox/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_linbox/dependencies b/build/pkgs/sagemath_linbox/dependencies new file mode 100644 index 00000000000..e2dcd6b10b3 --- /dev/null +++ b/build/pkgs/sagemath_linbox/dependencies @@ -0,0 +1 @@ +$(PYTHON) cypari memory_allocator sagemath_categories sagemath_flint sagemath_modules iml linbox m4ri m4rie | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig diff --git a/build/pkgs/sagemath_linbox/dependencies_check b/build/pkgs/sagemath_linbox/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_linbox/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_linbox/package-version.txt b/build/pkgs/sagemath_linbox/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_linbox/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_linbox/spkg-check b/build/pkgs/sagemath_linbox/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_linbox/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_linbox/spkg-install.in b/build/pkgs/sagemath_linbox/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_linbox/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_linbox/spkg-src b/build/pkgs/sagemath_linbox/spkg-src new file mode 100755 index 00000000000..190b396fc8d --- /dev/null +++ b/build/pkgs/sagemath_linbox/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-linbox +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_linbox/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_linbox + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_linbox/src b/build/pkgs/sagemath_linbox/src new file mode 120000 index 00000000000..61ab46b6aec --- /dev/null +++ b/build/pkgs/sagemath_linbox/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-linbox \ No newline at end of file diff --git a/build/pkgs/sagemath_linbox/type b/build/pkgs/sagemath_linbox/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_linbox/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_linbox/version_requirements.txt b/build/pkgs/sagemath_linbox/version_requirements.txt new file mode 100644 index 00000000000..aefaac65da3 --- /dev/null +++ b/build/pkgs/sagemath_linbox/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-linbox ~= 10.0 diff --git a/build/pkgs/sagemath_mcqd/dependencies b/build/pkgs/sagemath_mcqd/dependencies index 9896fdaccfc..e5568ce3018 100644 --- a/build/pkgs/sagemath_mcqd/dependencies +++ b/build/pkgs/sagemath_mcqd/dependencies @@ -1 +1 @@ - mcqd memory_allocator cysignals | $(PYTHON_TOOLCHAIN) sage_setup cython pkgconfig $(PYTHON) +sagemath_environment mcqd memory_allocator cysignals | $(PYTHON_TOOLCHAIN) sage_setup cython pkgconfig $(PYTHON) diff --git a/build/pkgs/sagemath_mcqd/spkg-install.in b/build/pkgs/sagemath_mcqd/spkg-install.in index e38ca3ace8b..d83cc631c9a 120000 --- a/build/pkgs/sagemath_mcqd/spkg-install.in +++ b/build/pkgs/sagemath_mcqd/spkg-install.in @@ -1 +1 @@ -../sagemath_bliss/spkg-install.in \ No newline at end of file +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_meataxe/spkg-install.in b/build/pkgs/sagemath_meataxe/spkg-install.in index e38ca3ace8b..d83cc631c9a 120000 --- a/build/pkgs/sagemath_meataxe/spkg-install.in +++ b/build/pkgs/sagemath_meataxe/spkg-install.in @@ -1 +1 @@ -../sagemath_bliss/spkg-install.in \ No newline at end of file +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_modules/SPKG.rst b/build/pkgs/sagemath_modules/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_modules/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_modules/bootstrap b/build/pkgs/sagemath_modules/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_modules/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_modules/dependencies b/build/pkgs/sagemath_modules/dependencies new file mode 100644 index 00000000000..e32d050aa9f --- /dev/null +++ b/build/pkgs/sagemath_modules/dependencies @@ -0,0 +1,3 @@ +FORCE $(PYTHON) cysignals gmpy2 sagemath_categories mpfr mpc sagemath_mpmath gsl numpy | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build + +# FORCE: Always run the spkg-install script diff --git a/build/pkgs/sagemath_modules/dependencies_check b/build/pkgs/sagemath_modules/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_modules/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_modules/package-version.txt b/build/pkgs/sagemath_modules/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sagemath_modules/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_modules/spkg-check b/build/pkgs/sagemath_modules/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_modules/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_modules/spkg-install.in b/build/pkgs/sagemath_modules/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_modules/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_modules/spkg-src b/build/pkgs/sagemath_modules/spkg-src new file mode 100755 index 00000000000..a4fc4222d22 --- /dev/null +++ b/build/pkgs/sagemath_modules/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-categories +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_polyhedra/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_modules + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_modules/src b/build/pkgs/sagemath_modules/src new file mode 120000 index 00000000000..59d8f7a2245 --- /dev/null +++ b/build/pkgs/sagemath_modules/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-modules \ No newline at end of file diff --git a/build/pkgs/sagemath_modules/type b/build/pkgs/sagemath_modules/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/sagemath_modules/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/sagemath_modules/version_requirements.txt b/build/pkgs/sagemath_modules/version_requirements.txt new file mode 100644 index 00000000000..f39a7227889 --- /dev/null +++ b/build/pkgs/sagemath_modules/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-modules diff --git a/build/pkgs/sagemath_mpmath/SPKG.rst b/build/pkgs/sagemath_mpmath/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_mpmath/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_mpmath/bootstrap b/build/pkgs/sagemath_mpmath/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_mpmath/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_mpmath/dependencies b/build/pkgs/sagemath_mpmath/dependencies new file mode 100644 index 00000000000..4d9448dc17d --- /dev/null +++ b/build/pkgs/sagemath_mpmath/dependencies @@ -0,0 +1 @@ +$(PYTHON) cysignals mpmath sagemath_categories | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig vendoring diff --git a/build/pkgs/sagemath_mpmath/dependencies_check b/build/pkgs/sagemath_mpmath/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_mpmath/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_mpmath/distros/conda.txt b/build/pkgs/sagemath_mpmath/distros/conda.txt new file mode 100644 index 00000000000..d6139d966ec --- /dev/null +++ b/build/pkgs/sagemath_mpmath/distros/conda.txt @@ -0,0 +1 @@ +sagemath-bliss diff --git a/build/pkgs/sagemath_mpmath/package-version.txt b/build/pkgs/sagemath_mpmath/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_mpmath/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_mpmath/spkg-check b/build/pkgs/sagemath_mpmath/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_mpmath/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_mpmath/spkg-install.in b/build/pkgs/sagemath_mpmath/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_mpmath/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_mpmath/spkg-src b/build/pkgs/sagemath_mpmath/spkg-src new file mode 100755 index 00000000000..6da34c40f97 --- /dev/null +++ b/build/pkgs/sagemath_mpmath/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-mpmath +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_mpmath/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_mpmath + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_mpmath/src b/build/pkgs/sagemath_mpmath/src new file mode 120000 index 00000000000..7eaada6dc6b --- /dev/null +++ b/build/pkgs/sagemath_mpmath/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-mpmath \ No newline at end of file diff --git a/build/pkgs/sagemath_mpmath/type b/build/pkgs/sagemath_mpmath/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/sagemath_mpmath/type @@ -0,0 +1 @@ +standard diff --git a/build/pkgs/sagemath_mpmath/version_requirements.txt b/build/pkgs/sagemath_mpmath/version_requirements.txt new file mode 100644 index 00000000000..4a424928b7c --- /dev/null +++ b/build/pkgs/sagemath_mpmath/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-mpmath diff --git a/build/pkgs/sagemath_ntl/SPKG.rst b/build/pkgs/sagemath_ntl/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_ntl/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_ntl/bootstrap b/build/pkgs/sagemath_ntl/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_ntl/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_ntl/dependencies b/build/pkgs/sagemath_ntl/dependencies new file mode 100644 index 00000000000..8c3ccf868cc --- /dev/null +++ b/build/pkgs/sagemath_ntl/dependencies @@ -0,0 +1 @@ +$(PYTHON) cypari memory_allocator sagemath_categories sagemath_modules sagemath_pari ntl | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig diff --git a/build/pkgs/sagemath_ntl/dependencies_check b/build/pkgs/sagemath_ntl/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_ntl/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_ntl/package-version.txt b/build/pkgs/sagemath_ntl/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_ntl/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_ntl/spkg-check b/build/pkgs/sagemath_ntl/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_ntl/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_ntl/spkg-install.in b/build/pkgs/sagemath_ntl/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_ntl/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_ntl/spkg-src b/build/pkgs/sagemath_ntl/spkg-src new file mode 100755 index 00000000000..6ac4d900189 --- /dev/null +++ b/build/pkgs/sagemath_ntl/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-ntl +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_ntl/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_ntl + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_ntl/src b/build/pkgs/sagemath_ntl/src new file mode 120000 index 00000000000..27e6a5e7035 --- /dev/null +++ b/build/pkgs/sagemath_ntl/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-ntl \ No newline at end of file diff --git a/build/pkgs/sagemath_ntl/type b/build/pkgs/sagemath_ntl/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_ntl/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_ntl/version_requirements.txt b/build/pkgs/sagemath_ntl/version_requirements.txt new file mode 100644 index 00000000000..fb858bda9ac --- /dev/null +++ b/build/pkgs/sagemath_ntl/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-ntl ~= 10.0 diff --git a/build/pkgs/sagemath_objects/dependencies b/build/pkgs/sagemath_objects/dependencies index ffc14bb6ba6..f0c41dd10a1 100644 --- a/build/pkgs/sagemath_objects/dependencies +++ b/build/pkgs/sagemath_objects/dependencies @@ -1,3 +1,3 @@ -FORCE cysignals gmpy2 | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build $(PYTHON) +FORCE cysignals gmpy2 | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build meson_python $(PYTHON) # FORCE: Always run the spkg-install script diff --git a/build/pkgs/sagemath_objects/spkg-install.in b/build/pkgs/sagemath_objects/spkg-install.in index 53c094fde04..a47124fbbb3 100644 --- a/build/pkgs/sagemath_objects/spkg-install.in +++ b/build/pkgs/sagemath_objects/spkg-install.in @@ -1,10 +1,29 @@ cd src +# For meson +export CXXFLAGS="$CXXFLAGS $(echo "$CXX" | sed -En "s/.*(-std=[a-z0-9+]*).*/\1/p")" +export CXX=$(echo "$CXX" | sed 's/-std=[a-z0-9+]*//g') +export CYTHON=sage-cython +export CYTHON_FOR_BUILD=sage-cython + + export PIP_NO_INDEX=true + +if [ -r vendor.txt ]; then + export PIP_FIND_LINKS="file://$SAGE_DISTFILES" + vendoring sync +fi + export PIP_FIND_LINKS="file://$SAGE_SPKG_WHEELS" -# First build the sdist, then build the wheel from the sdist. -# https://pypa-build.readthedocs.io/en/latest/#python--m-build -# (Important because sagemath-objects uses MANIFEST.in for filtering.) -# Do not install the wheel. -sdh_build_and_store_wheel --sdist-then-wheel . +if [ "$SAGE_WHEELS" = yes ]; then + rm -Rf build + sdh_build_wheel --no-build-isolation --config-settings setup-args="--native-file=$(pwd)/sage-cython-native-file.ini" --config-settings build-dir=meson-build + if [ "$SAGE_EDITABLE" = yes ]; then + # Do not install the wheel + wheel=$(cd "$DIST_DIR" && sdh_store_wheel . >&2 && echo $wheel) + else + wheel=$(cd "$DIST_DIR" && sdh_store_and_pip_install_wheel . >&2 && echo $wheel) + fi + ls -l "$wheel" +fi diff --git a/build/pkgs/sagemath_pari/SPKG.rst b/build/pkgs/sagemath_pari/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_pari/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_pari/bootstrap b/build/pkgs/sagemath_pari/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_pari/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_pari/dependencies b/build/pkgs/sagemath_pari/dependencies new file mode 100644 index 00000000000..ca60954dce7 --- /dev/null +++ b/build/pkgs/sagemath_pari/dependencies @@ -0,0 +1 @@ +$(PYTHON) cypari memory_allocator sagemath_categories sagemath_modules sagemath_mpmath | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig diff --git a/build/pkgs/sagemath_pari/dependencies_check b/build/pkgs/sagemath_pari/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_pari/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_pari/package-version.txt b/build/pkgs/sagemath_pari/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_pari/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_pari/spkg-check b/build/pkgs/sagemath_pari/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_pari/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_pari/spkg-install.in b/build/pkgs/sagemath_pari/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_pari/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_pari/spkg-src b/build/pkgs/sagemath_pari/spkg-src new file mode 100755 index 00000000000..7cc272d0867 --- /dev/null +++ b/build/pkgs/sagemath_pari/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-gap +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_pari/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_pari + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_pari/src b/build/pkgs/sagemath_pari/src new file mode 120000 index 00000000000..2b27d325fb3 --- /dev/null +++ b/build/pkgs/sagemath_pari/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-pari \ No newline at end of file diff --git a/build/pkgs/sagemath_pari/type b/build/pkgs/sagemath_pari/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_pari/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_pari/version_requirements.txt b/build/pkgs/sagemath_pari/version_requirements.txt new file mode 100644 index 00000000000..4d2ba821e4e --- /dev/null +++ b/build/pkgs/sagemath_pari/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-pari ~= 10.0 diff --git a/build/pkgs/sagemath_plot/SPKG.rst b/build/pkgs/sagemath_plot/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_plot/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_plot/bootstrap b/build/pkgs/sagemath_plot/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_plot/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_plot/dependencies b/build/pkgs/sagemath_plot/dependencies new file mode 100644 index 00000000000..363104fdb2b --- /dev/null +++ b/build/pkgs/sagemath_plot/dependencies @@ -0,0 +1,3 @@ +FORCE $(PYTHON) cysignals gmpy2 sagemath_categories matplotlib numpy pillow sagemath_modules sage_conf | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build + +# FORCE: Always run the spkg-install script diff --git a/build/pkgs/sagemath_plot/dependencies_check b/build/pkgs/sagemath_plot/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_plot/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_plot/package-version.txt b/build/pkgs/sagemath_plot/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sagemath_plot/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_plot/spkg-check b/build/pkgs/sagemath_plot/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_plot/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_plot/spkg-install.in b/build/pkgs/sagemath_plot/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_plot/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_plot/spkg-src b/build/pkgs/sagemath_plot/spkg-src new file mode 100755 index 00000000000..d70d552f215 --- /dev/null +++ b/build/pkgs/sagemath_plot/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-plot +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_plot/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_plot + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_plot/src b/build/pkgs/sagemath_plot/src new file mode 120000 index 00000000000..320ca5f6147 --- /dev/null +++ b/build/pkgs/sagemath_plot/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-plot \ No newline at end of file diff --git a/build/pkgs/sagemath_plot/type b/build/pkgs/sagemath_plot/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/sagemath_plot/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/sagemath_plot/version_requirements.txt b/build/pkgs/sagemath_plot/version_requirements.txt new file mode 100644 index 00000000000..c3be5f3339e --- /dev/null +++ b/build/pkgs/sagemath_plot/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-plot diff --git a/build/pkgs/sagemath_polyhedra/SPKG.rst b/build/pkgs/sagemath_polyhedra/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_polyhedra/bootstrap b/build/pkgs/sagemath_polyhedra/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_polyhedra/dependencies b/build/pkgs/sagemath_polyhedra/dependencies new file mode 100644 index 00000000000..3ddb4307b6a --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/dependencies @@ -0,0 +1,3 @@ +FORCE $(PYTHON) cysignals gmpy2 sagemath_modules pplpy sagemath_glpk | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build + +# FORCE: Always run the spkg-install script diff --git a/build/pkgs/sagemath_polyhedra/dependencies_check b/build/pkgs/sagemath_polyhedra/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_polyhedra/package-version.txt b/build/pkgs/sagemath_polyhedra/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_polyhedra/spkg-check b/build/pkgs/sagemath_polyhedra/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_polyhedra/spkg-install.in b/build/pkgs/sagemath_polyhedra/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_polyhedra/spkg-src b/build/pkgs/sagemath_polyhedra/spkg-src new file mode 100755 index 00000000000..10d8b14f11d --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-categories +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_polyhedra/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_polyhedra + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_polyhedra/src b/build/pkgs/sagemath_polyhedra/src new file mode 120000 index 00000000000..5281a3894d5 --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-polyhedra \ No newline at end of file diff --git a/build/pkgs/sagemath_polyhedra/type b/build/pkgs/sagemath_polyhedra/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/sagemath_polyhedra/version_requirements.txt b/build/pkgs/sagemath_polyhedra/version_requirements.txt new file mode 100644 index 00000000000..eca08a94b3d --- /dev/null +++ b/build/pkgs/sagemath_polyhedra/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-polyhedra diff --git a/build/pkgs/sagemath_repl/dependencies_check b/build/pkgs/sagemath_repl/dependencies_check deleted file mode 100644 index 053148f8486..00000000000 --- a/build/pkgs/sagemath_repl/dependencies_check +++ /dev/null @@ -1 +0,0 @@ -tox diff --git a/build/pkgs/sagemath_repl/dependencies_check b/build/pkgs/sagemath_repl/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_repl/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_schemes/SPKG.rst b/build/pkgs/sagemath_schemes/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_schemes/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_schemes/bootstrap b/build/pkgs/sagemath_schemes/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_schemes/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_schemes/dependencies b/build/pkgs/sagemath_schemes/dependencies new file mode 100644 index 00000000000..7c31cbd055a --- /dev/null +++ b/build/pkgs/sagemath_schemes/dependencies @@ -0,0 +1,3 @@ +FORCE $(PYTHON) cysignals gmpy2 sagemath_modules ppl scipy | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build + +# FORCE: Always run the spkg-install script diff --git a/build/pkgs/sagemath_schemes/dependencies_check b/build/pkgs/sagemath_schemes/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_schemes/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_schemes/package-version.txt b/build/pkgs/sagemath_schemes/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sagemath_schemes/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_schemes/spkg-check b/build/pkgs/sagemath_schemes/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_schemes/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_schemes/spkg-install.in b/build/pkgs/sagemath_schemes/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_schemes/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_schemes/spkg-src b/build/pkgs/sagemath_schemes/spkg-src new file mode 100755 index 00000000000..cb6df0bd0df --- /dev/null +++ b/build/pkgs/sagemath_schemes/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-categories +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_polyhedra/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_schemes + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_schemes/src b/build/pkgs/sagemath_schemes/src new file mode 120000 index 00000000000..6fea4546eb5 --- /dev/null +++ b/build/pkgs/sagemath_schemes/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-schemes \ No newline at end of file diff --git a/build/pkgs/sagemath_schemes/type b/build/pkgs/sagemath_schemes/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/sagemath_schemes/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/sagemath_schemes/version_requirements.txt b/build/pkgs/sagemath_schemes/version_requirements.txt new file mode 100644 index 00000000000..e286dfa4715 --- /dev/null +++ b/build/pkgs/sagemath_schemes/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-schemes diff --git a/build/pkgs/sagemath_singular/SPKG.rst b/build/pkgs/sagemath_singular/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_singular/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_singular/bootstrap b/build/pkgs/sagemath_singular/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_singular/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_singular/dependencies b/build/pkgs/sagemath_singular/dependencies new file mode 100644 index 00000000000..9023d4e47ea --- /dev/null +++ b/build/pkgs/sagemath_singular/dependencies @@ -0,0 +1 @@ +$(PYTHON) cypari memory_allocator sagemath_categories sagemath_linbox sagemath_flint sagemath_modules singular | $(PYTHON_TOOLCHAIN) sage_setup sagemath_environment cython pkgconfig diff --git a/build/pkgs/sagemath_singular/dependencies_check b/build/pkgs/sagemath_singular/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_singular/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_singular/package-version.txt b/build/pkgs/sagemath_singular/package-version.txt new file mode 120000 index 00000000000..c4540217bba --- /dev/null +++ b/build/pkgs/sagemath_singular/package-version.txt @@ -0,0 +1 @@ +src/VERSION.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_singular/spkg-check b/build/pkgs/sagemath_singular/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_singular/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_singular/spkg-install.in b/build/pkgs/sagemath_singular/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_singular/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_singular/spkg-src b/build/pkgs/sagemath_singular/spkg-src new file mode 100755 index 00000000000..35cb5556b62 --- /dev/null +++ b/build/pkgs/sagemath_singular/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-singular +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_singular/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_singular + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_singular/src b/build/pkgs/sagemath_singular/src new file mode 120000 index 00000000000..7bdb8987ee2 --- /dev/null +++ b/build/pkgs/sagemath_singular/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-singular \ No newline at end of file diff --git a/build/pkgs/sagemath_singular/type b/build/pkgs/sagemath_singular/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/sagemath_singular/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/sagemath_singular/version_requirements.txt b/build/pkgs/sagemath_singular/version_requirements.txt new file mode 100644 index 00000000000..3b002371a86 --- /dev/null +++ b/build/pkgs/sagemath_singular/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-singular ~= 10.0 diff --git a/build/pkgs/sagemath_sirocco/spkg-install.in b/build/pkgs/sagemath_sirocco/spkg-install.in index e38ca3ace8b..d83cc631c9a 120000 --- a/build/pkgs/sagemath_sirocco/spkg-install.in +++ b/build/pkgs/sagemath_sirocco/spkg-install.in @@ -1 +1 @@ -../sagemath_bliss/spkg-install.in \ No newline at end of file +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_standard_no_symbolics/SPKG.rst b/build/pkgs/sagemath_standard_no_symbolics/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_standard_no_symbolics/bootstrap b/build/pkgs/sagemath_standard_no_symbolics/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_standard_no_symbolics/dependencies b/build/pkgs/sagemath_standard_no_symbolics/dependencies new file mode 100644 index 00000000000..c1ebdc07e96 --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/dependencies @@ -0,0 +1,9 @@ +FORCE $(SCRIPTS) boost_cropped $(BLAS) brial cliquer cypari cysignals cython eclib ecm flint fplll fpylll libgd gap givaro glpk gmpy2 gsl iml jinja2 jupyter_core lcalc lrcalc_python libbraiding libhomfly libpng linbox m4ri m4rie memory_allocator mpc mpfi mpfr $(MP_LIBRARY) ntl numpy pari pip pkgconfig planarity ppl pplpy primesieve primecount primecountpy $(PYTHON) requests rw sage_conf sagemath_environment sagemath_repl sagemath_polyhedra sagemath_graphs sagemath_brial sagemath_combinat sagemath_eclib sagemath_schemes sagemath_singular singular symmetrica $(PCFILES) | $(PYTHON_TOOLCHAIN) sage_setup + +---------- +All lines of this file are ignored except the first. + +The above are the *build-time* dependencies of the Sage library. These are, +on the one hand, programs needed for the build/install process of the +Sage library (e.g. CYTHON, JINJA2), and on the other hand all +dependencies for Cython files (e.g. PARI, NTL, MP_LIBRARY). diff --git a/build/pkgs/sagemath_standard_no_symbolics/dependencies_check b/build/pkgs/sagemath_standard_no_symbolics/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_standard_no_symbolics/package-version.txt b/build/pkgs/sagemath_standard_no_symbolics/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_standard_no_symbolics/spkg-check b/build/pkgs/sagemath_standard_no_symbolics/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_standard_no_symbolics/spkg-install.in b/build/pkgs/sagemath_standard_no_symbolics/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_standard_no_symbolics/spkg-src b/build/pkgs/sagemath_standard_no_symbolics/spkg-src new file mode 100755 index 00000000000..e0527d500e9 --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/spkg-src @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball. +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_standard_no_symbolics/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_standard_no_symbolics + +cd src +python3 -u setup.py --no-user-cfg sdist --dist-dir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_standard_no_symbolics/src b/build/pkgs/sagemath_standard_no_symbolics/src new file mode 120000 index 00000000000..6a31af2c005 --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-standard-no-symbolics \ No newline at end of file diff --git a/build/pkgs/sagemath_standard_no_symbolics/type b/build/pkgs/sagemath_standard_no_symbolics/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/sagemath_standard_no_symbolics/version_requirements.txt b/build/pkgs/sagemath_standard_no_symbolics/version_requirements.txt new file mode 100644 index 00000000000..168c71a3540 --- /dev/null +++ b/build/pkgs/sagemath_standard_no_symbolics/version_requirements.txt @@ -0,0 +1 @@ +sagemath-standard-no-symbolics diff --git a/build/pkgs/sagemath_symbolics/SPKG.rst b/build/pkgs/sagemath_symbolics/SPKG.rst new file mode 120000 index 00000000000..b4545b4bda6 --- /dev/null +++ b/build/pkgs/sagemath_symbolics/SPKG.rst @@ -0,0 +1 @@ +src/README.rst \ No newline at end of file diff --git a/build/pkgs/sagemath_symbolics/bootstrap b/build/pkgs/sagemath_symbolics/bootstrap new file mode 120000 index 00000000000..40542346a4e --- /dev/null +++ b/build/pkgs/sagemath_symbolics/bootstrap @@ -0,0 +1 @@ +../sagelib/bootstrap \ No newline at end of file diff --git a/build/pkgs/sagemath_symbolics/dependencies b/build/pkgs/sagemath_symbolics/dependencies new file mode 100644 index 00000000000..930ca133f1b --- /dev/null +++ b/build/pkgs/sagemath_symbolics/dependencies @@ -0,0 +1,3 @@ +FORCE $(PYTHON) cysignals gmpy2 sagemath_categories sagemath_flint sagemath_modules sagemath_mpmath sagemath_ntl ecl giac maxima singular sympy numpy | $(PYTHON_TOOLCHAIN) sagemath_environment sage_setup cython pkgconfig python_build + +# FORCE: Always run the spkg-install script diff --git a/build/pkgs/sagemath_symbolics/dependencies_check b/build/pkgs/sagemath_symbolics/dependencies_check new file mode 120000 index 00000000000..e3d1f535f9e --- /dev/null +++ b/build/pkgs/sagemath_symbolics/dependencies_check @@ -0,0 +1 @@ +../sagemath_categories/dependencies_check \ No newline at end of file diff --git a/build/pkgs/sagemath_symbolics/package-version.txt b/build/pkgs/sagemath_symbolics/package-version.txt new file mode 120000 index 00000000000..cf10fe4b4e4 --- /dev/null +++ b/build/pkgs/sagemath_symbolics/package-version.txt @@ -0,0 +1 @@ +../sagelib/package-version.txt \ No newline at end of file diff --git a/build/pkgs/sagemath_symbolics/spkg-check b/build/pkgs/sagemath_symbolics/spkg-check new file mode 120000 index 00000000000..91c6b1835fc --- /dev/null +++ b/build/pkgs/sagemath_symbolics/spkg-check @@ -0,0 +1 @@ +../sagemath_objects/spkg-check \ No newline at end of file diff --git a/build/pkgs/sagemath_symbolics/spkg-install.in b/build/pkgs/sagemath_symbolics/spkg-install.in new file mode 120000 index 00000000000..d83cc631c9a --- /dev/null +++ b/build/pkgs/sagemath_symbolics/spkg-install.in @@ -0,0 +1 @@ +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/sagemath_symbolics/spkg-src b/build/pkgs/sagemath_symbolics/spkg-src new file mode 100755 index 00000000000..6ab68dcb29d --- /dev/null +++ b/build/pkgs/sagemath_symbolics/spkg-src @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Script to prepare an sdist tarball for sagemath-categories +# This script is not used during build. +# +# HOW TO MAKE THE TARBALL: +# ./sage --sh build/pkgs/sagemath_symbolics/spkg-src + +if [ -z "$SAGE_ROOT" ] ; then + echo >&2 "Error - SAGE_ROOT undefined ... exiting" + echo >&2 "Maybe run 'sage -sh'?" + exit 1 +fi + +# Exit on failure +set -e + +cd build/pkgs/sagemath_symbolics + +cd src +# Get rid of old *.egg-info/SOURCES.txt +rm -Rf *.egg-info + +python3 -m build --sdist --no-isolation --skip-dependency-check --outdir "$SAGE_DISTFILES" diff --git a/build/pkgs/sagemath_symbolics/src b/build/pkgs/sagemath_symbolics/src new file mode 120000 index 00000000000..942db287001 --- /dev/null +++ b/build/pkgs/sagemath_symbolics/src @@ -0,0 +1 @@ +../../../pkgs/sagemath-symbolics \ No newline at end of file diff --git a/build/pkgs/sagemath_symbolics/type b/build/pkgs/sagemath_symbolics/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/sagemath_symbolics/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/sagemath_symbolics/version_requirements.txt b/build/pkgs/sagemath_symbolics/version_requirements.txt new file mode 100644 index 00000000000..7ff15dd0dcb --- /dev/null +++ b/build/pkgs/sagemath_symbolics/version_requirements.txt @@ -0,0 +1,2 @@ +# This file is updated on every release by the sage-update-version script +sagemath-symbolics diff --git a/build/pkgs/sagemath_tdlib/spkg-install.in b/build/pkgs/sagemath_tdlib/spkg-install.in index e38ca3ace8b..d83cc631c9a 120000 --- a/build/pkgs/sagemath_tdlib/spkg-install.in +++ b/build/pkgs/sagemath_tdlib/spkg-install.in @@ -1 +1 @@ -../sagemath_bliss/spkg-install.in \ No newline at end of file +../sagemath_objects/spkg-install.in \ No newline at end of file diff --git a/build/pkgs/scipy/spkg-install.in b/build/pkgs/scipy/spkg-install.in index 37c4e972358..38050473b9b 100644 --- a/build/pkgs/scipy/spkg-install.in +++ b/build/pkgs/scipy/spkg-install.in @@ -1,6 +1,11 @@ # https://github.com/scipy/scipy/issues/16536 - meson breaks when CXX="g++ -std=gnu++11" export CXX=$(echo "$CXX" | sed 's/-std=[a-z0-9+]*//g') +# https://github.com/sagemath/sage/issues/36342 +if [ "$UNAME" = "Darwin" ]; then + export LDFLAGS="$LDFLAGS -Wl,-ld_classic" +fi + cd src/ # mesonpy enforces the build-system requirements, including the strict version pins of numpy diff --git a/build/pkgs/scipy/version_requirements.txt b/build/pkgs/scipy/version_requirements.txt index 8f07730e208..9a635b910d9 100644 --- a/build/pkgs/scipy/version_requirements.txt +++ b/build/pkgs/scipy/version_requirements.txt @@ -1,7 +1 @@ -# 1.8 is known good version. -# Per https://docs.scipy.org/doc/scipy/dev/core-dev/index.html#version-numbering -# and https://docs.scipy.org/doc/scipy/dev/core-dev/index.html#deprecations, -# deprecations cannot be introduced in micro releases. -# SciPy devs wait "at least 6 months", "in practice two (minor) releases" -# from deprecation to removal of a feature. -scipy >=1.5 +scipy diff --git a/build/pkgs/setuptools/version_requirements.txt b/build/pkgs/setuptools/version_requirements.txt new file mode 100644 index 00000000000..49fe098d9e6 --- /dev/null +++ b/build/pkgs/setuptools/version_requirements.txt @@ -0,0 +1 @@ +setuptools diff --git a/build/pkgs/six/version_requirements.txt b/build/pkgs/six/version_requirements.txt index b5ddf568c87..ffe2fce4989 100644 --- a/build/pkgs/six/version_requirements.txt +++ b/build/pkgs/six/version_requirements.txt @@ -1 +1 @@ -six >=1.15.0 +six diff --git a/build/pkgs/sphinx/version_requirements.txt b/build/pkgs/sphinx/version_requirements.txt index d311e5262f2..6966869c705 100644 --- a/build/pkgs/sphinx/version_requirements.txt +++ b/build/pkgs/sphinx/version_requirements.txt @@ -1 +1 @@ -sphinx >=7.4.7, <9 +sphinx diff --git a/build/pkgs/sympy/version_requirements.txt b/build/pkgs/sympy/version_requirements.txt index 207de33a893..ded0ee75202 100644 --- a/build/pkgs/sympy/version_requirements.txt +++ b/build/pkgs/sympy/version_requirements.txt @@ -1 +1 @@ -sympy >=1.6, <2.0 +sympy diff --git a/build/pkgs/toml/SPKG.rst b/build/pkgs/toml/SPKG.rst new file mode 100644 index 00000000000..e1b53b8f79e --- /dev/null +++ b/build/pkgs/toml/SPKG.rst @@ -0,0 +1,18 @@ +toml: Python Library for Tom's Obvious, Minimal Language +======================================================== + +Description +----------- + +Python Library for Tom's Obvious, Minimal Language + +License +------- + +MIT + +Upstream Contact +---------------- + +https://pypi.org/project/toml/ + diff --git a/build/pkgs/toml/checksums.ini b/build/pkgs/toml/checksums.ini new file mode 100644 index 00000000000..6156a2a61c9 --- /dev/null +++ b/build/pkgs/toml/checksums.ini @@ -0,0 +1,5 @@ +tarball=toml-VERSION-py2.py3-none-any.whl +sha1=a55ae166e643e6c7a28c16fe005efc32ee98ee76 +md5=dc26cd71b80d6757139f38156a43c545 +cksum=1596064333 +upstream_url=https://pypi.io/packages/py2.py3/t/toml/toml-VERSION-py2.py3-none-any.whl diff --git a/build/pkgs/toml/dependencies b/build/pkgs/toml/dependencies new file mode 100644 index 00000000000..47296a7bace --- /dev/null +++ b/build/pkgs/toml/dependencies @@ -0,0 +1,4 @@ + | $(PYTHON_TOOLCHAIN) $(PYTHON) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/toml/distros/arch.txt b/build/pkgs/toml/distros/arch.txt new file mode 100644 index 00000000000..821ee775ac7 --- /dev/null +++ b/build/pkgs/toml/distros/arch.txt @@ -0,0 +1 @@ +python-toml diff --git a/build/pkgs/toml/distros/debian.txt b/build/pkgs/toml/distros/debian.txt new file mode 100644 index 00000000000..543e89d2a6f --- /dev/null +++ b/build/pkgs/toml/distros/debian.txt @@ -0,0 +1 @@ +python3-toml diff --git a/build/pkgs/toml/distros/fedora.txt b/build/pkgs/toml/distros/fedora.txt new file mode 100644 index 00000000000..821ee775ac7 --- /dev/null +++ b/build/pkgs/toml/distros/fedora.txt @@ -0,0 +1 @@ +python-toml diff --git a/build/pkgs/toml/distros/gentoo.txt b/build/pkgs/toml/distros/gentoo.txt new file mode 100644 index 00000000000..64fcea3559f --- /dev/null +++ b/build/pkgs/toml/distros/gentoo.txt @@ -0,0 +1 @@ +dev-python/toml diff --git a/build/pkgs/toml/distros/opensuse.txt b/build/pkgs/toml/distros/opensuse.txt new file mode 100644 index 00000000000..fbc340aee15 --- /dev/null +++ b/build/pkgs/toml/distros/opensuse.txt @@ -0,0 +1 @@ +python3${PYTHON_MINOR}-toml diff --git a/build/pkgs/toml/package-version.txt b/build/pkgs/toml/package-version.txt new file mode 100644 index 00000000000..5eef0f10e8c --- /dev/null +++ b/build/pkgs/toml/package-version.txt @@ -0,0 +1 @@ +0.10.2 diff --git a/build/pkgs/toml/type b/build/pkgs/toml/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/toml/type @@ -0,0 +1 @@ +standard diff --git a/build/pkgs/toml/version_requirements.txt b/build/pkgs/toml/version_requirements.txt new file mode 100644 index 00000000000..bd79a658fe7 --- /dev/null +++ b/build/pkgs/toml/version_requirements.txt @@ -0,0 +1 @@ +toml diff --git a/build/pkgs/tox/spkg-configure.m4 b/build/pkgs/tox/spkg-configure.m4 index ab69f673b5a..6d1f0b18d95 100644 --- a/build/pkgs/tox/spkg-configure.m4 +++ b/build/pkgs/tox/spkg-configure.m4 @@ -2,7 +2,8 @@ SAGE_SPKG_CONFIGURE([tox], [ dnl Early 4.0.x versions have bugs regarding complex factor conditions dnl [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance dnl 4.2.7 for repaired numerical factors - m4_pushdef([TOX4_MIN_VERSION], [4.2.7]) + dnl 4.11 needed for editable builds (https://tox.wiki/en/4.11.3/config.html#config_settings_build_editable) + m4_pushdef([TOX4_MIN_VERSION], [4.11]) AC_CACHE_CHECK([for tox >= ]TOX4_MIN_VERSION, [ac_cv_path_TOX], [ AC_PATH_PROGS_FEATURE_CHECK([TOX], [tox], [ tox_version=$($ac_path_TOX --version 2> /dev/null | tail -n 1) diff --git a/build/pkgs/tox/version_requirements.txt b/build/pkgs/tox/version_requirements.txt index 41bd756ea6b..4b8195e5102 100644 --- a/build/pkgs/tox/version_requirements.txt +++ b/build/pkgs/tox/version_requirements.txt @@ -1,2 +1,2 @@ # see spkg-configure.m4 -tox >= 4.2.7 +tox >= 4.11 diff --git a/build/pkgs/typing_extensions/version_requirements.txt b/build/pkgs/typing_extensions/version_requirements.txt index e1a912109ed..5fd4f05f341 100644 --- a/build/pkgs/typing_extensions/version_requirements.txt +++ b/build/pkgs/typing_extensions/version_requirements.txt @@ -1,3 +1 @@ -# According to https://github.com/python/typing_extensions/blob/main/CHANGELOG.md, -# version 4.4.0 adds another Python 3.11 typing backport -typing_extensions >= 4.4.0; python_version<'3.11' +typing_extensions diff --git a/build/pkgs/vendoring/SPKG.rst b/build/pkgs/vendoring/SPKG.rst new file mode 100644 index 00000000000..a7ccc45437b --- /dev/null +++ b/build/pkgs/vendoring/SPKG.rst @@ -0,0 +1,16 @@ +vendoring: A command line tool, to simplify vendoring pure Python dependencies. +=============================================================================== + +Description +----------- + +A command line tool, to simplify vendoring pure Python dependencies. + +License +------- + +Upstream Contact +---------------- + +https://pypi.org/project/vendoring/ + diff --git a/build/pkgs/vendoring/checksums.ini b/build/pkgs/vendoring/checksums.ini new file mode 100644 index 00000000000..c69250da739 --- /dev/null +++ b/build/pkgs/vendoring/checksums.ini @@ -0,0 +1,5 @@ +tarball=vendoring-VERSION-py2.py3-none-any.whl +sha1=583c5cbf3fd512f4f683afbea7d60f7e3234c3ac +md5=a97f7f74700be564a9f8ad1fa33b5e1f +cksum=2501073473 +upstream_url=https://pypi.io/packages/py2.py3/v/vendoring/vendoring-VERSION-py2.py3-none-any.whl diff --git a/build/pkgs/vendoring/dependencies b/build/pkgs/vendoring/dependencies new file mode 100644 index 00000000000..5ed609488d3 --- /dev/null +++ b/build/pkgs/vendoring/dependencies @@ -0,0 +1,4 @@ +rich click toml | $(PYTHON_TOOLCHAIN) $(PYTHON) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/vendoring/package-version.txt b/build/pkgs/vendoring/package-version.txt new file mode 100644 index 00000000000..26aaba0e866 --- /dev/null +++ b/build/pkgs/vendoring/package-version.txt @@ -0,0 +1 @@ +1.2.0 diff --git a/build/pkgs/vendoring/type b/build/pkgs/vendoring/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/vendoring/type @@ -0,0 +1 @@ +standard diff --git a/build/pkgs/vendoring/version_requirements.txt b/build/pkgs/vendoring/version_requirements.txt new file mode 100644 index 00000000000..03bd62cb35c --- /dev/null +++ b/build/pkgs/vendoring/version_requirements.txt @@ -0,0 +1 @@ +vendoring diff --git a/build/pkgs/wheel/version_requirements.txt b/build/pkgs/wheel/version_requirements.txt new file mode 100644 index 00000000000..2309722a93d --- /dev/null +++ b/build/pkgs/wheel/version_requirements.txt @@ -0,0 +1 @@ +wheel diff --git a/build/pkgs/zstd/SPKG.rst b/build/pkgs/zstd/SPKG.rst new file mode 100644 index 00000000000..9e9b98d633f --- /dev/null +++ b/build/pkgs/zstd/SPKG.rst @@ -0,0 +1,18 @@ +zstd: Data compression library +============================== + +Description +----------- + +Fast lossless compression algorithm, targeting real-time compression scenarios +at zlib-level and better compression ratios. + +License +------- + +dual BSD and GPLv2 license + +Upstream Contact +---------------- + +https://github.com/facebook/zstd diff --git a/build/pkgs/zstd/checksums.ini b/build/pkgs/zstd/checksums.ini new file mode 100644 index 00000000000..5b478418cd9 --- /dev/null +++ b/build/pkgs/zstd/checksums.ini @@ -0,0 +1,5 @@ +tarball=zstd-VERSION.tar.gz +sha1=c56c8e6d703d14029464b2a1a66164dc5cf80855 +md5=072b10f71f5820c24761a65f31f43e73 +cksum=3268148712 +upstream_url=https://github.com/facebook/zstd/releases/download/vVERSION/zstd-VERSION.tar.gz diff --git a/build/pkgs/zstd/package-version.txt b/build/pkgs/zstd/package-version.txt new file mode 100644 index 00000000000..4cda8f19edc --- /dev/null +++ b/build/pkgs/zstd/package-version.txt @@ -0,0 +1 @@ +1.5.2 diff --git a/build/pkgs/zstd/spkg-install.in b/build/pkgs/zstd/spkg-install.in new file mode 100644 index 00000000000..9eb8e170c96 --- /dev/null +++ b/build/pkgs/zstd/spkg-install.in @@ -0,0 +1,2 @@ +cd src +sdh_make -C lib install-shared install-includes PREFIX="${SAGE_LOCAL}" diff --git a/build/pkgs/zstd/type b/build/pkgs/zstd/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/zstd/type @@ -0,0 +1 @@ +standard diff --git a/build/sage_bootstrap/app.py b/build/sage_bootstrap/app.py index 2b8b44959b1..f4d070456d9 100644 --- a/build/sage_bootstrap/app.py +++ b/build/sage_bootstrap/app.py @@ -131,12 +131,12 @@ def dependencies(self, *package_classes, **kwds): pc = PackageClass(*package_classes) if format in ['plain', 'rst']: if types is None: - typesets = [['order_only', 'runtime']] + typesets = [['build', 'order_only', 'runtime']] else: typesets = [[t] for t in types] elif format == 'shell': if types is None: - types = ['order_only', 'optional', 'runtime', 'check'] + types = ['build', 'order_only', 'optional', 'runtime', 'check'] typesets = [[t] for t in types] else: raise ValueError('format must be one of "plain", "rst", and "shell"') diff --git a/build/sage_bootstrap/cmdline.py b/build/sage_bootstrap/cmdline.py index cbd4a544bb6..f1a979cd8ed 100644 --- a/build/sage_bootstrap/cmdline.py +++ b/build/sage_bootstrap/cmdline.py @@ -325,6 +325,9 @@ def make_parser(): type=str, nargs='+', help=('package name or designator for all packages of a given type ' '(one of :all:, :standard:, :optional:, and :experimental:)')) + parser_dependencies.add_argument( + '--build', action='store_true', + help='list the (ordinary) build dependencies') parser_dependencies.add_argument( '--order-only', action='store_true', help='list the order-only build dependencies') @@ -507,6 +510,8 @@ def run(): app.properties(*args.package_class, format=args.format) elif args.subcommand == 'dependencies': types = [] + if args.build: + types.append('build') if args.order_only: types.append('order_only') if args.optional: diff --git a/build/sage_bootstrap/creator.py b/build/sage_bootstrap/creator.py index e16002f12f9..0eeb7e4788a 100644 --- a/build/sage_bootstrap/creator.py +++ b/build/sage_bootstrap/creator.py @@ -108,7 +108,7 @@ def _remove_files(self, files): def set_python_data_and_scripts(self, pypi_package_name=None, source='normal', dependencies=None): """ - Write the file ``dependencies`` and other files for Python packages. + Write the files ``dependencies``, ``dependencies_build``, and other files for Python packages. If ``source`` is ``"normal"``, write the files ``spkg-install.in`` and ``version_requirements.txt``. @@ -121,16 +121,14 @@ def set_python_data_and_scripts(self, pypi_package_name=None, source='normal', d """ if pypi_package_name is None: pypi_package_name = self.package_name - with open(os.path.join(self.path, 'dependencies'), 'w+') as f: - if dependencies: - dependencies = ' '.join(dependencies) - else: - dependencies = '' + with open(os.path.join(self.path, 'dependencies_build'), 'w+') as f: if source == 'wheel': - dependencies_order_only = 'pip $(PYTHON)' + f.write(' | pip $(PYTHON)\n\n') else: - dependencies_order_only = '$(PYTHON_TOOLCHAIN) $(PYTHON)' - f.write(dependencies + ' | ' + dependencies_order_only + '\n\n') + f.write(' | $(PYTHON_TOOLCHAIN) $(PYTHON)\n\n') + f.write('----------\nAll lines of this file are ignored except the first.\n') + with open(os.path.join(self.path, 'dependencies'), 'w+') as f: + f.write('# No dependencies\n\n') f.write('----------\nAll lines of this file are ignored except the first.\n') if source == 'normal': with open(os.path.join(self.path, 'spkg-install.in'), 'w+') as f: diff --git a/build/sage_bootstrap/package.py b/build/sage_bootstrap/package.py index c063af0c816..d52cf77c36b 100644 --- a/build/sage_bootstrap/package.py +++ b/build/sage_bootstrap/package.py @@ -414,19 +414,26 @@ def distribution_name(self): return None @property - def dependencies(self): + def dependencies_build(self): """ - Return a list of strings, the package names of the (ordinary) dependencies + Return a list of strings, the package names of the (ordinary) build dependencies """ - # after a '|', we have order-only dependencies - return self.__dependencies.partition('|')[0].strip().split() + if self.__dependencies_build is None: + deps = self.__dependencies + else: + deps = self.__dependencies_build + return deps.partition('|')[0].strip().split() @property def dependencies_order_only(self): """ - Return a list of strings, the package names of the order-only dependencies + Return a list of strings, the package names of the order-only build dependencies """ - return self.__dependencies.partition('|')[2].strip().split() + self.__dependencies_order_only.strip().split() + if self.__dependencies_build is None: + deps = self.__dependencies + else: + deps = self.__dependencies_build + return deps.partition('|')[2].strip().split() + self.__dependencies_order_only.strip().split() @property def dependencies_optional(self): @@ -592,6 +599,11 @@ def _init_dependencies(self): self.__dependencies_order_only = f.readline().partition('#')[0].strip() except IOError: self.__dependencies_order_only = '' + try: + with open(os.path.join(self.path, 'dependencies_build')) as f: + self.__dependencies_build = f.readline().partition('#')[0].strip() + except IOError: + self.__dependencies_build = None def _init_trees(self): try: diff --git a/m4/sage_spkg_collect.m4 b/m4/sage_spkg_collect.m4 index 231193ce8fb..e36da1c0db5 100644 --- a/m4/sage_spkg_collect.m4 +++ b/m4/sage_spkg_collect.m4 @@ -79,8 +79,8 @@ AS_BOX([Build status for each package: ] AS_BOX([Build status for each package: ]) >& AS_MESSAGE_LOG_FD dnl Intialize the collection variables. SPKGS="$1" -dnl Obtain versions at configure time. -AS_IF([properties=$($SAGE_BOOTSTRAP_PYTHON build/bin/sage-package properties --format=shell $SPKGS 2>& AS_MESSAGE_LOG_FD) && eval $properties], [], [ +dnl Obtain dependencies and versions at configure time. +AS_IF([properties=$($SAGE_BOOTSTRAP_PYTHON build/bin/sage-package properties --format=shell $SPKGS 2>& AS_MESSAGE_LOG_FD) && eval $properties && dependencies=$($SAGE_BOOTSTRAP_PYTHON build/bin/sage-package dependencies --format=shell $SPKGS) && eval $dependencies], [], [ AC_MSG_ERROR([Package directory missing. Re-run bootstrap.])dnl ]) @@ -339,31 +339,14 @@ AC_DEFUN([SAGE_SPKG_FINALIZE], [dnl dnl dnl Determine package dependencies dnl - DIR=$[path_]SPKG_NAME - AS_IF([test -f "$DIR/dependencies"], [dnl - dnl - the # symbol is treated as comment which is removed - AS_VAR_SET([DEPS], [`sed 's/^ *//; s/ *#.*//; q' $DIR/dependencies`]) - ], [dnl - AS_VAR_SET([DEPS], []) - ]) - AS_IF([test -f "$DIR/dependencies_optional"], [dnl - for a in $(sed 's/^ *//; s/ *#.*//; q' "$DIR/dependencies_optional"); do - AS_VAR_APPEND([DEPS], [' $(findstring '$a',$(OPTIONAL_INSTALLED_PACKAGES)) ']) - done - ]) - AS_CASE(["$DEPS"], [*\|*], [], [AS_VAR_APPEND([DEPS], [" |"])]) - AS_IF([test -f "$DIR/dependencies_order_only"], [dnl - ADD_DEPS=$(echo $(sed 's/^ *//; s/ *#.*//; q' $DIR/dependencies_order_only)) - AS_VAR_APPEND([DEPS], [" $ADD_DEPS"]) - ], [dnl - m4_case(SPKG_SOURCE, [pip], [AS_VAR_APPEND([DEPS], [' pip'])], [:])dnl - ]) - AS_IF([test -f "$DIR/dependencies_check"], [dnl - ADD_DEPS=$(echo $(sed 's/^ *//; s/ *#.*//; q' $DIR/dependencies_check)) - AS_VAR_APPEND([DEPS], [' $(and $(filter-out no,$(SAGE_CHECK_]SPKG_NAME[)), '"$ADD_DEPS"')'])dnl - ]) - dnl - SAGE_PACKAGE_DEPENDENCIES="${SAGE_PACKAGE_DEPENDENCIES}$(printf '\ndeps_')SPKG_NAME = ${DEPS}" + AS_VAR_COPY([BUILD_DEPS], [build_deps_]SPKG_NAME) + for a in [$optional_deps_]SPKG_NAME; do + AS_VAR_APPEND([BUILD_DEPS], [' $(optional_inst_'$a') ']) + done + AS_VAR_APPEND([BUILD_DEPS], [" | $order_only_deps_]SPKG_NAME["]) + AS_VAR_COPY([DEPS], [runtime_deps_]SPKG_NAME) + AS_VAR_COPY([CHECK_DEPS], [check_deps_]SPKG_NAME) + SAGE_PACKAGE_DEPENDENCIES="${SAGE_PACKAGE_DEPENDENCIES}$(printf '\nbuild_deps_')SPKG_NAME = ${BUILD_DEPS}$(printf '\ndeps_')SPKG_NAME = ${DEPS}$(printf '\ncheck_deps_')SPKG_NAME = ${CHECK_DEPS}" dnl dnl Determine package build rules m4_case(SPKG_SOURCE, diff --git a/pkgs/sage-conf/.gitignore b/pkgs/sage-conf/.gitignore index 2fff1627b9f..a495951e529 100644 --- a/pkgs/sage-conf/.gitignore +++ b/pkgs/sage-conf/.gitignore @@ -1,4 +1,6 @@ /_sage_conf/_conf.py +/setup.cfg +/pyproject.toml /build /dist /*.egg-info diff --git a/pkgs/sage-conf/MANIFEST.in b/pkgs/sage-conf/MANIFEST.in index d156bc24748..ebce41ae48e 100644 --- a/pkgs/sage-conf/MANIFEST.in +++ b/pkgs/sage-conf/MANIFEST.in @@ -1 +1,3 @@ +include VERSION.txt + include bin/sage-env-config diff --git a/pkgs/sage-conf/pyproject.toml b/pkgs/sage-conf/pyproject.toml deleted file mode 100644 index 9787c3bdf00..00000000000 --- a/pkgs/sage-conf/pyproject.toml +++ /dev/null @@ -1,3 +0,0 @@ -[build-system] -requires = ["setuptools", "wheel"] -build-backend = "setuptools.build_meta" diff --git a/pkgs/sage-setup/pyproject.toml b/pkgs/sage-conf/pyproject.toml.m4 similarity index 64% rename from pkgs/sage-setup/pyproject.toml rename to pkgs/sage-conf/pyproject.toml.m4 index 96b079cec62..a53fec79b0b 100644 --- a/pkgs/sage-setup/pyproject.toml +++ b/pkgs/sage-conf/pyproject.toml.m4 @@ -1,11 +1,17 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- [build-system] -requires = ["setuptools>=61.2"] +requires = [ + SPKG_INSTALL_REQUIRES_setuptools +] build-backend = "setuptools.build_meta" [project] -name = "sage-setup" -description = "Sage: Open Source Mathematics Software: Build system of the Sage library" -license = {text = "GNU General Public License (GPL) v2 or later"} +name = "sage-conf" +description = "Sage: Open Source Mathematics Software: Configuration module for the SageMath library" +readme = "README.rst" +dnl Not including the standard metadata from pyproject_toml_metadata.m4 +dnl because sage-conf is GPL v3+. +license = {text = "GNU General Public License (GPL) v3 or later"} authors = [{name = "The Sage Developers", email = "sage-support@googlegroups.com"}] classifiers = [ "Development Status :: 6 - Mature", @@ -24,24 +30,15 @@ classifiers = [ ] urls = {Homepage = "https://www.sagemath.org"} requires-python = ">=3.9, <3.13" -dependencies = [] dynamic = ["version"] -[project.readme] -file = "README.rst" -content-type = "text/x-rst" - -[project.optional-dependencies] -autogen = ["jinja2"] +[project.scripts] +sage-config = "sage_conf:_main" [tool.setuptools] -packages = [ - "sage_setup", - "sage_setup.autogen", - "sage_setup.autogen.interpreters", - "sage_setup.autogen.interpreters.specs", - "sage_setup.command", -] +packages = ["_sage_conf"] +py-modules = ["sage_conf"] +script-files = ["bin/sage-env-config"] include-package-data = false [tool.setuptools.dynamic] diff --git a/pkgs/sage-conf/setup.cfg b/pkgs/sage-conf/setup.cfg deleted file mode 100644 index dac401c303d..00000000000 --- a/pkgs/sage-conf/setup.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[metadata] -name = sage-conf -version = file: VERSION.txt -description = Sage: Open Source Mathematics Software: Configuration module for the SageMath library -long_description = file: README.rst -license = GNU General Public License (GPL) v3 or later -author = The Sage Developers -author_email = sage-support@googlegroups.com -url = https://www.sagemath.org - -[options] -packages = - _sage_conf - -py_modules = - sage_conf - -scripts = - bin/sage-env-config - -[options.entry_points] -console_scripts = - sage-config = sage_conf:_main diff --git a/pkgs/sage-conf_conda/setup.cfg b/pkgs/sage-conf_conda/setup.cfg deleted file mode 120000 index 93df2c80a4b..00000000000 --- a/pkgs/sage-conf_conda/setup.cfg +++ /dev/null @@ -1 +0,0 @@ -../sage-conf/setup.cfg \ No newline at end of file diff --git a/pkgs/sage-conf_pypi/setup.cfg b/pkgs/sage-conf_pypi/setup.cfg deleted file mode 120000 index 93df2c80a4b..00000000000 --- a/pkgs/sage-conf_pypi/setup.cfg +++ /dev/null @@ -1 +0,0 @@ -../sage-conf/setup.cfg \ No newline at end of file diff --git a/pkgs/sage-docbuild/pyproject.toml b/pkgs/sage-docbuild/pyproject.toml deleted file mode 100644 index 87e7c6521f8..00000000000 --- a/pkgs/sage-docbuild/pyproject.toml +++ /dev/null @@ -1,41 +0,0 @@ -[build-system] -requires = ["setuptools>=61.2"] -build-backend = "setuptools.build_meta" - -[project] -name = "sage-docbuild" -description = "Sage: Open Source Mathematics Software: Build system of the Sage documentation" -license = {text = "GNU General Public License (GPL) v2 or later"} -authors = [{name = "The Sage Developers", email = "sage-support@googlegroups.com"}] -classifiers = [ - "Development Status :: 6 - Mature", - "Intended Audience :: Education", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", - "Operating System :: POSIX", - "Operating System :: MacOS :: MacOS X", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: Implementation :: CPython", - "Topic :: Scientific/Engineering :: Mathematics", -] -urls = {Homepage = "https://www.sagemath.org"} -dependencies = ["sphinx"] -dynamic = ["version"] - -[project.readme] -file = "README.rst" -content-type = "text/x-rst" - -[tool.setuptools] -packages = [ - "sage_docbuild", - "sage_docbuild.ext", -] -include-package-data = false - -[tool.setuptools.dynamic] -version = {file = ["VERSION.txt"]} diff --git a/pkgs/sage-docbuild/pyproject.toml.m4 b/pkgs/sage-docbuild/pyproject.toml.m4 new file mode 100644 index 00000000000..1d031de5440 --- /dev/null +++ b/pkgs/sage-docbuild/pyproject.toml.m4 @@ -0,0 +1,29 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +requires = [ + SPKG_INSTALL_REQUIRES_setuptools +] +build-backend = "setuptools.build_meta" + +[project] +name = "sage-docbuild" +description = "Sage: Open Source Mathematics Software: Build system of the Sage documentation" +dependencies = [ + SPKG_INSTALL_REQUIRES_sphinx +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[tool.setuptools] +packages = [ + "sage_docbuild", + "sage_docbuild.ext", +] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} diff --git a/pkgs/sage-setup/MANIFEST.in b/pkgs/sage-setup/MANIFEST.in new file mode 100644 index 00000000000..74282fceee2 --- /dev/null +++ b/pkgs/sage-setup/MANIFEST.in @@ -0,0 +1 @@ +include VERSION.txt diff --git a/pkgs/sage-setup/pyproject.toml.m4 b/pkgs/sage-setup/pyproject.toml.m4 new file mode 100644 index 00000000000..74b11237ae1 --- /dev/null +++ b/pkgs/sage-setup/pyproject.toml.m4 @@ -0,0 +1,39 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +requires = [ + SPKG_INSTALL_REQUIRES_setuptools +] +build-backend = "setuptools.build_meta" + +[project] +name = "sage-setup" +description = "Sage: Open Source Mathematics Software: Build system of the Sage library" +dependencies = [] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +autogen = [ + SPKG_INSTALL_REQUIRES_jinja2 +] + +[project.scripts] +sage-generate-meson = "sage_setup.autogen.meson:generate_meson" + +[tool.setuptools] +packages = [ + "sage_setup", + "sage_setup.autogen", + "sage_setup.autogen.interpreters", + "sage_setup.autogen.interpreters.specs", + "sage_setup.autogen.meson", + "sage_setup.command", +] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} diff --git a/pkgs/sage-sws2rst/pyproject.toml b/pkgs/sage-sws2rst/pyproject.toml.m4 similarity index 85% rename from pkgs/sage-sws2rst/pyproject.toml rename to pkgs/sage-sws2rst/pyproject.toml.m4 index 1232437fb1e..6a7f65da5a2 100644 --- a/pkgs/sage-sws2rst/pyproject.toml +++ b/pkgs/sage-sws2rst/pyproject.toml.m4 @@ -1,5 +1,8 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- [build-system] -requires = ["setuptools>=61.2"] +requires = [ + SPKG_INSTALL_REQUIRES_setuptools +] build-backend = "setuptools.build_meta" [project] diff --git a/pkgs/sage-sws2rst/sage_sws2rst-10.2b2-py3-none-any.whl b/pkgs/sage-sws2rst/sage_sws2rst-10.2b2-py3-none-any.whl new file mode 100644 index 00000000000..f45966850f7 Binary files /dev/null and b/pkgs/sage-sws2rst/sage_sws2rst-10.2b2-py3-none-any.whl differ diff --git a/pkgs/sagemath-bliss/VERSION.txt~brial_experimental b/pkgs/sagemath-bliss/VERSION.txt~brial_experimental new file mode 100644 index 00000000000..7786f0e63e4 --- /dev/null +++ b/pkgs/sagemath-bliss/VERSION.txt~brial_experimental @@ -0,0 +1 @@ +10.2.beta5 diff --git a/pkgs/sagemath-bliss/known-test-failures.json b/pkgs/sagemath-bliss/known-test-failures.json new file mode 100644 index 00000000000..de92d7e8de1 --- /dev/null +++ b/pkgs/sagemath-bliss/known-test-failures.json @@ -0,0 +1,13 @@ +{ + "sage.graphs.bipartite_graph": { + "ntests": 329 + }, + "sage.graphs.bliss": { + "failed": true, + "ntests": 84 + }, + "sage.graphs.generic_graph": { + "failed": true, + "ntests": 2959 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-bliss/pyproject.toml.m4 b/pkgs/sagemath-bliss/pyproject.toml.m4 index 40bfebf2489..7d7a8ffded4 100644 --- a/pkgs/sagemath-bliss/pyproject.toml.m4 +++ b/pkgs/sagemath-bliss/pyproject.toml.m4 @@ -26,7 +26,10 @@ file = "README.rst" content-type = "text/x-rst" [project.optional-dependencies] -test = [SPKG_INSTALL_REQUIRES_sagemath_repl] +test = [ + SPKG_INSTALL_REQUIRES_sagemath_repl + SPKG_INSTALL_REQUIRES_sagemath_graphs +] [tool.setuptools] include-package-data = false diff --git a/pkgs/sagemath-bliss/requirements-editable.txt.m4 b/pkgs/sagemath-bliss/requirements-editable.txt.m4 new file mode 100644 index 00000000000..1d909c00118 --- /dev/null +++ b/pkgs/sagemath-bliss/requirements-editable.txt.m4 @@ -0,0 +1,3 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cysignals diff --git a/pkgs/sagemath-bliss/setup.py b/pkgs/sagemath-bliss/setup.py index 40f26bd8ead..30b75718728 100644 --- a/pkgs/sagemath-bliss/setup.py +++ b/pkgs/sagemath-bliss/setup.py @@ -1,65 +1,5 @@ #!/usr/bin/env python -from distutils import log -from setuptools import setup +from sage_setup import sage_setup -# Work around a Cython problem in Python 3.8.x on macOS -# https://github.com/cython/cython/issues/3262 -import os -if os.uname().sysname == 'Darwin': - import multiprocessing - multiprocessing.set_start_method('fork', force=True) - -# If build isolation is not in use and setuptools_scm is installed, -# then its file_finders entry point is invoked, which we don't need. -# Workaround from ​https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286 -try: - import setuptools_scm.integration - setuptools_scm.integration.find_files = lambda _: [] -except ImportError: - pass - -# PEP 517 builds do not have . in sys.path -import sys -sys.path.insert(0, os.path.dirname(__file__)) - -if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"): - sdist = True -else: - sdist = False - -if sdist: - cmdclass = {} -else: - from sage_setup.excepthook import excepthook - sys.excepthook = excepthook - - from sage_setup.setenv import setenv - setenv() - - import sage.env - sage.env.default_required_modules = sage.env.default_optional_modules = () - - from sage_setup.command.sage_build_cython import sage_build_cython - from sage_setup.command.sage_build_ext import sage_build_ext - from sage_setup.command.sage_build_py import sage_build_py - sage_build_cython.built_distributions = ['sagemath-bliss'] - - cmdclass = dict(build_cython=sage_build_cython, - build_ext=sage_build_ext, - build_py=sage_build_py) - -from sage_setup.find import find_python_sources -python_packages, python_modules, cython_modules = find_python_sources( - '.', ['sage'], distributions=['sagemath-bliss']) - -log.warn('python_packages = {0}'.format(python_packages)) -log.warn('python_modules = {0}'.format(python_modules)) -log.warn('cython_modules = {0}'.format(cython_modules)) - -setup( - cmdclass = cmdclass, - packages = python_packages, - py_modules = python_modules, - ext_modules = cython_modules, -) +sage_setup(['sagemath-bliss']) diff --git a/pkgs/sagemath-bliss/tox.ini b/pkgs/sagemath-bliss/tox.ini new file mode 100644 index 00000000000..81002cc8b05 --- /dev/null +++ b/pkgs/sagemath-bliss/tox.ini @@ -0,0 +1,105 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_bliss-build-deps && ./sage -sh -c '(cd pkgs/sagemath-bliss && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-bliss/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + # Env factors for testing with extras + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.all__sagemath_graphs' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_graphs --baseline-stats-path={toxinidir}/known-test-failures.json {posargs:sage/graphs/{bliss,bipartite_graph,generic_graph}.p* sage/combinat/posets/posets.p*}' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi diff --git a/pkgs/sagemath-brial/MANIFEST.in b/pkgs/sagemath-brial/MANIFEST.in new file mode 100644 index 00000000000..c3f2800773a --- /dev/null +++ b/pkgs/sagemath-brial/MANIFEST.in @@ -0,0 +1,21 @@ +prune sage + +include VERSION.txt + +graft sage/libs/polybori +graft sage/rings/polynomial/pbori + +global-exclude *.c +global-exclude *.cpp + +global-exclude all__sagemath_*.py +global-include all__sagemath_brial.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-brial/README.rst b/pkgs/sagemath-brial/README.rst new file mode 100644 index 00000000000..8646fcfb769 --- /dev/null +++ b/pkgs/sagemath-brial/README.rst @@ -0,0 +1,30 @@ +========================================================================= + Sage: Open Source Mathematics Software: Boolean Ring Algebra with BRiAl +========================================================================= + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-brial`` provides +a Boolean Ring Algebra implementation using binary decision diagrams, +implemented by the BRiAl library, the successor to PolyBoRi. diff --git a/pkgs/sagemath-brial/VERSION.txt b/pkgs/sagemath-brial/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-brial/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-brial/VERSION.txt~brial_experimental b/pkgs/sagemath-brial/VERSION.txt~brial_experimental new file mode 100644 index 00000000000..2f52450b31d --- /dev/null +++ b/pkgs/sagemath-brial/VERSION.txt~brial_experimental @@ -0,0 +1 @@ +10.0 diff --git a/pkgs/sagemath-brial/meson.build b/pkgs/sagemath-brial/meson.build new file mode 100644 index 00000000000..3090c896f8d --- /dev/null +++ b/pkgs/sagemath-brial/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-brial', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_brial', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-brial/pyproject.toml.m4 b/pkgs/sagemath-brial/pyproject.toml.m4 new file mode 100644 index 00000000000..44dd3a5bea5 --- /dev/null +++ b/pkgs/sagemath-brial/pyproject.toml.m4 @@ -0,0 +1,60 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_cysignals +] +build-backend = "mesonpy" + +[project] +name = "sagemath-brial" +description = "Sage: Open Source Mathematics Software: Boolean Ring Algebra with BRiAl" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_cysignals +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +# No test requirements; see comment in tox.ini +test = [ + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_repl +] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/brial", + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-brial/requirements-editable.txt.m4 b/pkgs/sagemath-brial/requirements-editable.txt.m4 new file mode 100644 index 00000000000..36ce34fa058 --- /dev/null +++ b/pkgs/sagemath-brial/requirements-editable.txt.m4 @@ -0,0 +1,6 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +-e ../sagemath-objects +-e ../sagemath-categories diff --git a/pkgs/sagemath-brial/requirements.txt.m4 b/pkgs/sagemath-brial/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-brial/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-standard/sage b/pkgs/sagemath-brial/sage similarity index 100% rename from pkgs/sagemath-standard/sage rename to pkgs/sagemath-brial/sage diff --git a/pkgs/sagemath-brial/sage-cython-native-file.ini b/pkgs/sagemath-brial/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-brial/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-brial/setup.py b/pkgs/sagemath-brial/setup.py new file mode 100644 index 00000000000..219a8f81f63 --- /dev/null +++ b/pkgs/sagemath-brial/setup.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python + +# PEP 517 builds do not have . in sys.path +import os +import sys +sys.path.insert(0, os.path.dirname(__file__)) + +from sage_setup import sage_setup + +sage_setup(['sagemath-brial'], + required_modules=('m4ri', 'libpng')) diff --git a/pkgs/sagemath-brial/tox.ini b/pkgs/sagemath-brial/tox.ini new file mode 100644 index 00000000000..649c4188b20 --- /dev/null +++ b/pkgs/sagemath-brial/tox.ini @@ -0,0 +1,120 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-brial && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-brial/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + # Because of https://github.com/tox-dev/tox/issues/3238, need <4.14.1 + tox>=4.2 + tox<4.14.1 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + MAKEFLAGS + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + # See src/bin/sage-env + PYDEVD_DISABLE_FILE_VALIDATION=1 + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.all__sagemath_brial; import sage.rings.polynomial.pbori' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-categories/MANIFEST.in.m4 b/pkgs/sagemath-categories/MANIFEST.in.m4 index b2e35673ec0..7a1826212d5 100644 --- a/pkgs/sagemath-categories/MANIFEST.in.m4 +++ b/pkgs/sagemath-categories/MANIFEST.in.m4 @@ -28,15 +28,223 @@ exclude sage/categories/sets_with_partial_maps.* exclude sage/categories/subobjects.* exclude sage/categories/subquotients.* exclude sage/categories/with_realizations.* -# Exclude to make it a namespace package -exclude sage/categories/__init__.py -include sage/rings/ideal.* -include sage/rings/ring.* +include sage/geometry/abc.p* + +# Interfaces +include sage/interfaces/all.p* +include sage/interfaces/abc.p* +include sage/interfaces/process.p* # needed for sage.parallel +include sage/interfaces/tab_completion.p* +include sage/misc/object_multiplexer.p* +include sage/misc/multireplace.p* +include sage/interfaces/sagespawn.p* +include sage/interfaces/quit.p* +include sage/interfaces/cleaner.p* +include sage/interfaces/expect.p* +include sage/interfaces/interface.p* +include sage/interfaces/sage0.p* + +graft sage/parallel + graft sage/typeset # dep of sage.categories.tensor -# include sage/rings/integer*.* # depends on cypari, flint - https://github.com/sagemath/sage/issues/30022 -# include sage/rings/rational*.* -# include sage/rings/infinity.* + +include sage/groups/generic.p* +include sage/groups/groups_catalog.p* + +include sage/monoids/monoid.p* + +include sage/rings/ring.* +include sage/rings/quotient_ring*.p* +include sage/rings/homset.p* +include sage/rings/ideal*.p* +include sage/rings/noncommutative_ideals.p* +include sage/rings/localization.p* +include sage/rings/morphism.p* + +include sage/rings/abc.* +include sage/rings/integer*.p* +exclude sage/rings/integer_fake.pxd # in sagemath-objects +include sage/rings/rational*.* +include sage/rings/infinity.* +include sage/rings/factorint.p* +include sage/rings/sum_of_squares.p* +include sage/rings/generic.p* + +include sage/misc/allocator.* +include sage/misc/latex*.* +include sage/misc/html.p* +include sage/misc/mathml.p* +include sage/misc/table.p* +include sage/misc/map_threaded.p* +include sage/misc/mrange.p* +include sage/misc/defaults.p* +include sage/misc/converting_dict.p* +include sage/misc/parser.p* +include sage/misc/method_decorator.p* +include sage/misc/random_testing.p* +include sage/misc/rest_index_of_methods.p* +include sage/misc/callable_dict.p* +include sage/misc/search.p* +include sage/misc/stopgap.p* + +## Data structures +include sage/misc/binary_tree.p* +graft sage/data_structures # bitset needed by sage.graphs and sage.geometry.polyhedron +exclude sage/data_structures/bounded_integer_sequences.* # depends on flint +exclude sage/data_structures/stream.* +graft sage/groups/perm_gps/partn_ref # but not partn_ref2, which depends on GAP +exclude sage/groups/perm_gps/partn_ref/refinement_graphs.p* # sagemath-graphs +exclude sage/groups/perm_gps/partn_ref/refinement_matrices.p* # sagemath-modules +exclude sage/groups/perm_gps/partn_ref/refinement_binary.p* # sagemath-modules + + +# These might later go to a separate distribution sagemath-functions (> sagemath-objects); +# but sage.functions currently depends on basic rings (QQ etc) +graft sage/arith +# Exclude what is included in sagemath-objects already +exclude sage/arith/long.p* +exclude sage/arith/numerical_approx.p* +exclude sage/arith/power.p* + +include sage/calculus/functional.p* +include sage/calculus/functions.p* +include sage/misc/derivative.p* +include sage/misc/functional.p* +include sage/symbolic/symbols.p* +include sage/symbolic/function.p* +graft sage/functions + + +include sage/rings/finite_rings/element_base.* +include sage/rings/finite_rings/stdint.* +include sage/rings/finite_rings/finite_field_base.p* +include sage/rings/finite_rings/finite_field_constructor.p* +include sage/rings/finite_rings/finite_field_prime_modn.p* +include sage/rings/finite_rings/residue_field.p* +include sage/rings/finite_rings/hom_finite_field.p* +include sage/rings/finite_rings/hom_prime_finite_field.p* +include sage/rings/finite_rings/homset.p* +include sage/rings/fast_arith.* +include sage/rings/finite_rings/integer_mod_limits.h +include sage/rings/finite_rings/integer_mod.p* +include sage/rings/finite_rings/integer_mod_ring.p* +include sage/rings/finite_rings/conway_polynomials.p* +include sage/rings/finite_rings/galois_group.p* +include sage/rings/algebraic_closure_finite_field.p* + +include sage/rings/number_field/number_field_base.p* +include sage/rings/number_field/number_field_element_base.p* +include sage/rings/number_field/number_field_ideal.p* +include sage/rings/real_double.p* + +include sage/rings/real_lazy.p* + +include sage/rings/fraction_field.p* +include sage/rings/fraction_field_element.p* +include sage/rings/qqbar_decorators.p* + +include sage/rings/padics/padic_generic.p* +include sage/rings/padics/local_generic.p* +include sage/rings/padics/local_generic_element.p* +include sage/rings/padics/precision_error.p* +include sage/rings/padics/misc.p* + +include sage/rings/polynomial/polynomial_ring.p* +include sage/rings/polynomial/polynomial_ring_constructor.p* +include sage/rings/polynomial/polynomial_ring_homomorphism.p* +include sage/rings/polynomial/polynomial_quotient_ring.p* +include sage/rings/polynomial/polynomial_singular_interface.p* +include sage/rings/polynomial/multi_polynomial_ring.p* +include sage/rings/polynomial/multi_polynomial_ring_base.p* +include sage/rings/polynomial/multi_polynomial_sequence.p* +include sage/rings/polynomial/multi_polynomial_ideal.p* +include sage/rings/polynomial/infinite_polynomial_*.p* +include sage/rings/polynomial/commutative_polynomial.p* +include sage/rings/polynomial/polynomial_compiled.p* +include sage/rings/polynomial/polynomial_element.p* +include sage/rings/polynomial/polynomial_element_generic.p* +include sage/rings/polynomial/polynomial_fateman.p* +include sage/rings/polynomial/polynomial_quotient_ring_element.p* +include sage/rings/polynomial/multi_polynomial.p* +include sage/rings/polynomial/multi_polynomial_element.p* +include sage/rings/polynomial/polydict.p* +include sage/rings/polynomial/term_order.p* +include sage/rings/polynomial/flatten.p* +include sage/rings/polynomial/cyclotomic.p* +include sage/rings/polynomial/laurent_polynomial_ring*.p* +include sage/rings/polynomial/laurent_polynomial_ideal.p* +include sage/rings/polynomial/laurent_polynomial.p* # but not laurent_polynomial_mpair, which needs Matrix +include sage/rings/polynomial/ideal.p* +include sage/rings/polynomial/toy*.p* +include sage/rings/polynomial/symmetric_*.p* +## include sage/rings/polynomial/ore*.p* # need for sage.categories.drinfeld_modules + +include sage/rings/continued_fraction*.p* + +graft sage/rings/function_field +exclude sage/rings/function_field/*_polymod.* # needs Singular +exclude sage/rings/function_field/derivations*.* # module elements +exclude sage/rings/function_field/differential.* # module elements +exclude sage/rings/function_field/divisor.* # module elements +exclude sage/rings/function_field/hermite_form_polynomial.* # cimports Matrix +exclude sage/rings/function_field/valuation*.* # ?? +exclude sage/rings/function_field/khuri_makdisi.p* +prune sage/rings/function_field/drinfeld_modules # needs ore_polynomial etc. + +include sage/rings/power_series_mpoly.p* +include sage/rings/power_series_poly.p* +include sage/rings/power_series_ring_element.p* +include sage/rings/power_series_ring.p* +include sage/rings/multi_power_series_ring.py +include sage/rings/multi_power_series_ring_element.py +include sage/rings/laurent_series_ring*.p* +include sage/rings/puiseux_series_ring*.p* + +graft sage/rings/semirings + +include sage/rings/tests.p* +include sage/rings/big_oh.p* + +include sage/ext/fast_*.p* + +include sage/combinat/integer_vector.p* +graft sage/combinat/integer_lists +include sage/combinat/backtrack.p* +include sage/combinat/combinat.p* +include sage/combinat/combinat_cython.p* +include sage/combinat/combination.p* +include sage/combinat/combinatorial_map.p* +include sage/combinat/composition.p* +include sage/combinat/permutation.p* +include sage/combinat/permutation_cython.p* +include sage/combinat/ranker.py # for sage.sets.finite_set_map_cy +include sage/combinat/subset.p* +include sage/combinat/tools.p* +include sage/combinat/tuple.p* +# leave out partition - has complicated deps +# leave out integer_vector_weighted - needs combinat.words.word +include sage/combinat/subsets_hereditary.p* +include sage/combinat/subsets_pairwise.p* +include sage/combinat/dlx.p* +include sage/combinat/matrices/dancing_links.p* +include sage/combinat/matrices/dancing_links_c.h +include sage/combinat/matrices/dlxcpp.p* + +# see src/sage/schemes/generic/notes/imports.txt +graft sage/schemes/generic +graft sage/schemes/affine +graft sage/schemes/projective +graft sage/schemes/product_projective + +graft sage/sets +exclude sage/sets/pythonclass.* # sagemath-objects + +include sage/numerical/backends/generic*backend.p* + +## These two should probably go to sagemath-combinat instead. +# include sage/data_structures/stream.p* +# include sage/rings/lazy_series*.p* global-exclude *.c global-exclude *.cpp diff --git a/pkgs/sagemath-categories/README.rst b/pkgs/sagemath-categories/README.rst index 01e974442f8..07ae9c02fed 100644 --- a/pkgs/sagemath-categories/README.rst +++ b/pkgs/sagemath-categories/README.rst @@ -1,6 +1,6 @@ -========================================================================= - Sage: Open Source Mathematics Software: Sage categories and basic rings -========================================================================= +============================================================================================== + Sage: Open Source Mathematics Software: Sage categories, basic rings, polynomials, functions +============================================================================================== About SageMath -------------- @@ -33,19 +33,60 @@ available without introducing dependencies on additional mathematical libraries. -Dependencies ------------- +What is included +---------------- -When building from source, development packages of `gmp`, `mpfr`, and `mpc` are needed. +* `Structure `_, `Coercion framework `_, `Base Classes, Metaclasses `_ + +* `Categories and functorial constructions `_ + +* `Sets `_ + +* Basic Combinatorial and Data Structures: `Binary trees `_, `Bitsets `_, `Permutations `_, Combinations + +* Basic Rings and Fields: `Integers, Rationals `_, `Double Precision Reals `_, `Z/nZ `_ + +* `Commutative Polynomials `_, `Power Series and Laurent Series `_, `Rational Function Fields `_ + +* Arithmetic Functions, `Elementary and Special Functions `_ as generic entry points + +* Base classes for Groups, Rings, `Finite Fields `_, `Number Fields `_, `Schemes `_ + +* Facilities for `Parallel Computing `_, `Formatted Output `_ +Available in other distribution packages +---------------------------------------- -Documentation -------------- +* `sagemath-combinat `_: + Algebraic combinatorics, combinatorial representation theory -* `Categories `_ +* `sagemath-graphs `_: + Graphs, posets, hypergraphs, designs, abstract complexes, combinatorial polyhedra, abelian sandpiles, quivers -* `Structure `_ +* `sagemath-groups `_: + Groups, invariant theory -* `Coercion `_ +* `sagemath-modules `_: + Vectors, matrices, tensors, vector spaces, affine spaces, + modules and algebras, additive groups, quadratic forms, root systems, homology, coding theory, matroids -* `Classes, Metaclasses `_ +* `sagemath-plot `_: + Plotting and graphics with Matplotlib, Three.JS, etc. + +* `sagemath-polyhedra `_: + Convex polyhedra in arbitrary dimension, triangulations, polyhedral fans, lattice points, geometric complexes, hyperplane arrangements + +* `sagemath-repl `_: + IPython REPL, the interactive language of SageMath (preparser), interacts, development tools + +* `sagemath-schemes `_: + Schemes, varieties, Groebner bases, elliptic curves, algebraic Riemann surfaces, modular forms, arithmetic dynamics + +* `sagemath-symbolics `_: + Symbolic expressions, calculus, differentiable manifolds, asymptotics + + +Dependencies +------------ + +When building from source, development packages of `gmp`, `mpfr`, and `mpc` are needed. diff --git a/pkgs/sagemath-categories/known-test-failures.json b/pkgs/sagemath-categories/known-test-failures.json index 23e9f1adeeb..c7f66c79b10 100644 --- a/pkgs/sagemath-categories/known-test-failures.json +++ b/pkgs/sagemath-categories/known-test-failures.json @@ -1,143 +1,134 @@ { + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 896 + }, "sage.arith.numerical_approx": { "ntests": 1 }, "sage.arith.power": { - "failed": true, "ntests": 16 }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 72 + }, + "sage.calculus.functional": { + "ntests": 2 + }, "sage.categories.action": { - "failed": true, "ntests": 78 }, "sage.categories.additive_groups": { "ntests": 9 }, "sage.categories.additive_magmas": { - "failed": true, "ntests": 134 }, "sage.categories.additive_monoids": { - "failed": true, "ntests": 16 }, "sage.categories.additive_semigroups": { - "failed": true, "ntests": 28 }, "sage.categories.affine_weyl_groups": { "ntests": 15 }, + "sage.categories.algebra_functor": { + "ntests": 7 + }, "sage.categories.algebra_ideals": { - "failed": true, "ntests": 8 }, "sage.categories.algebra_modules": { - "failed": true, "ntests": 9 }, "sage.categories.algebras": { - "failed": true, - "ntests": 25 + "ntests": 20 }, "sage.categories.algebras_with_basis": { - "failed": true, - "ntests": 46 + "ntests": 16 }, "sage.categories.aperiodic_semigroups": { "ntests": 1 }, "sage.categories.associative_algebras": { - "failed": true, "ntests": 5 }, "sage.categories.bialgebras": { - "ntests": 3 + "ntests": 4 }, "sage.categories.bialgebras_with_basis": { - "failed": true, - "ntests": 31 + "ntests": 24 }, "sage.categories.bimodules": { - "failed": true, "ntests": 15 }, "sage.categories.cartesian_product": { - "failed": true, "ntests": 42 }, "sage.categories.category": { - "failed": true, "ntests": 433 }, "sage.categories.category_cy_helper": { - "failed": true, "ntests": 27 }, "sage.categories.category_singleton": { - "failed": true, "ntests": 59 }, "sage.categories.category_types": { - "failed": true, "ntests": 74 }, "sage.categories.category_with_axiom": { - "failed": true, "ntests": 328 }, "sage.categories.chain_complexes": { - "failed": true, - "ntests": 20 + "ntests": 22 }, "sage.categories.coalgebras": { - "ntests": 6 + "ntests": 1 }, "sage.categories.coalgebras_with_basis": { - "failed": true, - "ntests": 23 + "ntests": 20 }, "sage.categories.coercion_methods": { - "failed": true, "ntests": 6 }, "sage.categories.commutative_additive_groups": { - "failed": true, "ntests": 17 }, "sage.categories.commutative_additive_monoids": { "ntests": 5 }, "sage.categories.commutative_additive_semigroups": { - "failed": true, "ntests": 6 }, "sage.categories.commutative_algebra_ideals": { - "failed": true, "ntests": 9 }, "sage.categories.commutative_algebras": { - "failed": true, "ntests": 11 }, "sage.categories.commutative_ring_ideals": { - "failed": true, "ntests": 7 }, "sage.categories.commutative_rings": { - "failed": true, - "ntests": 41 + "ntests": 39 }, "sage.categories.complete_discrete_valuation": { - "failed": true, "ntests": 30 }, "sage.categories.complex_reflection_groups": { - "failed": true, "ntests": 16 }, "sage.categories.complex_reflection_or_generalized_coxeter_groups": { - "ntests": 67 + "ntests": 47 }, "sage.categories.covariant_functorial_construction": { "failed": true, @@ -148,60 +139,51 @@ }, "sage.categories.coxeter_groups": { "failed": true, - "ntests": 392 + "ntests": 363 + }, + "sage.categories.crystals": { + "ntests": 1 }, "sage.categories.cw_complexes": { - "failed": true, "ntests": 36 }, - "sage.categories.dedekind_domains": { - "failed": true, - "ntests": 30 - }, "sage.categories.discrete_valuation": { - "failed": true, - "ntests": 28 + "ntests": 23 }, "sage.categories.distributive_magmas_and_additive_magmas": { - "failed": true, "ntests": 13 }, "sage.categories.division_rings": { "ntests": 11 }, "sage.categories.domains": { - "failed": true, "ntests": 7 }, + "sage.categories.drinfeld_modules": { + "ntests": 2 + }, "sage.categories.dual": { - "failed": true, "ntests": 1 }, "sage.categories.enumerated_sets": { - "failed": true, "ntests": 132 }, "sage.categories.euclidean_domains": { - "failed": true, "ntests": 22 }, "sage.categories.examples.algebras_with_basis": { "ntests": 8 }, "sage.categories.examples.commutative_additive_monoids": { - "failed": true, "ntests": 14 }, "sage.categories.examples.commutative_additive_semigroups": { - "failed": true, "ntests": 28 }, "sage.categories.examples.cw_complexes": { - "failed": true, "ntests": 33 }, "sage.categories.examples.facade_sets": { - "failed": true, "ntests": 21 }, "sage.categories.examples.filtered_algebras_with_basis": { @@ -215,70 +197,55 @@ "ntests": 1 }, "sage.categories.examples.finite_enumerated_sets": { - "failed": true, "ntests": 29 }, "sage.categories.examples.finite_monoids": { - "failed": true, "ntests": 15 }, "sage.categories.examples.finite_semigroups": { - "failed": true, "ntests": 27 }, "sage.categories.examples.finite_weyl_groups": { - "failed": true, "ntests": 25 }, "sage.categories.examples.graded_modules_with_basis": { "ntests": 14 }, "sage.categories.examples.graphs": { - "failed": true, "ntests": 24 }, "sage.categories.examples.infinite_enumerated_sets": { - "failed": true, "ntests": 35 }, "sage.categories.examples.lie_algebras": { "ntests": 25 }, "sage.categories.examples.magmas": { - "failed": true, "ntests": 20 }, "sage.categories.examples.manifolds": { - "failed": true, "ntests": 15 }, "sage.categories.examples.monoids": { - "failed": true, "ntests": 16 }, "sage.categories.examples.posets": { - "failed": true, "ntests": 29 }, "sage.categories.examples.semigroups": { - "failed": true, "ntests": 83 }, "sage.categories.examples.semigroups_cython": { - "failed": true, "ntests": 47 }, "sage.categories.examples.sets_with_grading": { - "failed": true, "ntests": 14 }, "sage.categories.facade_sets": { - "failed": true, "ntests": 27 }, "sage.categories.fields": { - "failed": true, - "ntests": 109 + "ntests": 100 }, "sage.categories.filtered_algebras": { "failed": true, @@ -289,88 +256,76 @@ "ntests": 39 }, "sage.categories.filtered_hopf_algebras_with_basis": { - "failed": true, "ntests": 12 }, "sage.categories.filtered_modules": { - "failed": true, "ntests": 18 }, "sage.categories.filtered_modules_with_basis": { "failed": true, - "ntests": 74 + "ntests": 65 }, "sage.categories.finite_complex_reflection_groups": { - "failed": true, - "ntests": 189 + "ntests": 172 }, "sage.categories.finite_coxeter_groups": { - "ntests": 6 + "ntests": 14 }, "sage.categories.finite_dimensional_algebras_with_basis": { - "failed": true, - "ntests": 91 + "ntests": 78 }, "sage.categories.finite_dimensional_bialgebras_with_basis": { - "failed": true, "ntests": 4 }, "sage.categories.finite_dimensional_coalgebras_with_basis": { - "failed": true, "ntests": 4 }, "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { - "failed": true, "ntests": 22 }, "sage.categories.finite_dimensional_hopf_algebras_with_basis": { - "failed": true, "ntests": 3 }, "sage.categories.finite_dimensional_lie_algebras_with_basis": { - "failed": true, - "ntests": 73 + "ntests": 34 }, "sage.categories.finite_dimensional_modules_with_basis": { - "failed": true, - "ntests": 89 + "ntests": 51 }, "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { - "failed": true, "ntests": 19 }, "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { - "failed": true, - "ntests": 12 + "ntests": 11 }, "sage.categories.finite_enumerated_sets": { - "failed": true, "ntests": 123 }, "sage.categories.finite_fields": { - "failed": true, "ntests": 14 }, + "sage.categories.finite_groups": { + "ntests": 5 + }, "sage.categories.finite_lattice_posets": { "ntests": 31 }, "sage.categories.finite_monoids": { - "failed": true, "ntests": 28 }, "sage.categories.finite_permutation_groups": { - "ntests": 2 + "ntests": 12 + }, + "sage.categories.finite_posets": { + "ntests": 19 }, "sage.categories.finite_semigroups": { - "failed": true, "ntests": 14 }, "sage.categories.finite_sets": { - "failed": true, "ntests": 14 }, "sage.categories.finite_weyl_groups": { - "failed": true, "ntests": 6 }, "sage.categories.finitely_generated_lambda_bracket_algebras": { @@ -380,19 +335,15 @@ "ntests": 10 }, "sage.categories.finitely_generated_magmas": { - "failed": true, "ntests": 6 }, "sage.categories.finitely_generated_semigroups": { - "failed": true, "ntests": 27 }, "sage.categories.function_fields": { - "failed": true, "ntests": 11 }, "sage.categories.functor": { - "failed": true, "ntests": 128 }, "sage.categories.g_sets": { @@ -405,64 +356,49 @@ "ntests": 12 }, "sage.categories.graded_algebras": { - "failed": true, "ntests": 8 }, "sage.categories.graded_algebras_with_basis": { - "failed": true, "ntests": 8 }, "sage.categories.graded_bialgebras": { - "failed": true, "ntests": 3 }, "sage.categories.graded_bialgebras_with_basis": { - "failed": true, "ntests": 3 }, "sage.categories.graded_coalgebras": { - "failed": true, "ntests": 6 }, "sage.categories.graded_coalgebras_with_basis": { - "failed": true, "ntests": 6 }, "sage.categories.graded_hopf_algebras": { - "failed": true, "ntests": 3 }, "sage.categories.graded_hopf_algebras_with_basis": { - "failed": true, "ntests": 12 }, "sage.categories.graded_lie_algebras": { - "failed": true, "ntests": 12 }, "sage.categories.graded_lie_algebras_with_basis": { - "failed": true, "ntests": 5 }, "sage.categories.graded_lie_conformal_algebras": { - "failed": true, "ntests": 5 }, "sage.categories.graded_modules": { - "failed": true, "ntests": 16 }, "sage.categories.graded_modules_with_basis": { - "failed": true, "ntests": 25 }, "sage.categories.graphs": { - "failed": true, "ntests": 25 }, "sage.categories.group_algebras": { - "failed": true, - "ntests": 27 + "ntests": 29 }, "sage.categories.groups": { "ntests": 45 @@ -471,31 +407,24 @@ "ntests": 4 }, "sage.categories.hecke_modules": { - "failed": true, "ntests": 16 }, "sage.categories.homset": { - "failed": true, "ntests": 197 }, "sage.categories.homsets": { - "failed": true, "ntests": 56 }, "sage.categories.hopf_algebras": { - "failed": true, "ntests": 15 }, "sage.categories.hopf_algebras_with_basis": { - "failed": true, "ntests": 30 }, "sage.categories.infinite_enumerated_sets": { - "failed": true, "ntests": 13 }, "sage.categories.integral_domains": { - "failed": true, "ntests": 22 }, "sage.categories.isomorphic_objects": { @@ -505,14 +434,12 @@ "ntests": 1 }, "sage.categories.kac_moody_algebras": { - "failed": true, "ntests": 9 }, "sage.categories.l_trivial_semigroups": { "ntests": 5 }, "sage.categories.lambda_bracket_algebras": { - "failed": true, "ntests": 16 }, "sage.categories.lambda_bracket_algebras_with_basis": { @@ -522,91 +449,69 @@ "ntests": 10 }, "sage.categories.left_modules": { - "failed": true, "ntests": 4 }, "sage.categories.lie_algebras": { - "failed": true, - "ntests": 135 + "ntests": 110 }, "sage.categories.lie_algebras_with_basis": { "ntests": 19 }, "sage.categories.lie_conformal_algebras": { - "failed": true, "ntests": 25 }, "sage.categories.lie_conformal_algebras_with_basis": { "ntests": 17 }, "sage.categories.lie_groups": { - "failed": true, "ntests": 9 }, "sage.categories.loop_crystals": { "ntests": 1 }, "sage.categories.magmas": { - "failed": true, "ntests": 147 }, "sage.categories.magmas_and_additive_magmas": { "ntests": 21 }, "sage.categories.magmatic_algebras": { - "failed": true, "ntests": 27 }, "sage.categories.manifolds": { - "failed": true, "ntests": 52 }, "sage.categories.map": { - "failed": true, "ntests": 353 }, "sage.categories.matrix_algebras": { - "failed": true, "ntests": 3 }, "sage.categories.metric_spaces": { - "failed": true, "ntests": 46 }, "sage.categories.modular_abelian_varieties": { - "failed": true, "ntests": 8 }, "sage.categories.modules": { - "failed": true, "ntests": 120 }, "sage.categories.modules_with_basis": { - "failed": true, - "ntests": 240 + "ntests": 221 }, "sage.categories.monoid_algebras": { - "failed": true, "ntests": 4 }, "sage.categories.monoids": { - "failed": true, "ntests": 81 }, "sage.categories.morphism": { - "failed": true, - "ntests": 126 - }, - "sage.categories.noetherian_rings": { - "failed": true, - "ntests": 19 + "ntests": 99 }, "sage.categories.number_fields": { - "failed": true, "ntests": 41 }, "sage.categories.objects": { - "failed": true, "ntests": 12 }, "sage.categories.partially_ordered_monoids": { @@ -619,30 +524,24 @@ "ntests": 3 }, "sage.categories.polyhedra": { - "failed": true, "ntests": 4 }, "sage.categories.poor_man_map": { - "failed": true, "ntests": 59 }, "sage.categories.posets": { "ntests": 2 }, "sage.categories.primer": { - "failed": true, - "ntests": 162 + "ntests": 161 }, "sage.categories.principal_ideal_domains": { - "failed": true, "ntests": 11 }, "sage.categories.pushout": { - "failed": true, "ntests": 624 }, "sage.categories.quantum_group_representations": { - "failed": true, "ntests": 13 }, "sage.categories.quotient_fields": { @@ -656,45 +555,39 @@ "ntests": 3 }, "sage.categories.realizations": { - "failed": true, "ntests": 21 }, + "sage.categories.regular_crystals": { + "ntests": 3 + }, "sage.categories.right_modules": { - "failed": true, "ntests": 4 }, "sage.categories.ring_ideals": { - "failed": true, "ntests": 9 }, "sage.categories.rings": { - "failed": true, - "ntests": 146 + "ntests": 141 }, "sage.categories.rngs": { "ntests": 6 }, "sage.categories.schemes": { - "failed": true, - "ntests": 41 + "ntests": 23 }, "sage.categories.semigroups": { - "failed": true, "ntests": 112 }, "sage.categories.semirings": { "ntests": 6 }, "sage.categories.semisimple_algebras": { - "failed": true, "ntests": 15 }, "sage.categories.sets_cat": { - "failed": true, "ntests": 412 }, "sage.categories.sets_with_grading": { - "failed": true, "ntests": 23 }, "sage.categories.sets_with_partial_maps": { @@ -704,21 +597,18 @@ "ntests": 5 }, "sage.categories.signed_tensor": { - "failed": true, "ntests": 10 }, "sage.categories.simplicial_complexes": { "ntests": 17 }, "sage.categories.simplicial_sets": { - "failed": true, - "ntests": 98 + "ntests": 57 }, "sage.categories.subobjects": { "ntests": 2 }, "sage.categories.super_algebras": { - "failed": true, "ntests": 8 }, "sage.categories.super_algebras_with_basis": { @@ -726,104 +616,165 @@ "ntests": 10 }, "sage.categories.super_hopf_algebras_with_basis": { - "failed": true, "ntests": 10 }, "sage.categories.super_lie_conformal_algebras": { - "failed": true, "ntests": 20 }, "sage.categories.super_modules": { - "failed": true, "ntests": 18 }, "sage.categories.super_modules_with_basis": { - "failed": true, "ntests": 10 }, "sage.categories.supercommutative_algebras": { - "failed": true, "ntests": 8 }, "sage.categories.tensor": { - "failed": true, "ntests": 9 }, "sage.categories.topological_spaces": { "ntests": 27 }, "sage.categories.triangular_kac_moody_algebras": { - "failed": true, "ntests": 15 }, "sage.categories.tutorial": { - "failed": true, "ntests": 4 }, "sage.categories.unique_factorization_domains": { - "failed": true, "ntests": 39 }, "sage.categories.unital_algebras": { - "failed": true, - "ntests": 37 + "ntests": 32 }, "sage.categories.vector_spaces": { - "failed": true, "ntests": 44 }, "sage.categories.with_realizations": { - "failed": true, "ntests": 24 }, - "sage.cpython.atexit": { - "ntests": 19 + "sage.combinat.backtrack": { + "ntests": 28 }, - "sage.cpython.cython_metaclass": { - "ntests": 4 + "sage.combinat.combinat": { + "ntests": 411 }, - "sage.cpython.debug": { - "failed": true, - "ntests": 13 + "sage.combinat.combinat_cython": { + "ntests": 22 }, - "sage.cpython.dict_del_by_value": { - "failed": true, - "ntests": 21 + "sage.combinat.combination": { + "ntests": 93 }, - "sage.cpython.getattr": { - "failed": true, - "ntests": 65 + "sage.combinat.combinatorial_map": { + "ntests": 75 }, - "sage.cpython.string": { - "ntests": 1 + "sage.combinat.composition": { + "ntests": 286 }, - "sage.cpython.string.pxd": { - "ntests": 8 + "sage.combinat.dlx": { + "ntests": 61 }, - "sage.cpython.type": { - "ntests": 7 + "sage.combinat.integer_lists.base": { + "ntests": 116 }, - "sage.cpython.wrapperdescr": { - "failed": true, - "ntests": 0 + "sage.combinat.integer_lists.invlex": { + "ntests": 304 }, - "sage.doctest.check_tolerance": { - "failed": true, - "ntests": 19 + "sage.combinat.integer_lists.lists": { + "ntests": 56 }, - "sage.doctest.control": { - "failed": true, - "ntests": 230 + "sage.combinat.integer_lists.nn": { + "ntests": 5 }, - "sage.doctest.external": { - "ntests": 42 + "sage.combinat.integer_vector": { + "ntests": 249 }, - "sage.doctest.fixtures": { + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 9 + }, + "sage.combinat.permutation": { + "ntests": 1208 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.data_structures.bitset": { + "ntests": 425 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.check_tolerance": { + "failed": true, + "ntests": 19 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { "ntests": 59 }, "sage.doctest.forker": { "failed": true, - "ntests": 413 + "ntests": 386 }, "sage.doctest.marked_output": { "failed": true, @@ -831,36 +782,39 @@ }, "sage.doctest.parsing": { "failed": true, - "ntests": 275 + "ntests": 303 }, "sage.doctest.reporting": { - "ntests": 115 + "ntests": 124 }, "sage.doctest.rif_tol": { "failed": true, "ntests": 18 }, "sage.doctest.sources": { - "failed": true, - "ntests": 343 + "ntests": 378 }, "sage.doctest.test": { - "failed": true, "ntests": 23 }, "sage.doctest.util": { - "failed": true, "ntests": 141 }, "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { "failed": true, - "ntests": 41 + "ntests": 317 + }, + "sage.ext.fast_eval": { + "ntests": 4 }, "sage.features": { - "ntests": 143 + "ntests": 145 }, "sage.features.all": { - "ntests": 14 + "ntests": 16 }, "sage.features.bliss": { "ntests": 8 @@ -876,23 +830,17 @@ }, "sage.features.databases": { "failed": true, - "ntests": 38 + "ntests": 26 }, "sage.features.dvipng": { "ntests": 4 }, - "sage.features.ecm": { - "ntests": 4 - }, "sage.features.ffmpeg": { "ntests": 4 }, "sage.features.four_ti_2": { "ntests": 6 }, - "sage.features.fricas": { - "ntests": 6 - }, "sage.features.gap": { "ntests": 6 }, @@ -912,17 +860,12 @@ "ntests": 10 }, "sage.features.interfaces": { - "failed": true, "ntests": 33 }, "sage.features.internet": { "ntests": 5 }, - "sage.features.jmol": { - "ntests": 4 - }, "sage.features.join_feature": { - "failed": true, "ntests": 25 }, "sage.features.kenzo": { @@ -980,8 +923,7 @@ "ntests": 28 }, "sage.features.sagemath": { - "failed": true, - "ntests": 151 + "ntests": 175 }, "sage.features.singular": { "ntests": 4 @@ -989,71 +931,217 @@ "sage.features.sphinx": { "ntests": 4 }, - "sage.features.symengine_py": { - "ntests": 4 - }, "sage.features.tdlib": { "ntests": 2 }, - "sage.features.threejs": { - "failed": true, - "ntests": 6 + "sage.functions.airy": { + "ntests": 99 + }, + "sage.functions.bessel": { + "ntests": 160 + }, + "sage.functions.error": { + "ntests": 94 + }, + "sage.functions.exp_integral": { + "ntests": 156 + }, + "sage.functions.gamma": { + "ntests": 140 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "ntests": 78 + }, + "sage.functions.jacobi": { + "ntests": 38 + }, + "sage.functions.log": { + "ntests": 154 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "ntests": 230 + }, + "sage.functions.other": { + "ntests": 240 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "ntests": 55 + }, + "sage.functions.trig": { + "ntests": 126 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.groups.generic": { + "ntests": 94 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 4 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 }, "sage.misc.abstract_method": { - "failed": true, "ntests": 33 }, "sage.misc.banner": { - "failed": true, "ntests": 12 }, + "sage.misc.binary_tree": { + "ntests": 61 + }, "sage.misc.bindable_class": { "ntests": 47 }, "sage.misc.c3_controlled": { - "failed": true, "ntests": 150 }, "sage.misc.cachefunc": { - "failed": true, "ntests": 692 }, "sage.misc.call": { "ntests": 28 }, + "sage.misc.callable_dict": { + "ntests": 12 + }, "sage.misc.classcall_metaclass": { "ntests": 78 }, "sage.misc.constant_function": { "ntests": 21 }, + "sage.misc.converting_dict": { + "ntests": 53 + }, "sage.misc.decorators": { + "ntests": 126 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { "failed": true, - "ntests": 125 + "ntests": 61 }, - "sage.misc.fast_methods": { + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.explain_pickle": { "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { "ntests": 80 }, "sage.misc.flatten": { - "failed": true, "ntests": 15 }, + "sage.misc.fpickle": { + "ntests": 13 + }, "sage.misc.function_mangling": { "ntests": 32 }, + "sage.misc.functional": { + "failed": true, + "ntests": 281 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, "sage.misc.inherit_comparison": { "ntests": 2 }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, "sage.misc.instancedoc": { "ntests": 67 }, - "sage.misc.lazy_attribute": { + "sage.misc.latex": { "failed": true, + "ntests": 219 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { "ntests": 100 }, "sage.misc.lazy_format": { - "failed": true, "ntests": 23 }, "sage.misc.lazy_import": { @@ -1061,56 +1149,88 @@ "ntests": 279 }, "sage.misc.lazy_import_cache": { - "failed": true, "ntests": 8 }, + "sage.misc.lazy_list": { + "ntests": 227 + }, "sage.misc.lazy_string": { - "failed": true, "ntests": 131 }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, "sage.misc.misc": { "failed": true, - "ntests": 176 + "ntests": 134 }, "sage.misc.misc_c": { - "failed": true, "ntests": 121 }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, "sage.misc.namespace_package": { "ntests": 7 }, "sage.misc.nested_class": { "ntests": 67 }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, "sage.misc.package": { - "ntests": 36 + "ntests": 38 }, "sage.misc.package_dir": { "failed": true, "ntests": 35 }, + "sage.misc.parser": { + "ntests": 136 + }, "sage.misc.persist": { - "failed": true, "ntests": 137 }, "sage.misc.prandom": { - "failed": true, "ntests": 74 }, + "sage.misc.random_testing": { + "ntests": 18 + }, "sage.misc.repr": { - "failed": true, "ntests": 31 }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, "sage.misc.sage_eval": { "failed": true, "ntests": 31 }, "sage.misc.sage_input": { - "failed": true, "ntests": 732 }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, "sage.misc.sage_unittest": { - "failed": true, "ntests": 88 }, "sage.misc.sagedoc": { @@ -1119,20 +1239,36 @@ }, "sage.misc.sageinspect": { "failed": true, - "ntests": 322 + "ntests": 332 }, - "sage.misc.superseded": { + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { "ntests": 59 }, + "sage.misc.table": { + "ntests": 66 + }, "sage.misc.temporary_file": { - "failed": true, "ntests": 80 }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, "sage.misc.timing": { - "failed": true, "ntests": 35 }, + "sage.misc.trace": { + "ntests": 5 + }, "sage.misc.unknown": { "ntests": 22 }, @@ -1140,47 +1276,69 @@ "ntests": 22 }, "sage.misc.viewer": { - "failed": true, "ntests": 49 }, "sage.misc.weak_dict": { - "failed": true, "ntests": 251 }, - "sage.repl.attach": { - "failed": true, - "ntests": 128 + "sage.modules.module": { + "ntests": 37 }, - "sage.repl.configuration": { - "ntests": 22 + "sage.numerical.backends.generic_backend": { + "ntests": 17 }, - "sage.repl.display.fancy_repr": { - "failed": true, - "ntests": 27 + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 }, - "sage.repl.display.formatter": { - "failed": true, - "ntests": 58 + "sage.parallel.decorate": { + "ntests": 86 }, - "sage.repl.display.jsmol_iframe": { + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "failed": true, + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 27 + }, + "sage.repl.display.formatter": { + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { "ntests": 25 }, "sage.repl.display.pretty_print": { - "failed": true, "ntests": 21 }, "sage.repl.display.util": { "ntests": 7 }, - "sage.repl.image": { - "failed": true, - "ntests": 42 - }, "sage.repl.inputhook": { + "failed": true, "ntests": 7 }, "sage.repl.interface_magic": { - "failed": true, "ntests": 20 }, "sage.repl.interpreter": { @@ -1193,18 +1351,15 @@ }, "sage.repl.ipython_kernel.install": { "failed": true, - "ntests": 35 + "ntests": 40 }, "sage.repl.ipython_kernel.interact": { - "failed": true, "ntests": 42 }, "sage.repl.ipython_kernel.kernel": { - "failed": true, "ntests": 12 }, "sage.repl.ipython_kernel.widgets": { - "failed": true, "ntests": 98 }, "sage.repl.ipython_kernel.widgets_sagenb": { @@ -1220,7 +1375,6 @@ "ntests": 38 }, "sage.repl.preparse": { - "failed": true, "ntests": 349 }, "sage.repl.rich_output.backend_base": { @@ -1234,16 +1388,13 @@ "ntests": 15 }, "sage.repl.rich_output.backend_ipython": { - "failed": true, - "ntests": 75 + "ntests": 78 }, "sage.repl.rich_output.buffer": { - "failed": true, "ntests": 49 }, "sage.repl.rich_output.display_manager": { - "failed": true, - "ntests": 86 + "ntests": 88 }, "sage.repl.rich_output.output_basic": { "ntests": 47 @@ -1264,30 +1415,474 @@ "ntests": 68 }, "sage.repl.rich_output.pretty_print": { - "failed": true, "ntests": 41 }, "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.continued_fraction": { + "ntests": 286 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.factorint": { + "ntests": 10 + }, + "sage.rings.finite_rings.conway_polynomials": { + "ntests": 20 + }, + "sage.rings.finite_rings.element_base": { + "ntests": 13 + }, + "sage.rings.finite_rings.finite_field_base": { + "ntests": 24 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "ntests": 17 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 28 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 1 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 15 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 536 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 253 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 41 + }, + "sage.rings.fraction_field": { "failed": true, + "ntests": 225 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 263 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 71 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 158 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 135 + }, + "sage.rings.function_field.ideal": { + "ntests": 92 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 82 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 20 + }, + "sage.rings.function_field.order_rational": { + "ntests": 69 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 7 + }, + "sage.rings.generic": { + "ntests": 50 + }, + "sage.rings.homset": { "ntests": 37 }, "sage.rings.ideal": { - "failed": true, "ntests": 336 }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1091 + }, "sage.rings.integer_fake.pxd": { "ntests": 1 }, + "sage.rings.integer_ring": { + "ntests": 197 + }, + "sage.rings.laurent_series_ring": { + "ntests": 145 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 381 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 110 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 444 + }, + "sage.rings.multi_power_series_ring": { + "ntests": 216 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 425 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.padics.local_generic": { + "ntests": 71 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_generic": { + "ntests": 58 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 31 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 278 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 375 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "ntests": 83 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 5 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 465 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "ntests": 263 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 106 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 226 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.polydict": { + "ntests": 393 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1840 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 188 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "ntests": 36 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "ntests": 13 + }, + "sage.rings.polynomial.polynomial_ring": { + "ntests": 386 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 42 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 319 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 21 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 256 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 471 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 190 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 181 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 530 + }, + "sage.rings.rational_field": { + "ntests": 189 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 351 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, "sage.rings.ring": { + "ntests": 337 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 120 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 39 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { "failed": true, - "ntests": 298 + "ntests": 282 }, - "sage.sets.pythonclass": { + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 117 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 391 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 180 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 99 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 62 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 58 + }, + "sage.schemes.projective.projective_morphism": { "failed": true, + "ntests": 480 + }, + "sage.schemes.projective.projective_point": { + "ntests": 277 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 34 + }, + "sage.schemes.projective.projective_space": { + "ntests": 381 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 233 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 52 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { "ntests": 55 }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "ntests": 363 + }, + "sage.sets.set_from_iterator": { + "ntests": 150 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, "sage.structure.category_object": { - "failed": true, "ntests": 140 }, "sage.structure.coerce": { @@ -1295,7 +1890,6 @@ "ntests": 310 }, "sage.structure.coerce_actions": { - "failed": true, "ntests": 128 }, "sage.structure.coerce_dict": { @@ -1303,26 +1897,22 @@ "ntests": 289 }, "sage.structure.coerce_maps": { - "failed": true, "ntests": 90 }, "sage.structure.debug_options": { "ntests": 5 }, "sage.structure.dynamic_class": { - "failed": true, "ntests": 83 }, "sage.structure.element": { "failed": true, - "ntests": 562 + "ntests": 566 }, "sage.structure.element.pxd": { - "failed": true, "ntests": 23 }, "sage.structure.element_wrapper": { - "failed": true, "ntests": 160 }, "sage.structure.factorization": { @@ -1330,26 +1920,21 @@ "ntests": 200 }, "sage.structure.factorization_integer": { - "failed": true, "ntests": 6 }, "sage.structure.factory": { - "failed": true, "ntests": 99 }, "sage.structure.formal_sum": { - "failed": true, "ntests": 67 }, "sage.structure.global_options": { "ntests": 145 }, "sage.structure.indexed_generators": { - "failed": true, "ntests": 90 }, "sage.structure.list_clone": { - "failed": true, "ntests": 380 }, "sage.structure.list_clone_demo": { @@ -1362,19 +1947,15 @@ "ntests": 12 }, "sage.structure.mutability": { - "failed": true, "ntests": 68 }, "sage.structure.nonexact": { - "failed": true, "ntests": 11 }, "sage.structure.parent": { - "failed": true, - "ntests": 303 + "ntests": 300 }, "sage.structure.parent_gens": { - "failed": true, "ntests": 24 }, "sage.structure.parent_old": { @@ -1388,60 +1969,91 @@ "ntests": 50 }, "sage.structure.richcmp": { - "failed": true, "ntests": 56 }, "sage.structure.richcmp.pxd": { "ntests": 24 }, "sage.structure.sage_object": { - "failed": true, - "ntests": 84 + "ntests": 83 }, "sage.structure.sequence": { - "failed": true, "ntests": 183 }, "sage.structure.set_factories": { - "failed": true, "ntests": 225 }, "sage.structure.set_factories_example": { - "failed": true, "ntests": 81 }, "sage.structure.support_view": { "ntests": 38 }, "sage.structure.test_factory": { - "failed": true, "ntests": 6 }, "sage.structure.unique_representation": { - "failed": true, "ntests": 226 }, - "sage.typeset.ascii_art": { + "sage.symbolic.function": { "failed": true, + "ntests": 168 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "ntests": 13 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 1 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 4 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { "ntests": 24 }, "sage.typeset.character_art": { - "failed": true, "ntests": 108 }, "sage.typeset.character_art_factory": { - "failed": true, "ntests": 53 }, "sage.typeset.symbols": { - "failed": true, "ntests": 28 }, "sage.typeset.unicode_art": { - "failed": true, "ntests": 18 }, "sage.typeset.unicode_characters": { "ntests": 27 } -} +} \ No newline at end of file diff --git a/pkgs/sagemath-categories/meson.build b/pkgs/sagemath-categories/meson.build new file mode 100644 index 00000000000..3f6621a48ab --- /dev/null +++ b/pkgs/sagemath-categories/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-categories', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_categories', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-categories/pyproject.toml.m4 b/pkgs/sagemath-categories/pyproject.toml.m4 index edbafa59242..e177ab17d9b 100644 --- a/pkgs/sagemath-categories/pyproject.toml.m4 +++ b/pkgs/sagemath-categories/pyproject.toml.m4 @@ -2,23 +2,25 @@ include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- [build-system] # Minimum requirements for the build system to execute. requires = [ - SPKG_INSTALL_REQUIRES_setuptools - SPKG_INSTALL_REQUIRES_wheel + SPKG_INSTALL_REQUIRES_meson_python SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_jinja2 SPKG_INSTALL_REQUIRES_sagemath_environment SPKG_INSTALL_REQUIRES_sagemath_objects SPKG_INSTALL_REQUIRES_cython SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_memory_allocator SPKG_INSTALL_REQUIRES_cysignals SPKG_INSTALL_REQUIRES_pkgconfig ] -build-backend = "setuptools.build_meta" +build-backend = "mesonpy" [project] name = "sagemath-categories" description = "Sage: Open Source Mathematics Software: Sage categories and basic rings" dependencies = [ SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_memory_allocator ] dynamic = ["version"] include(`pyproject_toml_metadata.m4')dnl' @@ -38,6 +40,9 @@ include-package-data = false [tool.setuptools.dynamic] version = {file = ["VERSION.txt"]} +[tool.setuptools.package-data] +"sage.rings.finite_rings" = ["integer_mod_limits.h"] + [external] # External dependencies in the format proposed by https://peps.python.org/pep-0725 build-requires = [ diff --git a/pkgs/sagemath-categories/sage-cython-native-file.ini b/pkgs/sagemath-categories/sage-cython-native-file.ini new file mode 120000 index 00000000000..e9a14ce871a --- /dev/null +++ b/pkgs/sagemath-categories/sage-cython-native-file.ini @@ -0,0 +1 @@ +../sagemath-objects/sage-cython-native-file.ini \ No newline at end of file diff --git a/pkgs/sagemath-categories/setup.py b/pkgs/sagemath-categories/setup.py deleted file mode 120000 index 144436eac59..00000000000 --- a/pkgs/sagemath-categories/setup.py +++ /dev/null @@ -1 +0,0 @@ -../sagemath-objects/setup.py \ No newline at end of file diff --git a/pkgs/sagemath-categories/setup.py b/pkgs/sagemath-categories/setup.py new file mode 100644 index 00000000000..d86a2658c44 --- /dev/null +++ b/pkgs/sagemath-categories/setup.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup( + ['sagemath-categories'], + interpreters=['Element', 'Python']) # RDF uses gsl --> sagemath-modules diff --git a/pkgs/sagemath-combinat/MANIFEST.in.m4 b/pkgs/sagemath-combinat/MANIFEST.in.m4 new file mode 100644 index 00000000000..a7244a4db06 --- /dev/null +++ b/pkgs/sagemath-combinat/MANIFEST.in.m4 @@ -0,0 +1,99 @@ +dnl MANIFEST.in is generated from this file by SAGE_ROOT/bootstrap via m4. +prune sage + +include VERSION.txt + +prune .tox +exclude *.m4 +include requirements.txt + +graft sage/algebras +graft sage/combinat +graft sage/monoids +exclude sage/monoids/monoid.py # sagemath-categories +graft sage/games +graft sage/sat + +include sage/data_structures/stream.p* +include sage/rings/lazy_series*.p* + +include sage/groups/indexed_free_group.p* # these words go together well + +graft sage/libs/lrcalc +graft sage/libs/symmetrica + +# included in sagemath-categories +prune sage/combinat/integer_lists +exclude sage/combinat/integer_vector.p* +exclude sage/combinat/backtrack.p* +exclude sage/combinat/combinat.p* +exclude sage/combinat/combinat_cython.p* +exclude sage/combinat/combination.p* +exclude sage/combinat/combinatorial_map.p* +exclude sage/combinat/composition.p* +exclude sage/combinat/permutation.p* +exclude sage/combinat/permutation_cython.p* +exclude sage/combinat/ranker.py # for sage.sets.finite_set_map_cy +exclude sage/combinat/subset.p* +exclude sage/combinat/tools.p* +exclude sage/combinat/tuple.p* +exclude sage/combinat/subsets_hereditary.p* +exclude sage/combinat/subsets_pairwise.p* +exclude sage/combinat/dlx.p* +exclude sage/combinat/matrices/dancing_links.p* +exclude sage/combinat/matrices/dancing_links_c.h +exclude sage/combinat/matrices/dlxcpp.p* + +# included in sagemath-graphs +prune sage/combinat/designs +prune sage/combinat/posets +prune sage/combinat/cluster_algebra_quiver +exclude sage/combinat/abstract_tree.p* +exclude sage/combinat/binary_tree.p* +exclude sage/combinat/ordered_tree.p* +exclude sage/combinat/rooted_tree.p* +exclude sage/combinat/graph_path.p* +exclude sage/combinat/shard_order.p* +exclude sage/combinat/tamari_lattices.p* +exclude sage/combinat/nu_tamari_lattice.p* +exclude sage/combinat/interval_posets.p* +exclude sage/combinat/yang_baxter_graph.p* +exclude sage/combinat/finite_state_machine*.p* + +# included in sagemath-modules +prune sage/combinat/root_system +exclude sage/combinat/free_module.py +exclude sage/combinat/cartesian_product.py +exclude sage/combinat/family.py +exclude sage/algebras/algebra.py +exclude sage/algebras/catalog.py +prune sage/algebras/finite_dimensional_algebras +exclude sage/algebras/group_algebra.py +exclude sage/algebras/orlik_solomon.p* +exclude sage/algebras/orlik_terao.p* + +exclude sage/algebras/clifford_algebra*.p* +exclude sage/algebras/exterior_algebra*.p* +exclude sage/algebras/octonion_algebra.p* +exclude sage/algebras/weyl_algebra.p* + +# included in sagemath-groups +exclude sage/combinat/enumeration_mod_permgroup.p* + +# compile-time library dependencies +prune sage/algebras/quatalg # flint, singular +prune sage/algebras/letterplace # singular +prune sage/algebras/fusion_rings # number_field (ntl), singular +prune sage/algebras/lie_algebras # needs modules + +global-exclude all__sagemath_*.* +global-include all__sagemath_combinat.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-combinat/README.rst b/pkgs/sagemath-combinat/README.rst new file mode 100644 index 00000000000..19d982b2bf7 --- /dev/null +++ b/pkgs/sagemath-combinat/README.rst @@ -0,0 +1,46 @@ +====================================================================================================== + Sage: Open Source Mathematics Software: Algebraic combinatorics, combinatorial representation theory +====================================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via Sage-the-distribution (https://www.sagemath.org/download-source.html). Sage-the-distribution first builds a large number of open source packages from source (unless it finds suitable versions installed in the system) and then installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this experimental pip-installable source distribution +----------------------------------------------------------- + +This pip-installable source distribution `sagemath-combinat` is an experimental distribution of a part of the Sage Library. Use at your own risk. It provides a small subset of the modules of the Sage library ("sagelib", `sagemath-standard`). + + +What is included +---------------- + +* `Enumerative Combinatorics `_: `Partitions, Tableaux `_ + +* `Combinatorics on Words `_, `Free Monoids `_, `Automatic Semigroups `_ + +* `Symmetric Functions `_, other `Algebras with combinatorial bases `_ + + +Available as extras, from other distribution packages +----------------------------------------------------- + +* `sagemath-graphs `_: + Graphs, posets, finite state machines, combinatorial designs, incidence structures, quivers + +* `sagemath-modules `_: + Modules and algebras, root systems, coding theory + +* `sagemath-polyhedra `_: + Polyhedra, lattice points, hyperplane arrangements diff --git a/pkgs/sagemath-combinat/VERSION.txt b/pkgs/sagemath-combinat/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-combinat/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-combinat/known-test-failures--graphs.json b/pkgs/sagemath-combinat/known-test-failures--graphs.json new file mode 100644 index 00000000000..435913cd740 --- /dev/null +++ b/pkgs/sagemath-combinat/known-test-failures--graphs.json @@ -0,0 +1,3007 @@ +{ + "sage.algebras.cluster_algebra": { + "ntests": 1 + }, + "sage.algebras.commutative_dga": { + "ntests": 37 + }, + "sage.algebras.finite_gca": { + "ntests": 1 + }, + "sage.algebras.free_algebra": { + "ntests": 3 + }, + "sage.algebras.hecke_algebras.cubic_hecke_algebra": { + "ntests": 31 + }, + "sage.algebras.iwahori_hecke_algebra": { + "ntests": 14 + }, + "sage.algebras.quantum_groups.q_numbers": { + "ntests": 23 + }, + "sage.algebras.steenrod.steenrod_algebra": { + "ntests": 2 + }, + "sage.algebras.steenrod.steenrod_algebra_bases": { + "ntests": 70 + }, + "sage.algebras.steenrod.steenrod_algebra_misc": { + "ntests": 100 + }, + "sage.all__sagemath_combinat": { + "ntests": 3 + }, + "sage.all__sagemath_graphs": { + "ntests": 2 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 896 + }, + "sage.arith.numerical_approx": { + "ntests": 1 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 72 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.categories.action": { + "ntests": 78 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 134 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 2 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 9 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 74 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 22 + }, + "sage.categories.classical_crystals": { + "failed": true, + "ntests": 74 + }, + "sage.categories.coalgebras": { + "ntests": 22 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 17 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "ntests": 39 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 28 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "failed": true, + "ntests": 361 + }, + "sage.categories.crystals": { + "failed": true, + "ntests": 499 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 23 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "ntests": 2 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 162 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.crystals": { + "failed": true, + "ntests": 27 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.filtered_modules_with_basis": { + "ntests": 12 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 1 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_modules_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 25 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 100 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 39 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 65 + }, + "sage.categories.finite_complex_reflection_groups": { + "failed": true, + "ntests": 183 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_crystals": { + "failed": true, + "ntests": 10 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "failed": true, + "ntests": 77 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 34 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "ntests": 49 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "failed": true, + "ntests": 130 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 4 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_posets": { + "failed": true, + "ntests": 278 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "ntests": 128 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 25 + }, + "sage.categories.groups": { + "ntests": 45 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.highest_weight_crystals": { + "failed": true, + "ntests": 173 + }, + "sage.categories.homset": { + "ntests": 212 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "failed": true, + "ntests": 223 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 52 + }, + "sage.categories.map": { + "ntests": 353 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 120 + }, + "sage.categories.modules_with_basis": { + "ntests": 221 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 81 + }, + "sage.categories.morphism": { + "ntests": 104 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.posets": { + "ntests": 147 + }, + "sage.categories.primer": { + "failed": true, + "ntests": 161 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "ntests": 624 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 81 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.regular_crystals": { + "failed": true, + "ntests": 121 + }, + "sage.categories.regular_supercrystals": { + "failed": true, + "ntests": 27 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "ntests": 143 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 116 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 419 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 108 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 8 + }, + "sage.categories.super_algebras_with_basis": { + "failed": true, + "ntests": 10 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 10 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.supercrystals": { + "failed": true, + "ntests": 66 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 32 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "ntests": 24 + }, + "sage.combinat.abstract_tree": { + "ntests": 422 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.baxter_permutations": { + "ntests": 35 + }, + "sage.combinat.binary_recurrence_sequences": { + "ntests": 7 + }, + "sage.combinat.binary_tree": { + "failed": true, + "ntests": 737 + }, + "sage.combinat.cluster_algebra_quiver.cluster_seed": { + "ntests": 5 + }, + "sage.combinat.cluster_algebra_quiver.interact": { + "ntests": 2 + }, + "sage.combinat.cluster_algebra_quiver.mutation_class": { + "ntests": 47 + }, + "sage.combinat.cluster_algebra_quiver.mutation_type": { + "ntests": 27 + }, + "sage.combinat.cluster_algebra_quiver.quiver": { + "ntests": 7 + }, + "sage.combinat.cluster_algebra_quiver.quiver_mutation_type": { + "ntests": 232 + }, + "sage.combinat.cluster_complex": { + "failed": true, + "ntests": 40 + }, + "sage.combinat.colored_permutations": { + "failed": true, + "ntests": 328 + }, + "sage.combinat.combinat": { + "ntests": 431 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 299 + }, + "sage.combinat.composition_signed": { + "ntests": 20 + }, + "sage.combinat.composition_tableau": { + "ntests": 100 + }, + "sage.combinat.core": { + "ntests": 138 + }, + "sage.combinat.crystals.crystals": { + "ntests": 1 + }, + "sage.combinat.crystals.letters": { + "ntests": 3 + }, + "sage.combinat.crystals.mv_polytopes": { + "ntests": 2 + }, + "sage.combinat.cyclic_sieving_phenomenon": { + "ntests": 27 + }, + "sage.combinat.debruijn_sequence": { + "ntests": 28 + }, + "sage.combinat.decorated_permutation": { + "ntests": 35 + }, + "sage.combinat.degree_sequences": { + "ntests": 28 + }, + "sage.combinat.derangements": { + "ntests": 87 + }, + "sage.combinat.designs.bibd": { + "ntests": 111 + }, + "sage.combinat.designs.block_design": { + "ntests": 5 + }, + "sage.combinat.designs.covering_design": { + "ntests": 46 + }, + "sage.combinat.designs.database": { + "ntests": 365 + }, + "sage.combinat.designs.design_catalog": { + "ntests": 2 + }, + "sage.combinat.designs.designs_pyx": { + "ntests": 58 + }, + "sage.combinat.designs.difference_family": { + "ntests": 275 + }, + "sage.combinat.designs.ext_rep": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.designs.incidence_structures": { + "failed": true, + "ntests": 282 + }, + "sage.combinat.designs.latin_squares": { + "ntests": 12 + }, + "sage.combinat.designs.orthogonal_arrays_build_recursive": { + "ntests": 9 + }, + "sage.combinat.designs.resolvable_bibd": { + "ntests": 4 + }, + "sage.combinat.designs.steiner_quadruple_systems": { + "ntests": 36 + }, + "sage.combinat.designs.subhypergraph_search": { + "ntests": 12 + }, + "sage.combinat.designs.twographs": { + "ntests": 27 + }, + "sage.combinat.diagram": { + "ntests": 244 + }, + "sage.combinat.diagram_algebras": { + "ntests": 13 + }, + "sage.combinat.dlx": { + "ntests": 61 + }, + "sage.combinat.dyck_word": { + "ntests": 596 + }, + "sage.combinat.e_one_star": { + "ntests": 9 + }, + "sage.combinat.expnums": { + "ntests": 7 + }, + "sage.combinat.fast_vector_partitions": { + "ntests": 16 + }, + "sage.combinat.finite_state_machine": { + "ntests": 60 + }, + "sage.combinat.finite_state_machine_generators": { + "ntests": 33 + }, + "sage.combinat.fully_commutative_elements": { + "ntests": 1 + }, + "sage.combinat.fully_packed_loop": { + "ntests": 6 + }, + "sage.combinat.gelfand_tsetlin_patterns": { + "ntests": 220 + }, + "sage.combinat.graph_path": { + "ntests": 95 + }, + "sage.combinat.gray_codes": { + "failed": true, + "ntests": 26 + }, + "sage.combinat.growth": { + "failed": true, + "ntests": 614 + }, + "sage.combinat.hillman_grassl": { + "ntests": 98 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.integer_vector_weighted": { + "ntests": 64 + }, + "sage.combinat.interval_posets": { + "ntests": 588 + }, + "sage.combinat.kazhdan_lusztig": { + "ntests": 2 + }, + "sage.combinat.knutson_tao_puzzles": { + "ntests": 384 + }, + "sage.combinat.matrices.dancing_links": { + "failed": true, + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 9 + }, + "sage.combinat.misc": { + "ntests": 82 + }, + "sage.combinat.multiset_partition_into_sets_ordered": { + "failed": true, + "ntests": 543 + }, + "sage.combinat.ncsf_qsym.combinatorics": { + "failed": true, + "ntests": 31 + }, + "sage.combinat.necklace": { + "ntests": 76 + }, + "sage.combinat.non_decreasing_parking_function": { + "ntests": 122 + }, + "sage.combinat.nu_dyck_word": { + "ntests": 1 + }, + "sage.combinat.nu_tamari_lattice": { + "failed": true, + "ntests": 10 + }, + "sage.combinat.ordered_tree": { + "ntests": 260 + }, + "sage.combinat.output": { + "ntests": 66 + }, + "sage.combinat.parallelogram_polyomino": { + "ntests": 10 + }, + "sage.combinat.parking_functions": { + "ntests": 273 + }, + "sage.combinat.partition": { + "failed": true, + "ntests": 1355 + }, + "sage.combinat.partition_tuple": { + "ntests": 394 + }, + "sage.combinat.partitions": { + "ntests": 8 + }, + "sage.combinat.path_tableaux.dyck_path": { + "ntests": 52 + }, + "sage.combinat.path_tableaux.frieze": { + "ntests": 62 + }, + "sage.combinat.path_tableaux.path_tableau": { + "ntests": 97 + }, + "sage.combinat.path_tableaux.semistandard": { + "failed": true, + "ntests": 82 + }, + "sage.combinat.perfect_matching": { + "ntests": 127 + }, + "sage.combinat.permutation": { + "failed": true, + "ntests": 1210 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.plane_partition": { + "failed": true, + "ntests": 358 + }, + "sage.combinat.posets.cartesian_product": { + "ntests": 75 + }, + "sage.combinat.posets.hasse_cython": { + "ntests": 24 + }, + "sage.combinat.posets.hasse_diagram": { + "ntests": 512 + }, + "sage.combinat.posets.lattices": { + "ntests": 4 + }, + "sage.combinat.posets.linear_extension_iterator": { + "ntests": 13 + }, + "sage.combinat.posets.linear_extensions": { + "failed": true, + "ntests": 174 + }, + "sage.combinat.posets.mobile": { + "ntests": 36 + }, + "sage.combinat.posets.poset_examples": { + "ntests": 12 + }, + "sage.combinat.posets.posets": { + "ntests": 59 + }, + "sage.combinat.q_analogues": { + "failed": true, + "ntests": 123 + }, + "sage.combinat.q_bernoulli": { + "ntests": 15 + }, + "sage.combinat.quickref": { + "ntests": 20 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.restricted_growth": { + "ntests": 10 + }, + "sage.combinat.ribbon_shaped_tableau": { + "failed": true, + "ntests": 44 + }, + "sage.combinat.ribbon_tableau": { + "ntests": 169 + }, + "sage.combinat.rigged_configurations.kleber_tree": { + "ntests": 1 + }, + "sage.combinat.rooted_tree": { + "ntests": 162 + }, + "sage.combinat.set_partition": { + "ntests": 423 + }, + "sage.combinat.set_partition_iterator": { + "ntests": 7 + }, + "sage.combinat.set_partition_ordered": { + "ntests": 241 + }, + "sage.combinat.sf.elementary": { + "ntests": 2 + }, + "sage.combinat.sf.homogeneous": { + "ntests": 2 + }, + "sage.combinat.sf.monomial": { + "ntests": 2 + }, + "sage.combinat.sf.ns_macdonald": { + "ntests": 7 + }, + "sage.combinat.sf.powersum": { + "ntests": 5 + }, + "sage.combinat.sf.schur": { + "ntests": 3 + }, + "sage.combinat.sf.sfa": { + "ntests": 7 + }, + "sage.combinat.shard_order": { + "ntests": 40 + }, + "sage.combinat.shifted_primed_tableau": { + "ntests": 1 + }, + "sage.combinat.shuffle": { + "failed": true, + "ntests": 134 + }, + "sage.combinat.sidon_sets": { + "ntests": 22 + }, + "sage.combinat.sine_gordon": { + "ntests": 33 + }, + "sage.combinat.six_vertex_model": { + "ntests": 51 + }, + "sage.combinat.skew_partition": { + "failed": true, + "ntests": 289 + }, + "sage.combinat.skew_tableau": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.species.characteristic_species": { + "ntests": 79 + }, + "sage.combinat.species.composition_species": { + "ntests": 56 + }, + "sage.combinat.species.cycle_species": { + "failed": true, + "ntests": 44 + }, + "sage.combinat.species.empty_species": { + "ntests": 35 + }, + "sage.combinat.species.functorial_composition_species": { + "ntests": 23 + }, + "sage.combinat.species.generating_series": { + "ntests": 106 + }, + "sage.combinat.species.library": { + "ntests": 19 + }, + "sage.combinat.species.linear_order_species": { + "ntests": 29 + }, + "sage.combinat.species.partition_species": { + "ntests": 2 + }, + "sage.combinat.species.permutation_species": { + "ntests": 3 + }, + "sage.combinat.species.product_species": { + "failed": true, + "ntests": 69 + }, + "sage.combinat.species.recursive_species": { + "failed": true, + "ntests": 131 + }, + "sage.combinat.species.set_species": { + "ntests": 33 + }, + "sage.combinat.species.species": { + "failed": true, + "ntests": 142 + }, + "sage.combinat.species.structure": { + "ntests": 88 + }, + "sage.combinat.species.subset_species": { + "ntests": 42 + }, + "sage.combinat.species.sum_species": { + "failed": true, + "ntests": 45 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.subword": { + "ntests": 108 + }, + "sage.combinat.subword_complex": { + "ntests": 72 + }, + "sage.combinat.super_tableau": { + "ntests": 139 + }, + "sage.combinat.superpartition": { + "ntests": 182 + }, + "sage.combinat.symmetric_group_representations": { + "ntests": 26 + }, + "sage.combinat.t_sequences": { + "ntests": 86 + }, + "sage.combinat.tableau": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.tableau_residues": { + "ntests": 121 + }, + "sage.combinat.tableau_tuple": { + "failed": true, + "ntests": 674 + }, + "sage.combinat.tamari_lattices": { + "ntests": 1 + }, + "sage.combinat.tiling": { + "ntests": 5 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.triangles_FHM": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.combinat.tutorial": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.vector_partition": { + "ntests": 37 + }, + "sage.combinat.words.abstract_word": { + "ntests": 375 + }, + "sage.combinat.words.alphabet": { + "ntests": 36 + }, + "sage.combinat.words.finite_word": { + "failed": true, + "ntests": 1345 + }, + "sage.combinat.words.infinite_word": { + "ntests": 21 + }, + "sage.combinat.words.lyndon_word": { + "ntests": 95 + }, + "sage.combinat.words.morphic": { + "ntests": 79 + }, + "sage.combinat.words.morphism": { + "ntests": 604 + }, + "sage.combinat.words.paths": { + "ntests": 29 + }, + "sage.combinat.words.shuffle_product": { + "ntests": 56 + }, + "sage.combinat.words.suffix_trees": { + "ntests": 301 + }, + "sage.combinat.words.word": { + "ntests": 169 + }, + "sage.combinat.words.word_char": { + "ntests": 137 + }, + "sage.combinat.words.word_datatypes": { + "ntests": 161 + }, + "sage.combinat.words.word_generators": { + "failed": true, + "ntests": 292 + }, + "sage.combinat.words.word_infinite_datatypes": { + "ntests": 273 + }, + "sage.combinat.words.word_options": { + "ntests": 8 + }, + "sage.combinat.words.words": { + "ntests": 405 + }, + "sage.combinat.yang_baxter_graph": { + "ntests": 189 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.data_structures.bitset": { + "ntests": 425 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.data_structures.stream": { + "ntests": 882 + }, + "sage.databases.knotinfo_db": { + "ntests": 100 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 386 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 303 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 317 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 172 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 99 + }, + "sage.functions.bessel": { + "ntests": 160 + }, + "sage.functions.error": { + "ntests": 94 + }, + "sage.functions.exp_integral": { + "ntests": 156 + }, + "sage.functions.gamma": { + "ntests": 140 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "ntests": 78 + }, + "sage.functions.jacobi": { + "ntests": 38 + }, + "sage.functions.log": { + "ntests": 154 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "ntests": 230 + }, + "sage.functions.other": { + "ntests": 240 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "ntests": 55 + }, + "sage.functions.trig": { + "ntests": 126 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.games.quantumino": { + "ntests": 1 + }, + "sage.games.sudoku_backtrack": { + "ntests": 3 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.graphs.all": { + "ntests": 3 + }, + "sage.graphs.asteroidal_triples": { + "ntests": 13 + }, + "sage.graphs.base.boost_graph": { + "ntests": 204 + }, + "sage.graphs.base.c_graph": { + "ntests": 767 + }, + "sage.graphs.base.dense_graph": { + "ntests": 86 + }, + "sage.graphs.base.graph_backends": { + "ntests": 85 + }, + "sage.graphs.base.overview": { + "ntests": 1 + }, + "sage.graphs.base.sparse_graph": { + "ntests": 119 + }, + "sage.graphs.base.static_dense_graph": { + "ntests": 110 + }, + "sage.graphs.base.static_sparse_backend": { + "ntests": 185 + }, + "sage.graphs.base.static_sparse_graph": { + "failed": true, + "ntests": 59 + }, + "sage.graphs.bipartite_graph": { + "ntests": 372 + }, + "sage.graphs.centrality": { + "ntests": 31 + }, + "sage.graphs.cliquer": { + "ntests": 34 + }, + "sage.graphs.comparability": { + "ntests": 52 + }, + "sage.graphs.connectivity": { + "failed": true, + "ntests": 523 + }, + "sage.graphs.convexity_properties": { + "ntests": 43 + }, + "sage.graphs.digraph": { + "ntests": 551 + }, + "sage.graphs.digraph_generators": { + "failed": true, + "ntests": 138 + }, + "sage.graphs.distances_all_pairs": { + "ntests": 165 + }, + "sage.graphs.domination": { + "failed": true, + "ntests": 144 + }, + "sage.graphs.dot2tex_utils": { + "ntests": 6 + }, + "sage.graphs.edge_connectivity": { + "ntests": 101 + }, + "sage.graphs.generators.basic": { + "ntests": 95 + }, + "sage.graphs.generators.chessboard": { + "ntests": 42 + }, + "sage.graphs.generators.classical_geometries": { + "ntests": 38 + }, + "sage.graphs.generators.degree_sequence": { + "ntests": 13 + }, + "sage.graphs.generators.distance_regular": { + "failed": true, + "ntests": 134 + }, + "sage.graphs.generators.families": { + "ntests": 347 + }, + "sage.graphs.generators.intersection": { + "ntests": 63 + }, + "sage.graphs.generators.platonic_solids": { + "ntests": 6 + }, + "sage.graphs.generators.random": { + "ntests": 156 + }, + "sage.graphs.generators.smallgraphs": { + "ntests": 404 + }, + "sage.graphs.generators.world_map": { + "ntests": 20 + }, + "sage.graphs.generic_graph": { + "failed": true, + "ntests": 3610 + }, + "sage.graphs.generic_graph_pyx": { + "ntests": 139 + }, + "sage.graphs.genus": { + "ntests": 51 + }, + "sage.graphs.graph": { + "failed": true, + "ntests": 1164 + }, + "sage.graphs.graph_coloring": { + "ntests": 152 + }, + "sage.graphs.graph_database": { + "failed": true, + "ntests": 50 + }, + "sage.graphs.graph_decompositions.bandwidth": { + "ntests": 14 + }, + "sage.graphs.graph_decompositions.clique_separators": { + "ntests": 68 + }, + "sage.graphs.graph_decompositions.cutwidth": { + "ntests": 63 + }, + "sage.graphs.graph_decompositions.fast_digraph": { + "ntests": 11 + }, + "sage.graphs.graph_decompositions.graph_products": { + "ntests": 48 + }, + "sage.graphs.graph_decompositions.modular_decomposition": { + "ntests": 151 + }, + "sage.graphs.graph_decompositions.rankwidth": { + "ntests": 23 + }, + "sage.graphs.graph_decompositions.tree_decomposition": { + "ntests": 202 + }, + "sage.graphs.graph_decompositions.vertex_separation": { + "ntests": 182 + }, + "sage.graphs.graph_editor": { + "ntests": 8 + }, + "sage.graphs.graph_generators": { + "ntests": 151 + }, + "sage.graphs.graph_generators_pyx": { + "ntests": 7 + }, + "sage.graphs.graph_input": { + "ntests": 50 + }, + "sage.graphs.graph_latex": { + "ntests": 7 + }, + "sage.graphs.graph_list": { + "failed": true, + "ntests": 58 + }, + "sage.graphs.hyperbolicity": { + "failed": true, + "ntests": 68 + }, + "sage.graphs.hypergraph_generators": { + "ntests": 23 + }, + "sage.graphs.independent_sets": { + "ntests": 56 + }, + "sage.graphs.isgci": { + "failed": true, + "ntests": 84 + }, + "sage.graphs.isoperimetric_inequalities": { + "ntests": 25 + }, + "sage.graphs.line_graph": { + "ntests": 37 + }, + "sage.graphs.lovasz_theta": { + "ntests": 5 + }, + "sage.graphs.orientations": { + "ntests": 28 + }, + "sage.graphs.partial_cube": { + "ntests": 14 + }, + "sage.graphs.path_enumeration": { + "ntests": 267 + }, + "sage.graphs.planarity": { + "ntests": 6 + }, + "sage.graphs.pq_trees": { + "ntests": 90 + }, + "sage.graphs.print_graphs": { + "ntests": 12 + }, + "sage.graphs.schnyder": { + "ntests": 103 + }, + "sage.graphs.spanning_tree": { + "failed": true, + "ntests": 169 + }, + "sage.graphs.strongly_regular_db": { + "failed": true, + "ntests": 249 + }, + "sage.graphs.traversals": { + "ntests": 236 + }, + "sage.graphs.trees": { + "ntests": 25 + }, + "sage.graphs.tutte_polynomial": { + "ntests": 109 + }, + "sage.graphs.views": { + "failed": true, + "ntests": 206 + }, + "sage.graphs.weakly_chordal": { + "ntests": 33 + }, + "sage.groups.generic": { + "ntests": 94 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.indexed_free_group": { + "ntests": 116 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_graphs": { + "ntests": 110 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 4 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.knots.gauss_code": { + "ntests": 18 + }, + "sage.knots.knot": { + "ntests": 34 + }, + "sage.knots.knotinfo": { + "failed": true, + "ntests": 315 + }, + "sage.knots.link": { + "failed": true, + "ntests": 243 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3_controlled": { + "ntests": 221 + }, + "sage.misc.cachefunc": { + "ntests": 698 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 126 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 281 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 219 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 234 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 227 + }, + "sage.misc.lazy_string": { + "ntests": 131 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "failed": true, + "ntests": 134 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 38 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 27 + }, + "sage.misc.sage_eval": { + "failed": true, + "ntests": 31 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 329 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 251 + }, + "sage.modules.module": { + "ntests": 37 + }, + "sage.monoids.automatic_semigroup": { + "ntests": 211 + }, + "sage.monoids.free_abelian_monoid": { + "ntests": 44 + }, + "sage.monoids.free_abelian_monoid_element": { + "ntests": 67 + }, + "sage.monoids.free_monoid": { + "ntests": 50 + }, + "sage.monoids.free_monoid_element": { + "ntests": 59 + }, + "sage.monoids.indexed_free_monoid": { + "ntests": 220 + }, + "sage.monoids.monoid": { + "ntests": 14 + }, + "sage.monoids.string_monoid": { + "failed": true, + "ntests": 111 + }, + "sage.monoids.string_monoid_element": { + "failed": true, + "ntests": 76 + }, + "sage.monoids.string_ops": { + "failed": true, + "ntests": 6 + }, + "sage.monoids.trace_monoid": { + "ntests": 190 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.parallel.decorate": { + "ntests": 86 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 27 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 302 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 32 + }, + "sage.rings.factorint": { + "ntests": 10 + }, + "sage.rings.finite_rings.conway_polynomials": { + "ntests": 20 + }, + "sage.rings.finite_rings.element_base": { + "ntests": 13 + }, + "sage.rings.finite_rings.finite_field_base": { + "ntests": 24 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "ntests": 17 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 28 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 1 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 15 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 536 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 253 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 41 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 225 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 263 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 71 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 158 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 135 + }, + "sage.rings.function_field.ideal": { + "ntests": 92 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 82 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 20 + }, + "sage.rings.function_field.order_rational": { + "ntests": 69 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 7 + }, + "sage.rings.generic": { + "ntests": 50 + }, + "sage.rings.homset": { + "ntests": 37 + }, + "sage.rings.ideal": { + "ntests": 336 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1091 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 197 + }, + "sage.rings.laurent_series_ring": { + "ntests": 145 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 381 + }, + "sage.rings.lazy_series": { + "failed": true, + "ntests": 1445 + }, + "sage.rings.lazy_series_ring": { + "failed": true, + "ntests": 588 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 110 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 444 + }, + "sage.rings.multi_power_series_ring": { + "ntests": 216 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 425 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.padics.local_generic": { + "ntests": 71 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_generic": { + "ntests": 58 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 31 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 278 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 375 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "ntests": 83 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 5 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 465 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "ntests": 263 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 106 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 235 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.polydict": { + "ntests": 393 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1840 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 188 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "ntests": 36 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "ntests": 13 + }, + "sage.rings.polynomial.polynomial_ring": { + "ntests": 389 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 42 + }, + "sage.rings.polynomial.term_order": { + "ntests": 319 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 21 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 256 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 471 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 190 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 181 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 530 + }, + "sage.rings.rational_field": { + "ntests": 189 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 351 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, + "sage.rings.ring": { + "ntests": 337 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 120 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 39 + }, + "sage.sandpiles.examples": { + "ntests": 2 + }, + "sage.sandpiles.sandpile": { + "ntests": 67 + }, + "sage.sat.boolean_polynomials": { + "ntests": 22 + }, + "sage.sat.solvers.cryptominisat": { + "ntests": 31 + }, + "sage.sat.solvers.dimacs": { + "ntests": 177 + }, + "sage.sat.solvers.picosat": { + "ntests": 26 + }, + "sage.sat.solvers.satsolver": { + "ntests": 58 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 282 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 117 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 391 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 180 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 99 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 62 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 58 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 480 + }, + "sage.schemes.projective.projective_point": { + "ntests": 277 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 34 + }, + "sage.schemes.projective.projective_space": { + "ntests": 381 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 233 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 90 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 58 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 349 + }, + "sage.sets.set": { + "ntests": 363 + }, + "sage.sets.set_from_iterator": { + "ntests": 199 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.structure.category_object": { + "ntests": 140 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 310 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "failed": true, + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 566 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 200 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 99 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 159 + }, + "sage.structure.indexed_generators": { + "ntests": 92 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 300 + }, + "sage.structure.parent_gens": { + "ntests": 24 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 5 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "failed": true, + "ntests": 103 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "failed": true, + "ntests": 226 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 168 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.arxiv_0812_2725": { + "ntests": 34 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "ntests": 13 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 4 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.topology.cell_complex": { + "ntests": 133 + }, + "sage.topology.cubical_complex": { + "ntests": 237 + }, + "sage.topology.delta_complex": { + "ntests": 131 + }, + "sage.topology.filtered_simplicial_complex": { + "failed": true, + "ntests": 99 + }, + "sage.topology.moment_angle_complex": { + "ntests": 77 + }, + "sage.topology.simplicial_complex": { + "ntests": 627 + }, + "sage.topology.simplicial_complex_catalog": { + "ntests": 6 + }, + "sage.topology.simplicial_complex_examples": { + "ntests": 139 + }, + "sage.topology.simplicial_complex_homset": { + "ntests": 47 + }, + "sage.topology.simplicial_complex_morphism": { + "ntests": 203 + }, + "sage.topology.simplicial_set": { + "ntests": 774 + }, + "sage.topology.simplicial_set_catalog": { + "ntests": 6 + }, + "sage.topology.simplicial_set_constructions": { + "ntests": 388 + }, + "sage.topology.simplicial_set_examples": { + "ntests": 71 + }, + "sage.topology.simplicial_set_morphism": { + "ntests": 281 + }, + "sage.typeset.ascii_art": { + "failed": true, + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 58 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-combinat/known-test-failures--modules.json b/pkgs/sagemath-combinat/known-test-failures--modules.json new file mode 100644 index 00000000000..d073480159e --- /dev/null +++ b/pkgs/sagemath-combinat/known-test-failures--modules.json @@ -0,0 +1,4122 @@ +{ + "sage.algebras.affine_nil_temperley_lieb": { + "failed": true, + "ntests": 53 + }, + "sage.algebras.algebra": { + "ntests": 3 + }, + "sage.algebras.askey_wilson": { + "ntests": 156 + }, + "sage.algebras.associated_graded": { + "ntests": 46 + }, + "sage.algebras.cellular_basis": { + "failed": true, + "ntests": 51 + }, + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.cluster_algebra": { + "ntests": 1 + }, + "sage.algebras.commutative_dga": { + "failed": true, + "ntests": 623 + }, + "sage.algebras.down_up_algebra": { + "failed": true, + "ntests": 200 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "failed": true, + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.finite_gca": { + "failed": true, + "ntests": 97 + }, + "sage.algebras.free_algebra": { + "failed": true, + "ntests": 249 + }, + "sage.algebras.free_algebra_element": { + "ntests": 42 + }, + "sage.algebras.free_algebra_quotient": { + "failed": true, + "ntests": 74 + }, + "sage.algebras.free_algebra_quotient_element": { + "failed": true, + "ntests": 41 + }, + "sage.algebras.free_zinbiel_algebra": { + "failed": true, + "ntests": 170 + }, + "sage.algebras.hall_algebra": { + "ntests": 180 + }, + "sage.algebras.hecke_algebras.ariki_koike_algebra": { + "failed": true, + "ntests": 242 + }, + "sage.algebras.hecke_algebras.cubic_hecke_algebra": { + "ntests": 31 + }, + "sage.algebras.hecke_algebras.cubic_hecke_matrix_rep": { + "failed": true, + "ntests": 134 + }, + "sage.algebras.iwahori_hecke_algebra": { + "ntests": 14 + }, + "sage.algebras.jordan_algebra": { + "failed": true, + "ntests": 365 + }, + "sage.algebras.lie_algebras.lie_algebra_element": { + "failed": true, + "ntests": 455 + }, + "sage.algebras.lie_conformal_algebras.abelian_lie_conformal_algebra": { + "failed": true, + "ntests": 8 + }, + "sage.algebras.lie_conformal_algebras.affine_lie_conformal_algebra": { + "failed": true, + "ntests": 13 + }, + "sage.algebras.lie_conformal_algebras.bosonic_ghosts_lie_conformal_algebra": { + "failed": true, + "ntests": 10 + }, + "sage.algebras.lie_conformal_algebras.fermionic_ghosts_lie_conformal_algebra": { + "failed": true, + "ntests": 11 + }, + "sage.algebras.lie_conformal_algebras.finitely_freely_generated_lca": { + "failed": true, + "ntests": 11 + }, + "sage.algebras.lie_conformal_algebras.free_bosons_lie_conformal_algebra": { + "failed": true, + "ntests": 15 + }, + "sage.algebras.lie_conformal_algebras.free_fermions_lie_conformal_algebra": { + "failed": true, + "ntests": 13 + }, + "sage.algebras.lie_conformal_algebras.freely_generated_lie_conformal_algebra": { + "failed": true, + "ntests": 10 + }, + "sage.algebras.lie_conformal_algebras.graded_lie_conformal_algebra": { + "failed": true, + "ntests": 8 + }, + "sage.algebras.lie_conformal_algebras.lie_conformal_algebra": { + "failed": true, + "ntests": 29 + }, + "sage.algebras.lie_conformal_algebras.lie_conformal_algebra_element": { + "failed": true, + "ntests": 31 + }, + "sage.algebras.lie_conformal_algebras.lie_conformal_algebra_with_basis": { + "failed": true, + "ntests": 12 + }, + "sage.algebras.lie_conformal_algebras.lie_conformal_algebra_with_structure_coefs": { + "failed": true, + "ntests": 25 + }, + "sage.algebras.lie_conformal_algebras.neveu_schwarz_lie_conformal_algebra": { + "failed": true, + "ntests": 8 + }, + "sage.algebras.lie_conformal_algebras.virasoro_lie_conformal_algebra": { + "failed": true, + "ntests": 8 + }, + "sage.algebras.lie_conformal_algebras.weyl_lie_conformal_algebra": { + "failed": true, + "ntests": 19 + }, + "sage.algebras.nil_coxeter_algebra": { + "failed": true, + "ntests": 31 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "ntests": 72 + }, + "sage.algebras.orlik_terao": { + "failed": true, + "ntests": 80 + }, + "sage.algebras.quantum_clifford": { + "failed": true, + "ntests": 165 + }, + "sage.algebras.quantum_groups.ace_quantum_onsager": { + "ntests": 126 + }, + "sage.algebras.quantum_groups.fock_space": { + "failed": true, + "ntests": 447 + }, + "sage.algebras.quantum_groups.q_numbers": { + "ntests": 23 + }, + "sage.algebras.quantum_matrix_coordinate_algebra": { + "ntests": 162 + }, + "sage.algebras.quaternion_algebra": { + "failed": true, + "ntests": 3 + }, + "sage.algebras.quaternion_algebra_element": { + "failed": true, + "ntests": 10 + }, + "sage.algebras.rational_cherednik_algebra": { + "failed": true, + "ntests": 41 + }, + "sage.algebras.shuffle_algebra": { + "ntests": 201 + }, + "sage.algebras.steenrod.steenrod_algebra": { + "failed": true, + "ntests": 696 + }, + "sage.algebras.steenrod.steenrod_algebra_bases": { + "failed": true, + "ntests": 83 + }, + "sage.algebras.steenrod.steenrod_algebra_misc": { + "ntests": 100 + }, + "sage.algebras.tensor_algebra": { + "ntests": 153 + }, + "sage.algebras.weyl_algebra": { + "failed": true, + "ntests": 220 + }, + "sage.algebras.yangian": { + "failed": true, + "ntests": 153 + }, + "sage.algebras.yokonuma_hecke_algebra": { + "ntests": 63 + }, + "sage.all__sagemath_combinat": { + "ntests": 3 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 906 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "failed": true, + "ntests": 77 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 4 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.riemann": { + "ntests": 13 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 110 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "failed": true, + "ntests": 66 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 155 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 2 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 25 + }, + "sage.categories.algebras_with_basis": { + "ntests": 53 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 12 + }, + "sage.categories.bialgebras_with_basis": { + "failed": true, + "ntests": 45 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 84 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "failed": true, + "ntests": 31 + }, + "sage.categories.coalgebras": { + "ntests": 48 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 17 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 16 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "ntests": 38 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 28 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "ntests": 362 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "ntests": 2 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 162 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.algebras_with_basis": { + "ntests": 13 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "ntests": 25 + }, + "sage.categories.examples.filtered_modules_with_basis": { + "ntests": 16 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graded_modules_with_basis": { + "ntests": 18 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.lie_algebras_with_basis": { + "ntests": 28 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.examples.with_realizations": { + "failed": true, + "ntests": 90 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "failed": true, + "ntests": 109 + }, + "sage.categories.filtered_algebras": { + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "ntests": 112 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "ntests": 236 + }, + "sage.categories.finite_complex_reflection_groups": { + "failed": true, + "ntests": 183 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "failed": true, + "ntests": 79 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "failed": true, + "ntests": 37 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "failed": true, + "ntests": 218 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 108 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "failed": true, + "ntests": 29 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "failed": true, + "ntests": 130 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 4 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "failed": true, + "ntests": 15 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "failed": true, + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "ntests": 128 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "failed": true, + "ntests": 37 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 50 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 25 + }, + "sage.categories.groups": { + "ntests": 48 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 209 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "failed": true, + "ntests": 19 + }, + "sage.categories.hopf_algebras_with_basis": { + "failed": true, + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "failed": true, + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "failed": true, + "ntests": 45 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "failed": true, + "ntests": 10 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "failed": true, + "ntests": 113 + }, + "sage.categories.lie_algebras_with_basis": { + "failed": true, + "ntests": 24 + }, + "sage.categories.lie_conformal_algebras": { + "failed": true, + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "failed": true, + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "failed": true, + "ntests": 153 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 39 + }, + "sage.categories.manifolds": { + "failed": true, + "ntests": 55 + }, + "sage.categories.map": { + "failed": true, + "ntests": 380 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "failed": true, + "ntests": 148 + }, + "sage.categories.modules_with_basis": { + "failed": true, + "ntests": 509 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 85 + }, + "sage.categories.morphism": { + "ntests": 104 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.primer": { + "ntests": 163 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 746 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 81 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 27 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "ntests": 183 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 106 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "failed": true, + "ntests": 472 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 54 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "failed": true, + "ntests": 16 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "failed": true, + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "failed": true, + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 33 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 42 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "failed": true, + "ntests": 34 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "failed": true, + "ntests": 56 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.binary_code": { + "ntests": 1 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 44 + }, + "sage.coding.code_constructions": { + "ntests": 30 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "ntests": 1 + }, + "sage.coding.databases": { + "ntests": 2 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 2 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.golay_code": { + "ntests": 2 + }, + "sage.coding.goppa_code": { + "ntests": 1 + }, + "sage.coding.grs_code": { + "ntests": 1 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 2 + }, + "sage.coding.kasami_codes": { + "ntests": 2 + }, + "sage.coding.linear_code": { + "ntests": 44 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 2 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.combinat.alternating_sign_matrix": { + "failed": true, + "ntests": 313 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.baxter_permutations": { + "ntests": 35 + }, + "sage.combinat.binary_recurrence_sequences": { + "failed": true, + "ntests": 93 + }, + "sage.combinat.blob_algebra": { + "ntests": 97 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.chas.fsym": { + "failed": true, + "ntests": 227 + }, + "sage.combinat.chas.wqsym": { + "failed": true, + "ntests": 391 + }, + "sage.combinat.colored_permutations": { + "failed": true, + "ntests": 328 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 431 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "failed": true, + "ntests": 299 + }, + "sage.combinat.composition_signed": { + "ntests": 20 + }, + "sage.combinat.composition_tableau": { + "ntests": 100 + }, + "sage.combinat.core": { + "failed": true, + "ntests": 138 + }, + "sage.combinat.crystals.affine": { + "failed": true, + "ntests": 233 + }, + "sage.combinat.crystals.affine_factorization": { + "failed": true, + "ntests": 80 + }, + "sage.combinat.crystals.affinization": { + "failed": true, + "ntests": 58 + }, + "sage.combinat.crystals.alcove_path": { + "failed": true, + "ntests": 293 + }, + "sage.combinat.crystals.bkk_crystals": { + "failed": true, + "ntests": 12 + }, + "sage.combinat.crystals.crystals": { + "failed": true, + "ntests": 25 + }, + "sage.combinat.crystals.direct_sum": { + "failed": true, + "ntests": 57 + }, + "sage.combinat.crystals.elementary_crystals": { + "failed": true, + "ntests": 249 + }, + "sage.combinat.crystals.fast_crystals": { + "failed": true, + "ntests": 78 + }, + "sage.combinat.crystals.fully_commutative_stable_grothendieck": { + "failed": true, + "ntests": 249 + }, + "sage.combinat.crystals.generalized_young_walls": { + "failed": true, + "ntests": 165 + }, + "sage.combinat.crystals.highest_weight_crystals": { + "failed": true, + "ntests": 111 + }, + "sage.combinat.crystals.induced_structure": { + "failed": true, + "ntests": 196 + }, + "sage.combinat.crystals.infinity_crystals": { + "failed": true, + "ntests": 110 + }, + "sage.combinat.crystals.kac_modules": { + "failed": true, + "ntests": 146 + }, + "sage.combinat.crystals.kirillov_reshetikhin": { + "failed": true, + "ntests": 765 + }, + "sage.combinat.crystals.kyoto_path_model": { + "failed": true, + "ntests": 109 + }, + "sage.combinat.crystals.letters": { + "failed": true, + "ntests": 387 + }, + "sage.combinat.crystals.littelmann_path": { + "failed": true, + "ntests": 304 + }, + "sage.combinat.crystals.monomial_crystals": { + "failed": true, + "ntests": 243 + }, + "sage.combinat.crystals.multisegments": { + "failed": true, + "ntests": 60 + }, + "sage.combinat.crystals.mv_polytopes": { + "failed": true, + "ntests": 62 + }, + "sage.combinat.crystals.pbw_crystal": { + "failed": true, + "ntests": 113 + }, + "sage.combinat.crystals.pbw_datum": { + "failed": true, + "ntests": 84 + }, + "sage.combinat.crystals.polyhedral_realization": { + "failed": true, + "ntests": 49 + }, + "sage.combinat.crystals.spins": { + "failed": true, + "ntests": 101 + }, + "sage.combinat.crystals.star_crystal": { + "failed": true, + "ntests": 52 + }, + "sage.combinat.crystals.subcrystal": { + "failed": true, + "ntests": 75 + }, + "sage.combinat.crystals.tensor_product": { + "failed": true, + "ntests": 197 + }, + "sage.combinat.crystals.tensor_product_element": { + "failed": true, + "ntests": 320 + }, + "sage.combinat.crystals.virtual_crystal": { + "failed": true, + "ntests": 103 + }, + "sage.combinat.cyclic_sieving_phenomenon": { + "ntests": 27 + }, + "sage.combinat.debruijn_sequence": { + "ntests": 28 + }, + "sage.combinat.decorated_permutation": { + "ntests": 35 + }, + "sage.combinat.degree_sequences": { + "ntests": 28 + }, + "sage.combinat.derangements": { + "ntests": 87 + }, + "sage.combinat.descent_algebra": { + "failed": true, + "ntests": 145 + }, + "sage.combinat.diagram": { + "failed": true, + "ntests": 244 + }, + "sage.combinat.diagram_algebras": { + "failed": true, + "ntests": 932 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.dyck_word": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.e_one_star": { + "failed": true, + "ntests": 353 + }, + "sage.combinat.expnums": { + "ntests": 7 + }, + "sage.combinat.fast_vector_partitions": { + "ntests": 16 + }, + "sage.combinat.fqsym": { + "failed": true, + "ntests": 335 + }, + "sage.combinat.free_dendriform_algebra": { + "failed": true, + "ntests": 169 + }, + "sage.combinat.free_module": { + "failed": true, + "ntests": 423 + }, + "sage.combinat.fully_commutative_elements": { + "failed": true, + "ntests": 118 + }, + "sage.combinat.fully_packed_loop": { + "failed": true, + "ntests": 221 + }, + "sage.combinat.gelfand_tsetlin_patterns": { + "ntests": 220 + }, + "sage.combinat.gray_codes": { + "failed": true, + "ntests": 26 + }, + "sage.combinat.hall_polynomial": { + "ntests": 10 + }, + "sage.combinat.hillman_grassl": { + "ntests": 98 + }, + "sage.combinat.integer_lists.base": { + "failed": true, + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_matrices": { + "ntests": 51 + }, + "sage.combinat.integer_vector": { + "failed": true, + "ntests": 249 + }, + "sage.combinat.integer_vector_weighted": { + "ntests": 64 + }, + "sage.combinat.k_tableau": { + "failed": true, + "ntests": 910 + }, + "sage.combinat.kazhdan_lusztig": { + "failed": true, + "ntests": 26 + }, + "sage.combinat.key_polynomial": { + "failed": true, + "ntests": 189 + }, + "sage.combinat.knutson_tao_puzzles": { + "ntests": 384 + }, + "sage.combinat.matrices.dancing_links": { + "failed": true, + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.misc": { + "ntests": 82 + }, + "sage.combinat.multiset_partition_into_sets_ordered": { + "failed": true, + "ntests": 570 + }, + "sage.combinat.ncsf_qsym.combinatorics": { + "failed": true, + "ntests": 31 + }, + "sage.combinat.ncsf_qsym.generic_basis_code": { + "failed": true, + "ntests": 294 + }, + "sage.combinat.ncsf_qsym.ncsf": { + "failed": true, + "ntests": 865 + }, + "sage.combinat.ncsf_qsym.qsym": { + "failed": true, + "ntests": 630 + }, + "sage.combinat.ncsf_qsym.tutorial": { + "failed": true, + "ntests": 92 + }, + "sage.combinat.ncsym.bases": { + "failed": true, + "ntests": 164 + }, + "sage.combinat.ncsym.dual": { + "failed": true, + "ntests": 76 + }, + "sage.combinat.ncsym.ncsym": { + "failed": true, + "ntests": 292 + }, + "sage.combinat.necklace": { + "ntests": 76 + }, + "sage.combinat.non_decreasing_parking_function": { + "ntests": 122 + }, + "sage.combinat.nu_dyck_word": { + "ntests": 179 + }, + "sage.combinat.output": { + "ntests": 66 + }, + "sage.combinat.parallelogram_polyomino": { + "failed": true, + "ntests": 607 + }, + "sage.combinat.parking_functions": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.partition": { + "failed": true, + "ntests": 1336 + }, + "sage.combinat.partition_algebra": { + "failed": true, + "ntests": 312 + }, + "sage.combinat.partition_kleshchev": { + "failed": true, + "ntests": 318 + }, + "sage.combinat.partition_shifting_algebras": { + "failed": true, + "ntests": 108 + }, + "sage.combinat.partition_tuple": { + "ntests": 394 + }, + "sage.combinat.partitions": { + "ntests": 8 + }, + "sage.combinat.path_tableaux.dyck_path": { + "ntests": 52 + }, + "sage.combinat.path_tableaux.frieze": { + "ntests": 62 + }, + "sage.combinat.path_tableaux.path_tableau": { + "ntests": 97 + }, + "sage.combinat.path_tableaux.semistandard": { + "failed": true, + "ntests": 82 + }, + "sage.combinat.perfect_matching": { + "ntests": 127 + }, + "sage.combinat.permutation": { + "ntests": 1220 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.plane_partition": { + "failed": true, + "ntests": 358 + }, + "sage.combinat.q_analogues": { + "failed": true, + "ntests": 123 + }, + "sage.combinat.q_bernoulli": { + "ntests": 15 + }, + "sage.combinat.quickref": { + "ntests": 20 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.recognizable_series": { + "ntests": 333 + }, + "sage.combinat.restricted_growth": { + "ntests": 10 + }, + "sage.combinat.ribbon_shaped_tableau": { + "ntests": 44 + }, + "sage.combinat.ribbon_tableau": { + "ntests": 169 + }, + "sage.combinat.rigged_configurations.bij_abstract_class": { + "failed": true, + "ntests": 66 + }, + "sage.combinat.rigged_configurations.bij_infinity": { + "failed": true, + "ntests": 46 + }, + "sage.combinat.rigged_configurations.bij_type_A": { + "failed": true, + "ntests": 19 + }, + "sage.combinat.rigged_configurations.bij_type_A2_dual": { + "failed": true, + "ntests": 19 + }, + "sage.combinat.rigged_configurations.bij_type_A2_even": { + "failed": true, + "ntests": 19 + }, + "sage.combinat.rigged_configurations.bij_type_A2_odd": { + "failed": true, + "ntests": 19 + }, + "sage.combinat.rigged_configurations.bij_type_B": { + "failed": true, + "ntests": 41 + }, + "sage.combinat.rigged_configurations.bij_type_C": { + "failed": true, + "ntests": 28 + }, + "sage.combinat.rigged_configurations.bij_type_D": { + "failed": true, + "ntests": 79 + }, + "sage.combinat.rigged_configurations.bij_type_D_tri": { + "failed": true, + "ntests": 19 + }, + "sage.combinat.rigged_configurations.bij_type_D_twisted": { + "failed": true, + "ntests": 29 + }, + "sage.combinat.rigged_configurations.bij_type_E67": { + "failed": true, + "ntests": 68 + }, + "sage.combinat.rigged_configurations.bijection": { + "failed": true, + "ntests": 6 + }, + "sage.combinat.rigged_configurations.kleber_tree": { + "ntests": 1 + }, + "sage.combinat.rigged_configurations.kr_tableaux": { + "failed": true, + "ntests": 240 + }, + "sage.combinat.rigged_configurations.rc_crystal": { + "failed": true, + "ntests": 83 + }, + "sage.combinat.rigged_configurations.rc_infinity": { + "failed": true, + "ntests": 109 + }, + "sage.combinat.rigged_configurations.rigged_configuration_element": { + "failed": true, + "ntests": 278 + }, + "sage.combinat.rigged_configurations.rigged_configurations": { + "failed": true, + "ntests": 225 + }, + "sage.combinat.rigged_configurations.rigged_partition": { + "failed": true, + "ntests": 82 + }, + "sage.combinat.rigged_configurations.tensor_product_kr_tableaux": { + "failed": true, + "ntests": 91 + }, + "sage.combinat.rigged_configurations.tensor_product_kr_tableaux_element": { + "failed": true, + "ntests": 75 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 55 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 402 + }, + "sage.combinat.root_system.coxeter_group": { + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.hecke_algebra_representation": { + "ntests": 1 + }, + "sage.combinat.root_system.integrable_representations": { + "ntests": 5 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "ntests": 17 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 284 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "failed": true, + "ntests": 489 + }, + "sage.combinat.root_system.root_space": { + "ntests": 72 + }, + "sage.combinat.root_system.root_system": { + "ntests": 117 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 19 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 67 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 31 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 130 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.rsk": { + "failed": true, + "ntests": 504 + }, + "sage.combinat.schubert_polynomial": { + "failed": true, + "ntests": 103 + }, + "sage.combinat.set_partition": { + "ntests": 428 + }, + "sage.combinat.set_partition_iterator": { + "ntests": 7 + }, + "sage.combinat.set_partition_ordered": { + "ntests": 241 + }, + "sage.combinat.sf.character": { + "failed": true, + "ntests": 90 + }, + "sage.combinat.sf.classical": { + "failed": true, + "ntests": 27 + }, + "sage.combinat.sf.dual": { + "failed": true, + "ntests": 133 + }, + "sage.combinat.sf.elementary": { + "ntests": 48 + }, + "sage.combinat.sf.hall_littlewood": { + "failed": true, + "ntests": 194 + }, + "sage.combinat.sf.hecke": { + "failed": true, + "ntests": 53 + }, + "sage.combinat.sf.homogeneous": { + "ntests": 47 + }, + "sage.combinat.sf.jack": { + "failed": true, + "ntests": 239 + }, + "sage.combinat.sf.k_dual": { + "failed": true, + "ntests": 276 + }, + "sage.combinat.sf.kfpoly": { + "ntests": 61 + }, + "sage.combinat.sf.llt": { + "failed": true, + "ntests": 116 + }, + "sage.combinat.sf.macdonald": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.sf.monomial": { + "failed": true, + "ntests": 68 + }, + "sage.combinat.sf.multiplicative": { + "ntests": 17 + }, + "sage.combinat.sf.new_kschur": { + "failed": true, + "ntests": 309 + }, + "sage.combinat.sf.ns_macdonald": { + "failed": true, + "ntests": 157 + }, + "sage.combinat.sf.orthogonal": { + "failed": true, + "ntests": 58 + }, + "sage.combinat.sf.orthotriang": { + "failed": true, + "ntests": 49 + }, + "sage.combinat.sf.powersum": { + "ntests": 116 + }, + "sage.combinat.sf.schur": { + "failed": true, + "ntests": 104 + }, + "sage.combinat.sf.sf": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.sf.sfa": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.sf.symplectic": { + "failed": true, + "ntests": 58 + }, + "sage.combinat.sf.witt": { + "ntests": 267 + }, + "sage.combinat.shifted_primed_tableau": { + "failed": true, + "ntests": 479 + }, + "sage.combinat.shuffle": { + "failed": true, + "ntests": 134 + }, + "sage.combinat.sidon_sets": { + "ntests": 22 + }, + "sage.combinat.similarity_class_type": { + "failed": true, + "ntests": 223 + }, + "sage.combinat.sine_gordon": { + "ntests": 33 + }, + "sage.combinat.six_vertex_model": { + "ntests": 51 + }, + "sage.combinat.skew_partition": { + "failed": true, + "ntests": 272 + }, + "sage.combinat.skew_tableau": { + "ntests": 376 + }, + "sage.combinat.species.characteristic_species": { + "ntests": 79 + }, + "sage.combinat.species.composition_species": { + "failed": true, + "ntests": 56 + }, + "sage.combinat.species.cycle_species": { + "failed": true, + "ntests": 44 + }, + "sage.combinat.species.empty_species": { + "ntests": 35 + }, + "sage.combinat.species.functorial_composition_species": { + "failed": true, + "ntests": 23 + }, + "sage.combinat.species.generating_series": { + "failed": true, + "ntests": 130 + }, + "sage.combinat.species.library": { + "failed": true, + "ntests": 19 + }, + "sage.combinat.species.linear_order_species": { + "ntests": 29 + }, + "sage.combinat.species.product_species": { + "ntests": 69 + }, + "sage.combinat.species.recursive_species": { + "ntests": 131 + }, + "sage.combinat.species.set_species": { + "ntests": 33 + }, + "sage.combinat.species.species": { + "failed": true, + "ntests": 137 + }, + "sage.combinat.species.structure": { + "ntests": 88 + }, + "sage.combinat.species.subset_species": { + "ntests": 42 + }, + "sage.combinat.species.sum_species": { + "ntests": 45 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.subword": { + "ntests": 108 + }, + "sage.combinat.subword_complex": { + "ntests": 72 + }, + "sage.combinat.subword_complex_c": { + "failed": true, + "ntests": 14 + }, + "sage.combinat.super_tableau": { + "ntests": 139 + }, + "sage.combinat.superpartition": { + "ntests": 182 + }, + "sage.combinat.symmetric_group_representations": { + "ntests": 26 + }, + "sage.combinat.t_sequences": { + "ntests": 86 + }, + "sage.combinat.tableau": { + "failed": true, + "ntests": 1383 + }, + "sage.combinat.tableau_residues": { + "ntests": 121 + }, + "sage.combinat.tableau_tuple": { + "ntests": 674 + }, + "sage.combinat.tiling": { + "failed": true, + "ntests": 460 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.triangles_FHM": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.combinat.tutorial": { + "failed": true, + "ntests": 230 + }, + "sage.combinat.vector_partition": { + "ntests": 37 + }, + "sage.combinat.words.abstract_word": { + "ntests": 375 + }, + "sage.combinat.words.alphabet": { + "ntests": 36 + }, + "sage.combinat.words.finite_word": { + "failed": true, + "ntests": 1345 + }, + "sage.combinat.words.infinite_word": { + "ntests": 21 + }, + "sage.combinat.words.lyndon_word": { + "ntests": 95 + }, + "sage.combinat.words.morphic": { + "ntests": 79 + }, + "sage.combinat.words.morphism": { + "failed": true, + "ntests": 609 + }, + "sage.combinat.words.paths": { + "failed": true, + "ntests": 512 + }, + "sage.combinat.words.shuffle_product": { + "ntests": 56 + }, + "sage.combinat.words.suffix_trees": { + "ntests": 301 + }, + "sage.combinat.words.word": { + "ntests": 169 + }, + "sage.combinat.words.word_char": { + "ntests": 137 + }, + "sage.combinat.words.word_datatypes": { + "ntests": 161 + }, + "sage.combinat.words.word_generators": { + "failed": true, + "ntests": 292 + }, + "sage.combinat.words.word_infinite_datatypes": { + "ntests": 273 + }, + "sage.combinat.words.word_options": { + "ntests": 8 + }, + "sage.combinat.words.words": { + "ntests": 405 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.boolean_function": { + "ntests": 202 + }, + "sage.crypto.cipher": { + "ntests": 2 + }, + "sage.crypto.classical": { + "ntests": 616 + }, + "sage.crypto.classical_cipher": { + "ntests": 91 + }, + "sage.crypto.cryptosystem": { + "ntests": 75 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 18 + }, + "sage.crypto.lwe": { + "ntests": 4 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "ntests": 16 + }, + "sage.crypto.mq.sr": { + "ntests": 24 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 76 + }, + "sage.crypto.sbox": { + "ntests": 10 + }, + "sage.crypto.util": { + "ntests": 82 + }, + "sage.data_structures.bitset": { + "ntests": 425 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.data_structures.stream": { + "failed": true, + "ntests": 977 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "failed": true, + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 303 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "failed": true, + "ntests": 183 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "failed": true, + "ntests": 97 + }, + "sage.functions.bessel": { + "failed": true, + "ntests": 172 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 156 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 136 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "failed": true, + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 78 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 157 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 237 + }, + "sage.functions.other": { + "failed": true, + "ntests": 247 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "failed": true, + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 58 + }, + "sage.functions.trig": { + "failed": true, + "ntests": 128 + }, + "sage.functions.wigner": { + "failed": true, + "ntests": 24 + }, + "sage.games.quantumino": { + "failed": true, + "ntests": 59 + }, + "sage.games.sudoku": { + "ntests": 96 + }, + "sage.games.sudoku_backtrack": { + "ntests": 3 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 281 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 23 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 2 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 55 + }, + "sage.groups.abelian_gps.values": { + "ntests": 65 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "ntests": 97 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 92 + }, + "sage.groups.galois_group": { + "ntests": 54 + }, + "sage.groups.generic": { + "ntests": 94 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.indexed_free_group": { + "ntests": 116 + }, + "sage.groups.matrix_gps.coxeter_group": { + "ntests": 10 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 47 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 33 + }, + "sage.groups.matrix_gps.linear": { + "failed": true, + "ntests": 24 + }, + "sage.groups.matrix_gps.matrix_group": { + "ntests": 45 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 21 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 44 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 27 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 251 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 87 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.hochschild_complex": { + "failed": true, + "ntests": 170 + }, + "sage.homology.homology_group": { + "ntests": 22 + }, + "sage.homology.homology_vector_space_with_basis": { + "ntests": 6 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "failed": true, + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 4 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "failed": true, + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "failed": true, + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.libs.symmetrica.kostka.pxi": { + "ntests": 13 + }, + "sage.libs.symmetrica.sb.pxi": { + "ntests": 15 + }, + "sage.libs.symmetrica.sc.pxi": { + "ntests": 12 + }, + "sage.libs.symmetrica.schur.pxi": { + "ntests": 33 + }, + "sage.libs.symmetrica.symmetrica.pxi": { + "failed": true, + "ntests": 0 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 134 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.constructor": { + "failed": true, + "ntests": 128 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 819 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 425 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 1985 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 25 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 59 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_polynomial_dense": { + "failed": true, + "ntests": 437 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 423 + }, + "sage.matrix.matrix_sparse": { + "failed": true, + "ntests": 159 + }, + "sage.matrix.misc_mpfr": { + "failed": true, + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 90 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 436 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "failed": true, + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 181 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 129 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.graphic_matroid": { + "ntests": 4 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 614 + }, + "sage.matroids.matroid": { + "failed": true, + "ntests": 868 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 22 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 59 + }, + "sage.matroids.utilities": { + "ntests": 58 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 150 + }, + "sage.misc.cachefunc": { + "ntests": 698 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 40 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 306 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 243 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 227 + }, + "sage.misc.lazy_string": { + "ntests": 131 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 141 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 38 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 29 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, + "sage.misc.sage_eval": { + "failed": true, + "ntests": 31 + }, + "sage.misc.sage_input": { + "failed": true, + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 250 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 435 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 170 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1455 + }, + "sage.modules.free_module_element": { + "failed": true, + "ntests": 873 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 163 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 133 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 400 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "failed": true, + "ntests": 122 + }, + "sage.modules.quotient_module": { + "ntests": 122 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 173 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 2 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_modn_dense": { + "ntests": 59 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 4 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 1 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "ntests": 151 + }, + "sage.modules.with_basis.cell_module": { + "failed": true, + "ntests": 74 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 218 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.monoids.automatic_semigroup": { + "ntests": 222 + }, + "sage.monoids.free_abelian_monoid": { + "ntests": 44 + }, + "sage.monoids.free_abelian_monoid_element": { + "ntests": 67 + }, + "sage.monoids.free_monoid": { + "ntests": 50 + }, + "sage.monoids.free_monoid_element": { + "ntests": 59 + }, + "sage.monoids.indexed_free_monoid": { + "ntests": 220 + }, + "sage.monoids.monoid": { + "ntests": 14 + }, + "sage.monoids.string_monoid": { + "ntests": 111 + }, + "sage.monoids.string_monoid_element": { + "ntests": 76 + }, + "sage.monoids.string_ops": { + "ntests": 6 + }, + "sage.monoids.trace_monoid": { + "ntests": 190 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.optimize": { + "ntests": 39 + }, + "sage.parallel.decorate": { + "ntests": 86 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "failed": true, + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 288 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 184 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 60 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "failed": true, + "ntests": 133 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "ntests": 32 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 69 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.ternary": { + "ntests": 95 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 290 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "failed": true, + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "failed": true, + "ntests": 91 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "failed": true, + "ntests": 331 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 494 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 311 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 32 + }, + "sage.rings.derivation": { + "ntests": 391 + }, + "sage.rings.factorint": { + "ntests": 10 + }, + "sage.rings.finite_rings.conway_polynomials": { + "ntests": 20 + }, + "sage.rings.finite_rings.element_base": { + "ntests": 11 + }, + "sage.rings.finite_rings.finite_field_base": { + "ntests": 15 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "ntests": 17 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 28 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 1 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 15 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 536 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 253 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 39 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 233 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 263 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 98 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 68 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 154 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 135 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 100 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 82 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "ntests": 64 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 7 + }, + "sage.rings.generic": { + "ntests": 50 + }, + "sage.rings.homset": { + "ntests": 37 + }, + "sage.rings.ideal": { + "ntests": 340 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1103 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 197 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 879 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 145 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 381 + }, + "sage.rings.lazy_series": { + "failed": true, + "ntests": 1585 + }, + "sage.rings.lazy_series_ring": { + "failed": true, + "ntests": 634 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 121 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 467 + }, + "sage.rings.multi_power_series_ring": { + "failed": true, + "ntests": 216 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 425 + }, + "sage.rings.noncommutative_ideals": { + "failed": true, + "ntests": 64 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.padics.local_generic": { + "ntests": 71 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_generic": { + "ntests": 58 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "failed": true, + "ntests": 31 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 384 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 334 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 90 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 507 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true, + "ntests": 287 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 101 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 241 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.ore_function_element": { + "ntests": 56 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 63 + }, + "sage.rings.polynomial.ore_polynomial_element": { + "ntests": 504 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 135 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1943 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "failed": true, + "ntests": 198 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "ntests": 33 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "ntests": 2 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_ring": { + "failed": true, + "ntests": 409 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 139 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 42 + }, + "sage.rings.polynomial.skew_polynomial_element": { + "ntests": 49 + }, + "sage.rings.polynomial.skew_polynomial_ring": { + "failed": true, + "ntests": 39 + }, + "sage.rings.polynomial.term_order": { + "ntests": 327 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 21 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 267 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "failed": true, + "ntests": 478 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 190 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 193 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 542 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 193 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 356 + }, + "sage.rings.real_double_element_gsl": { + "failed": true, + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 0 + }, + "sage.rings.ring": { + "failed": true, + "ntests": 363 + }, + "sage.rings.ring_extension": { + "ntests": 207 + }, + "sage.rings.ring_extension_element": { + "ntests": 111 + }, + "sage.rings.ring_extension_morphism": { + "ntests": 97 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "failed": true, + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 39 + }, + "sage.sat.boolean_polynomials": { + "ntests": 22 + }, + "sage.sat.solvers.cryptominisat": { + "ntests": 31 + }, + "sage.sat.solvers.dimacs": { + "ntests": 177 + }, + "sage.sat.solvers.picosat": { + "ntests": 26 + }, + "sage.sat.solvers.satsolver": { + "ntests": 58 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 296 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 117 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 395 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "failed": true, + "ntests": 180 + }, + "sage.schemes.generic.spec": { + "failed": true, + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 97 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 62 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 62 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 499 + }, + "sage.schemes.projective.projective_point": { + "failed": true, + "ntests": 279 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 34 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 376 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 240 + }, + "sage.sets.cartesian_product": { + "failed": true, + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "failed": true, + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 90 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 71 + }, + "sage.sets.integer_range": { + "failed": true, + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 349 + }, + "sage.sets.set": { + "failed": true, + "ntests": 367 + }, + "sage.sets.set_from_iterator": { + "ntests": 162 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 51 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.distributions": { + "ntests": 1 + }, + "sage.stats.hmm.hmm": { + "ntests": 4 + }, + "sage.stats.intlist": { + "ntests": 3 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "ntests": 6 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 163 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 338 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 666 + }, + "sage.structure.element.pxd": { + "failed": true, + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 220 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 109 + }, + "sage.structure.formal_sum": { + "failed": true, + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 159 + }, + "sage.structure.indexed_generators": { + "ntests": 148 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "failed": true, + "ntests": 328 + }, + "sage.structure.parent_gens": { + "ntests": 29 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 8 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "failed": true, + "ntests": 103 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 226 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 179 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.arxiv_0812_2725": { + "ntests": 34 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "ntests": 13 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.combinatorial_hopf_algebras": { + "ntests": 12 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 4 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "failed": true, + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 58 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-combinat/known-test-failures.json b/pkgs/sagemath-combinat/known-test-failures.json new file mode 100644 index 00000000000..1b35bdc3aa4 --- /dev/null +++ b/pkgs/sagemath-combinat/known-test-failures.json @@ -0,0 +1,2521 @@ +{ + "sage.algebras.cluster_algebra": { + "ntests": 1 + }, + "sage.algebras.commutative_dga": { + "ntests": 37 + }, + "sage.algebras.down_up_algebra": { + "ntests": 2 + }, + "sage.algebras.finite_gca": { + "ntests": 1 + }, + "sage.algebras.free_algebra": { + "ntests": 3 + }, + "sage.algebras.hecke_algebras.cubic_hecke_algebra": { + "ntests": 31 + }, + "sage.algebras.iwahori_hecke_algebra": { + "ntests": 14 + }, + "sage.algebras.quantum_groups.q_numbers": { + "ntests": 23 + }, + "sage.algebras.steenrod.steenrod_algebra": { + "ntests": 2 + }, + "sage.algebras.steenrod.steenrod_algebra_bases": { + "ntests": 70 + }, + "sage.algebras.steenrod.steenrod_algebra_misc": { + "ntests": 100 + }, + "sage.all__sagemath_combinat": { + "ntests": 3 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 896 + }, + "sage.arith.numerical_approx": { + "ntests": 1 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 72 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.categories.action": { + "ntests": 78 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 134 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 2 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 9 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 74 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 22 + }, + "sage.categories.coalgebras": { + "ntests": 22 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 17 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "ntests": 39 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 28 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "failed": true, + "ntests": 362 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 23 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "ntests": 2 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 162 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.filtered_modules_with_basis": { + "ntests": 12 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 1 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_modules_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 25 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 100 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 39 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 65 + }, + "sage.categories.finite_complex_reflection_groups": { + "failed": true, + "ntests": 183 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "failed": true, + "ntests": 78 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 34 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "ntests": 51 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "failed": true, + "ntests": 130 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 4 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_posets": { + "ntests": 19 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "ntests": 128 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 25 + }, + "sage.categories.groups": { + "ntests": 45 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 197 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 52 + }, + "sage.categories.map": { + "ntests": 353 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 120 + }, + "sage.categories.modules_with_basis": { + "ntests": 221 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 81 + }, + "sage.categories.morphism": { + "ntests": 104 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.posets": { + "ntests": 2 + }, + "sage.categories.primer": { + "ntests": 161 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "ntests": 624 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 81 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.regular_crystals": { + "ntests": 3 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "ntests": 143 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 112 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 419 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 57 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 8 + }, + "sage.categories.super_algebras_with_basis": { + "failed": true, + "ntests": 10 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 10 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 32 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "ntests": 24 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.baxter_permutations": { + "ntests": 35 + }, + "sage.combinat.binary_recurrence_sequences": { + "ntests": 7 + }, + "sage.combinat.colored_permutations": { + "failed": true, + "ntests": 328 + }, + "sage.combinat.combinat": { + "ntests": 431 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 299 + }, + "sage.combinat.composition_signed": { + "ntests": 20 + }, + "sage.combinat.composition_tableau": { + "ntests": 100 + }, + "sage.combinat.core": { + "ntests": 138 + }, + "sage.combinat.crystals.crystals": { + "ntests": 1 + }, + "sage.combinat.crystals.letters": { + "ntests": 3 + }, + "sage.combinat.crystals.mv_polytopes": { + "ntests": 2 + }, + "sage.combinat.cyclic_sieving_phenomenon": { + "ntests": 27 + }, + "sage.combinat.debruijn_sequence": { + "ntests": 28 + }, + "sage.combinat.decorated_permutation": { + "ntests": 35 + }, + "sage.combinat.degree_sequences": { + "ntests": 28 + }, + "sage.combinat.derangements": { + "ntests": 87 + }, + "sage.combinat.diagram": { + "ntests": 244 + }, + "sage.combinat.diagram_algebras": { + "ntests": 13 + }, + "sage.combinat.dlx": { + "ntests": 61 + }, + "sage.combinat.dyck_word": { + "ntests": 596 + }, + "sage.combinat.e_one_star": { + "ntests": 9 + }, + "sage.combinat.expnums": { + "ntests": 7 + }, + "sage.combinat.fast_vector_partitions": { + "ntests": 16 + }, + "sage.combinat.fully_commutative_elements": { + "ntests": 1 + }, + "sage.combinat.fully_packed_loop": { + "ntests": 6 + }, + "sage.combinat.gelfand_tsetlin_patterns": { + "ntests": 220 + }, + "sage.combinat.gray_codes": { + "failed": true, + "ntests": 26 + }, + "sage.combinat.growth": { + "ntests": 5 + }, + "sage.combinat.hillman_grassl": { + "ntests": 98 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.integer_vector_weighted": { + "ntests": 64 + }, + "sage.combinat.kazhdan_lusztig": { + "ntests": 2 + }, + "sage.combinat.knutson_tao_puzzles": { + "ntests": 384 + }, + "sage.combinat.matrices.dancing_links": { + "failed": true, + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 9 + }, + "sage.combinat.misc": { + "ntests": 82 + }, + "sage.combinat.multiset_partition_into_sets_ordered": { + "failed": true, + "ntests": 543 + }, + "sage.combinat.ncsf_qsym.combinatorics": { + "failed": true, + "ntests": 31 + }, + "sage.combinat.necklace": { + "ntests": 76 + }, + "sage.combinat.non_decreasing_parking_function": { + "ntests": 122 + }, + "sage.combinat.nu_dyck_word": { + "ntests": 1 + }, + "sage.combinat.output": { + "ntests": 66 + }, + "sage.combinat.parallelogram_polyomino": { + "ntests": 10 + }, + "sage.combinat.parking_functions": { + "ntests": 273 + }, + "sage.combinat.partition": { + "failed": true, + "ntests": 1336 + }, + "sage.combinat.partition_tuple": { + "ntests": 394 + }, + "sage.combinat.partitions": { + "ntests": 8 + }, + "sage.combinat.path_tableaux.dyck_path": { + "ntests": 52 + }, + "sage.combinat.path_tableaux.frieze": { + "ntests": 62 + }, + "sage.combinat.path_tableaux.path_tableau": { + "ntests": 97 + }, + "sage.combinat.path_tableaux.semistandard": { + "failed": true, + "ntests": 82 + }, + "sage.combinat.perfect_matching": { + "ntests": 127 + }, + "sage.combinat.permutation": { + "ntests": 1214 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.plane_partition": { + "failed": true, + "ntests": 358 + }, + "sage.combinat.q_analogues": { + "failed": true, + "ntests": 123 + }, + "sage.combinat.q_bernoulli": { + "ntests": 15 + }, + "sage.combinat.quickref": { + "ntests": 20 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.restricted_growth": { + "ntests": 10 + }, + "sage.combinat.ribbon_shaped_tableau": { + "ntests": 44 + }, + "sage.combinat.ribbon_tableau": { + "ntests": 169 + }, + "sage.combinat.rigged_configurations.kleber_tree": { + "ntests": 1 + }, + "sage.combinat.set_partition": { + "ntests": 423 + }, + "sage.combinat.set_partition_iterator": { + "ntests": 7 + }, + "sage.combinat.set_partition_ordered": { + "ntests": 241 + }, + "sage.combinat.sf.elementary": { + "ntests": 2 + }, + "sage.combinat.sf.homogeneous": { + "ntests": 2 + }, + "sage.combinat.sf.monomial": { + "ntests": 2 + }, + "sage.combinat.sf.ns_macdonald": { + "ntests": 7 + }, + "sage.combinat.sf.powersum": { + "ntests": 5 + }, + "sage.combinat.sf.schur": { + "ntests": 3 + }, + "sage.combinat.sf.sfa": { + "ntests": 7 + }, + "sage.combinat.shifted_primed_tableau": { + "ntests": 1 + }, + "sage.combinat.shuffle": { + "failed": true, + "ntests": 134 + }, + "sage.combinat.sidon_sets": { + "ntests": 22 + }, + "sage.combinat.sine_gordon": { + "ntests": 33 + }, + "sage.combinat.six_vertex_model": { + "ntests": 51 + }, + "sage.combinat.skew_partition": { + "failed": true, + "ntests": 272 + }, + "sage.combinat.skew_tableau": { + "ntests": 372 + }, + "sage.combinat.species.characteristic_species": { + "ntests": 79 + }, + "sage.combinat.species.composition_species": { + "ntests": 56 + }, + "sage.combinat.species.cycle_species": { + "failed": true, + "ntests": 44 + }, + "sage.combinat.species.empty_species": { + "ntests": 35 + }, + "sage.combinat.species.functorial_composition_species": { + "ntests": 23 + }, + "sage.combinat.species.generating_series": { + "ntests": 106 + }, + "sage.combinat.species.library": { + "ntests": 19 + }, + "sage.combinat.species.linear_order_species": { + "ntests": 29 + }, + "sage.combinat.species.partition_species": { + "ntests": 2 + }, + "sage.combinat.species.permutation_species": { + "ntests": 3 + }, + "sage.combinat.species.product_species": { + "ntests": 69 + }, + "sage.combinat.species.recursive_species": { + "ntests": 131 + }, + "sage.combinat.species.set_species": { + "ntests": 33 + }, + "sage.combinat.species.species": { + "ntests": 137 + }, + "sage.combinat.species.structure": { + "ntests": 88 + }, + "sage.combinat.species.subset_species": { + "ntests": 42 + }, + "sage.combinat.species.sum_species": { + "ntests": 45 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.subword": { + "ntests": 108 + }, + "sage.combinat.subword_complex": { + "ntests": 72 + }, + "sage.combinat.super_tableau": { + "ntests": 139 + }, + "sage.combinat.superpartition": { + "ntests": 182 + }, + "sage.combinat.symmetric_group_representations": { + "ntests": 26 + }, + "sage.combinat.t_sequences": { + "ntests": 86 + }, + "sage.combinat.tableau": { + "ntests": 1370 + }, + "sage.combinat.tableau_residues": { + "ntests": 121 + }, + "sage.combinat.tableau_tuple": { + "ntests": 674 + }, + "sage.combinat.tiling": { + "ntests": 5 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.triangles_FHM": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.combinat.tutorial": { + "failed": true, + "ntests": 230 + }, + "sage.combinat.vector_partition": { + "ntests": 37 + }, + "sage.combinat.words.abstract_word": { + "ntests": 375 + }, + "sage.combinat.words.alphabet": { + "ntests": 36 + }, + "sage.combinat.words.finite_word": { + "ntests": 1345 + }, + "sage.combinat.words.infinite_word": { + "ntests": 21 + }, + "sage.combinat.words.lyndon_word": { + "ntests": 95 + }, + "sage.combinat.words.morphic": { + "ntests": 79 + }, + "sage.combinat.words.morphism": { + "ntests": 604 + }, + "sage.combinat.words.paths": { + "ntests": 29 + }, + "sage.combinat.words.shuffle_product": { + "ntests": 56 + }, + "sage.combinat.words.suffix_trees": { + "ntests": 301 + }, + "sage.combinat.words.word": { + "ntests": 169 + }, + "sage.combinat.words.word_char": { + "ntests": 137 + }, + "sage.combinat.words.word_datatypes": { + "ntests": 161 + }, + "sage.combinat.words.word_generators": { + "failed": true, + "ntests": 292 + }, + "sage.combinat.words.word_infinite_datatypes": { + "ntests": 273 + }, + "sage.combinat.words.word_options": { + "ntests": 8 + }, + "sage.combinat.words.words": { + "ntests": 405 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.data_structures.bitset": { + "ntests": 425 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.data_structures.stream": { + "ntests": 882 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 386 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 303 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 317 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 175 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 99 + }, + "sage.functions.bessel": { + "ntests": 160 + }, + "sage.functions.error": { + "ntests": 94 + }, + "sage.functions.exp_integral": { + "ntests": 156 + }, + "sage.functions.gamma": { + "ntests": 140 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "ntests": 78 + }, + "sage.functions.jacobi": { + "ntests": 38 + }, + "sage.functions.log": { + "ntests": 154 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "ntests": 230 + }, + "sage.functions.other": { + "ntests": 240 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "ntests": 55 + }, + "sage.functions.trig": { + "ntests": 126 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.games.quantumino": { + "ntests": 1 + }, + "sage.games.sudoku_backtrack": { + "ntests": 3 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.groups.generic": { + "ntests": 94 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.indexed_free_group": { + "ntests": 116 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 4 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3_controlled": { + "ntests": 150 + }, + "sage.misc.cachefunc": { + "ntests": 698 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 126 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 281 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 219 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 227 + }, + "sage.misc.lazy_string": { + "ntests": 131 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "failed": true, + "ntests": 134 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 38 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, + "sage.misc.sage_eval": { + "failed": true, + "ntests": 31 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 329 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 251 + }, + "sage.modules.module": { + "ntests": 37 + }, + "sage.monoids.automatic_semigroup": { + "ntests": 208 + }, + "sage.monoids.free_abelian_monoid": { + "ntests": 44 + }, + "sage.monoids.free_abelian_monoid_element": { + "ntests": 67 + }, + "sage.monoids.free_monoid": { + "ntests": 50 + }, + "sage.monoids.free_monoid_element": { + "ntests": 59 + }, + "sage.monoids.indexed_free_monoid": { + "ntests": 220 + }, + "sage.monoids.monoid": { + "ntests": 14 + }, + "sage.monoids.string_monoid": { + "failed": true, + "ntests": 111 + }, + "sage.monoids.string_monoid_element": { + "failed": true, + "ntests": 76 + }, + "sage.monoids.string_ops": { + "failed": true, + "ntests": 6 + }, + "sage.monoids.trace_monoid": { + "ntests": 190 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.parallel.decorate": { + "ntests": 86 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 27 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 302 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 32 + }, + "sage.rings.factorint": { + "ntests": 10 + }, + "sage.rings.finite_rings.conway_polynomials": { + "ntests": 20 + }, + "sage.rings.finite_rings.element_base": { + "ntests": 13 + }, + "sage.rings.finite_rings.finite_field_base": { + "ntests": 24 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "ntests": 17 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 28 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 1 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 15 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 536 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 253 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 41 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 225 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 263 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 71 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 158 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 135 + }, + "sage.rings.function_field.ideal": { + "ntests": 92 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 82 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 20 + }, + "sage.rings.function_field.order_rational": { + "ntests": 69 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 7 + }, + "sage.rings.generic": { + "ntests": 50 + }, + "sage.rings.homset": { + "ntests": 37 + }, + "sage.rings.ideal": { + "ntests": 336 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1091 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 197 + }, + "sage.rings.laurent_series_ring": { + "ntests": 145 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 381 + }, + "sage.rings.lazy_series": { + "failed": true, + "ntests": 1445 + }, + "sage.rings.lazy_series_ring": { + "failed": true, + "ntests": 588 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 110 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 444 + }, + "sage.rings.multi_power_series_ring": { + "ntests": 216 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 425 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.padics.local_generic": { + "ntests": 71 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_generic": { + "ntests": 58 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 31 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 278 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 375 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "ntests": 83 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 5 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 465 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "ntests": 263 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 106 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 235 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.polydict": { + "ntests": 393 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1840 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 188 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "ntests": 36 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "ntests": 13 + }, + "sage.rings.polynomial.polynomial_ring": { + "ntests": 389 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 42 + }, + "sage.rings.polynomial.term_order": { + "ntests": 319 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 21 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 256 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 471 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 190 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 181 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 530 + }, + "sage.rings.rational_field": { + "ntests": 189 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 351 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, + "sage.rings.ring": { + "ntests": 337 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 120 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 39 + }, + "sage.sat.boolean_polynomials": { + "ntests": 22 + }, + "sage.sat.solvers.cryptominisat": { + "ntests": 31 + }, + "sage.sat.solvers.dimacs": { + "ntests": 177 + }, + "sage.sat.solvers.picosat": { + "ntests": 26 + }, + "sage.sat.solvers.satsolver": { + "ntests": 58 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 282 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 117 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 391 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 180 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 99 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 62 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 58 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 480 + }, + "sage.schemes.projective.projective_point": { + "ntests": 277 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 34 + }, + "sage.schemes.projective.projective_space": { + "ntests": 381 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 233 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 90 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 58 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 349 + }, + "sage.sets.set": { + "ntests": 363 + }, + "sage.sets.set_from_iterator": { + "ntests": 157 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.structure.category_object": { + "ntests": 140 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 310 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "failed": true, + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 566 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 200 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 99 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 159 + }, + "sage.structure.indexed_generators": { + "ntests": 92 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 300 + }, + "sage.structure.parent_gens": { + "ntests": 24 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 5 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "failed": true, + "ntests": 103 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "failed": true, + "ntests": 226 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 168 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.arxiv_0812_2725": { + "ntests": 34 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "ntests": 13 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 4 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "failed": true, + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 58 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-combinat/meson.build b/pkgs/sagemath-combinat/meson.build new file mode 100644 index 00000000000..141829849cd --- /dev/null +++ b/pkgs/sagemath-combinat/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-combinat', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_combinat', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-combinat/pyproject.toml.m4 b/pkgs/sagemath-combinat/pyproject.toml.m4 new file mode 100644 index 00000000000..76d7e6921e8 --- /dev/null +++ b/pkgs/sagemath-combinat/pyproject.toml.m4 @@ -0,0 +1,69 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator +] +build-backend = "mesonpy" + +[project] +name = "sagemath-combinat" +description = "Sage: Open Source Mathematics Software: Algebraic combinatorics, combinatorial representation theory" +dependencies = [ + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_categories +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [SPKG_INSTALL_REQUIRES_sagemath_repl] + +# by library +lrcalc = [SPKG_INSTALL_REQUIRES_lrcalc_python] +symmetrica = [] + +# by feature +graphs = [SPKG_INSTALL_REQUIRES_sagemath_graphs] +modules = [SPKG_INSTALL_REQUIRES_sagemath_modules] + +# everything +standard = ["sagemath-combinat[lrcalc,symmetrica,graphs,modules]"] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", + "pkg:generic/symmetrica", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-combinat/requirements-editable.txt.m4 b/pkgs/sagemath-combinat/requirements-editable.txt.m4 new file mode 100644 index 00000000000..c6933d5869c --- /dev/null +++ b/pkgs/sagemath-combinat/requirements-editable.txt.m4 @@ -0,0 +1,8 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_pplpy +-e ../sagemath-objects +-e ../sagemath-categories diff --git a/pkgs/sagemath-combinat/requirements.txt.m4 b/pkgs/sagemath-combinat/requirements.txt.m4 new file mode 100644 index 00000000000..d145756dfd1 --- /dev/null +++ b/pkgs/sagemath-combinat/requirements.txt.m4 @@ -0,0 +1,3 @@ +dnl Include all from sagemath-categories (via m4 include) +include(`../sagemath_categories/src/requirements.txt.m4') +pplpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)') diff --git a/pkgs/sagemath-combinat/sage b/pkgs/sagemath-combinat/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-combinat/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-combinat/sage-cython-native-file.ini b/pkgs/sagemath-combinat/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-combinat/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-combinat/setup.py b/pkgs/sagemath-combinat/setup.py new file mode 100644 index 00000000000..9adf7055347 --- /dev/null +++ b/pkgs/sagemath-combinat/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-combinat']) diff --git a/pkgs/sagemath-combinat/tox.ini b/pkgs/sagemath-combinat/tox.ini new file mode 100644 index 00000000000..3332fcdb925 --- /dev/null +++ b/pkgs/sagemath-combinat/tox.ini @@ -0,0 +1,152 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_polyhedra-build-deps && ./sage -sh -c '(cd pkgs/sagemath-polyhedra && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-polyhedra/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + sagepython-sagewheels-nopypi-norequirements-graphs + sagepython-sagewheels-nopypi-norequirements-modules + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + # Env factors for testing with extras + graphs: _GRAPHS=--graphs + modules: _MODULES=--modules + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures{env:_GRAPHS:}{env:_MODULES:}.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.all__sagemath_combinat' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_combinat --probe all --baseline-stats-path=$KNOWN_TEST_FAILURES --installed' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-norequirements-graphs] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi +extras = test, graphs + +[testenv:sagepython-sagewheels-nopypi-norequirements-modules] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi +extras = test, modules + + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict + +[testenv:sagepython-sagewheels-nopypi-editable-graphs] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict +extras = test, graphs + +[testenv:sagepython-sagewheels-nopypi-editable-modules] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict +extras = test, modules diff --git a/pkgs/sagemath-coxeter3/VERSION.txt~brial_experimental b/pkgs/sagemath-coxeter3/VERSION.txt~brial_experimental new file mode 100644 index 00000000000..7786f0e63e4 --- /dev/null +++ b/pkgs/sagemath-coxeter3/VERSION.txt~brial_experimental @@ -0,0 +1 @@ +10.2.beta5 diff --git a/pkgs/sagemath-coxeter3/known-test-failures.json b/pkgs/sagemath-coxeter3/known-test-failures.json new file mode 100644 index 00000000000..04ffe6b504a --- /dev/null +++ b/pkgs/sagemath-coxeter3/known-test-failures.json @@ -0,0 +1,165 @@ +{ + "sage.algebras.iwahori_hecke_algebra": { + "failed": true, + "ntests": 679 + }, + "sage.categories.coxeter_groups": { + "ntests": 200 + }, + "sage.combinat.kazhdan_lusztig": { + "failed": true, + "ntests": 26 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "failed": true, + "ntests": 166 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 456 + }, + "sage.combinat.root_system.coxeter_matrix": { + "failed": true, + "ntests": 177 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.dynkin_diagram": { + "failed": true, + "ntests": 143 + }, + "sage.combinat.root_system.integrable_representations": { + "failed": true, + "ntests": 141 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "failed": true, + "ntests": 491 + }, + "sage.combinat.root_system.reflection_group_c": { + "failed": true, + "ntests": 41 + }, + "sage.combinat.root_system.reflection_group_element": { + "ntests": 19 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 303 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "failed": true, + "ntests": 545 + }, + "sage.combinat.root_system.root_space": { + "failed": true, + "ntests": 78 + }, + "sage.combinat.root_system.root_system": { + "failed": true, + "ntests": 122 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 26 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 52 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 23 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "failed": true, + "ntests": 72 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 38 + }, + "sage.combinat.root_system.type_marked": { + "failed": true, + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "failed": true, + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "failed": true, + "ntests": 181 + }, + "sage.combinat.root_system.weight_space": { + "failed": true, + "ntests": 92 + }, + "sage.libs.coxeter3.coxeter": { + "ntests": 254 + }, + "sage.libs.coxeter3.coxeter_group": { + "failed": true, + "ntests": 141 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-coxeter3/pyproject.toml.m4 b/pkgs/sagemath-coxeter3/pyproject.toml.m4 index 58d4483f8bd..2c1787dd1b0 100644 --- a/pkgs/sagemath-coxeter3/pyproject.toml.m4 +++ b/pkgs/sagemath-coxeter3/pyproject.toml.m4 @@ -23,6 +23,15 @@ include(`pyproject_toml_metadata.m4')dnl' file = "README.rst" content-type = "text/x-rst" +[project.optional-dependencies] +test = [ + SPKG_INSTALL_REQUIRES_sagemath_repl + SPKG_INSTALL_REQUIRES_sagemath_combinat + SPKG_INSTALL_REQUIRES_sagemath_graphs + SPKG_INSTALL_REQUIRES_sagemath_groups + SPKG_INSTALL_REQUIRES_sagemath_modules +] + [tool.setuptools] packages = ["sage.libs.coxeter3"] include-package-data = false diff --git a/pkgs/sagemath-coxeter3/requirements-editable.txt.m4 b/pkgs/sagemath-coxeter3/requirements-editable.txt.m4 new file mode 100644 index 00000000000..1d909c00118 --- /dev/null +++ b/pkgs/sagemath-coxeter3/requirements-editable.txt.m4 @@ -0,0 +1,3 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cysignals diff --git a/pkgs/sagemath-coxeter3/setup.py b/pkgs/sagemath-coxeter3/setup.py index 1979cf43a46..b3235331caf 100644 --- a/pkgs/sagemath-coxeter3/setup.py +++ b/pkgs/sagemath-coxeter3/setup.py @@ -1,65 +1,5 @@ #!/usr/bin/env python -from distutils import log -from setuptools import setup +from sage_setup import sage_setup -# Work around a Cython problem in Python 3.8.x on macOS -# https://github.com/cython/cython/issues/3262 -import os -if os.uname().sysname == 'Darwin': - import multiprocessing - multiprocessing.set_start_method('fork', force=True) - -# If build isolation is not in use and setuptools_scm is installed, -# then its file_finders entry point is invoked, which we don't need. -# Workaround from ​https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286 -try: - import setuptools_scm.integration - setuptools_scm.integration.find_files = lambda _: [] -except ImportError: - pass - -# PEP 517 builds do not have . in sys.path -import sys -sys.path.insert(0, os.path.dirname(__file__)) - -if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"): - sdist = True -else: - sdist = False - -if sdist: - cmdclass = {} -else: - from sage_setup.excepthook import excepthook - sys.excepthook = excepthook - - from sage_setup.setenv import setenv - setenv() - - import sage.env - sage.env.default_required_modules = sage.env.default_optional_modules = () - - from sage_setup.command.sage_build_cython import sage_build_cython - from sage_setup.command.sage_build_ext import sage_build_ext - from sage_setup.command.sage_build_py import sage_build_py - sage_build_cython.built_distributions = ['sagemath-coxeter3'] - - cmdclass = dict(build_cython=sage_build_cython, - build_ext=sage_build_ext, - build_py=sage_build_py) - -from sage_setup.find import find_python_sources -python_packages, python_modules, cython_modules = find_python_sources( - '.', ['sage'], distributions=['sagemath-coxeter3']) - -log.warn('python_packages = {0}'.format(python_packages)) -log.warn('python_modules = {0}'.format(python_modules)) -log.warn('cython_modules = {0}'.format(cython_modules)) - -setup( - cmdclass = cmdclass, - packages = python_packages, - py_modules = python_modules, - ext_modules = cython_modules, -) +sage_setup(['sagemath-coxeter3']) diff --git a/pkgs/sagemath-coxeter3/tox.ini b/pkgs/sagemath-coxeter3/tox.ini new file mode 100644 index 00000000000..7b759aed886 --- /dev/null +++ b/pkgs/sagemath-coxeter3/tox.ini @@ -0,0 +1,105 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_coxeter3-build-deps && ./sage -sh -c '(cd pkgs/sagemath-coxeter3 && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-coxeter3/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + # Env factors for testing with extras + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.coxeter3.coxeter' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_combinat --baseline-stats-path={toxinidir}/known-test-failures.json {posargs:sage/algebras/iwahori_hecke_algebra.py sage/categories/coxeter_groups.py sage/combinat/kazhdan_lusztig.py sage/combinat/root_system sage/libs/coxeter3}' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi diff --git a/pkgs/sagemath-eclib/MANIFEST.in b/pkgs/sagemath-eclib/MANIFEST.in new file mode 100644 index 00000000000..145ef996085 --- /dev/null +++ b/pkgs/sagemath-eclib/MANIFEST.in @@ -0,0 +1,22 @@ +prune sage + +include VERSION.txt + +graft sage/libs/eclib + +global-exclude *.c +global-exclude *.cpp + +global-exclude all__sagemath_*.py +global-include all__sagemath_eclib.py + +include sage/libs/eclib/wrap.cpp + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-eclib/README.rst b/pkgs/sagemath-eclib/README.rst new file mode 100644 index 00000000000..cdae987dd88 --- /dev/null +++ b/pkgs/sagemath-eclib/README.rst @@ -0,0 +1,30 @@ +============================================================================================== + Sage: Open Source Mathematics Software: Elliptic curves over the rationals with eclib/mwrank +============================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-eclib`` provides the +Sage interface to John Cremona's programs for enumerating and computing with elliptic curves +defined over the rational numbers. diff --git a/pkgs/sagemath-eclib/VERSION.txt b/pkgs/sagemath-eclib/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-eclib/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-eclib/meson.build b/pkgs/sagemath-eclib/meson.build new file mode 100644 index 00000000000..13b4f2fddc0 --- /dev/null +++ b/pkgs/sagemath-eclib/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-eclib', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_eclib', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-eclib/pyproject.toml.m4 b/pkgs/sagemath-eclib/pyproject.toml.m4 new file mode 100644 index 00000000000..ecb3b908e44 --- /dev/null +++ b/pkgs/sagemath-eclib/pyproject.toml.m4 @@ -0,0 +1,63 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_linbox + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_ntl + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +build-backend = "mesonpy" + +[project] +name = "sagemath-eclib" +description = "Sage: Open Source Mathematics Software: Elliptic curves over the rationals with eclib/mwrank" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_linbox + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_ntl + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +# No test requirements; see comment in tox.ini +test = [] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/eclib", + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-eclib/requirements-editable.txt.m4 b/pkgs/sagemath-eclib/requirements-editable.txt.m4 new file mode 100644 index 00000000000..3b1a4bfd43f --- /dev/null +++ b/pkgs/sagemath-eclib/requirements-editable.txt.m4 @@ -0,0 +1,12 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +-e ../sage-conf +-e ../sagemath-categories +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-linbox +-e ../sagemath-modules +-e ../sagemath-ntl diff --git a/pkgs/sagemath-eclib/requirements.txt.m4 b/pkgs/sagemath-eclib/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-eclib/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-eclib/sage b/pkgs/sagemath-eclib/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-eclib/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-eclib/sage-cython-native-file.ini b/pkgs/sagemath-eclib/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-eclib/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-eclib/setup.cfg b/pkgs/sagemath-eclib/setup.cfg new file mode 100644 index 00000000000..bb4eacfc3aa --- /dev/null +++ b/pkgs/sagemath-eclib/setup.cfg @@ -0,0 +1,43 @@ +#line 1 "/Users/mkoeppe/s/sage/sage-rebasing/worktree-clean/m4/sage_spkg_versions.m4" +# Generated by SAGE_ROOT/bootstrap; do not edit +#line 2 "/Users/mkoeppe/s/sage/sage-rebasing/worktree-clean/build/pkgs/sagemath_eclib/src/setup.cfg.m4" +[metadata] +name = sagemath-eclib +version = file: VERSION.txt +description = Sage: Open Source Mathematics Software: Elliptic curves over the rationals with eclib/mwrank +long_description = file: README.rst +long_description_content_type = text/x-rst +#line 3 "/Users/mkoeppe/s/sage/sage-rebasing/worktree-clean/m4/setup_cfg_metadata.m4" +license = GNU General Public License (GPL) v2 or later +author = The Sage Developers +author_email = sage-support@googlegroups.com +url = https://www.sagemath.org + +classifiers = + Development Status :: 6 - Mature + Intended Audience :: Education + Intended Audience :: Science/Research + License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+) + Operating System :: POSIX + Operating System :: MacOS :: MacOS X + Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 + Programming Language :: Python :: Implementation :: CPython + Topic :: Scientific/Engineering :: Mathematics +#line 9 "/Users/mkoeppe/s/sage/sage-rebasing/worktree-clean/build/pkgs/sagemath_eclib/src/setup.cfg.m4" + +[options] +python_requires = >=3.8, <3.12 +install_requires = + sagemath-linbox ~= 10.0 + sagemath-modules + sagemath-ntl ~= 10.0 + memory_allocator + cysignals >=1.10.2 + +[options.extras_require] + +# No test requirements; see comment in tox.ini +test = diff --git a/pkgs/sagemath-eclib/setup.py b/pkgs/sagemath-eclib/setup.py new file mode 100644 index 00000000000..a951818a127 --- /dev/null +++ b/pkgs/sagemath-eclib/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-eclib']) diff --git a/pkgs/sagemath-eclib/tox.ini b/pkgs/sagemath-eclib/tox.ini new file mode 100644 index 00000000000..9518cf9667c --- /dev/null +++ b/pkgs/sagemath-eclib/tox.ini @@ -0,0 +1,119 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-glpk && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-glpk/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.eclib' + # Actual tests are disabled here for now because sagemath-glpk is (still) an install-requires of sagemath-polyhedra + # bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + # && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_polyhedra --baseline-stats-path={toxinidir}/known-test-failures.json ./sage/numerical/backends/glpk*.pyx' + + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-environment/MANIFEST.in b/pkgs/sagemath-environment/MANIFEST.in index ca4266e2bf4..f7b1523ef88 100644 --- a/pkgs/sagemath-environment/MANIFEST.in +++ b/pkgs/sagemath-environment/MANIFEST.in @@ -6,6 +6,7 @@ include sage/misc/package.py include sage/misc/package_dir.py include sage/misc/temporary_file.py include sage/misc/viewer.py + graft sage/features include VERSION.txt diff --git a/pkgs/sagemath-environment/README.rst b/pkgs/sagemath-environment/README.rst index 9c36dbc67df..080ae720957 100644 --- a/pkgs/sagemath-environment/README.rst +++ b/pkgs/sagemath-environment/README.rst @@ -27,6 +27,23 @@ distribution of a small part of the Sage Library. It provides a small, fundamental subset of the modules of the Sage library ("sagelib", `sagemath-standard`), providing the connection to the -system and software environment. It also includes the `sage` script for -launching the Sage REPL and accessing various developer tools (see `sage ---help`). +system and software environment. + + +What is included +---------------- + +* `sage` script for launching the Sage REPL and accessing various developer tools + (see `sage --help`, `Invoking Sage `_). + +* sage.env + +* `sage.features `_: Testing for features of the environment at runtime + +* `sage.misc.package `_: Listing packages of the Sage distribution + +* `sage.misc.package_dir `_ + +* `sage.misc.temporary_file `_ + +* `sage.misc.viewer `_ diff --git a/pkgs/sagemath-environment/pyproject.toml.m4 b/pkgs/sagemath-environment/pyproject.toml.m4 index 44ddd190f99..c5488bc864d 100644 --- a/pkgs/sagemath-environment/pyproject.toml.m4 +++ b/pkgs/sagemath-environment/pyproject.toml.m4 @@ -50,6 +50,9 @@ script-files = [ "bin/sage-version.sh", # Auxiliary script for invoking Python in the Sage environment "bin/sage-python", + # The following is freshly un-deprecated as a temporary workaround + # for defects in Cython 3.0.x support for PEP 420 implicit namespace packages + "bin/sage-cython", # Not included: # - bin/sage-env-config -- installed by sage_conf # - bin/sage-env-config.in -- not to be installed diff --git a/pkgs/sagemath-flint/MANIFEST.in b/pkgs/sagemath-flint/MANIFEST.in new file mode 100644 index 00000000000..fb5fef80677 --- /dev/null +++ b/pkgs/sagemath-flint/MANIFEST.in @@ -0,0 +1,75 @@ +include VERSION.txt + +prune sage + +graft sage/libs/arb +graft sage/libs/flint +graft sage/libs/linkages +include sage/libs/pari/convert_flint.p* +recursive-include sage/libs/ntl *.pxi *.h # FIXME +include sage/matrix/matrix_complex_ball_dense.p* +include sage/matrix/misc_flint.p* +include sage/matrix/matrix_integer*.pxd +include sage/matrix/matrix_rational*.pxd +include sage/rings/*_arb.p* +include sage/rings/*_flint.p* +include sage/rings/padics/*_flint*.p* +include sage/rings/padics/all.p* +include sage/rings/padics/padic_relaxed_*.p* +include sage/rings/padics/*.pxi # FIXME +include sage/rings/polynomial/polynomial_template*.pxi # FIXME +include sage/rings/polynomial/*_flint.p* +include sage/rings/polynomial/*_arb.p* +include sage/rings/polynomial/hilbert.p* +graft sage/rings/polynomial/weil +include sage/rings/fraction_field_FpT.p* + +include sage/combinat/posets/hasse_cython_flint.p* +include sage/graphs/chrompoly.p* +include sage/graphs/matchpoly.p* +include sage/data_structures/bounded_integer_sequences.p* # uses flint ... just for bitcount +graft sage/quivers # because of the dep on bounded_integer_sequences + +## Number fields, MPFI + +graft sage/libs/mpfi # entangled with number_field_element +include sage/rings/real_mpfi.p* # -> convert/mpfi +include sage/rings/real_interval_absolute.p* +include sage/rings/real_interval_field.p* # deprecated + +graft sage/rings/convert # only module mpfi +# FIXME: split out complex_interval stuff from convert/mpfi .... +include sage/rings/complex_interval.p* # needs flint +include sage/rings/complex_interval_field.p* +include sage/rings/cif.p* + +include sage/rings/polynomial/real_roots.p* # needs flint, numpy +include sage/rings/polynomial/complex_roots.p* +include sage/rings/polynomial/refine_root.p* +include sage/rings/polynomial/polynomial_number_field.p* +graft sage/rings/number_field +exclude sage/rings/number_field/number_field*_base.p* # sagemath-categories +exclude sage/rings/number_field/number_field_ideal.p* # sagemath-categories +include sage/rings/number_field/number_field_element_quadratic.p* #### this is entangled with NTL +include sage/rings/monomials.p* +include sage/rings/qqbar.p* +# include sage/rings/universal_cyclotomic_field.p* --> sagemath-gap + +include sage/rings/imaginary_unit.p* + +global-exclude all__sagemath_*.p* +global-include all__sagemath_flint.py + +global-exclude *.c +global-exclude *.cpp + +include sage/rings/polynomial/weil/power_sums.c + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-flint/README.rst b/pkgs/sagemath-flint/README.rst new file mode 100644 index 00000000000..db9d6bc5249 --- /dev/null +++ b/pkgs/sagemath-flint/README.rst @@ -0,0 +1,31 @@ +==================================================================================== + Sage: Open Source Mathematics Software: Fast computations with MPFI, FLINT and arb +==================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2022 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-flint`` provides +Cython interfaces to the ``MPFI``, ``FLINT`` and ``arb`` libraries. + +It also ships the implementation of number fields. diff --git a/pkgs/sagemath-flint/VERSION.txt b/pkgs/sagemath-flint/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-flint/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-flint/known-test-failures.json b/pkgs/sagemath-flint/known-test-failures.json new file mode 100644 index 00000000000..9ffd6cf45cc --- /dev/null +++ b/pkgs/sagemath-flint/known-test-failures.json @@ -0,0 +1,3687 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_ideal": { + "ntests": 36 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "ntests": 72 + }, + "sage.algebras.orlik_terao": { + "ntests": 80 + }, + "sage.algebras.weyl_algebra": { + "ntests": 4 + }, + "sage.all__sagemath_flint": { + "failed": true, + "ntests": 5 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.all__sagemath_pari": { + "ntests": 3 + }, + "sage.arith.functions": { + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 1060 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 54 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.riemann": { + "ntests": 13 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 110 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "ntests": 66 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "failed": true, + "ntests": 161 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 5 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 3 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 26 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 21 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "failed": true, + "ntests": 57 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "ntests": 362 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "failed": true, + "ntests": 228 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_cat": { + "ntests": 155 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 132 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 90 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 99 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 39 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 108 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "failed": true, + "ntests": 137 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 48 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 222 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 380 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 145 + }, + "sage.categories.modules_with_basis": { + "ntests": 488 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 85 + }, + "sage.categories.morphism": { + "ntests": 104 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.primer": { + "ntests": 163 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 786 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 119 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "failed": true, + "ntests": 166 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 106 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 432 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 54 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 38 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.abstract_code": { + "ntests": 136 + }, + "sage.coding.bch_code": { + "failed": true, + "ntests": 82 + }, + "sage.coding.binary_code": { + "ntests": 337 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channel": { + "ntests": 116 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 48 + }, + "sage.coding.code_constructions": { + "failed": true, + "ntests": 148 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "failed": true, + "ntests": 274 + }, + "sage.coding.databases": { + "ntests": 3 + }, + "sage.coding.decoder": { + "ntests": 62 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 2 + }, + "sage.coding.encoder": { + "ntests": 72 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.extended_code": { + "ntests": 81 + }, + "sage.coding.gabidulin_code": { + "failed": true, + "ntests": 235 + }, + "sage.coding.golay_code": { + "ntests": 48 + }, + "sage.coding.goppa_code": { + "failed": true, + "ntests": 115 + }, + "sage.coding.grs_code": { + "failed": true, + "ntests": 530 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.interpolation": { + "failed": true, + "ntests": 47 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 19 + }, + "sage.coding.hamming_code": { + "ntests": 18 + }, + "sage.coding.information_set_decoder": { + "ntests": 172 + }, + "sage.coding.kasami_codes": { + "failed": true, + "ntests": 45 + }, + "sage.coding.linear_code": { + "failed": true, + "ntests": 362 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 232 + }, + "sage.coding.linear_rank_metric": { + "ntests": 138 + }, + "sage.coding.parity_check_code": { + "ntests": 48 + }, + "sage.coding.punctured_code": { + "failed": true, + "ntests": 111 + }, + "sage.coding.reed_muller_code": { + "ntests": 168 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.coding.subfield_subcode": { + "failed": true, + "ntests": 65 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 416 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.free_module": { + "ntests": 403 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.permutation": { + "failed": true, + "ntests": 1214 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 55 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 402 + }, + "sage.combinat.root_system.coxeter_group": { + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.hecke_algebra_representation": { + "ntests": 1 + }, + "sage.combinat.root_system.integrable_representations": { + "ntests": 5 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "ntests": 25 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 284 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 488 + }, + "sage.combinat.root_system.root_space": { + "ntests": 72 + }, + "sage.combinat.root_system.root_system": { + "ntests": 117 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 19 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 67 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 31 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 130 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.block_cipher.des": { + "ntests": 156 + }, + "sage.crypto.block_cipher.present": { + "ntests": 138 + }, + "sage.crypto.boolean_function": { + "failed": true, + "ntests": 206 + }, + "sage.crypto.classical": { + "ntests": 13 + }, + "sage.crypto.classical_cipher": { + "ntests": 2 + }, + "sage.crypto.cryptosystem": { + "ntests": 14 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 18 + }, + "sage.crypto.lfsr": { + "ntests": 29 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "failed": true, + "ntests": 342 + }, + "sage.crypto.mq.sr": { + "failed": true, + "ntests": 355 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 6 + }, + "sage.crypto.sbox": { + "failed": true, + "ntests": 268 + }, + "sage.crypto.sboxes": { + "failed": true, + "ntests": 27 + }, + "sage.data_structures.bitset": { + "ntests": 431 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.bounded_integer_sequences": { + "ntests": 261 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 314 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.ext.memory": { + "ntests": 3 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 179 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 97 + }, + "sage.functions.bessel": { + "ntests": 172 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 162 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 141 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 77 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 168 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 236 + }, + "sage.functions.other": { + "failed": true, + "ntests": 246 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 64 + }, + "sage.functions.trig": { + "ntests": 132 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.graphs.matchpoly": { + "ntests": 3 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 270 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 23 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 1 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 55 + }, + "sage.groups.abelian_gps.values": { + "ntests": 65 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "ntests": 97 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 92 + }, + "sage.groups.galois_group": { + "ntests": 58 + }, + "sage.groups.generic": { + "failed": true, + "ntests": 159 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.matrix_gps.coxeter_group": { + "ntests": 10 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 47 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 33 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 24 + }, + "sage.groups.matrix_gps.matrix_group": { + "failed": true, + "ntests": 45 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 21 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 43 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 38 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_binary": { + "ntests": 75 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 251 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 87 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.homology_group": { + "failed": true, + "ntests": 0 + }, + "sage.homology.homology_vector_space_with_basis": { + "ntests": 6 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.gp": { + "failed": true, + "ntests": 148 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 1 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.libs.arb.arb_version": { + "ntests": 2 + }, + "sage.libs.arb.arith": { + "ntests": 8 + }, + "sage.libs.flint.arith": { + "ntests": 44 + }, + "sage.libs.flint.flint": { + "ntests": 6 + }, + "sage.libs.flint.fmpz_poly": { + "ntests": 84 + }, + "sage.libs.flint.nmod_poly_linkage.pxi": { + "ntests": 196 + }, + "sage.libs.flint.qsieve": { + "ntests": 4 + }, + "sage.libs.flint.ulong_extras": { + "ntests": 3 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.libs.ntl.error": { + "ntests": 4 + }, + "sage.libs.ntl.ntl_GF2": { + "ntests": 50 + }, + "sage.libs.ntl.ntl_GF2E": { + "failed": true, + "ntests": 70 + }, + "sage.libs.ntl.ntl_GF2EContext": { + "failed": true, + "ntests": 20 + }, + "sage.libs.ntl.ntl_GF2EX": { + "failed": true, + "ntests": 31 + }, + "sage.libs.ntl.ntl_GF2X": { + "failed": true, + "ntests": 112 + }, + "sage.libs.ntl.ntl_GF2X_linkage.pxi": { + "ntests": 86 + }, + "sage.libs.ntl.ntl_ZZ": { + "ntests": 76 + }, + "sage.libs.ntl.ntl_ZZX": { + "ntests": 223 + }, + "sage.libs.ntl.ntl_ZZ_p": { + "ntests": 68 + }, + "sage.libs.ntl.ntl_ZZ_pContext": { + "ntests": 34 + }, + "sage.libs.ntl.ntl_ZZ_pE": { + "ntests": 27 + }, + "sage.libs.ntl.ntl_ZZ_pEContext": { + "ntests": 29 + }, + "sage.libs.ntl.ntl_ZZ_pEX": { + "ntests": 304 + }, + "sage.libs.ntl.ntl_ZZ_pEX_linkage.pxi": { + "ntests": 80 + }, + "sage.libs.ntl.ntl_ZZ_pX": { + "ntests": 264 + }, + "sage.libs.ntl.ntl_lzz_p": { + "ntests": 48 + }, + "sage.libs.ntl.ntl_lzz_pContext": { + "ntests": 21 + }, + "sage.libs.ntl.ntl_lzz_pX": { + "ntests": 142 + }, + "sage.libs.ntl.ntl_mat_GF2": { + "ntests": 107 + }, + "sage.libs.ntl.ntl_mat_GF2E": { + "failed": true, + "ntests": 132 + }, + "sage.libs.ntl.ntl_mat_ZZ": { + "failed": true, + "ntests": 119 + }, + "sage.libs.pari": { + "ntests": 33 + }, + "sage.libs.pari.convert_flint": { + "ntests": 2 + }, + "sage.libs.pari.convert_gmp": { + "ntests": 16 + }, + "sage.libs.pari.convert_sage": { + "ntests": 86 + }, + "sage.libs.pari.convert_sage_complex_double": { + "ntests": 22 + }, + "sage.libs.pari.convert_sage_matrix": { + "ntests": 19 + }, + "sage.libs.pari.convert_sage_real_double": { + "ntests": 2 + }, + "sage.libs.pari.convert_sage_real_mpfr": { + "ntests": 7 + }, + "sage.libs.pari.tests": { + "ntests": 673 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 151 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.compute_J_ideal": { + "failed": true, + "ntests": 99 + }, + "sage.matrix.constructor": { + "failed": true, + "ntests": 151 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 800 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 440 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 2101 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_ball_dense": { + "ntests": 118 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 7 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "failed": true, + "ntests": 456 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 25 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_modn_dense_template.pxi": { + "failed": true, + "ntests": 0 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 64 + }, + "sage.matrix.matrix_numpy_integer_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_polynomial_dense": { + "ntests": 436 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 13 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 420 + }, + "sage.matrix.matrix_sparse": { + "ntests": 164 + }, + "sage.matrix.misc_flint": { + "failed": true, + "ntests": 5 + }, + "sage.matrix.misc_mpfr": { + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 90 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 451 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 181 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 129 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.graphic_matroid": { + "ntests": 4 + }, + "sage.matroids.lean_matrix": { + "ntests": 288 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 639 + }, + "sage.matroids.matroid": { + "ntests": 858 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 13 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 64 + }, + "sage.matroids.utilities": { + "ntests": 58 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 150 + }, + "sage.misc.cachefunc": { + "ntests": 688 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 40 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 325 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "failed": true, + "ntests": 18 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 243 + }, + "sage.misc.latex_macros": { + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 237 + }, + "sage.misc.lazy_string": { + "ntests": 137 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 141 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 38 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "failed": true, + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, + "sage.misc.sage_eval": { + "ntests": 35 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 281 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 0 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 170 + }, + "sage.modules.finite_submodule_iter": { + "failed": true, + "ntests": 95 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1467 + }, + "sage.modules.free_module_element": { + "failed": true, + "ntests": 924 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 170 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 0 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 400 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "failed": true, + "ntests": 124 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 171 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 13 + }, + "sage.modules.vector_double_dense": { + "ntests": 76 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_modn_dense": { + "ntests": 69 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 45 + }, + "sage.modules.vector_numpy_integer_dense": { + "ntests": 5 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 12 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "failed": true, + "ntests": 157 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 161 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.optimize": { + "ntests": 35 + }, + "sage.parallel.decorate": { + "ntests": 90 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 326 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.genera.genus": { + "failed": true, + "ntests": 529 + }, + "sage.quadratic_forms.qfsolve": { + "ntests": 38 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 196 + }, + "sage.quadratic_forms.quadratic_form__automorphisms": { + "ntests": 51 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 74 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__genus": { + "ntests": 10 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_density_interfaces": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "ntests": 143 + }, + "sage.quadratic_forms.quadratic_form__local_normal_form": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__mass": { + "ntests": 4 + }, + "sage.quadratic_forms.quadratic_form__mass__Conway_Sloane_masses": { + "ntests": 59 + }, + "sage.quadratic_forms.quadratic_form__mass__Siegel_densities": { + "ntests": 14 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "failed": true, + "ntests": 32 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__siegel_product": { + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 99 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.special_values": { + "ntests": 21 + }, + "sage.quadratic_forms.ternary": { + "ntests": 105 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 306 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 88 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.algebraic_closure_finite_field": { + "failed": true, + "ntests": 213 + }, + "sage.rings.bernmm": { + "ntests": 25 + }, + "sage.rings.bernoulli_mod_p": { + "ntests": 26 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_arb": { + "failed": true, + "ntests": 653 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "ntests": 339 + }, + "sage.rings.complex_interval": { + "ntests": 266 + }, + "sage.rings.complex_interval_field": { + "ntests": 131 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 520 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 295 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.derivation": { + "ntests": 405 + }, + "sage.rings.factorint": { + "ntests": 26 + }, + "sage.rings.factorint_flint": { + "ntests": 10 + }, + "sage.rings.factorint_pari": { + "ntests": 3 + }, + "sage.rings.fast_arith": { + "ntests": 20 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 57 + }, + "sage.rings.finite_rings.element_base": { + "failed": true, + "ntests": 233 + }, + "sage.rings.finite_rings.element_ntl_gf2e": { + "failed": true, + "ntests": 176 + }, + "sage.rings.finite_rings.element_pari_ffelt": { + "failed": true, + "ntests": 276 + }, + "sage.rings.finite_rings.finite_field_base": { + "failed": true, + "ntests": 325 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "failed": true, + "ntests": 124 + }, + "sage.rings.finite_rings.finite_field_ntl_gf2e": { + "failed": true, + "ntests": 61 + }, + "sage.rings.finite_rings.finite_field_pari_ffelt": { + "failed": true, + "ntests": 41 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 38 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 20 + }, + "sage.rings.finite_rings.hom_finite_field": { + "failed": true, + "ntests": 192 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 21 + }, + "sage.rings.finite_rings.homset": { + "failed": true, + "ntests": 67 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 580 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 255 + }, + "sage.rings.finite_rings.maps_finite_field": { + "ntests": 31 + }, + "sage.rings.finite_rings.residue_field": { + "failed": true, + "ntests": 139 + }, + "sage.rings.finite_rings.residue_field_ntl_gf2e": { + "ntests": 14 + }, + "sage.rings.finite_rings.residue_field_pari_ffelt": { + "ntests": 8 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 248 + }, + "sage.rings.fraction_field_FpT": { + "ntests": 369 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 271 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 108 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 83 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 159 + }, + "sage.rings.function_field.function_field_rational": { + "failed": true, + "ntests": 148 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 136 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 150 + }, + "sage.rings.function_field.maps": { + "ntests": 59 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "failed": true, + "ntests": 106 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "failed": true, + "ntests": 30 + }, + "sage.rings.function_field.valuation": { + "failed": true, + "ntests": 271 + }, + "sage.rings.generic": { + "ntests": 69 + }, + "sage.rings.homset": { + "ntests": 44 + }, + "sage.rings.ideal": { + "ntests": 361 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1171 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 224 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 883 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 160 + }, + "sage.rings.laurent_series_ring_element": { + "ntests": 393 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 175 + }, + "sage.rings.monomials": { + "ntests": 5 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 547 + }, + "sage.rings.multi_power_series_ring": { + "failed": true, + "ntests": 230 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 437 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.class_group": { + "ntests": 239 + }, + "sage.rings.number_field.galois_group": { + "ntests": 2 + }, + "sage.rings.number_field.homset": { + "ntests": 131 + }, + "sage.rings.number_field.maps": { + "ntests": 196 + }, + "sage.rings.number_field.morphism": { + "ntests": 42 + }, + "sage.rings.number_field.number_field": { + "ntests": 51 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element": { + "ntests": 31 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_element_quadratic": { + "ntests": 15 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.number_field.number_field_ideal_rel": { + "failed": true, + "ntests": 259 + }, + "sage.rings.number_field.number_field_morphisms": { + "ntests": 2 + }, + "sage.rings.number_field.number_field_rel": { + "ntests": 600 + }, + "sage.rings.number_field.order": { + "ntests": 6 + }, + "sage.rings.number_field.selmer_group": { + "ntests": 93 + }, + "sage.rings.number_field.small_primes_of_degree_one": { + "ntests": 41 + }, + "sage.rings.number_field.splitting_field": { + "ntests": 73 + }, + "sage.rings.number_field.totallyreal": { + "ntests": 17 + }, + "sage.rings.number_field.totallyreal_data": { + "ntests": 24 + }, + "sage.rings.number_field.totallyreal_phc": { + "ntests": 3 + }, + "sage.rings.number_field.totallyreal_rel": { + "ntests": 1 + }, + "sage.rings.number_field.unit_group": { + "ntests": 172 + }, + "sage.rings.padics.CA_template.pxi": { + "failed": true, + "ntests": 309 + }, + "sage.rings.padics.CR_template.pxi": { + "failed": true, + "ntests": 431 + }, + "sage.rings.padics.FM_template.pxi": { + "failed": true, + "ntests": 277 + }, + "sage.rings.padics.FP_template.pxi": { + "failed": true, + "ntests": 340 + }, + "sage.rings.padics.eisenstein_extension_generic": { + "ntests": 41 + }, + "sage.rings.padics.factory": { + "failed": true, + "ntests": 559 + }, + "sage.rings.padics.generic_nodes": { + "ntests": 254 + }, + "sage.rings.padics.lattice_precision": { + "failed": true, + "ntests": 456 + }, + "sage.rings.padics.local_generic": { + "ntests": 4 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 1 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.morphism": { + "ntests": 66 + }, + "sage.rings.padics.padic_ZZ_pX_CA_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_ZZ_pX_FM_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_ZZ_pX_element": { + "ntests": 10 + }, + "sage.rings.padics.padic_base_generic": { + "ntests": 44 + }, + "sage.rings.padics.padic_base_leaves": { + "ntests": 185 + }, + "sage.rings.padics.padic_extension_generic": { + "failed": true, + "ntests": 208 + }, + "sage.rings.padics.padic_extension_leaves": { + "failed": true, + "ntests": 72 + }, + "sage.rings.padics.padic_generic": { + "ntests": 5 + }, + "sage.rings.padics.padic_generic_element": { + "failed": true, + "ntests": 816 + }, + "sage.rings.padics.padic_lattice_element": { + "ntests": 269 + }, + "sage.rings.padics.padic_printing": { + "failed": true, + "ntests": 108 + }, + "sage.rings.padics.padic_relaxed_errors": { + "ntests": 5 + }, + "sage.rings.padics.padic_template_element.pxi": { + "ntests": 138 + }, + "sage.rings.padics.padic_valuation": { + "ntests": 148 + }, + "sage.rings.padics.pow_computer": { + "ntests": 88 + }, + "sage.rings.padics.pow_computer_flint": { + "ntests": 76 + }, + "sage.rings.padics.pow_computer_relative": { + "failed": true, + "ntests": 97 + }, + "sage.rings.padics.qadic_flint_CA": { + "failed": true, + "ntests": 19 + }, + "sage.rings.padics.qadic_flint_CR": { + "failed": true, + "ntests": 23 + }, + "sage.rings.padics.qadic_flint_FM": { + "failed": true, + "ntests": 17 + }, + "sage.rings.padics.qadic_flint_FP": { + "failed": true, + "ntests": 22 + }, + "sage.rings.padics.relative_extension_leaves": { + "failed": true, + "ntests": 87 + }, + "sage.rings.padics.relative_ramified_CA": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_CR": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FM": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FP": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relaxed_template.pxi": { + "ntests": 509 + }, + "sage.rings.padics.tests": { + "ntests": 12 + }, + "sage.rings.padics.tutorial": { + "failed": true, + "ntests": 45 + }, + "sage.rings.padics.unramified_extension_generic": { + "failed": true, + "ntests": 33 + }, + "sage.rings.pari_ring": { + "ntests": 46 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.complex_roots": { + "ntests": 42 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 37 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.hilbert": { + "failed": true, + "ntests": 8 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 402 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 339 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 87 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 529 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true, + "ntests": 297 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 58 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 232 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.ore_function_element": { + "failed": true, + "ntests": 243 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 231 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 1 + }, + "sage.rings.polynomial.padics.polynomial_padic": { + "ntests": 64 + }, + "sage.rings.polynomial.padics.polynomial_padic_capped_relative_dense": { + "ntests": 150 + }, + "sage.rings.polynomial.padics.polynomial_padic_flat": { + "ntests": 3 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_complex_arb": { + "ntests": 144 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 2289 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 203 + }, + "sage.rings.polynomial.polynomial_integer_dense_flint": { + "ntests": 306 + }, + "sage.rings.polynomial.polynomial_integer_dense_ntl": { + "ntests": 188 + }, + "sage.rings.polynomial.polynomial_modn_dense_ntl": { + "failed": true, + "ntests": 331 + }, + "sage.rings.polynomial.polynomial_number_field": { + "failed": true, + "ntests": 75 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "failed": true, + "ntests": 349 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_rational_flint": { + "failed": true, + "ntests": 394 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring": { + "failed": true, + "ntests": 508 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 148 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 30 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 52 + }, + "sage.rings.polynomial.polynomial_template.pxi": { + "failed": true, + "ntests": 122 + }, + "sage.rings.polynomial.polynomial_zmod_flint": { + "failed": true, + "ntests": 147 + }, + "sage.rings.polynomial.polynomial_zz_pex": { + "failed": true, + "ntests": 125 + }, + "sage.rings.polynomial.real_roots": { + "ntests": 6 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 327 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 42 + }, + "sage.rings.polynomial.weil.weil_polynomials": { + "failed": true, + "ntests": 92 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_pari": { + "ntests": 177 + }, + "sage.rings.power_series_poly": { + "ntests": 271 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 491 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 198 + }, + "sage.rings.qqbar": { + "ntests": 155 + }, + "sage.rings.quotient_ring": { + "ntests": 200 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 552 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 202 + }, + "sage.rings.real_arb": { + "failed": true, + "ntests": 561 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 362 + }, + "sage.rings.real_double_element_gsl": { + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_interval_absolute": { + "ntests": 1 + }, + "sage.rings.real_lazy": { + "failed": true, + "ntests": 279 + }, + "sage.rings.real_mpfi": { + "failed": true, + "ntests": 925 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1041 + }, + "sage.rings.ring": { + "failed": true, + "ntests": 356 + }, + "sage.rings.ring_extension": { + "failed": true, + "ntests": 380 + }, + "sage.rings.ring_extension_conversion": { + "failed": true, + "ntests": 75 + }, + "sage.rings.ring_extension_element": { + "failed": true, + "ntests": 247 + }, + "sage.rings.ring_extension_homset": { + "failed": true, + "ntests": 9 + }, + "sage.rings.ring_extension_morphism": { + "failed": true, + "ntests": 138 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tate_algebra": { + "failed": true, + "ntests": 267 + }, + "sage.rings.tate_algebra_element": { + "ntests": 671 + }, + "sage.rings.tate_algebra_ideal": { + "failed": true, + "ntests": 126 + }, + "sage.rings.tests": { + "ntests": 44 + }, + "sage.rings.valuation.augmented_valuation": { + "ntests": 424 + }, + "sage.rings.valuation.developing_valuation": { + "ntests": 62 + }, + "sage.rings.valuation.gauss_valuation": { + "ntests": 139 + }, + "sage.rings.valuation.inductive_valuation": { + "ntests": 271 + }, + "sage.rings.valuation.limit_valuation": { + "ntests": 18 + }, + "sage.rings.valuation.mapped_valuation": { + "ntests": 22 + }, + "sage.rings.valuation.scaled_valuation": { + "ntests": 41 + }, + "sage.rings.valuation.trivial_valuation": { + "ntests": 53 + }, + "sage.rings.valuation.valuation": { + "failed": true, + "ntests": 207 + }, + "sage.rings.valuation.valuation_space": { + "ntests": 200 + }, + "sage.rings.valuation.value_group": { + "ntests": 102 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 318 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "failed": true, + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 122 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 395 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 179 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 97 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 67 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 62 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 528 + }, + "sage.schemes.projective.projective_point": { + "ntests": 297 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 36 + }, + "sage.schemes.projective.projective_space": { + "ntests": 376 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 240 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 361 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "failed": true, + "ntests": 397 + }, + "sage.sets.set_from_iterator": { + "ntests": 155 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 56 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.chmm": { + "ntests": 120 + }, + "sage.stats.hmm.distributions": { + "ntests": 70 + }, + "sage.stats.hmm.hmm": { + "ntests": 125 + }, + "sage.stats.hmm.util": { + "ntests": 16 + }, + "sage.stats.intlist": { + "ntests": 68 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "failed": true, + "ntests": 307 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 163 + }, + "sage.structure.coerce": { + "ntests": 356 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 684 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "ntests": 226 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 115 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 123 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 320 + }, + "sage.structure.parent_gens": { + "failed": true, + "ntests": 41 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 11 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 229 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 188 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "failed": true, + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "failed": true, + "ntests": 249 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 1 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.numpy": { + "ntests": 6 + }, + "sage.tests.parigp": { + "ntests": 11 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-flint/meson.build b/pkgs/sagemath-flint/meson.build new file mode 100644 index 00000000000..fc8ab6350a2 --- /dev/null +++ b/pkgs/sagemath-flint/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-flint', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_flint', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-flint/pyproject.toml.m4 b/pkgs/sagemath-flint/pyproject.toml.m4 new file mode 100644 index 00000000000..e3e7471d86c --- /dev/null +++ b/pkgs/sagemath-flint/pyproject.toml.m4 @@ -0,0 +1,89 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +# sage_conf is needed for library name of the flint library. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sage_conf + SPKG_INSTALL_REQUIRES_numpy + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_ntl + SPKG_INSTALL_REQUIRES_sagemath_pari + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_pkgconfig +] +build-backend = "mesonpy" + +[project] +name = "sagemath-flint" +description = "Sage: Open Source Mathematics Software: Fast computations with FLINT and arb" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_ntl + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_numpy +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [ + SPKG_INSTALL_REQUIRES_sagemath_repl + SPKG_INSTALL_REQUIRES_sagemath_modules +] + +[tool.setuptools] +packages = [ + "sage.libs.arb", + "sage.libs.flint", + "sage.libs.mpfi", + "sage.matrix", + "sage.rings", + "sage.rings.number_field", + "sage.rings.padics", + "sage.rings.polynomial", +] +include-package-data = false + +[tool.setuptools.package-data] +"sage.libs.arb" = ["*.pxd"] +"sage.libs.flint" = ["*.pxd"] +"sage.matrix" = ["matrix_complex_ball_dense.pxd"] +"sage.rings" = ["*_arb.pxd"] +"sage.rings.number_field" = ["number_field_element_quadratic.pxd"] +"sage.rings.padics" = ["*_flint_*.pxd"] +"sage.rings.polynomial" = [ + "*_flint.pxd", + "*_arb.pxd", +] + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/flint", + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-flint/requirements-editable.txt.m4 b/pkgs/sagemath-flint/requirements-editable.txt.m4 new file mode 100644 index 00000000000..37249c03b74 --- /dev/null +++ b/pkgs/sagemath-flint/requirements-editable.txt.m4 @@ -0,0 +1,11 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cypari +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_numpy +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-pari +-e ../sagemath-ntl diff --git a/pkgs/sagemath-flint/requirements.txt.m4 b/pkgs/sagemath-flint/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-flint/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-flint/sage b/pkgs/sagemath-flint/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-flint/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-flint/sage-cython-native-file.ini b/pkgs/sagemath-flint/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-flint/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-flint/setup.py b/pkgs/sagemath-flint/setup.py new file mode 100644 index 00000000000..f62066703bf --- /dev/null +++ b/pkgs/sagemath-flint/setup.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-flint'], + required_modules=('gsl',)) diff --git a/pkgs/sagemath-flint/tox.ini b/pkgs/sagemath-flint/tox.ini new file mode 100644 index 00000000000..493aa22a31f --- /dev/null +++ b/pkgs/sagemath-flint/tox.ini @@ -0,0 +1,118 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-flint && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-flint/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.flint.fmpz_poly' + bash -c 'cd $({envpython} -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_modules --probe all --baseline-stats-path=$KNOWN_TEST_FAILURES --installed' + + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-gap/MANIFEST.in b/pkgs/sagemath-gap/MANIFEST.in new file mode 100644 index 00000000000..722fa798185 --- /dev/null +++ b/pkgs/sagemath-gap/MANIFEST.in @@ -0,0 +1,46 @@ +include VERSION.txt + +prune sage + +graft sage/coding/codecan +include sage/combinat/enumeration_mod_permgroup.p* +include sage/combinat/root_system/reflection_group*.p* +include sage/combinat/root_system/weyl_group.p* +graft sage/ext_data/gap +include sage/graphs/spanning_tree.p* +graft sage/groups/perm_gps +prune sage/groups/perm_gps/partn_ref # sagemath-categories +include sage/groups/*gap*.p* +include sage/groups/abelian_gps/abelian_group_gap.p* +include sage/groups/abelian_gps/abelian_aut.p* +include sage/groups/abelian_gps/abelian_group_morphism.p* +include sage/groups/galois_group_perm.p* +include sage/groups/matrix_gps/*_gap.* +include sage/groups/matrix_gps/heisenberg.p* +include sage/groups/matrix_gps/isometries.p* +include sage/groups/matrix_gps/binary_dihedral.p* + +include sage/groups/semimonomial_transformations/all.py # FIXME +recursive-include sage/groups/semimonomial_transformations *.pxd # FIXME + +include sage/interfaces/gap*.p* +graft sage/libs/gap +include sage/matrix/matrix_gap.p* +include sage/rings/universal_cyclotomic_field.p* + +include sage/geometry/ribbon_graph.p* + +global-exclude *.c +global-exclude *.cpp + +global-exclude all__sagemath_*.py +global-include all__sagemath_gap.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-gap/README.rst b/pkgs/sagemath-gap/README.rst new file mode 100644 index 00000000000..16a578653cc --- /dev/null +++ b/pkgs/sagemath-gap/README.rst @@ -0,0 +1,30 @@ +============================================================================= + Sage: Open Source Mathematics Software: Computational Group Theory with GAP +============================================================================= + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2022 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-gap`` is a small +distribution that provides modules that depend on the GAP system, see +https://www.gap-system.org diff --git a/pkgs/sagemath-gap/VERSION.txt b/pkgs/sagemath-gap/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-gap/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-gap/meson.build b/pkgs/sagemath-gap/meson.build new file mode 100644 index 00000000000..ead84276bdc --- /dev/null +++ b/pkgs/sagemath-gap/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-gap', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_gap', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-gap/pyproject.toml.m4 b/pkgs/sagemath-gap/pyproject.toml.m4 new file mode 100644 index 00000000000..7e4bdfc7cef --- /dev/null +++ b/pkgs/sagemath-gap/pyproject.toml.m4 @@ -0,0 +1,59 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_pkgconfig +] +build-backend = "mesonpy" + +[project] +name = "sagemath-gap" +description = "Sage: Open Source Mathematics Software: Computational Group Theory with GAP" +dependencies = [ + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sage_conf + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gap", + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-gap/requirements-editable.txt.m4 b/pkgs/sagemath-gap/requirements-editable.txt.m4 new file mode 100644 index 00000000000..7f488d6ebe1 --- /dev/null +++ b/pkgs/sagemath-gap/requirements-editable.txt.m4 @@ -0,0 +1,9 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cypari +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories diff --git a/pkgs/sagemath-gap/requirements.txt.m4 b/pkgs/sagemath-gap/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-gap/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-gap/sage b/pkgs/sagemath-gap/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-gap/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-gap/sage-cython-native-file.ini b/pkgs/sagemath-gap/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-gap/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-gap/setup.py b/pkgs/sagemath-gap/setup.py new file mode 100644 index 00000000000..2adf100f2bc --- /dev/null +++ b/pkgs/sagemath-gap/setup.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-gap'], + package_data={'sage.libs.gap': ['sage.gaprc'], + 'sage.ext_data.gap': ['*']}) diff --git a/pkgs/sagemath-gap/tox.ini b/pkgs/sagemath-gap/tox.ini new file mode 100644 index 00000000000..9770d6a9459 --- /dev/null +++ b/pkgs/sagemath-gap/tox.ini @@ -0,0 +1,91 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-gap && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-gap/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + # Importing sage.libs.gap.libgap does not work yet because of the runtime dep on 'sage.rings.polynomial' + # {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.gap.libgap' + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-giac/MANIFEST.in b/pkgs/sagemath-giac/MANIFEST.in new file mode 100644 index 00000000000..f9b16af36dc --- /dev/null +++ b/pkgs/sagemath-giac/MANIFEST.in @@ -0,0 +1,18 @@ +include VERSION.txt + +prune sage +global-include all__sagemath_giac.py + +graft sage/libs/giac + +global-exclude *.c +global-exclude *.cpp + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-giac/README.rst b/pkgs/sagemath-giac/README.rst new file mode 100644 index 00000000000..515f800236f --- /dev/null +++ b/pkgs/sagemath-giac/README.rst @@ -0,0 +1,29 @@ +======================================================================== + Sage: Open Source Mathematics Software: Symbolic computation with GIAC +======================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2022 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-giac`` provides a Cython +interface to GIAC. diff --git a/pkgs/sagemath-giac/VERSION.txt b/pkgs/sagemath-giac/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-giac/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-giac/meson.build b/pkgs/sagemath-giac/meson.build new file mode 100644 index 00000000000..2e8336a7c00 --- /dev/null +++ b/pkgs/sagemath-giac/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-giac', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_giac', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-giac/pyproject.toml.m4 b/pkgs/sagemath-giac/pyproject.toml.m4 new file mode 100644 index 00000000000..e75f868bb02 --- /dev/null +++ b/pkgs/sagemath-giac/pyproject.toml.m4 @@ -0,0 +1,55 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_pkgconfig +] +build-backend = "mesonpy" + +[project] +name = "sagemath-giac" +description = "Sage: Open Source Mathematics Software: Symbolic computation with GIAC" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_categories +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[tool.setuptools] +packages = ["sage.libs.giac"] +include-package-data = false + +[tool.setuptools.package-data] +"sage.libs.giac" = ["*.pxd"] + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/giac", + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-giac/requirements.txt.m4 b/pkgs/sagemath-giac/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-giac/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-giac/sage b/pkgs/sagemath-giac/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-giac/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-giac/sage-cython-native-file.ini b/pkgs/sagemath-giac/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-giac/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-giac/setup.py b/pkgs/sagemath-giac/setup.py new file mode 100644 index 00000000000..f22c2c7b0ed --- /dev/null +++ b/pkgs/sagemath-giac/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-giac']) diff --git a/pkgs/sagemath-giac/tox.ini b/pkgs/sagemath-giac/tox.ini new file mode 100644 index 00000000000..862a7db7f74 --- /dev/null +++ b/pkgs/sagemath-giac/tox.ini @@ -0,0 +1,65 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-giac && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-giac/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +[testenv] +deps = + !norequirements: -rrequirements.txt + # tox 3.x does not handle extras when using --installpkg. https://github.com/tox-dev/tox/issues/1576 + sagemath-repl + +extras = test + +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + # Currently cannot be imported - dep sage.rings.integer missing + # {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.giac.giac' + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 diff --git a/pkgs/sagemath-glpk/MANIFEST.in b/pkgs/sagemath-glpk/MANIFEST.in new file mode 100644 index 00000000000..686c1178f77 --- /dev/null +++ b/pkgs/sagemath-glpk/MANIFEST.in @@ -0,0 +1,19 @@ +include VERSION.txt + +prune sage +global-include all__sagemath_glpk.py + +graft sage/libs/glpk +include sage/numerical/backends/glpk_*backend.p* + +global-exclude *.c +global-exclude *.cpp + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-glpk/README.rst b/pkgs/sagemath-glpk/README.rst new file mode 100644 index 00000000000..0ff4f91055f --- /dev/null +++ b/pkgs/sagemath-glpk/README.rst @@ -0,0 +1,40 @@ +========================================================================================================= + Sage: Open Source Mathematics Software: Linear and mixed integer linear optimization backend using GLPK +========================================================================================================= + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2022 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-glpk`` provides +a backend for linear and mixed integer linear optimization backend using GLPK. + +It can be installed as an extra of the distribution +`sagemath-polyhedra `_:: + + $ pip install "sagemath-polyhedra[glpk]" + + +What is included +---------------- + +* `GLPK backends `_ for LP, MILP, and graphs diff --git a/pkgs/sagemath-glpk/VERSION.txt b/pkgs/sagemath-glpk/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-glpk/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-glpk/meson.build b/pkgs/sagemath-glpk/meson.build new file mode 100644 index 00000000000..6b6c5964dc4 --- /dev/null +++ b/pkgs/sagemath-glpk/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-glpk', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_glpk', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-glpk/pyproject.toml.m4 b/pkgs/sagemath-glpk/pyproject.toml.m4 new file mode 100644 index 00000000000..ce49ca09844 --- /dev/null +++ b/pkgs/sagemath-glpk/pyproject.toml.m4 @@ -0,0 +1,61 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +build-backend = "mesonpy" + +[project] +name = "sagemath-glpk" +description = "Sage: Open Source Mathematics Software: Linear and mixed integer linear optimization backend using GLPK" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [ + # No test requirements; see comment in tox.ini + # SPKG_INSTALL_REQUIRES_sagemath_repl + # SPKG_INSTALL_REQUIRES_sagemath_polyhedra +] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/glpk", + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-glpk/requirements-editable.txt.m4 b/pkgs/sagemath-glpk/requirements-editable.txt.m4 new file mode 100644 index 00000000000..394feb11c53 --- /dev/null +++ b/pkgs/sagemath-glpk/requirements-editable.txt.m4 @@ -0,0 +1,8 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects diff --git a/pkgs/sagemath-glpk/requirements.txt.m4 b/pkgs/sagemath-glpk/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-glpk/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-glpk/sage b/pkgs/sagemath-glpk/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-glpk/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-glpk/sage-cython-native-file.ini b/pkgs/sagemath-glpk/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-glpk/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-glpk/setup.py b/pkgs/sagemath-glpk/setup.py new file mode 100644 index 00000000000..37103f09d64 --- /dev/null +++ b/pkgs/sagemath-glpk/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-glpk']) diff --git a/pkgs/sagemath-glpk/tox.ini b/pkgs/sagemath-glpk/tox.ini new file mode 100644 index 00000000000..297a9efdc64 --- /dev/null +++ b/pkgs/sagemath-glpk/tox.ini @@ -0,0 +1,119 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-glpk && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-glpk/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.glpk' + # Actual tests are disabled here for now because sagemath-glpk is (still) an install-requires of sagemath-polyhedra + # bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + # && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_polyhedra --baseline-stats-path={toxinidir}/known-test-failures.json ./sage/numerical/backends/glpk*.pyx' + + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-graphs/MANIFEST.in.m4 b/pkgs/sagemath-graphs/MANIFEST.in.m4 new file mode 100644 index 00000000000..607eb548e5d --- /dev/null +++ b/pkgs/sagemath-graphs/MANIFEST.in.m4 @@ -0,0 +1,71 @@ +dnl MANIFEST.in is generated from this file by SAGE_ROOT/bootstrap via m4. +prune sage + +include VERSION.txt + +exclude *.m4 +include requirements.txt + +graft sage/combinat/posets +exclude sage/combinat/posets/hasse_cython_flint.p* # needs flint +include sage/combinat/abstract_tree.p* +include sage/combinat/binary_tree.p* +include sage/combinat/ordered_tree.p* +include sage/combinat/rooted_tree.p* +include sage/combinat/graph_path.p* +include sage/combinat/shard_order.p* +include sage/combinat/tamari_lattices.p* +include sage/combinat/nu_tamari_lattice.p* +include sage/combinat/interval_posets.p* # check if 'element in DyckWords()' can be tested better +include sage/combinat/yang_baxter_graph.p* +include sage/combinat/cluster_algebra_quiver/mutation_class.p* # more from there? + +graft sage/combinat/designs +graft sage/combinat/cluster_algebra_quiver + +#include sage/combinat/root_system/dynkin_diagram.p* # want? +#include sage/combinat/root_system/cartan_type.p* # dep of dynkin_diagram + +include sage/combinat/finite_state_machine*.p* + +#include src/sage/combinat/rigged_configurations/kleber_tree.py # want? + +graft sage/graphs +exclude sage/graphs/bliss.p* +prune sage/graphs/bliss_cpp +exclude sage/graphs/mcqd.p* +exclude sage/graphs/graph_decompositions/*tdlib*.* + +exclude sage/graphs/chrompoly.p* # needs flint +exclude sage/graphs/matchpoly.p* # needs flint + +include sage/groups/perm_gps/partn_ref/refinement_graphs.p* + +graft sage/knots + +graft sage/sandpiles + +# quivers use bounded_integer_sequences, which depends on flint (for a bad reason) +#include sage/quivers/paths.p* +#include sage/quivers/path_semigroup.p* # but not their representations, algebras + +# simplicial complexes +graft sage/topology # depends on sage.combinat.subset (now in sagemath-categories) + +# Could also try to add: +# sage/geometry/polyhedron/combinatorial_polyhedron + +include sage/databases/knotinfo_db.p* + + +global-exclude all__sagemath_*.py +global-include all__sagemath_graphs.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-graphs/README.rst b/pkgs/sagemath-graphs/README.rst new file mode 100644 index 00000000000..8df4804697d --- /dev/null +++ b/pkgs/sagemath-graphs/README.rst @@ -0,0 +1,43 @@ +======================================================================================================================================================= + Sage: Open Source Mathematics Software: Graphs, posets, hypergraphs, designs, abstract complexes, combinatorial polyhedra, abelian sandpiles, quivers +======================================================================================================================================================= + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via Sage-the-distribution (https://www.sagemath.org/download-source.html). Sage-the-distribution first builds a large number of open source packages from source (unless it finds suitable versions installed in the system) and then installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this experimental pip-installable source distribution +----------------------------------------------------------- + +This pip-installable source distribution `sagemath-graphs` is an experimental distribution of a part of the Sage Library. Use at your own risk. It provides a small subset of the modules of the Sage library ("sagelib", `sagemath-standard`) for computations with graphs, posets, complexes, etc. + + +What is included +---------------- + +* `Graph Theory `_ + +* `Trees `_ + +* `Posets `_ + +* `Abstract Complexes `_ + +* `Combinatorial Designs and Incidence Structure `_ + +* `Finite State Machines, Automata, Transducers `_ + +* `Cluster Algebras and Quivers `_ + +* `Sandpiles `_ diff --git a/pkgs/sagemath-graphs/VERSION.txt b/pkgs/sagemath-graphs/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-graphs/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-graphs/known-test-failures--modules--pari.json b/pkgs/sagemath-graphs/known-test-failures--modules--pari.json new file mode 100644 index 00000000000..5141928771d --- /dev/null +++ b/pkgs/sagemath-graphs/known-test-failures--modules--pari.json @@ -0,0 +1,3853 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_ideal": { + "ntests": 36 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "failed": true, + "ntests": 116 + }, + "sage.algebras.orlik_terao": { + "failed": true, + "ntests": 125 + }, + "sage.algebras.weyl_algebra": { + "ntests": 4 + }, + "sage.all__sagemath_graphs": { + "ntests": 2 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.all__sagemath_pari": { + "ntests": 3 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 1060 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 4 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.riemann": { + "ntests": 13 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 110 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "failed": true, + "ntests": 66 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "failed": true, + "ntests": 161 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 5 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 23 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 3 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 35 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 21 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "failed": true, + "ntests": 57 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "ntests": 361 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "failed": true, + "ntests": 228 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_cat": { + "ntests": 155 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 132 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 90 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 142 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 39 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 118 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "failed": true, + "ntests": 137 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 48 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 237 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 380 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 145 + }, + "sage.categories.modules_with_basis": { + "ntests": 488 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 85 + }, + "sage.categories.morphism": { + "ntests": 104 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.posets": { + "ntests": 147 + }, + "sage.categories.primer": { + "ntests": 163 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 770 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 119 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "failed": true, + "ntests": 166 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 106 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 434 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "failed": true, + "ntests": 106 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 45 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.abstract_code": { + "ntests": 136 + }, + "sage.coding.bch_code": { + "failed": true, + "ntests": 82 + }, + "sage.coding.binary_code": { + "ntests": 348 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channel": { + "ntests": 116 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 48 + }, + "sage.coding.code_constructions": { + "failed": true, + "ntests": 148 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "failed": true, + "ntests": 274 + }, + "sage.coding.databases": { + "ntests": 3 + }, + "sage.coding.decoder": { + "ntests": 62 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 2 + }, + "sage.coding.encoder": { + "ntests": 72 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.extended_code": { + "ntests": 81 + }, + "sage.coding.gabidulin_code": { + "failed": true, + "ntests": 235 + }, + "sage.coding.golay_code": { + "ntests": 48 + }, + "sage.coding.goppa_code": { + "failed": true, + "ntests": 115 + }, + "sage.coding.grs_code": { + "failed": true, + "ntests": 530 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.interpolation": { + "failed": true, + "ntests": 47 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 19 + }, + "sage.coding.hamming_code": { + "ntests": 18 + }, + "sage.coding.information_set_decoder": { + "ntests": 172 + }, + "sage.coding.kasami_codes": { + "failed": true, + "ntests": 45 + }, + "sage.coding.linear_code": { + "failed": true, + "ntests": 0 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 232 + }, + "sage.coding.linear_rank_metric": { + "ntests": 138 + }, + "sage.coding.parity_check_code": { + "ntests": 48 + }, + "sage.coding.punctured_code": { + "failed": true, + "ntests": 111 + }, + "sage.coding.reed_muller_code": { + "ntests": 168 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.coding.subfield_subcode": { + "failed": true, + "ntests": 65 + }, + "sage.combinat.abstract_tree": { + "ntests": 422 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.binary_tree": { + "ntests": 719 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.cluster_algebra_quiver.cluster_seed": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.cluster_algebra_quiver.interact": { + "ntests": 2 + }, + "sage.combinat.cluster_algebra_quiver.mutation_class": { + "ntests": 66 + }, + "sage.combinat.cluster_algebra_quiver.mutation_type": { + "ntests": 73 + }, + "sage.combinat.cluster_algebra_quiver.quiver": { + "failed": true, + "ntests": 312 + }, + "sage.combinat.cluster_algebra_quiver.quiver_mutation_type": { + "ntests": 244 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 411 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.designs.bibd": { + "ntests": 115 + }, + "sage.combinat.designs.block_design": { + "failed": true, + "ntests": 83 + }, + "sage.combinat.designs.covering_design": { + "ntests": 46 + }, + "sage.combinat.designs.database": { + "failed": true, + "ntests": 365 + }, + "sage.combinat.designs.design_catalog": { + "ntests": 2 + }, + "sage.combinat.designs.designs_pyx": { + "failed": true, + "ntests": 69 + }, + "sage.combinat.designs.difference_family": { + "failed": true, + "ntests": 353 + }, + "sage.combinat.designs.difference_matrices": { + "ntests": 20 + }, + "sage.combinat.designs.evenly_distributed_sets": { + "ntests": 50 + }, + "sage.combinat.designs.ext_rep": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.designs.group_divisible_designs": { + "ntests": 24 + }, + "sage.combinat.designs.incidence_structures": { + "failed": true, + "ntests": 287 + }, + "sage.combinat.designs.latin_squares": { + "ntests": 36 + }, + "sage.combinat.designs.orthogonal_arrays_build_recursive": { + "failed": true, + "ntests": 61 + }, + "sage.combinat.designs.resolvable_bibd": { + "ntests": 22 + }, + "sage.combinat.designs.steiner_quadruple_systems": { + "ntests": 36 + }, + "sage.combinat.designs.subhypergraph_search": { + "ntests": 12 + }, + "sage.combinat.designs.twographs": { + "ntests": 33 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.finite_state_machine": { + "failed": true, + "ntests": 2076 + }, + "sage.combinat.finite_state_machine_generators": { + "ntests": 172 + }, + "sage.combinat.free_module": { + "ntests": 403 + }, + "sage.combinat.graph_path": { + "ntests": 95 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.interval_posets": { + "ntests": 562 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.ordered_tree": { + "ntests": 260 + }, + "sage.combinat.permutation": { + "ntests": 1214 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.posets.cartesian_product": { + "ntests": 75 + }, + "sage.combinat.posets.elements": { + "ntests": 67 + }, + "sage.combinat.posets.hasse_cython": { + "ntests": 24 + }, + "sage.combinat.posets.hasse_diagram": { + "ntests": 558 + }, + "sage.combinat.posets.incidence_algebras": { + "ntests": 165 + }, + "sage.combinat.posets.lattices": { + "failed": true, + "ntests": 619 + }, + "sage.combinat.posets.linear_extension_iterator": { + "ntests": 13 + }, + "sage.combinat.posets.linear_extensions": { + "ntests": 174 + }, + "sage.combinat.posets.mobile": { + "ntests": 36 + }, + "sage.combinat.posets.moebius_algebra": { + "ntests": 118 + }, + "sage.combinat.posets.poset_examples": { + "ntests": 12 + }, + "sage.combinat.posets.posets": { + "failed": true, + "ntests": 1393 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "failed": true, + "ntests": 167 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 462 + }, + "sage.combinat.root_system.coxeter_group": { + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_matrix": { + "ntests": 177 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.integrable_representations": { + "failed": true, + "ntests": 146 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "failed": true, + "ntests": 494 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 311 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 606 + }, + "sage.combinat.root_system.root_space": { + "failed": true, + "ntests": 78 + }, + "sage.combinat.root_system.root_system": { + "ntests": 125 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 26 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 52 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 23 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 72 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 38 + }, + "sage.combinat.root_system.type_marked": { + "failed": true, + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "failed": true, + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 184 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.rooted_tree": { + "ntests": 162 + }, + "sage.combinat.shard_order": { + "ntests": 40 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tamari_lattices": { + "ntests": 34 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.combinat.yang_baxter_graph": { + "ntests": 174 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.block_cipher.des": { + "ntests": 156 + }, + "sage.crypto.block_cipher.present": { + "ntests": 138 + }, + "sage.crypto.boolean_function": { + "failed": true, + "ntests": 206 + }, + "sage.crypto.classical": { + "ntests": 13 + }, + "sage.crypto.classical_cipher": { + "ntests": 2 + }, + "sage.crypto.cryptosystem": { + "ntests": 14 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 18 + }, + "sage.crypto.lfsr": { + "ntests": 29 + }, + "sage.crypto.lwe": { + "ntests": 2 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "failed": true, + "ntests": 342 + }, + "sage.crypto.mq.sr": { + "failed": true, + "ntests": 355 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 6 + }, + "sage.crypto.sbox": { + "failed": true, + "ntests": 268 + }, + "sage.crypto.sboxes": { + "failed": true, + "ntests": 27 + }, + "sage.data_structures.bitset": { + "ntests": 431 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.databases.knotinfo_db": { + "ntests": 100 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 305 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.ext.memory": { + "ntests": 3 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 179 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 97 + }, + "sage.functions.bessel": { + "failed": true, + "ntests": 172 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 162 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 136 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 77 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 157 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 236 + }, + "sage.functions.other": { + "failed": true, + "ntests": 246 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 64 + }, + "sage.functions.trig": { + "failed": true, + "ntests": 128 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.graphs.all": { + "ntests": 3 + }, + "sage.graphs.asteroidal_triples": { + "ntests": 13 + }, + "sage.graphs.base.boost_graph": { + "ntests": 204 + }, + "sage.graphs.base.c_graph": { + "ntests": 773 + }, + "sage.graphs.base.dense_graph": { + "ntests": 86 + }, + "sage.graphs.base.graph_backends": { + "ntests": 85 + }, + "sage.graphs.base.overview": { + "ntests": 1 + }, + "sage.graphs.base.sparse_graph": { + "ntests": 119 + }, + "sage.graphs.base.static_dense_graph": { + "ntests": 110 + }, + "sage.graphs.base.static_sparse_backend": { + "ntests": 181 + }, + "sage.graphs.base.static_sparse_graph": { + "failed": true, + "ntests": 66 + }, + "sage.graphs.bipartite_graph": { + "failed": true, + "ntests": 424 + }, + "sage.graphs.centrality": { + "ntests": 31 + }, + "sage.graphs.cliquer": { + "ntests": 34 + }, + "sage.graphs.comparability": { + "ntests": 52 + }, + "sage.graphs.connectivity": { + "failed": true, + "ntests": 523 + }, + "sage.graphs.convexity_properties": { + "ntests": 43 + }, + "sage.graphs.digraph": { + "failed": true, + "ntests": 545 + }, + "sage.graphs.digraph_generators": { + "ntests": 128 + }, + "sage.graphs.distances_all_pairs": { + "ntests": 165 + }, + "sage.graphs.domination": { + "failed": true, + "ntests": 144 + }, + "sage.graphs.dot2tex_utils": { + "ntests": 6 + }, + "sage.graphs.edge_connectivity": { + "ntests": 101 + }, + "sage.graphs.generators.basic": { + "ntests": 95 + }, + "sage.graphs.generators.chessboard": { + "ntests": 42 + }, + "sage.graphs.generators.classical_geometries": { + "ntests": 60 + }, + "sage.graphs.generators.degree_sequence": { + "ntests": 13 + }, + "sage.graphs.generators.distance_regular": { + "failed": true, + "ntests": 146 + }, + "sage.graphs.generators.families": { + "failed": true, + "ntests": 375 + }, + "sage.graphs.generators.intersection": { + "ntests": 72 + }, + "sage.graphs.generators.platonic_solids": { + "ntests": 6 + }, + "sage.graphs.generators.random": { + "ntests": 150 + }, + "sage.graphs.generators.smallgraphs": { + "failed": true, + "ntests": 404 + }, + "sage.graphs.generators.world_map": { + "ntests": 20 + }, + "sage.graphs.generic_graph": { + "failed": true, + "ntests": 3624 + }, + "sage.graphs.generic_graph_pyx": { + "ntests": 139 + }, + "sage.graphs.genus": { + "ntests": 51 + }, + "sage.graphs.graph": { + "failed": true, + "ntests": 1244 + }, + "sage.graphs.graph_coloring": { + "ntests": 152 + }, + "sage.graphs.graph_database": { + "failed": true, + "ntests": 50 + }, + "sage.graphs.graph_decompositions.bandwidth": { + "ntests": 14 + }, + "sage.graphs.graph_decompositions.clique_separators": { + "ntests": 68 + }, + "sage.graphs.graph_decompositions.cutwidth": { + "ntests": 63 + }, + "sage.graphs.graph_decompositions.fast_digraph": { + "ntests": 11 + }, + "sage.graphs.graph_decompositions.graph_products": { + "ntests": 48 + }, + "sage.graphs.graph_decompositions.modular_decomposition": { + "ntests": 151 + }, + "sage.graphs.graph_decompositions.rankwidth": { + "ntests": 23 + }, + "sage.graphs.graph_decompositions.tree_decomposition": { + "ntests": 202 + }, + "sage.graphs.graph_decompositions.vertex_separation": { + "ntests": 176 + }, + "sage.graphs.graph_editor": { + "ntests": 8 + }, + "sage.graphs.graph_generators": { + "ntests": 159 + }, + "sage.graphs.graph_generators_pyx": { + "ntests": 7 + }, + "sage.graphs.graph_input": { + "ntests": 50 + }, + "sage.graphs.graph_latex": { + "ntests": 7 + }, + "sage.graphs.graph_list": { + "failed": true, + "ntests": 58 + }, + "sage.graphs.hyperbolicity": { + "ntests": 68 + }, + "sage.graphs.hypergraph_generators": { + "ntests": 23 + }, + "sage.graphs.independent_sets": { + "ntests": 56 + }, + "sage.graphs.isgci": { + "failed": true, + "ntests": 84 + }, + "sage.graphs.isoperimetric_inequalities": { + "ntests": 25 + }, + "sage.graphs.line_graph": { + "ntests": 40 + }, + "sage.graphs.lovasz_theta": { + "ntests": 5 + }, + "sage.graphs.orientations": { + "ntests": 28 + }, + "sage.graphs.partial_cube": { + "ntests": 14 + }, + "sage.graphs.path_enumeration": { + "ntests": 253 + }, + "sage.graphs.planarity": { + "ntests": 6 + }, + "sage.graphs.pq_trees": { + "ntests": 90 + }, + "sage.graphs.print_graphs": { + "ntests": 12 + }, + "sage.graphs.schnyder": { + "ntests": 103 + }, + "sage.graphs.spanning_tree": { + "failed": true, + "ntests": 169 + }, + "sage.graphs.strongly_regular_db": { + "failed": true, + "ntests": 312 + }, + "sage.graphs.traversals": { + "ntests": 215 + }, + "sage.graphs.trees": { + "ntests": 25 + }, + "sage.graphs.tutte_polynomial": { + "ntests": 109 + }, + "sage.graphs.views": { + "ntests": 206 + }, + "sage.graphs.weakly_chordal": { + "ntests": 33 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 270 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 23 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 1 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 55 + }, + "sage.groups.abelian_gps.values": { + "ntests": 65 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "ntests": 97 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 92 + }, + "sage.groups.galois_group": { + "ntests": 58 + }, + "sage.groups.generic": { + "failed": true, + "ntests": 159 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.matrix_gps.coxeter_group": { + "ntests": 91 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 47 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 38 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 24 + }, + "sage.groups.matrix_gps.matrix_group": { + "failed": true, + "ntests": 45 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 21 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 43 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 38 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_binary": { + "ntests": 75 + }, + "sage.groups.perm_gps.partn_ref.refinement_graphs": { + "ntests": 110 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.algebraic_topological_model": { + "ntests": 44 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 265 + }, + "sage.homology.chain_complex_homspace": { + "failed": true, + "ntests": 40 + }, + "sage.homology.chain_complex_morphism": { + "failed": true, + "ntests": 135 + }, + "sage.homology.chain_homotopy": { + "ntests": 96 + }, + "sage.homology.chains": { + "ntests": 136 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.homology_group": { + "ntests": 22 + }, + "sage.homology.homology_morphism": { + "failed": true, + "ntests": 100 + }, + "sage.homology.homology_vector_space_with_basis": { + "failed": true, + "ntests": 0 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.gp": { + "failed": true, + "ntests": 148 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 1 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.knots.gauss_code": { + "ntests": 18 + }, + "sage.knots.knot": { + "ntests": 34 + }, + "sage.knots.knotinfo": { + "failed": true, + "ntests": 343 + }, + "sage.knots.link": { + "failed": true, + "ntests": 255 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.libs.pari": { + "ntests": 33 + }, + "sage.libs.pari.convert_gmp": { + "ntests": 16 + }, + "sage.libs.pari.convert_sage": { + "ntests": 86 + }, + "sage.libs.pari.convert_sage_complex_double": { + "ntests": 22 + }, + "sage.libs.pari.convert_sage_matrix": { + "ntests": 19 + }, + "sage.libs.pari.convert_sage_real_double": { + "ntests": 2 + }, + "sage.libs.pari.convert_sage_real_mpfr": { + "ntests": 7 + }, + "sage.libs.pari.tests": { + "failed": true, + "ntests": 673 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 146 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.compute_J_ideal": { + "failed": true, + "ntests": 99 + }, + "sage.matrix.constructor": { + "ntests": 128 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 800 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 432 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 2109 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 25 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_polynomial_dense": { + "failed": true, + "ntests": 436 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 419 + }, + "sage.matrix.matrix_sparse": { + "ntests": 164 + }, + "sage.matrix.misc_mpfr": { + "failed": true, + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 90 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 440 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 187 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 141 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.graphic_matroid": { + "failed": true, + "ntests": 358 + }, + "sage.matroids.lean_matrix": { + "ntests": 292 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 653 + }, + "sage.matroids.matroid": { + "ntests": 872 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 13 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 64 + }, + "sage.matroids.utilities": { + "ntests": 69 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 204 + }, + "sage.misc.cachefunc": { + "ntests": 692 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 40 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 325 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 243 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 237 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 237 + }, + "sage.misc.lazy_string": { + "ntests": 137 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 141 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 38 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 27 + }, + "sage.misc.sage_eval": { + "ntests": 35 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 281 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 435 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 170 + }, + "sage.modules.finite_submodule_iter": { + "failed": true, + "ntests": 95 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1467 + }, + "sage.modules.free_module_element": { + "failed": true, + "ntests": 895 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 170 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 213 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 400 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "failed": true, + "ntests": 124 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 171 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 2 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_modn_dense": { + "ntests": 69 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 4 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 1 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "failed": true, + "ntests": 171 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 161 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.optimize": { + "ntests": 39 + }, + "sage.parallel.decorate": { + "ntests": 90 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "failed": true, + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 326 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.genera.genus": { + "failed": true, + "ntests": 529 + }, + "sage.quadratic_forms.qfsolve": { + "ntests": 38 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 196 + }, + "sage.quadratic_forms.quadratic_form__automorphisms": { + "ntests": 51 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 74 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__genus": { + "ntests": 10 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_density_interfaces": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "ntests": 140 + }, + "sage.quadratic_forms.quadratic_form__local_normal_form": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__mass": { + "ntests": 4 + }, + "sage.quadratic_forms.quadratic_form__mass__Conway_Sloane_masses": { + "ntests": 59 + }, + "sage.quadratic_forms.quadratic_form__mass__Siegel_densities": { + "ntests": 14 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "failed": true, + "ntests": 32 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__siegel_product": { + "failed": true, + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 99 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.special_values": { + "failed": true, + "ntests": 21 + }, + "sage.quadratic_forms.ternary": { + "ntests": 105 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 306 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.algebraic_closure_finite_field": { + "failed": true, + "ntests": 213 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "failed": true, + "ntests": 339 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 520 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 295 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.derivation": { + "ntests": 405 + }, + "sage.rings.factorint": { + "ntests": 13 + }, + "sage.rings.factorint_pari": { + "ntests": 3 + }, + "sage.rings.fast_arith": { + "ntests": 20 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 43 + }, + "sage.rings.finite_rings.element_base": { + "failed": true, + "ntests": 233 + }, + "sage.rings.finite_rings.element_pari_ffelt": { + "failed": true, + "ntests": 276 + }, + "sage.rings.finite_rings.finite_field_base": { + "failed": true, + "ntests": 321 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "failed": true, + "ntests": 124 + }, + "sage.rings.finite_rings.finite_field_pari_ffelt": { + "failed": true, + "ntests": 41 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 38 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 20 + }, + "sage.rings.finite_rings.hom_finite_field": { + "failed": true, + "ntests": 192 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 21 + }, + "sage.rings.finite_rings.homset": { + "failed": true, + "ntests": 67 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 580 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 255 + }, + "sage.rings.finite_rings.maps_finite_field": { + "ntests": 31 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 139 + }, + "sage.rings.finite_rings.residue_field_pari_ffelt": { + "ntests": 8 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 248 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 271 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 108 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 83 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 159 + }, + "sage.rings.function_field.function_field_rational": { + "failed": true, + "ntests": 148 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 136 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 150 + }, + "sage.rings.function_field.maps": { + "ntests": 59 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "ntests": 106 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "failed": true, + "ntests": 30 + }, + "sage.rings.function_field.valuation": { + "failed": true, + "ntests": 271 + }, + "sage.rings.generic": { + "ntests": 69 + }, + "sage.rings.homset": { + "ntests": 44 + }, + "sage.rings.ideal": { + "ntests": 361 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1168 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 219 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 883 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 160 + }, + "sage.rings.laurent_series_ring_element": { + "ntests": 393 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 175 + }, + "sage.rings.morphism": { + "ntests": 547 + }, + "sage.rings.multi_power_series_ring": { + "failed": true, + "ntests": 230 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 437 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.padics.CA_template.pxi": { + "ntests": 193 + }, + "sage.rings.padics.CR_template.pxi": { + "ntests": 314 + }, + "sage.rings.padics.FM_template.pxi": { + "ntests": 174 + }, + "sage.rings.padics.FP_template.pxi": { + "ntests": 240 + }, + "sage.rings.padics.eisenstein_extension_generic": { + "ntests": 41 + }, + "sage.rings.padics.factory": { + "failed": true, + "ntests": 408 + }, + "sage.rings.padics.generic_nodes": { + "ntests": 190 + }, + "sage.rings.padics.lattice_precision": { + "failed": true, + "ntests": 456 + }, + "sage.rings.padics.local_generic": { + "ntests": 71 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_base_generic": { + "ntests": 44 + }, + "sage.rings.padics.padic_base_leaves": { + "ntests": 177 + }, + "sage.rings.padics.padic_capped_absolute_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_capped_relative_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_extension_leaves": { + "ntests": 72 + }, + "sage.rings.padics.padic_fixed_mod_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_floating_point_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_generic": { + "ntests": 50 + }, + "sage.rings.padics.padic_generic_element": { + "failed": true, + "ntests": 613 + }, + "sage.rings.padics.padic_lattice_element": { + "ntests": 269 + }, + "sage.rings.padics.padic_printing": { + "ntests": 108 + }, + "sage.rings.padics.padic_template_element.pxi": { + "ntests": 113 + }, + "sage.rings.padics.padic_valuation": { + "ntests": 135 + }, + "sage.rings.padics.pow_computer": { + "ntests": 76 + }, + "sage.rings.padics.pow_computer_relative": { + "ntests": 3 + }, + "sage.rings.padics.tests": { + "ntests": 12 + }, + "sage.rings.padics.tutorial": { + "ntests": 45 + }, + "sage.rings.padics.unramified_extension_generic": { + "ntests": 29 + }, + "sage.rings.pari_ring": { + "ntests": 46 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 37 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 402 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 339 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 87 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 522 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true, + "ntests": 297 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 79 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 232 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.ore_function_element": { + "failed": true, + "ntests": 243 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 231 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 1 + }, + "sage.rings.polynomial.padics.polynomial_padic": { + "ntests": 25 + }, + "sage.rings.polynomial.padics.polynomial_padic_capped_relative_dense": { + "ntests": 7 + }, + "sage.rings.polynomial.padics.polynomial_padic_flat": { + "ntests": 3 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 2210 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 203 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "failed": true, + "ntests": 341 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_ring": { + "failed": true, + "ntests": 475 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 139 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 30 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 52 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 327 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 42 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_pari": { + "ntests": 177 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 271 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 491 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 198 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 200 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 542 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 202 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 356 + }, + "sage.rings.real_double_element_gsl": { + "failed": true, + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1037 + }, + "sage.rings.ring": { + "failed": true, + "ntests": 356 + }, + "sage.rings.ring_extension": { + "failed": true, + "ntests": 380 + }, + "sage.rings.ring_extension_conversion": { + "failed": true, + "ntests": 75 + }, + "sage.rings.ring_extension_element": { + "failed": true, + "ntests": 247 + }, + "sage.rings.ring_extension_homset": { + "failed": true, + "ntests": 9 + }, + "sage.rings.ring_extension_morphism": { + "failed": true, + "ntests": 138 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tate_algebra": { + "failed": true, + "ntests": 267 + }, + "sage.rings.tate_algebra_element": { + "failed": true, + "ntests": 671 + }, + "sage.rings.tate_algebra_ideal": { + "failed": true, + "ntests": 126 + }, + "sage.rings.tests": { + "ntests": 44 + }, + "sage.rings.valuation.augmented_valuation": { + "failed": true, + "ntests": 174 + }, + "sage.rings.valuation.developing_valuation": { + "ntests": 27 + }, + "sage.rings.valuation.gauss_valuation": { + "ntests": 92 + }, + "sage.rings.valuation.inductive_valuation": { + "ntests": 139 + }, + "sage.rings.valuation.limit_valuation": { + "ntests": 18 + }, + "sage.rings.valuation.mapped_valuation": { + "ntests": 22 + }, + "sage.rings.valuation.scaled_valuation": { + "ntests": 41 + }, + "sage.rings.valuation.trivial_valuation": { + "ntests": 53 + }, + "sage.rings.valuation.valuation": { + "ntests": 184 + }, + "sage.rings.valuation.valuation_space": { + "ntests": 200 + }, + "sage.rings.valuation.value_group": { + "ntests": 102 + }, + "sage.sandpiles.examples": { + "ntests": 24 + }, + "sage.sandpiles.sandpile": { + "failed": true, + "ntests": 848 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 318 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "failed": true, + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 122 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 395 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 179 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 97 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 67 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 62 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 528 + }, + "sage.schemes.projective.projective_point": { + "ntests": 289 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 36 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 376 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 240 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "failed": true, + "ntests": 397 + }, + "sage.sets.set_from_iterator": { + "ntests": 197 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 51 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.distributions": { + "ntests": 1 + }, + "sage.stats.hmm.hmm": { + "ntests": 2 + }, + "sage.stats.intlist": { + "ntests": 3 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "ntests": 6 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 163 + }, + "sage.structure.coerce": { + "ntests": 346 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 684 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 226 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 115 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 123 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 320 + }, + "sage.structure.parent_gens": { + "failed": true, + "ntests": 41 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 11 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 229 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 179 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 103 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "failed": true, + "ntests": 249 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 8 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 11 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.topology.cell_complex": { + "failed": true, + "ntests": 156 + }, + "sage.topology.cubical_complex": { + "failed": true, + "ntests": 256 + }, + "sage.topology.delta_complex": { + "failed": true, + "ntests": 166 + }, + "sage.topology.filtered_simplicial_complex": { + "ntests": 110 + }, + "sage.topology.moment_angle_complex": { + "failed": true, + "ntests": 0 + }, + "sage.topology.simplicial_complex": { + "failed": true, + "ntests": 657 + }, + "sage.topology.simplicial_complex_catalog": { + "failed": true, + "ntests": 6 + }, + "sage.topology.simplicial_complex_examples": { + "failed": true, + "ntests": 137 + }, + "sage.topology.simplicial_complex_homset": { + "ntests": 47 + }, + "sage.topology.simplicial_complex_morphism": { + "failed": true, + "ntests": 219 + }, + "sage.topology.simplicial_set": { + "failed": true, + "ntests": 783 + }, + "sage.topology.simplicial_set_catalog": { + "ntests": 6 + }, + "sage.topology.simplicial_set_constructions": { + "failed": true, + "ntests": 382 + }, + "sage.topology.simplicial_set_examples": { + "failed": true, + "ntests": 69 + }, + "sage.topology.simplicial_set_morphism": { + "ntests": 294 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-graphs/known-test-failures--modules.json b/pkgs/sagemath-graphs/known-test-failures--modules.json new file mode 100644 index 00000000000..722de72e291 --- /dev/null +++ b/pkgs/sagemath-graphs/known-test-failures--modules.json @@ -0,0 +1,3472 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "failed": true, + "ntests": 116 + }, + "sage.algebras.orlik_terao": { + "failed": true, + "ntests": 125 + }, + "sage.algebras.weyl_algebra": { + "ntests": 4 + }, + "sage.all__sagemath_graphs": { + "ntests": 2 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 906 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 4 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.riemann": { + "ntests": 13 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 110 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "failed": true, + "ntests": 66 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 155 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 7 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 23 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 3 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 35 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 17 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "ntests": 38 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "ntests": 361 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "ntests": 2 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 109 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 90 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 122 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 39 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 118 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "ntests": 128 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 48 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 224 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 380 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 145 + }, + "sage.categories.modules_with_basis": { + "ntests": 488 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 85 + }, + "sage.categories.morphism": { + "ntests": 99 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.posets": { + "ntests": 147 + }, + "sage.categories.primer": { + "ntests": 163 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 746 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 81 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "ntests": 166 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 106 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 434 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "failed": true, + "ntests": 106 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 8 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 45 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.binary_code": { + "ntests": 1 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 44 + }, + "sage.coding.code_constructions": { + "ntests": 30 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "ntests": 1 + }, + "sage.coding.databases": { + "ntests": 2 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 2 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.golay_code": { + "ntests": 2 + }, + "sage.coding.goppa_code": { + "ntests": 1 + }, + "sage.coding.grs_code": { + "ntests": 1 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 2 + }, + "sage.coding.kasami_codes": { + "ntests": 2 + }, + "sage.coding.linear_code": { + "ntests": 44 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 2 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.combinat.abstract_tree": { + "ntests": 422 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.binary_tree": { + "ntests": 719 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.cluster_algebra_quiver.cluster_seed": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.cluster_algebra_quiver.interact": { + "ntests": 2 + }, + "sage.combinat.cluster_algebra_quiver.mutation_class": { + "ntests": 66 + }, + "sage.combinat.cluster_algebra_quiver.mutation_type": { + "ntests": 73 + }, + "sage.combinat.cluster_algebra_quiver.quiver": { + "failed": true, + "ntests": 312 + }, + "sage.combinat.cluster_algebra_quiver.quiver_mutation_type": { + "ntests": 244 + }, + "sage.combinat.combinat": { + "ntests": 411 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.designs.bibd": { + "ntests": 111 + }, + "sage.combinat.designs.block_design": { + "ntests": 11 + }, + "sage.combinat.designs.covering_design": { + "ntests": 46 + }, + "sage.combinat.designs.database": { + "ntests": 365 + }, + "sage.combinat.designs.design_catalog": { + "ntests": 2 + }, + "sage.combinat.designs.designs_pyx": { + "ntests": 58 + }, + "sage.combinat.designs.difference_family": { + "ntests": 288 + }, + "sage.combinat.designs.ext_rep": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.designs.incidence_structures": { + "ntests": 276 + }, + "sage.combinat.designs.latin_squares": { + "ntests": 36 + }, + "sage.combinat.designs.orthogonal_arrays_build_recursive": { + "ntests": 9 + }, + "sage.combinat.designs.resolvable_bibd": { + "ntests": 5 + }, + "sage.combinat.designs.steiner_quadruple_systems": { + "ntests": 36 + }, + "sage.combinat.designs.subhypergraph_search": { + "ntests": 12 + }, + "sage.combinat.designs.twographs": { + "ntests": 33 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.finite_state_machine": { + "failed": true, + "ntests": 2076 + }, + "sage.combinat.finite_state_machine_generators": { + "ntests": 172 + }, + "sage.combinat.free_module": { + "ntests": 398 + }, + "sage.combinat.graph_path": { + "ntests": 95 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.interval_posets": { + "ntests": 562 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.ordered_tree": { + "ntests": 260 + }, + "sage.combinat.permutation": { + "ntests": 1214 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.posets.cartesian_product": { + "ntests": 75 + }, + "sage.combinat.posets.elements": { + "ntests": 67 + }, + "sage.combinat.posets.hasse_cython": { + "ntests": 24 + }, + "sage.combinat.posets.hasse_diagram": { + "ntests": 558 + }, + "sage.combinat.posets.incidence_algebras": { + "ntests": 165 + }, + "sage.combinat.posets.lattices": { + "failed": true, + "ntests": 619 + }, + "sage.combinat.posets.linear_extension_iterator": { + "ntests": 13 + }, + "sage.combinat.posets.linear_extensions": { + "ntests": 174 + }, + "sage.combinat.posets.mobile": { + "ntests": 36 + }, + "sage.combinat.posets.moebius_algebra": { + "ntests": 118 + }, + "sage.combinat.posets.poset_examples": { + "ntests": 12 + }, + "sage.combinat.posets.posets": { + "failed": true, + "ntests": 1393 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "failed": true, + "ntests": 167 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 462 + }, + "sage.combinat.root_system.coxeter_group": { + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_matrix": { + "ntests": 177 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.integrable_representations": { + "failed": true, + "ntests": 146 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "failed": true, + "ntests": 494 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 311 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 606 + }, + "sage.combinat.root_system.root_space": { + "failed": true, + "ntests": 78 + }, + "sage.combinat.root_system.root_system": { + "ntests": 125 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 26 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 52 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 23 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 72 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 38 + }, + "sage.combinat.root_system.type_marked": { + "failed": true, + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "failed": true, + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 184 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.rooted_tree": { + "ntests": 162 + }, + "sage.combinat.shard_order": { + "ntests": 40 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tamari_lattices": { + "ntests": 34 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.combinat.yang_baxter_graph": { + "ntests": 174 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.boolean_function": { + "ntests": 202 + }, + "sage.crypto.classical": { + "ntests": 14 + }, + "sage.crypto.classical_cipher": { + "ntests": 2 + }, + "sage.crypto.cryptosystem": { + "ntests": 14 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 18 + }, + "sage.crypto.lwe": { + "ntests": 4 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "ntests": 16 + }, + "sage.crypto.mq.sr": { + "ntests": 24 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 11 + }, + "sage.crypto.sbox": { + "ntests": 12 + }, + "sage.crypto.util": { + "ntests": 9 + }, + "sage.data_structures.bitset": { + "ntests": 425 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.databases.knotinfo_db": { + "ntests": 100 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 303 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 179 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 97 + }, + "sage.functions.bessel": { + "failed": true, + "ntests": 172 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 156 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 136 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "failed": true, + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 78 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 157 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 237 + }, + "sage.functions.other": { + "failed": true, + "ntests": 247 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 58 + }, + "sage.functions.trig": { + "failed": true, + "ntests": 128 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.graphs.all": { + "ntests": 3 + }, + "sage.graphs.asteroidal_triples": { + "ntests": 13 + }, + "sage.graphs.base.boost_graph": { + "ntests": 204 + }, + "sage.graphs.base.c_graph": { + "ntests": 767 + }, + "sage.graphs.base.dense_graph": { + "ntests": 86 + }, + "sage.graphs.base.graph_backends": { + "ntests": 85 + }, + "sage.graphs.base.overview": { + "ntests": 1 + }, + "sage.graphs.base.sparse_graph": { + "ntests": 119 + }, + "sage.graphs.base.static_dense_graph": { + "ntests": 110 + }, + "sage.graphs.base.static_sparse_backend": { + "ntests": 181 + }, + "sage.graphs.base.static_sparse_graph": { + "failed": true, + "ntests": 66 + }, + "sage.graphs.bipartite_graph": { + "ntests": 404 + }, + "sage.graphs.centrality": { + "ntests": 31 + }, + "sage.graphs.cliquer": { + "ntests": 34 + }, + "sage.graphs.comparability": { + "ntests": 52 + }, + "sage.graphs.connectivity": { + "failed": true, + "ntests": 523 + }, + "sage.graphs.convexity_properties": { + "ntests": 43 + }, + "sage.graphs.digraph": { + "ntests": 545 + }, + "sage.graphs.digraph_generators": { + "ntests": 128 + }, + "sage.graphs.distances_all_pairs": { + "ntests": 165 + }, + "sage.graphs.domination": { + "failed": true, + "ntests": 144 + }, + "sage.graphs.dot2tex_utils": { + "ntests": 6 + }, + "sage.graphs.edge_connectivity": { + "ntests": 101 + }, + "sage.graphs.generators.basic": { + "ntests": 95 + }, + "sage.graphs.generators.chessboard": { + "ntests": 42 + }, + "sage.graphs.generators.classical_geometries": { + "ntests": 53 + }, + "sage.graphs.generators.degree_sequence": { + "ntests": 13 + }, + "sage.graphs.generators.distance_regular": { + "ntests": 139 + }, + "sage.graphs.generators.families": { + "failed": true, + "ntests": 375 + }, + "sage.graphs.generators.intersection": { + "ntests": 72 + }, + "sage.graphs.generators.platonic_solids": { + "ntests": 6 + }, + "sage.graphs.generators.random": { + "ntests": 150 + }, + "sage.graphs.generators.smallgraphs": { + "ntests": 404 + }, + "sage.graphs.generators.world_map": { + "ntests": 20 + }, + "sage.graphs.generic_graph": { + "failed": true, + "ntests": 3617 + }, + "sage.graphs.generic_graph_pyx": { + "ntests": 139 + }, + "sage.graphs.genus": { + "ntests": 51 + }, + "sage.graphs.graph": { + "failed": true, + "ntests": 1244 + }, + "sage.graphs.graph_coloring": { + "ntests": 152 + }, + "sage.graphs.graph_database": { + "failed": true, + "ntests": 50 + }, + "sage.graphs.graph_decompositions.bandwidth": { + "ntests": 14 + }, + "sage.graphs.graph_decompositions.clique_separators": { + "ntests": 68 + }, + "sage.graphs.graph_decompositions.cutwidth": { + "ntests": 63 + }, + "sage.graphs.graph_decompositions.fast_digraph": { + "ntests": 11 + }, + "sage.graphs.graph_decompositions.graph_products": { + "ntests": 48 + }, + "sage.graphs.graph_decompositions.modular_decomposition": { + "ntests": 151 + }, + "sage.graphs.graph_decompositions.rankwidth": { + "ntests": 23 + }, + "sage.graphs.graph_decompositions.tree_decomposition": { + "ntests": 202 + }, + "sage.graphs.graph_decompositions.vertex_separation": { + "ntests": 176 + }, + "sage.graphs.graph_editor": { + "ntests": 8 + }, + "sage.graphs.graph_generators": { + "failed": true, + "ntests": 159 + }, + "sage.graphs.graph_generators_pyx": { + "ntests": 7 + }, + "sage.graphs.graph_input": { + "ntests": 50 + }, + "sage.graphs.graph_latex": { + "ntests": 7 + }, + "sage.graphs.graph_list": { + "failed": true, + "ntests": 58 + }, + "sage.graphs.hyperbolicity": { + "ntests": 68 + }, + "sage.graphs.hypergraph_generators": { + "ntests": 23 + }, + "sage.graphs.independent_sets": { + "ntests": 56 + }, + "sage.graphs.isgci": { + "failed": true, + "ntests": 84 + }, + "sage.graphs.isoperimetric_inequalities": { + "ntests": 25 + }, + "sage.graphs.line_graph": { + "ntests": 40 + }, + "sage.graphs.lovasz_theta": { + "ntests": 5 + }, + "sage.graphs.orientations": { + "ntests": 28 + }, + "sage.graphs.partial_cube": { + "ntests": 14 + }, + "sage.graphs.path_enumeration": { + "ntests": 253 + }, + "sage.graphs.planarity": { + "ntests": 6 + }, + "sage.graphs.pq_trees": { + "ntests": 90 + }, + "sage.graphs.print_graphs": { + "ntests": 12 + }, + "sage.graphs.schnyder": { + "ntests": 103 + }, + "sage.graphs.spanning_tree": { + "failed": true, + "ntests": 169 + }, + "sage.graphs.strongly_regular_db": { + "failed": true, + "ntests": 254 + }, + "sage.graphs.traversals": { + "ntests": 215 + }, + "sage.graphs.trees": { + "ntests": 25 + }, + "sage.graphs.tutte_polynomial": { + "ntests": 109 + }, + "sage.graphs.views": { + "ntests": 206 + }, + "sage.graphs.weakly_chordal": { + "ntests": 33 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 270 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 23 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 2 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 55 + }, + "sage.groups.abelian_gps.values": { + "ntests": 65 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "ntests": 97 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 92 + }, + "sage.groups.galois_group": { + "ntests": 54 + }, + "sage.groups.generic": { + "ntests": 94 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.matrix_gps.coxeter_group": { + "ntests": 91 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 47 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 38 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 24 + }, + "sage.groups.matrix_gps.matrix_group": { + "ntests": 45 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 21 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 44 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 31 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_graphs": { + "ntests": 110 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.algebraic_topological_model": { + "ntests": 44 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 265 + }, + "sage.homology.chain_complex_homspace": { + "failed": true, + "ntests": 40 + }, + "sage.homology.chain_complex_morphism": { + "failed": true, + "ntests": 135 + }, + "sage.homology.chain_homotopy": { + "ntests": 96 + }, + "sage.homology.chains": { + "ntests": 136 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.homology_group": { + "ntests": 22 + }, + "sage.homology.homology_morphism": { + "failed": true, + "ntests": 100 + }, + "sage.homology.homology_vector_space_with_basis": { + "failed": true, + "ntests": 0 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "failed": true, + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 4 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.knots.gauss_code": { + "ntests": 18 + }, + "sage.knots.knot": { + "ntests": 34 + }, + "sage.knots.knotinfo": { + "failed": true, + "ntests": 343 + }, + "sage.knots.link": { + "failed": true, + "ntests": 251 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 136 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.constructor": { + "ntests": 128 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 790 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 425 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 1990 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 25 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_polynomial_dense": { + "failed": true, + "ntests": 420 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 419 + }, + "sage.matrix.matrix_sparse": { + "ntests": 159 + }, + "sage.matrix.misc_mpfr": { + "failed": true, + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 90 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 436 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 187 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 141 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.graphic_matroid": { + "failed": true, + "ntests": 358 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 625 + }, + "sage.matroids.matroid": { + "ntests": 872 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 22 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 59 + }, + "sage.matroids.utilities": { + "ntests": 69 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 204 + }, + "sage.misc.cachefunc": { + "ntests": 692 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 40 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "ntests": 306 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 243 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 237 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 227 + }, + "sage.misc.lazy_string": { + "ntests": 131 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 141 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 38 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 27 + }, + "sage.misc.sage_eval": { + "ntests": 31 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 250 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 435 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 170 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1455 + }, + "sage.modules.free_module_element": { + "ntests": 873 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 163 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 201 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 400 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "ntests": 122 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 171 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 2 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_modn_dense": { + "ntests": 59 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 4 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 1 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "ntests": 165 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 161 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.optimize": { + "ntests": 39 + }, + "sage.parallel.decorate": { + "ntests": 86 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "failed": true, + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 288 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 184 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 60 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "failed": true, + "ntests": 133 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "ntests": 32 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 69 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.ternary": { + "ntests": 95 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 290 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "failed": true, + "ntests": 331 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 494 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 295 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.derivation": { + "ntests": 391 + }, + "sage.rings.factorint": { + "ntests": 10 + }, + "sage.rings.finite_rings.conway_polynomials": { + "ntests": 20 + }, + "sage.rings.finite_rings.element_base": { + "ntests": 11 + }, + "sage.rings.finite_rings.finite_field_base": { + "ntests": 15 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "ntests": 17 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 28 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 1 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 15 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 536 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 253 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 39 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 233 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 263 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 98 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 68 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 154 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 135 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 100 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 82 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "ntests": 64 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 7 + }, + "sage.rings.generic": { + "ntests": 50 + }, + "sage.rings.homset": { + "ntests": 37 + }, + "sage.rings.ideal": { + "ntests": 340 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1103 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 197 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 879 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 145 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 381 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 121 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 467 + }, + "sage.rings.multi_power_series_ring": { + "ntests": 216 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 425 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.padics.local_generic": { + "ntests": 71 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_generic": { + "ntests": 58 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 31 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 384 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 334 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 87 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 507 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "ntests": 287 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 106 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 232 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.ore_function_element": { + "ntests": 56 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 63 + }, + "sage.rings.polynomial.ore_polynomial_element": { + "ntests": 25 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 20 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1903 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 192 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "ntests": 33 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "ntests": 2 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_ring": { + "ntests": 398 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 139 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 42 + }, + "sage.rings.polynomial.skew_polynomial_element": { + "ntests": 1 + }, + "sage.rings.polynomial.skew_polynomial_ring": { + "ntests": 20 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 327 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 21 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 267 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 478 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 190 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 185 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 542 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 193 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 356 + }, + "sage.rings.real_double_element_gsl": { + "failed": true, + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1018 + }, + "sage.rings.ring": { + "ntests": 346 + }, + "sage.rings.ring_extension": { + "ntests": 207 + }, + "sage.rings.ring_extension_element": { + "ntests": 111 + }, + "sage.rings.ring_extension_morphism": { + "ntests": 97 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 39 + }, + "sage.sandpiles.examples": { + "ntests": 24 + }, + "sage.sandpiles.sandpile": { + "failed": true, + "ntests": 848 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 296 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 117 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 395 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 180 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 97 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 62 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 62 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 499 + }, + "sage.schemes.projective.projective_point": { + "ntests": 279 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 34 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 376 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 240 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "ntests": 367 + }, + "sage.sets.set_from_iterator": { + "ntests": 197 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 51 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.distributions": { + "ntests": 1 + }, + "sage.stats.hmm.hmm": { + "ntests": 2 + }, + "sage.stats.intlist": { + "ntests": 3 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "ntests": 6 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 163 + }, + "sage.structure.coerce": { + "ntests": 335 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 662 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 200 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 109 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 123 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 315 + }, + "sage.structure.parent_gens": { + "ntests": 29 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 8 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 226 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 179 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 103 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "ntests": 13 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 8 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 4 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.topology.cell_complex": { + "failed": true, + "ntests": 156 + }, + "sage.topology.cubical_complex": { + "failed": true, + "ntests": 256 + }, + "sage.topology.delta_complex": { + "failed": true, + "ntests": 166 + }, + "sage.topology.filtered_simplicial_complex": { + "ntests": 110 + }, + "sage.topology.moment_angle_complex": { + "failed": true, + "ntests": 0 + }, + "sage.topology.simplicial_complex": { + "failed": true, + "ntests": 657 + }, + "sage.topology.simplicial_complex_catalog": { + "failed": true, + "ntests": 6 + }, + "sage.topology.simplicial_complex_examples": { + "failed": true, + "ntests": 137 + }, + "sage.topology.simplicial_complex_homset": { + "ntests": 47 + }, + "sage.topology.simplicial_complex_morphism": { + "failed": true, + "ntests": 219 + }, + "sage.topology.simplicial_set": { + "failed": true, + "ntests": 783 + }, + "sage.topology.simplicial_set_catalog": { + "ntests": 6 + }, + "sage.topology.simplicial_set_constructions": { + "failed": true, + "ntests": 382 + }, + "sage.topology.simplicial_set_examples": { + "failed": true, + "ntests": 69 + }, + "sage.topology.simplicial_set_morphism": { + "ntests": 294 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-graphs/known-test-failures.json b/pkgs/sagemath-graphs/known-test-failures.json new file mode 100644 index 00000000000..3e30ad6727b --- /dev/null +++ b/pkgs/sagemath-graphs/known-test-failures.json @@ -0,0 +1,2486 @@ +{ + "sage.all__sagemath_graphs": { + "ntests": 2 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 896 + }, + "sage.arith.numerical_approx": { + "ntests": 1 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 72 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.categories.action": { + "ntests": 78 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 134 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 7 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 4 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 74 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 22 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 17 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "ntests": 39 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "failed": true, + "ntests": 361 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 23 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "ntests": 2 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.filtered_modules_with_basis": { + "ntests": 12 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 1 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_modules_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 25 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 100 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 39 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 65 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 78 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 34 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "ntests": 49 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_posets": { + "ntests": 19 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "ntests": 128 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 45 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 212 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 52 + }, + "sage.categories.map": { + "ntests": 353 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 120 + }, + "sage.categories.modules_with_basis": { + "ntests": 221 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 81 + }, + "sage.categories.morphism": { + "ntests": 99 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.posets": { + "ntests": 147 + }, + "sage.categories.primer": { + "ntests": 161 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "ntests": 624 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 81 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.regular_crystals": { + "ntests": 3 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "ntests": 141 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 112 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 412 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 108 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 8 + }, + "sage.categories.super_algebras_with_basis": { + "failed": true, + "ntests": 10 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 10 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 32 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "ntests": 24 + }, + "sage.combinat.abstract_tree": { + "ntests": 422 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.binary_tree": { + "failed": true, + "ntests": 719 + }, + "sage.combinat.cluster_algebra_quiver.cluster_seed": { + "ntests": 5 + }, + "sage.combinat.cluster_algebra_quiver.interact": { + "ntests": 2 + }, + "sage.combinat.cluster_algebra_quiver.mutation_class": { + "ntests": 47 + }, + "sage.combinat.cluster_algebra_quiver.mutation_type": { + "ntests": 27 + }, + "sage.combinat.cluster_algebra_quiver.quiver": { + "ntests": 7 + }, + "sage.combinat.cluster_algebra_quiver.quiver_mutation_type": { + "ntests": 232 + }, + "sage.combinat.combinat": { + "ntests": 411 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.designs.bibd": { + "ntests": 111 + }, + "sage.combinat.designs.block_design": { + "ntests": 11 + }, + "sage.combinat.designs.covering_design": { + "ntests": 46 + }, + "sage.combinat.designs.database": { + "ntests": 365 + }, + "sage.combinat.designs.design_catalog": { + "ntests": 2 + }, + "sage.combinat.designs.designs_pyx": { + "ntests": 58 + }, + "sage.combinat.designs.difference_family": { + "ntests": 275 + }, + "sage.combinat.designs.ext_rep": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.designs.incidence_structures": { + "ntests": 276 + }, + "sage.combinat.designs.latin_squares": { + "ntests": 12 + }, + "sage.combinat.designs.orthogonal_arrays_build_recursive": { + "ntests": 9 + }, + "sage.combinat.designs.resolvable_bibd": { + "ntests": 5 + }, + "sage.combinat.designs.steiner_quadruple_systems": { + "ntests": 36 + }, + "sage.combinat.designs.subhypergraph_search": { + "ntests": 12 + }, + "sage.combinat.designs.twographs": { + "ntests": 27 + }, + "sage.combinat.dlx": { + "ntests": 61 + }, + "sage.combinat.finite_state_machine": { + "ntests": 69 + }, + "sage.combinat.finite_state_machine_generators": { + "ntests": 33 + }, + "sage.combinat.graph_path": { + "ntests": 95 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.interval_posets": { + "ntests": 562 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 9 + }, + "sage.combinat.ordered_tree": { + "ntests": 260 + }, + "sage.combinat.permutation": { + "failed": true, + "ntests": 1204 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.posets.cartesian_product": { + "ntests": 75 + }, + "sage.combinat.posets.hasse_cython": { + "ntests": 24 + }, + "sage.combinat.posets.hasse_diagram": { + "ntests": 512 + }, + "sage.combinat.posets.lattices": { + "ntests": 40 + }, + "sage.combinat.posets.linear_extension_iterator": { + "ntests": 13 + }, + "sage.combinat.posets.linear_extensions": { + "failed": true, + "ntests": 174 + }, + "sage.combinat.posets.mobile": { + "ntests": 36 + }, + "sage.combinat.posets.poset_examples": { + "ntests": 12 + }, + "sage.combinat.posets.posets": { + "ntests": 83 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.rooted_tree": { + "ntests": 162 + }, + "sage.combinat.shard_order": { + "ntests": 40 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tamari_lattices": { + "ntests": 1 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.combinat.yang_baxter_graph": { + "ntests": 174 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.data_structures.bitset": { + "ntests": 425 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.databases.knotinfo_db": { + "ntests": 100 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 386 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 303 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 317 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 172 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 99 + }, + "sage.functions.bessel": { + "ntests": 160 + }, + "sage.functions.error": { + "ntests": 94 + }, + "sage.functions.exp_integral": { + "ntests": 156 + }, + "sage.functions.gamma": { + "ntests": 140 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "ntests": 78 + }, + "sage.functions.jacobi": { + "ntests": 38 + }, + "sage.functions.log": { + "ntests": 154 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "ntests": 230 + }, + "sage.functions.other": { + "ntests": 240 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "ntests": 55 + }, + "sage.functions.trig": { + "ntests": 126 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.graphs.all": { + "ntests": 3 + }, + "sage.graphs.asteroidal_triples": { + "ntests": 13 + }, + "sage.graphs.base.boost_graph": { + "ntests": 204 + }, + "sage.graphs.base.c_graph": { + "ntests": 767 + }, + "sage.graphs.base.dense_graph": { + "ntests": 86 + }, + "sage.graphs.base.graph_backends": { + "ntests": 85 + }, + "sage.graphs.base.overview": { + "ntests": 1 + }, + "sage.graphs.base.sparse_graph": { + "ntests": 119 + }, + "sage.graphs.base.static_dense_graph": { + "ntests": 110 + }, + "sage.graphs.base.static_sparse_backend": { + "ntests": 181 + }, + "sage.graphs.base.static_sparse_graph": { + "failed": true, + "ntests": 59 + }, + "sage.graphs.bipartite_graph": { + "ntests": 372 + }, + "sage.graphs.centrality": { + "ntests": 31 + }, + "sage.graphs.cliquer": { + "ntests": 34 + }, + "sage.graphs.comparability": { + "ntests": 52 + }, + "sage.graphs.connectivity": { + "failed": true, + "ntests": 523 + }, + "sage.graphs.convexity_properties": { + "ntests": 43 + }, + "sage.graphs.digraph": { + "ntests": 545 + }, + "sage.graphs.digraph_generators": { + "failed": true, + "ntests": 128 + }, + "sage.graphs.distances_all_pairs": { + "ntests": 165 + }, + "sage.graphs.domination": { + "failed": true, + "ntests": 144 + }, + "sage.graphs.dot2tex_utils": { + "ntests": 6 + }, + "sage.graphs.edge_connectivity": { + "ntests": 101 + }, + "sage.graphs.generators.basic": { + "ntests": 95 + }, + "sage.graphs.generators.chessboard": { + "ntests": 42 + }, + "sage.graphs.generators.classical_geometries": { + "ntests": 38 + }, + "sage.graphs.generators.degree_sequence": { + "ntests": 13 + }, + "sage.graphs.generators.distance_regular": { + "ntests": 125 + }, + "sage.graphs.generators.families": { + "ntests": 347 + }, + "sage.graphs.generators.intersection": { + "ntests": 63 + }, + "sage.graphs.generators.platonic_solids": { + "ntests": 6 + }, + "sage.graphs.generators.random": { + "ntests": 150 + }, + "sage.graphs.generators.smallgraphs": { + "ntests": 404 + }, + "sage.graphs.generators.world_map": { + "ntests": 20 + }, + "sage.graphs.generic_graph": { + "failed": true, + "ntests": 3602 + }, + "sage.graphs.generic_graph_pyx": { + "ntests": 139 + }, + "sage.graphs.genus": { + "ntests": 51 + }, + "sage.graphs.graph": { + "failed": true, + "ntests": 1164 + }, + "sage.graphs.graph_coloring": { + "ntests": 152 + }, + "sage.graphs.graph_database": { + "failed": true, + "ntests": 50 + }, + "sage.graphs.graph_decompositions.bandwidth": { + "ntests": 14 + }, + "sage.graphs.graph_decompositions.clique_separators": { + "ntests": 68 + }, + "sage.graphs.graph_decompositions.cutwidth": { + "ntests": 63 + }, + "sage.graphs.graph_decompositions.fast_digraph": { + "ntests": 11 + }, + "sage.graphs.graph_decompositions.graph_products": { + "ntests": 48 + }, + "sage.graphs.graph_decompositions.modular_decomposition": { + "ntests": 151 + }, + "sage.graphs.graph_decompositions.rankwidth": { + "ntests": 23 + }, + "sage.graphs.graph_decompositions.tree_decomposition": { + "ntests": 202 + }, + "sage.graphs.graph_decompositions.vertex_separation": { + "ntests": 176 + }, + "sage.graphs.graph_editor": { + "ntests": 8 + }, + "sage.graphs.graph_generators": { + "ntests": 151 + }, + "sage.graphs.graph_generators_pyx": { + "ntests": 7 + }, + "sage.graphs.graph_input": { + "ntests": 50 + }, + "sage.graphs.graph_latex": { + "ntests": 7 + }, + "sage.graphs.graph_list": { + "failed": true, + "ntests": 58 + }, + "sage.graphs.hyperbolicity": { + "failed": true, + "ntests": 68 + }, + "sage.graphs.hypergraph_generators": { + "ntests": 23 + }, + "sage.graphs.independent_sets": { + "ntests": 56 + }, + "sage.graphs.isgci": { + "failed": true, + "ntests": 84 + }, + "sage.graphs.isoperimetric_inequalities": { + "ntests": 25 + }, + "sage.graphs.line_graph": { + "ntests": 37 + }, + "sage.graphs.lovasz_theta": { + "ntests": 5 + }, + "sage.graphs.orientations": { + "ntests": 28 + }, + "sage.graphs.partial_cube": { + "ntests": 14 + }, + "sage.graphs.path_enumeration": { + "ntests": 253 + }, + "sage.graphs.planarity": { + "ntests": 6 + }, + "sage.graphs.pq_trees": { + "ntests": 90 + }, + "sage.graphs.print_graphs": { + "ntests": 12 + }, + "sage.graphs.schnyder": { + "ntests": 103 + }, + "sage.graphs.spanning_tree": { + "failed": true, + "ntests": 169 + }, + "sage.graphs.strongly_regular_db": { + "failed": true, + "ntests": 251 + }, + "sage.graphs.traversals": { + "ntests": 215 + }, + "sage.graphs.trees": { + "ntests": 25 + }, + "sage.graphs.tutte_polynomial": { + "ntests": 109 + }, + "sage.graphs.views": { + "failed": true, + "ntests": 206 + }, + "sage.graphs.weakly_chordal": { + "ntests": 33 + }, + "sage.groups.generic": { + "ntests": 94 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_graphs": { + "ntests": 110 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 4 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.knots.gauss_code": { + "ntests": 18 + }, + "sage.knots.knot": { + "ntests": 34 + }, + "sage.knots.knotinfo": { + "failed": true, + "ntests": 315 + }, + "sage.knots.link": { + "failed": true, + "ntests": 243 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3_controlled": { + "ntests": 204 + }, + "sage.misc.cachefunc": { + "ntests": 692 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 126 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 281 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 219 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 234 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 227 + }, + "sage.misc.lazy_string": { + "ntests": 131 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "failed": true, + "ntests": 134 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 38 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 27 + }, + "sage.misc.sage_eval": { + "failed": true, + "ntests": 31 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 329 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 251 + }, + "sage.modules.module": { + "ntests": 37 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.parallel.decorate": { + "ntests": 86 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 27 + }, + "sage.repl.display.formatter": { + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.continued_fraction": { + "ntests": 286 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.factorint": { + "ntests": 10 + }, + "sage.rings.finite_rings.conway_polynomials": { + "ntests": 20 + }, + "sage.rings.finite_rings.element_base": { + "ntests": 13 + }, + "sage.rings.finite_rings.finite_field_base": { + "ntests": 24 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "ntests": 17 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 28 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 1 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 15 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 536 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 253 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 41 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 225 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 263 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 71 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 158 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 135 + }, + "sage.rings.function_field.ideal": { + "ntests": 92 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 82 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 20 + }, + "sage.rings.function_field.order_rational": { + "ntests": 69 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 7 + }, + "sage.rings.generic": { + "ntests": 50 + }, + "sage.rings.homset": { + "ntests": 37 + }, + "sage.rings.ideal": { + "ntests": 336 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1091 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 197 + }, + "sage.rings.laurent_series_ring": { + "ntests": 145 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 381 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 110 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 444 + }, + "sage.rings.multi_power_series_ring": { + "ntests": 216 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 425 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.padics.local_generic": { + "ntests": 71 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_generic": { + "ntests": 58 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 31 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 278 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 375 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "ntests": 83 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 5 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 465 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "ntests": 263 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 106 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 226 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.polydict": { + "ntests": 393 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1840 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 188 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "ntests": 36 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "ntests": 13 + }, + "sage.rings.polynomial.polynomial_ring": { + "ntests": 386 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 42 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 319 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 21 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 256 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 471 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 190 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 181 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 530 + }, + "sage.rings.rational_field": { + "ntests": 189 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 351 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, + "sage.rings.ring": { + "ntests": 337 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 120 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 39 + }, + "sage.sandpiles.examples": { + "ntests": 2 + }, + "sage.sandpiles.sandpile": { + "ntests": 92 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 282 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 117 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 391 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 180 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 99 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 62 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 58 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 480 + }, + "sage.schemes.projective.projective_point": { + "ntests": 277 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 34 + }, + "sage.schemes.projective.projective_space": { + "ntests": 381 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 233 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 52 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "ntests": 363 + }, + "sage.sets.set_from_iterator": { + "ntests": 192 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.structure.category_object": { + "ntests": 140 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 310 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "failed": true, + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 566 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 200 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 99 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 90 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 300 + }, + "sage.structure.parent_gens": { + "ntests": 24 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 5 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 226 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 168 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "ntests": 13 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 1 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 4 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.topology.cell_complex": { + "ntests": 133 + }, + "sage.topology.cubical_complex": { + "ntests": 237 + }, + "sage.topology.delta_complex": { + "ntests": 131 + }, + "sage.topology.filtered_simplicial_complex": { + "failed": true, + "ntests": 99 + }, + "sage.topology.moment_angle_complex": { + "ntests": 77 + }, + "sage.topology.simplicial_complex": { + "ntests": 623 + }, + "sage.topology.simplicial_complex_catalog": { + "ntests": 6 + }, + "sage.topology.simplicial_complex_examples": { + "ntests": 133 + }, + "sage.topology.simplicial_complex_homset": { + "ntests": 47 + }, + "sage.topology.simplicial_complex_morphism": { + "ntests": 203 + }, + "sage.topology.simplicial_set": { + "ntests": 774 + }, + "sage.topology.simplicial_set_catalog": { + "ntests": 6 + }, + "sage.topology.simplicial_set_constructions": { + "ntests": 388 + }, + "sage.topology.simplicial_set_examples": { + "ntests": 71 + }, + "sage.topology.simplicial_set_morphism": { + "ntests": 281 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-graphs/meson.build b/pkgs/sagemath-graphs/meson.build new file mode 100644 index 00000000000..be4e773fac1 --- /dev/null +++ b/pkgs/sagemath-graphs/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-graphs', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_graphs', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-graphs/pyproject.toml.m4 b/pkgs/sagemath-graphs/pyproject.toml.m4 new file mode 100644 index 00000000000..1ba90a41d27 --- /dev/null +++ b/pkgs/sagemath-graphs/pyproject.toml.m4 @@ -0,0 +1,80 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator +] +build-backend = "mesonpy" + +[project] +name = "sagemath-graphs" +description = "Sage: Open Source Mathematics Software: Graphs, posets, hypergraphs, designs, abstract complexes, combinatorial polyhedra, abelian sandpiles, quivers" +dependencies = [ + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_categories +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [SPKG_INSTALL_REQUIRES_sagemath_repl] + +# libraries +bliss = [SPKG_INSTALL_REQUIRES_sagemath_bliss] +gap = [SPKG_INSTALL_REQUIRES_sagemath_gap] +igraph = [SPKG_INSTALL_REQUIRES_python_igraph] +mcqd = [SPKG_INSTALL_REQUIRES_sagemath_mcqd] +networkx = [SPKG_INSTALL_REQUIRES_networkx] +pari = [SPKG_INSTALL_REQUIRES_sagemath_pari] +tdlib = [SPKG_INSTALL_REQUIRES_sagemath_tdlib] + +# features +combinat = [SPKG_INSTALL_REQUIRES_sagemath_combinat] +editor = [SPKG_INSTALL_REQUIRES_phitigra] +homology = [SPKG_INSTALL_REQUIRES_sagemath_modules] +mip = [SPKG_INSTALL_REQUIRES_sagemath_polyhedra] +modules = [SPKG_INSTALL_REQUIRES_sagemath_modules] +plot = [SPKG_INSTALL_REQUIRES_sagemath_plot] +polyhedra = [SPKG_INSTALL_REQUIRES_sagemath_polyhedra] +repl = [SPKG_INSTALL_REQUIRES_sagemath_repl] +sat = [SPKG_INSTALL_REQUIRES_sagemath_combinat] + +standard = ["sagemath-graphs[combinat,databases,mip,modules,plot,polyhedra,repl]"] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/boost", + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-graphs/requirements-editable.txt.m4 b/pkgs/sagemath-graphs/requirements-editable.txt.m4 new file mode 100644 index 00000000000..7349bbd3174 --- /dev/null +++ b/pkgs/sagemath-graphs/requirements-editable.txt.m4 @@ -0,0 +1,12 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_pplpy +-e ../sagemath-modules +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-mpmath diff --git a/pkgs/sagemath-graphs/requirements.txt.m4 b/pkgs/sagemath-graphs/requirements.txt.m4 new file mode 100644 index 00000000000..d145756dfd1 --- /dev/null +++ b/pkgs/sagemath-graphs/requirements.txt.m4 @@ -0,0 +1,3 @@ +dnl Include all from sagemath-categories (via m4 include) +include(`../sagemath_categories/src/requirements.txt.m4') +pplpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)') diff --git a/pkgs/sagemath-graphs/sage b/pkgs/sagemath-graphs/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-graphs/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-graphs/sage-cython-native-file.ini b/pkgs/sagemath-graphs/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-graphs/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-graphs/setup.py b/pkgs/sagemath-graphs/setup.py new file mode 100644 index 00000000000..adf8adb047f --- /dev/null +++ b/pkgs/sagemath-graphs/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-graphs']) diff --git a/pkgs/sagemath-graphs/tox.ini b/pkgs/sagemath-graphs/tox.ini new file mode 100644 index 00000000000..4c43b618d35 --- /dev/null +++ b/pkgs/sagemath-graphs/tox.ini @@ -0,0 +1,152 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_polyhedra-build-deps && ./sage -sh -c '(cd pkgs/sagemath-polyhedra && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-polyhedra/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + sagepython-sagewheels-nopypi-norequirements-modules + sagepython-sagewheels-nopypi-norequirements-modules-pari + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + # Env factors for testing with extras + modules: _MODULES=--modules + pari: _PARI=--pari + polyhedra: _POLYHEDRA=--polyhedra + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures{env:_MODULES:}{env:_PARI}{env:_POLYHEDRA:}.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.all__sagemath_graphs' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_graphs --probe all --baseline-stats-path=$KNOWN_TEST_FAILURES {posargs:--installed}' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-norequirements-modules] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi +extras = test, modules + +[testenv:sagepython-sagewheels-nopypi-norequirements-modules-pari] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi +extras = test, modules, pari + + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict + +[testenv:sagepython-sagewheels-nopypi-editable-modules] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict +extras = test, modules + +[testenv:sagepython-sagewheels-nopypi-editable-modules-pari] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict +extras = test, modules, pari diff --git a/pkgs/sagemath-groups/MANIFEST.in.m4 b/pkgs/sagemath-groups/MANIFEST.in.m4 new file mode 100644 index 00000000000..1dd9f2f62cf --- /dev/null +++ b/pkgs/sagemath-groups/MANIFEST.in.m4 @@ -0,0 +1,34 @@ +dnl MANIFEST.in is generated from this file by SAGE_ROOT/bootstrap via m4. +prune sage + +include VERSION.txt + +prune .tox +exclude *.m4 +include requirements.txt + +graft sage/groups +# exclude what is in sagemath-objects +exclude sage/groups/group.* +exclude sage/groups/old.* +# exclude what is in sagemath-categories +exclude sage/groups/generic.p* +exclude sage/groups/groups_catalog.p* +# exclude what is in sagemath-modules +prune sage/groups/abelian_gps +include sage/groups/abelian_gps/all.p* +exclude sage/groups/galois_group.p* +prune sage/groups/additive_abelian +prune sage/groups/affine_gps +prune sage/groups/matrix_gps +# exclude what is in sagemath-gap +prune sage/groups/perm_gps +exclude sage/groups/*gap*.p* +exclude sage/groups/galois_group_perm.p* + +global-exclude all__sagemath_*.py +global-include all__sagemath_groups.py + +global-exclude *.py[co] +global-exclude *.so +global-exclude *.bak diff --git a/pkgs/sagemath-groups/README.rst b/pkgs/sagemath-groups/README.rst new file mode 100644 index 00000000000..5ca69c17d77 --- /dev/null +++ b/pkgs/sagemath-groups/README.rst @@ -0,0 +1,29 @@ +===================================================================== + Sage: Open Source Mathematics Software: Groups and Invariant Theory +===================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via Sage-the-distribution (https://www.sagemath.org/download-source.html). Sage-the-distribution first builds a large number of open source packages from source (unless it finds suitable versions installed in the system) and then installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this experimental pip-installable source distribution +----------------------------------------------------------- + +This pip-installable source distribution `sagemath-groups` is an experimental distribution of a part of the Sage Library. Use at your own risk. It provides a small subset of the modules of the Sage library ("sagelib", `sagemath-standard`). + + +What is included +---------------- + +* `Groups `_ diff --git a/pkgs/sagemath-groups/VERSION.txt b/pkgs/sagemath-groups/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-groups/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-groups/known-test-failures.json b/pkgs/sagemath-groups/known-test-failures.json new file mode 100644 index 00000000000..76c04c5ae64 --- /dev/null +++ b/pkgs/sagemath-groups/known-test-failures.json @@ -0,0 +1,2964 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 585 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 152 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 92 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 46 + }, + "sage.algebras.group_algebra": { + "failed": true, + "ntests": 43 + }, + "sage.algebras.octonion_algebra": { + "ntests": 217 + }, + "sage.algebras.orlik_solomon": { + "ntests": 66 + }, + "sage.algebras.orlik_terao": { + "failed": true, + "ntests": 129 + }, + "sage.all__sagemath_gap": { + "failed": true, + "ntests": 2 + }, + "sage.all__sagemath_groups": { + "ntests": 2 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 38 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 591 + }, + "sage.arith.numerical_approx": { + "ntests": 3 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.interpolation": { + "ntests": 66 + }, + "sage.calculus.ode": { + "ntests": 34 + }, + "sage.calculus.transforms.dft": { + "ntests": 100 + }, + "sage.calculus.transforms.dwt": { + "ntests": 9 + }, + "sage.calculus.transforms.fft": { + "failed": true, + "ntests": 57 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 153 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 6 + }, + "sage.categories.algebra_functor": { + "failed": true, + "ntests": 141 + }, + "sage.categories.algebra_ideals": { + "ntests": 6 + }, + "sage.categories.algebra_modules": { + "ntests": 8 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 8 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 419 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 89 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 18 + }, + "sage.categories.coalgebras_with_basis": { + "failed": true, + "ntests": 19 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 17 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 8 + }, + "sage.categories.commutative_algebras": { + "ntests": 10 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 6 + }, + "sage.categories.commutative_rings": { + "failed": true, + "ntests": 22 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 8 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 12 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 72 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_groups": { + "failed": true, + "ntests": 194 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 31 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 12 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 6 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 78 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 25 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 24 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.hopf_algebras_with_basis": { + "failed": true, + "ntests": 23 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 14 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 96 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 80 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 36 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 2 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "failed": true, + "ntests": 97 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "failed": true, + "ntests": 37 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 109 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 115 + }, + "sage.categories.finite_fields": { + "ntests": 12 + }, + "sage.categories.finite_groups": { + "failed": true, + "ntests": 34 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 7 + }, + "sage.categories.finite_monoids": { + "failed": true, + "ntests": 21 + }, + "sage.categories.finite_permutation_groups": { + "failed": true, + "ntests": 18 + }, + "sage.categories.finite_semigroups": { + "ntests": 11 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 1 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 8 + }, + "sage.categories.functor": { + "ntests": 128 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 6 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 2 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 13 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "failed": true, + "ntests": 44 + }, + "sage.categories.groupoid": { + "failed": true, + "ntests": 9 + }, + "sage.categories.groups": { + "failed": true, + "ntests": 72 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 14 + }, + "sage.categories.homset": { + "failed": true, + "ntests": 239 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "failed": true, + "ntests": 16 + }, + "sage.categories.hopf_algebras_with_basis": { + "failed": true, + "ntests": 39 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 18 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 3 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 7 + }, + "sage.categories.lattice_posets": { + "ntests": 6 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 51 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 7 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 9 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.magmas": { + "failed": true, + "ntests": 153 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 12 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 361 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 40 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "failed": true, + "ntests": 135 + }, + "sage.categories.modules_with_basis": { + "failed": true, + "ntests": 408 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "failed": true, + "ntests": 79 + }, + "sage.categories.morphism": { + "ntests": 97 + }, + "sage.categories.number_fields": { + "ntests": 17 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 3 + }, + "sage.categories.poor_man_map": { + "ntests": 58 + }, + "sage.categories.primer": { + "failed": true, + "ntests": 143 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 10 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 702 + }, + "sage.categories.quantum_group_representations": { + "ntests": 10 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 59 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 16 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "ntests": 140 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "failed": true, + "ntests": 83 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "failed": true, + "ntests": 12 + }, + "sage.categories.sets_cat": { + "failed": true, + "ntests": 402 + }, + "sage.categories.sets_with_grading": { + "ntests": 20 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 11 + }, + "sage.categories.simplicial_sets": { + "ntests": 8 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 6 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 3 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 2 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 38 + }, + "sage.categories.unital_algebras": { + "ntests": 24 + }, + "sage.categories.vector_spaces": { + "ntests": 42 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 15 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.self_dual_codes": { + "ntests": 26 + }, + "sage.coding.source_coding.huffman": { + "ntests": 59 + }, + "sage.combinat.backtrack": { + "ntests": 27 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 334 + }, + "sage.combinat.combinat_cython": { + "ntests": 21 + }, + "sage.combinat.combination": { + "ntests": 90 + }, + "sage.combinat.combinatorial_map": { + "ntests": 73 + }, + "sage.combinat.composition": { + "ntests": 268 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.free_module": { + "ntests": 356 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 303 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 227 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 238 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.permutation": { + "failed": true, + "ntests": 1046 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 19 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 326 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 75 + }, + "sage.combinat.root_system.reflection_group_element": { + "ntests": 2 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 246 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 275 + }, + "sage.combinat.root_system.root_space": { + "ntests": 48 + }, + "sage.combinat.root_system.root_system": { + "ntests": 94 + }, + "sage.combinat.root_system.type_A": { + "ntests": 43 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 25 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 35 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 28 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 35 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_D": { + "ntests": 33 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 16 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 17 + }, + "sage.combinat.root_system.type_F": { + "ntests": 34 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 16 + }, + "sage.combinat.root_system.type_G": { + "ntests": 30 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 16 + }, + "sage.combinat.root_system.type_H": { + "ntests": 15 + }, + "sage.combinat.root_system.type_I": { + "ntests": 17 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 47 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 123 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 29 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 97 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 70 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 107 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 113 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 88 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 64 + }, + "sage.combinat.subset": { + "ntests": 278 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 10 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 30 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.debug": { + "ntests": 13 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 63 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 11 + }, + "sage.crypto.boolean_function": { + "ntests": 172 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 12 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 29 + }, + "sage.data_structures.bitset": { + "ntests": 419 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.external": { + "ntests": 40 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 401 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 300 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 376 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 138 + }, + "sage.env": { + "ntests": 34 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 237 + }, + "sage.ext.fast_eval": { + "ntests": 1 + }, + "sage.features": { + "failed": true, + "ntests": 134 + }, + "sage.features.all": { + "failed": true, + "ntests": 14 + }, + "sage.features.bliss": { + "ntests": 6 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 4 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "ntests": 21 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 5 + }, + "sage.features.gap": { + "ntests": 5 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 12 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 3 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 23 + }, + "sage.features.kenzo": { + "ntests": 4 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 7 + }, + "sage.features.lrs": { + "ntests": 11 + }, + "sage.features.mcqd": { + "ntests": 3 + }, + "sage.features.meataxe": { + "ntests": 3 + }, + "sage.features.mip_backends": { + "ntests": 5 + }, + "sage.features.msolve": { + "ntests": 4 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 3 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 3 + }, + "sage.features.pkg_systems": { + "ntests": 23 + }, + "sage.features.polymake": { + "ntests": 3 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 21 + }, + "sage.features.sagemath": { + "ntests": 129 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 3 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 30 + }, + "sage.functions.bessel": { + "failed": true, + "ntests": 56 + }, + "sage.functions.error": { + "failed": true, + "ntests": 19 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 60 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 42 + }, + "sage.functions.generalized": { + "ntests": 14 + }, + "sage.functions.hyperbolic": { + "failed": true, + "ntests": 13 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 10 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 91 + }, + "sage.functions.log": { + "failed": true, + "ntests": 30 + }, + "sage.functions.min_max": { + "ntests": 3 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 93 + }, + "sage.functions.other": { + "failed": true, + "ntests": 83 + }, + "sage.functions.special": { + "failed": true, + "ntests": 28 + }, + "sage.functions.spike_function": { + "ntests": 24 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 14 + }, + "sage.functions.trig": { + "failed": true, + "ntests": 19 + }, + "sage.functions.wigner": { + "ntests": 16 + }, + "sage.geometry.abc": { + "ntests": 8 + }, + "sage.geometry.ribbon_graph": { + "ntests": 224 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 299 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 79 + }, + "sage.groups.abelian_gps.abelian_aut": { + "failed": true, + "ntests": 123 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 229 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "failed": true, + "ntests": 20 + }, + "sage.groups.abelian_gps.abelian_group_gap": { + "ntests": 261 + }, + "sage.groups.abelian_gps.abelian_group_morphism": { + "failed": true, + "ntests": 44 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 43 + }, + "sage.groups.abelian_gps.values": { + "ntests": 59 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "ntests": 69 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "failed": true, + "ntests": 51 + }, + "sage.groups.affine_gps.euclidean_group": { + "failed": true, + "ntests": 30 + }, + "sage.groups.affine_gps.group_element": { + "failed": true, + "ntests": 90 + }, + "sage.groups.artin": { + "failed": true, + "ntests": 13 + }, + "sage.groups.braid": { + "failed": true, + "ntests": 499 + }, + "sage.groups.conjugacy_classes": { + "failed": true, + "ntests": 120 + }, + "sage.groups.cubic_braid": { + "failed": true, + "ntests": 152 + }, + "sage.groups.finitely_presented": { + "failed": true, + "ntests": 329 + }, + "sage.groups.finitely_presented_named": { + "failed": true, + "ntests": 78 + }, + "sage.groups.fqf_orthogonal": { + "failed": true, + "ntests": 85 + }, + "sage.groups.free_group": { + "failed": true, + "ntests": 182 + }, + "sage.groups.galois_group": { + "ntests": 14 + }, + "sage.groups.galois_group_perm": { + "ntests": 5 + }, + "sage.groups.generic": { + "failed": true, + "ntests": 67 + }, + "sage.groups.group": { + "failed": true, + "ntests": 47 + }, + "sage.groups.group_exp": { + "failed": true, + "ntests": 72 + }, + "sage.groups.group_semidirect_product": { + "failed": true, + "ntests": 55 + }, + "sage.groups.kernel_subgroup": { + "failed": true, + "ntests": 27 + }, + "sage.groups.libgap_group": { + "failed": true, + "ntests": 13 + }, + "sage.groups.libgap_mixin": { + "failed": true, + "ntests": 167 + }, + "sage.groups.libgap_morphism": { + "failed": true, + "ntests": 177 + }, + "sage.groups.libgap_wrapper": { + "failed": true, + "ntests": 171 + }, + "sage.groups.lie_gps.nilpotent_lie_group": { + "failed": true, + "ntests": 186 + }, + "sage.groups.matrix_gps.finitely_generated": { + "failed": true, + "ntests": 51 + }, + "sage.groups.matrix_gps.finitely_generated_gap": { + "failed": true, + "ntests": 70 + }, + "sage.groups.matrix_gps.group_element": { + "failed": true, + "ntests": 13 + }, + "sage.groups.matrix_gps.group_element_gap": { + "failed": true, + "ntests": 79 + }, + "sage.groups.matrix_gps.isometries": { + "failed": true, + "ntests": 99 + }, + "sage.groups.matrix_gps.linear": { + "failed": true, + "ntests": 22 + }, + "sage.groups.matrix_gps.linear_gap": { + "failed": true, + "ntests": 3 + }, + "sage.groups.matrix_gps.matrix_group": { + "failed": true, + "ntests": 36 + }, + "sage.groups.matrix_gps.matrix_group_gap": { + "failed": true, + "ntests": 35 + }, + "sage.groups.matrix_gps.named_group": { + "failed": true, + "ntests": 15 + }, + "sage.groups.matrix_gps.named_group_gap": { + "failed": true, + "ntests": 3 + }, + "sage.groups.matrix_gps.orthogonal": { + "failed": true, + "ntests": 40 + }, + "sage.groups.matrix_gps.orthogonal_gap": { + "failed": true, + "ntests": 19 + }, + "sage.groups.matrix_gps.symplectic": { + "failed": true, + "ntests": 23 + }, + "sage.groups.matrix_gps.symplectic_gap": { + "failed": true, + "ntests": 5 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 6 + }, + "sage.groups.misc_gps.argument_groups": { + "failed": true, + "ntests": 296 + }, + "sage.groups.misc_gps.imaginary_groups": { + "failed": true, + "ntests": 67 + }, + "sage.groups.old": { + "ntests": 37 + }, + "sage.groups.perm_gps.constructor": { + "ntests": 46 + }, + "sage.groups.perm_gps.cubegroup": { + "failed": true, + "ntests": 118 + }, + "sage.groups.perm_gps.partn_ref.automorphism_group_canonical_label": { + "failed": true, + "ntests": 32 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "failed": true, + "ntests": 38 + }, + "sage.groups.perm_gps.partn_ref.double_coset": { + "failed": true, + "ntests": 15 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.groups.perm_gps.partn_ref2.refinement_generic": { + "failed": true, + "ntests": 39 + }, + "sage.groups.perm_gps.permgroup": { + "ntests": 884 + }, + "sage.groups.perm_gps.permgroup_element": { + "failed": true, + "ntests": 377 + }, + "sage.groups.perm_gps.permgroup_morphism": { + "failed": true, + "ntests": 82 + }, + "sage.groups.perm_gps.permgroup_named": { + "failed": true, + "ntests": 477 + }, + "sage.groups.perm_gps.symgp_conjugacy_class": { + "ntests": 20 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 240 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 78 + }, + "sage.homology.homology_group": { + "ntests": 22 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.gap": { + "failed": true, + "ntests": 215 + }, + "sage.interfaces.gap3": { + "ntests": 13 + }, + "sage.interfaces.gap_workspace": { + "failed": true, + "ntests": 14 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 7 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.libs.gap.context_managers": { + "failed": true, + "ntests": 14 + }, + "sage.libs.gap.element": { + "failed": true, + "ntests": 506 + }, + "sage.libs.gap.libgap": { + "failed": true, + "ntests": 95 + }, + "sage.libs.gap.operations": { + "failed": true, + "ntests": 15 + }, + "sage.libs.gap.saved_workspace": { + "ntests": 7 + }, + "sage.libs.gap.test": { + "failed": true, + "ntests": 2 + }, + "sage.libs.gap.test_long": { + "ntests": 3 + }, + "sage.libs.gap.util": { + "failed": true, + "ntests": 19 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 36 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.matrix.action": { + "ntests": 104 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 125 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 6 + }, + "sage.matrix.constructor": { + "ntests": 120 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 9 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 771 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 369 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 1644 + }, + "sage.matrix.matrix_cdv": { + "ntests": 3 + }, + "sage.matrix.matrix_dense": { + "ntests": 33 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 23 + }, + "sage.matrix.matrix_gap": { + "failed": true, + "ntests": 101 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 90 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_polynomial_dense": { + "failed": true, + "ntests": 410 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 353 + }, + "sage.matrix.matrix_sparse": { + "ntests": 157 + }, + "sage.matrix.misc_mpfr": { + "failed": true, + "ntests": 7 + }, + "sage.matrix.operation_table": { + "failed": true, + "ntests": 183 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 400 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 13 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 183 + }, + "sage.matroids.basis_matroid": { + "ntests": 149 + }, + "sage.matroids.catalog": { + "ntests": 153 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 79 + }, + "sage.matroids.constructor": { + "ntests": 93 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 537 + }, + "sage.matroids.matroid": { + "failed": true, + "ntests": 777 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 55 + }, + "sage.matroids.utilities": { + "ntests": 42 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 114 + }, + "sage.misc.cachefunc": { + "failed": true, + "ntests": 636 + }, + "sage.misc.call": { + "ntests": 24 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 75 + }, + "sage.misc.compat": { + "ntests": 1 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 127 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 19 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 51 + }, + "sage.misc.edit_module": { + "ntests": 15 + }, + "sage.misc.element_with_label": { + "ntests": 30 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 348 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 31 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 192 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 63 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 224 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 196 + }, + "sage.misc.lazy_attribute": { + "ntests": 97 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 269 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 208 + }, + "sage.misc.lazy_string": { + "ntests": 129 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 124 + }, + "sage.misc.misc_c": { + "ntests": 120 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 66 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 59 + }, + "sage.misc.package_dir": { + "ntests": 33 + }, + "sage.misc.parser": { + "ntests": 103 + }, + "sage.misc.persist": { + "ntests": 133 + }, + "sage.misc.prandom": { + "ntests": 70 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 27 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 24 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 11 + }, + "sage.misc.sage_eval": { + "ntests": 28 + }, + "sage.misc.sage_input": { + "ntests": 727 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 32 + }, + "sage.misc.sage_timeit_class": { + "ntests": 5 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 90 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 290 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 51 + }, + "sage.misc.table": { + "ntests": 58 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 25 + }, + "sage.misc.trace": { + "ntests": 4 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 247 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 420 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 161 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1425 + }, + "sage.modules.free_module_element": { + "ntests": 715 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 77 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 150 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 304 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 90 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 394 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 41 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "ntests": 120 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 144 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 42 + }, + "sage.modules.vector_integer_dense": { + "ntests": 43 + }, + "sage.modules.vector_modn_dense": { + "ntests": 52 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "ntests": 138 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 142 + }, + "sage.modules.with_basis.invariant": { + "failed": true, + "ntests": 300 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.representation": { + "failed": true, + "ntests": 258 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.gauss_legendre": { + "ntests": 47 + }, + "sage.parallel.decorate": { + "ntests": 79 + }, + "sage.parallel.map_reduce": { + "ntests": 289 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "failed": true, + "ntests": 239 + }, + "sage.probability.random_variable": { + "ntests": 17 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 240 + }, + "sage.quadratic_forms.constructions": { + "ntests": 4 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 16 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 176 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 38 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 132 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "failed": true, + "ntests": 96 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "ntests": 25 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 17 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 58 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.ternary": { + "ntests": 91 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 284 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 52 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 24 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 11 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 109 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 72 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 36 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 93 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 20 + }, + "sage.repl.load": { + "failed": true, + "ntests": 41 + }, + "sage.repl.preparse": { + "ntests": 343 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 50 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 75 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 85 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 46 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 22 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 51 + }, + "sage.rings.big_oh": { + "ntests": 12 + }, + "sage.rings.complex_conversion": { + "ntests": 3 + }, + "sage.rings.complex_double": { + "failed": true, + "ntests": 266 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 395 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 435 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 164 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 21 + }, + "sage.rings.derivation": { + "ntests": 380 + }, + "sage.rings.factorint": { + "ntests": 8 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 20 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 26 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 10 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 483 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "failed": true, + "ntests": 257 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 12 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 223 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 246 + }, + "sage.rings.function_field.constructor": { + "ntests": 26 + }, + "sage.rings.function_field.derivations": { + "ntests": 14 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 51 + }, + "sage.rings.function_field.element": { + "ntests": 80 + }, + "sage.rings.function_field.element_rational": { + "ntests": 62 + }, + "sage.rings.function_field.extensions": { + "ntests": 1 + }, + "sage.rings.function_field.function_field": { + "ntests": 75 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 104 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 77 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 76 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 26 + }, + "sage.rings.function_field.order_basis": { + "ntests": 35 + }, + "sage.rings.function_field.order_rational": { + "ntests": 60 + }, + "sage.rings.function_field.place": { + "ntests": 16 + }, + "sage.rings.generic": { + "ntests": 47 + }, + "sage.rings.homset": { + "ntests": 26 + }, + "sage.rings.ideal": { + "ntests": 292 + }, + "sage.rings.ideal_monoid": { + "ntests": 16 + }, + "sage.rings.infinity": { + "ntests": 269 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 984 + }, + "sage.rings.integer_ring": { + "ntests": 184 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 879 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 58 + }, + "sage.rings.laurent_series_ring": { + "ntests": 138 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 370 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 91 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 338 + }, + "sage.rings.multi_power_series_ring": { + "ntests": 207 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 412 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 2 + }, + "sage.rings.padics.misc": { + "ntests": 21 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 22 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.ideal": { + "ntests": 9 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 277 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 270 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 382 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 321 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 151 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 82 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 451 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "ntests": 173 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 143 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 218 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 63 + }, + "sage.rings.polynomial.ore_function_element": { + "ntests": 39 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 52 + }, + "sage.rings.polynomial.polydict": { + "ntests": 378 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1604 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 177 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 111 + }, + "sage.rings.polynomial.polynomial_ring": { + "ntests": 309 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 101 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 20 + }, + "sage.rings.polynomial.term_order": { + "ntests": 240 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 25 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 41 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 19 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 256 + }, + "sage.rings.power_series_ring": { + "ntests": 227 + }, + "sage.rings.power_series_ring_element": { + "ntests": 455 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 57 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 183 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 152 + }, + "sage.rings.quotient_ring_element": { + "ntests": 25 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 490 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 161 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 322 + }, + "sage.rings.real_double_element_gsl": { + "failed": true, + "ntests": 122 + }, + "sage.rings.real_field": { + "ntests": 3 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 961 + }, + "sage.rings.ring": { + "ntests": 267 + }, + "sage.rings.ring_extension": { + "ntests": 88 + }, + "sage.rings.ring_extension_element": { + "ntests": 38 + }, + "sage.rings.ring_extension_morphism": { + "ntests": 27 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 12 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 26 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 42 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 258 + }, + "sage.schemes.affine.affine_point": { + "ntests": 56 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 25 + }, + "sage.schemes.affine.affine_space": { + "ntests": 147 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 60 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 273 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 59 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 36 + }, + "sage.schemes.generic.homset": { + "ntests": 105 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 387 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 156 + }, + "sage.schemes.generic.spec": { + "ntests": 29 + }, + "sage.schemes.product_projective.homset": { + "ntests": 17 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 93 + }, + "sage.schemes.product_projective.point": { + "ntests": 102 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 24 + }, + "sage.schemes.product_projective.space": { + "ntests": 143 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 44 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 36 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 401 + }, + "sage.schemes.projective.projective_point": { + "ntests": 229 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 27 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 335 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 182 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 38 + }, + "sage.sets.disjoint_set": { + "ntests": 235 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 47 + }, + "sage.sets.family": { + "ntests": 375 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 58 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 41 + }, + "sage.sets.positive_integers": { + "ntests": 13 + }, + "sage.sets.primes": { + "ntests": 32 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 337 + }, + "sage.sets.set": { + "failed": true, + "ntests": 327 + }, + "sage.sets.set_from_iterator": { + "ntests": 147 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 67 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 34 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 73 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 21 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 146 + }, + "sage.structure.coerce": { + "ntests": 300 + }, + "sage.structure.coerce_actions": { + "ntests": 127 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 83 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 608 + }, + "sage.structure.element.pxd": { + "ntests": 20 + }, + "sage.structure.element_wrapper": { + "ntests": 156 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 157 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 96 + }, + "sage.structure.formal_sum": { + "ntests": 65 + }, + "sage.structure.global_options": { + "ntests": 121 + }, + "sage.structure.indexed_generators": { + "ntests": 112 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "failed": true, + "ntests": 293 + }, + "sage.structure.parent_gens": { + "ntests": 29 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 6 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 49 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 23 + }, + "sage.structure.sage_object": { + "failed": true, + "ntests": 77 + }, + "sage.structure.sequence": { + "ntests": 180 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "failed": true, + "ntests": 222 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 108 + }, + "sage.symbolic.symbols": { + "ntests": 1 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1006 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "ntests": 250 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 65 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tensor.modules.tensor_with_indices": { + "failed": true, + "ntests": 233 + }, + "sage.tests.cmdline": { + "ntests": 149 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "ntests": 11 + }, + "sage.typeset.character_art": { + "ntests": 106 + }, + "sage.typeset.character_art_factory": { + "ntests": 36 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 10 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-groups/meson.build b/pkgs/sagemath-groups/meson.build new file mode 100644 index 00000000000..333e0bb3dba --- /dev/null +++ b/pkgs/sagemath-groups/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-groups', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_groups', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-groups/pyproject.toml.m4 b/pkgs/sagemath-groups/pyproject.toml.m4 new file mode 100644 index 00000000000..fa0c5319260 --- /dev/null +++ b/pkgs/sagemath-groups/pyproject.toml.m4 @@ -0,0 +1,72 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories +] +build-backend = "mesonpy" + +[project] +name = "sagemath-groups" +description = "Sage: Open Source Mathematics Software: Groups and Invariant Theory" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_gap + SPKG_INSTALL_REQUIRES_sagemath_modules +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [SPKG_INSTALL_REQUIRES_sagemath_repl] + +# extras by packages +coxeter3 = [SPKG_INSTALL_REQUIRES_sagemath_coxeter3] +gap = [] # no extra needed + +# extras by groups_catalog +additive = [] # no extra needed +affine = [] # no extra needed +lie = [] # FIXME +matrix = [] # no extra needed +permutation = [] # no extra needed +presentation = [] # no extra needed + +# extras by other features +representations = [SPKG_INSTALL_REQUIRES_sagemath_combinat] +semigroups = [SPKG_INSTALL_REQUIRES_sagemath_combinat] + +# the whole package +standard = ["sagemath-groups[additive,matrix,representations,semigroups]"] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-groups/requirements-editable.txt.m4 b/pkgs/sagemath-groups/requirements-editable.txt.m4 new file mode 100644 index 00000000000..d03f5bcf73e --- /dev/null +++ b/pkgs/sagemath-groups/requirements-editable.txt.m4 @@ -0,0 +1,13 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_pplpy +-e ../sagemath-modules +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-gap +-e ../sagemath-repl diff --git a/pkgs/sagemath-groups/requirements.txt.m4 b/pkgs/sagemath-groups/requirements.txt.m4 new file mode 100644 index 00000000000..d145756dfd1 --- /dev/null +++ b/pkgs/sagemath-groups/requirements.txt.m4 @@ -0,0 +1,3 @@ +dnl Include all from sagemath-categories (via m4 include) +include(`../sagemath_categories/src/requirements.txt.m4') +pplpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)') diff --git a/pkgs/sagemath-groups/sage b/pkgs/sagemath-groups/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-groups/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-groups/sage-cython-native-file.ini b/pkgs/sagemath-groups/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-groups/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-groups/setup.py b/pkgs/sagemath-groups/setup.py new file mode 100644 index 00000000000..629d570317e --- /dev/null +++ b/pkgs/sagemath-groups/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-groups']) diff --git a/pkgs/sagemath-groups/tox.ini b/pkgs/sagemath-groups/tox.ini new file mode 100644 index 00000000000..bb908cd437c --- /dev/null +++ b/pkgs/sagemath-groups/tox.ini @@ -0,0 +1,118 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_polyhedra-build-deps && ./sage -sh -c '(cd pkgs/sagemath-polyhedra && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-polyhedra/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.all__sagemath_groups' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_groups --baseline-stats-path=$KNOWN_TEST_FAILURES {posargs:--installed}' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-homfly/MANIFEST.in b/pkgs/sagemath-homfly/MANIFEST.in new file mode 100644 index 00000000000..48cb0804082 --- /dev/null +++ b/pkgs/sagemath-homfly/MANIFEST.in @@ -0,0 +1,17 @@ +include VERSION.txt + +prune sage +global-include all__sagemath_homfly.py +include sage/libs/homfly.p* + +global-exclude *.c +global-exclude *.cpp + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-homfly/README.rst b/pkgs/sagemath-homfly/README.rst new file mode 100644 index 00000000000..51e9dd63594 --- /dev/null +++ b/pkgs/sagemath-homfly/README.rst @@ -0,0 +1,31 @@ +========================================================================================== + Sage: Open Source Mathematics Software: Homfly polynomials of knots/links with libhomfly +========================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2022 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-homfly`` is a small +optional distribution for use with ``sagemath-standard``. + +It provides a Cython interface to the ``libhomfly`` library. diff --git a/pkgs/sagemath-homfly/VERSION.txt b/pkgs/sagemath-homfly/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-homfly/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-homfly/meson.build b/pkgs/sagemath-homfly/meson.build new file mode 100644 index 00000000000..432274a6294 --- /dev/null +++ b/pkgs/sagemath-homfly/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-homfly', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_homfly', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-homfly/pyproject.toml.m4 b/pkgs/sagemath-homfly/pyproject.toml.m4 new file mode 100644 index 00000000000..c63aaa9657e --- /dev/null +++ b/pkgs/sagemath-homfly/pyproject.toml.m4 @@ -0,0 +1,50 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_pkgconfig +] +build-backend = "mesonpy" + +[project] +name = "sagemath-homfly" +description = "Sage: Open Source Mathematics Software: Homfly polynomials of knots/links with libhomfly" +dependencies = [ + SPKG_INSTALL_REQUIRES_cysignals +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/libhomfly", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-homfly/requirements-editable.txt.m4 b/pkgs/sagemath-homfly/requirements-editable.txt.m4 new file mode 100644 index 00000000000..1d909c00118 --- /dev/null +++ b/pkgs/sagemath-homfly/requirements-editable.txt.m4 @@ -0,0 +1,3 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cysignals diff --git a/pkgs/sagemath-homfly/requirements.txt.m4 b/pkgs/sagemath-homfly/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-homfly/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-homfly/sage b/pkgs/sagemath-homfly/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-homfly/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-homfly/sage-cython-native-file.ini b/pkgs/sagemath-homfly/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-homfly/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-homfly/setup.py b/pkgs/sagemath-homfly/setup.py new file mode 100644 index 00000000000..b1fd335984a --- /dev/null +++ b/pkgs/sagemath-homfly/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-homfly']) diff --git a/pkgs/sagemath-homfly/tox.ini b/pkgs/sagemath-homfly/tox.ini new file mode 100644 index 00000000000..cb939d6dcb8 --- /dev/null +++ b/pkgs/sagemath-homfly/tox.ini @@ -0,0 +1,64 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-homfly && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-homfly/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +[testenv] +deps = + !norequirements: -rrequirements.txt + # tox 3.x does not handle extras when using --installpkg. https://github.com/tox-dev/tox/issues/1576 + sagemath-repl + +extras = test + +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.homfly' + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 diff --git a/pkgs/sagemath-lcalc/MANIFEST.in b/pkgs/sagemath-lcalc/MANIFEST.in new file mode 100644 index 00000000000..e453569cc24 --- /dev/null +++ b/pkgs/sagemath-lcalc/MANIFEST.in @@ -0,0 +1,21 @@ +prune sage + +include VERSION.txt + +graft sage/libs/lcalc +include sage/lfunctions/lcalc.p* + +global-exclude *.c +global-exclude *.cpp + +global-exclude all__sagemath_*.py +global-include all__sagemath_lcalc.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-lcalc/README.rst b/pkgs/sagemath-lcalc/README.rst new file mode 100644 index 00000000000..98619d32b70 --- /dev/null +++ b/pkgs/sagemath-lcalc/README.rst @@ -0,0 +1,29 @@ +============================================================================ + Sage: Open Source Mathematics Software: L-function calculations with lcalc +============================================================================ + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-lcalc`` provides +an interface to Michael Rubinstein's L-function calculator. diff --git a/pkgs/sagemath-lcalc/VERSION.txt b/pkgs/sagemath-lcalc/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-lcalc/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-lcalc/meson.build b/pkgs/sagemath-lcalc/meson.build new file mode 100644 index 00000000000..afd81f33556 --- /dev/null +++ b/pkgs/sagemath-lcalc/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-lcalc', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_lcalc', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-lcalc/pyproject.toml.m4 b/pkgs/sagemath-lcalc/pyproject.toml.m4 new file mode 100644 index 00000000000..859387bd4cb --- /dev/null +++ b/pkgs/sagemath-lcalc/pyproject.toml.m4 @@ -0,0 +1,59 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +build-backend = "mesonpy" + +[project] +name = "sagemath-lcalc" +description = "Sage: Open Source Mathematics Software: L-function calculations with lcalc" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +# No test requirements; see comment in tox.ini +test = [] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/lcalc", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-lcalc/requirements-editable.txt.m4 b/pkgs/sagemath-lcalc/requirements-editable.txt.m4 new file mode 100644 index 00000000000..d7d89e262f7 --- /dev/null +++ b/pkgs/sagemath-lcalc/requirements-editable.txt.m4 @@ -0,0 +1,9 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories diff --git a/pkgs/sagemath-lcalc/requirements.txt.m4 b/pkgs/sagemath-lcalc/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-lcalc/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-lcalc/sage b/pkgs/sagemath-lcalc/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-lcalc/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-lcalc/sage-cython-native-file.ini b/pkgs/sagemath-lcalc/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-lcalc/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-lcalc/setup.py b/pkgs/sagemath-lcalc/setup.py new file mode 100644 index 00000000000..4eb5f464c19 --- /dev/null +++ b/pkgs/sagemath-lcalc/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-lcalc']) diff --git a/pkgs/sagemath-lcalc/tox.ini b/pkgs/sagemath-lcalc/tox.ini new file mode 100644 index 00000000000..f3f168bb684 --- /dev/null +++ b/pkgs/sagemath-lcalc/tox.ini @@ -0,0 +1,119 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-glpk && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-glpk/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.lcalc' + # Actual tests are disabled here for now because sagemath-glpk is (still) an install-requires of sagemath-polyhedra + # bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + # && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_polyhedra --baseline-stats-path={toxinidir}/known-test-failures.json ./sage/numerical/backends/glpk*.pyx' + + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-libbraiding/MANIFEST.in b/pkgs/sagemath-libbraiding/MANIFEST.in new file mode 100644 index 00000000000..9ffd23c08fa --- /dev/null +++ b/pkgs/sagemath-libbraiding/MANIFEST.in @@ -0,0 +1,20 @@ +prune sage + +include VERSION.txt + +include sage/libs/braiding.pyx + +global-exclude *.c +global-exclude *.cpp + +global-exclude all__sagemath_*.py +global-include all__sagemath_libbraiding.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-libbraiding/README.rst b/pkgs/sagemath-libbraiding/README.rst new file mode 100644 index 00000000000..305456c20f1 --- /dev/null +++ b/pkgs/sagemath-libbraiding/README.rst @@ -0,0 +1,30 @@ +============================================================================= + Sage: Open Source Mathematics Software: Braid computations with libbraiding +============================================================================= + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-libbraiding`` provides +an interface to libbraiding, a library to compute several properties of braids, +including centralizer and conjugacy check. diff --git a/pkgs/sagemath-libbraiding/VERSION.txt b/pkgs/sagemath-libbraiding/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-libbraiding/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-libbraiding/meson.build b/pkgs/sagemath-libbraiding/meson.build new file mode 100644 index 00000000000..607e2ecee13 --- /dev/null +++ b/pkgs/sagemath-libbraiding/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-libbraiding', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_libbraiding', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-libbraiding/pyproject.toml.m4 b/pkgs/sagemath-libbraiding/pyproject.toml.m4 new file mode 100644 index 00000000000..6e6b646927e --- /dev/null +++ b/pkgs/sagemath-libbraiding/pyproject.toml.m4 @@ -0,0 +1,58 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +build-backend = "mesonpy" + +[project] +name = "sagemath-libbraiding" +description = "Sage: Open Source Mathematics Software: Braid computations with libbraiding" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +# No test requirements; see comment in tox.ini +test = [] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/libbraiding", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-libbraiding/requirements-editable.txt.m4 b/pkgs/sagemath-libbraiding/requirements-editable.txt.m4 new file mode 100644 index 00000000000..394feb11c53 --- /dev/null +++ b/pkgs/sagemath-libbraiding/requirements-editable.txt.m4 @@ -0,0 +1,8 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects diff --git a/pkgs/sagemath-libbraiding/requirements.txt.m4 b/pkgs/sagemath-libbraiding/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-libbraiding/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-libbraiding/sage b/pkgs/sagemath-libbraiding/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-libbraiding/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-libbraiding/sage-cython-native-file.ini b/pkgs/sagemath-libbraiding/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-libbraiding/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-libbraiding/setup.py b/pkgs/sagemath-libbraiding/setup.py new file mode 100644 index 00000000000..22fe97aa742 --- /dev/null +++ b/pkgs/sagemath-libbraiding/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-libbraiding']) diff --git a/pkgs/sagemath-libbraiding/tox.ini b/pkgs/sagemath-libbraiding/tox.ini new file mode 100644 index 00000000000..2b98baf66f7 --- /dev/null +++ b/pkgs/sagemath-libbraiding/tox.ini @@ -0,0 +1,119 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-glpk && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-glpk/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.braiding' + # Actual tests are disabled here for now because sagemath-glpk is (still) an install-requires of sagemath-polyhedra + # bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + # && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_polyhedra --baseline-stats-path={toxinidir}/known-test-failures.json ./sage/numerical/backends/glpk*.pyx' + + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-libecm/MANIFEST.in b/pkgs/sagemath-libecm/MANIFEST.in new file mode 100644 index 00000000000..aae94b93a55 --- /dev/null +++ b/pkgs/sagemath-libecm/MANIFEST.in @@ -0,0 +1,21 @@ +prune sage + +include VERSION.txt + +include sage/interfaces/ecm.p* +include sage/libs/libecm.p* + +global-exclude *.c +global-exclude *.cpp + +global-exclude all__sagemath_*.py +global-include all__sagemath_libecm.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-libecm/README.rst b/pkgs/sagemath-libecm/README.rst new file mode 100644 index 00000000000..afd8710a9f9 --- /dev/null +++ b/pkgs/sagemath-libecm/README.rst @@ -0,0 +1,29 @@ +======================================================================================================= + Sage: Open Source Mathematics Software: Elliptic curve method for integer factorization using GMP-ECM +======================================================================================================= + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-libecm`` provides +an interface to GMP-ECM. diff --git a/pkgs/sagemath-libecm/VERSION.txt b/pkgs/sagemath-libecm/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-libecm/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-libecm/meson.build b/pkgs/sagemath-libecm/meson.build new file mode 100644 index 00000000000..e3c0f62014b --- /dev/null +++ b/pkgs/sagemath-libecm/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-libecm', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_libecm', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-libecm/pyproject.toml.m4 b/pkgs/sagemath-libecm/pyproject.toml.m4 new file mode 100644 index 00000000000..3d454293549 --- /dev/null +++ b/pkgs/sagemath-libecm/pyproject.toml.m4 @@ -0,0 +1,59 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +build-backend = "mesonpy" + +[project] +name = "sagemath-libecm" +description = "Sage: Open Source Mathematics Software: Elliptic curve method for integer factorization using GMP-ECM" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_cysignals +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +# No test requirements; see comment in tox.ini +test = [] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/ecm", + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-libecm/requirements-editable.txt.m4 b/pkgs/sagemath-libecm/requirements-editable.txt.m4 new file mode 100644 index 00000000000..d7d89e262f7 --- /dev/null +++ b/pkgs/sagemath-libecm/requirements-editable.txt.m4 @@ -0,0 +1,9 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories diff --git a/pkgs/sagemath-libecm/requirements.txt.m4 b/pkgs/sagemath-libecm/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-libecm/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-libecm/sage b/pkgs/sagemath-libecm/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-libecm/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-libecm/sage-cython-native-file.ini b/pkgs/sagemath-libecm/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-libecm/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-libecm/setup.py b/pkgs/sagemath-libecm/setup.py new file mode 100644 index 00000000000..e3ba88f4681 --- /dev/null +++ b/pkgs/sagemath-libecm/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-libecm']) diff --git a/pkgs/sagemath-libecm/tox.ini b/pkgs/sagemath-libecm/tox.ini new file mode 100644 index 00000000000..4d811be8da6 --- /dev/null +++ b/pkgs/sagemath-libecm/tox.ini @@ -0,0 +1,119 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-libecm && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-libecm/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.libecm; import sage.interfaces.ecm' + # Actual tests are disabled here for now because sagemath-glpk is (still) an install-requires of sagemath-polyhedra + # bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + # && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_polyhedra --baseline-stats-path={toxinidir}/known-test-failures.json ./sage/numerical/backends/glpk*.pyx' + + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-linbox/MANIFEST.in b/pkgs/sagemath-linbox/MANIFEST.in new file mode 100644 index 00000000000..3bc96998e4b --- /dev/null +++ b/pkgs/sagemath-linbox/MANIFEST.in @@ -0,0 +1,45 @@ +prune sage + +include VERSION.txt + +include sage/libs/iml.p* +graft sage/libs/linbox +recursive-include sage/libs/ntl *.pxd *.pxi *.h # FIXME +include sage/matrix/matrix_integer_dense*.p* +include sage/matrix/matrix_integer_sparse.p* +include sage/matrix/matrix_modn_dense_*.p* +include sage/matrix/matrix_modn_dense_.p* +include sage/matrix/matrix_modn_sparse.p* +include sage/matrix/matrix_rational_dense.p* +include sage/matrix/matrix_rational_sparse.p* +include sage/matrix/change_ring.p* +include sage/matrix/misc.p* +include sage/matrix/matrix_cyclo_dense.p* +include sage/rings/finite_rings/*_givaro*.p* + +# entangled via matrix_integer_dense +include sage/geometry/integral_points_integer_dense.p* +include sage/geometry/integral_points.pxi # FIXME? + +# Depends on m4ri -- entangled via matrix_integer_dense +include sage/libs/m4ri*.p* +include sage/matrix/matrix_gf2e_dense.p* +include sage/matrix/matrix_mod2_dense.p* +include sage/modules/vector_mod2_dense.p* +include sage/rings/polynomial/polynomial_gf2x.p* +include sage/rings/polynomial/polynomial_template*.pxi # FIXME + +global-exclude *.c +global-exclude *.cpp + +global-exclude all__sagemath_*.py +global-include all__sagemath_linbox.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-linbox/README.rst b/pkgs/sagemath-linbox/README.rst new file mode 100644 index 00000000000..92af5ff207f --- /dev/null +++ b/pkgs/sagemath-linbox/README.rst @@ -0,0 +1,29 @@ +=============================================================================================== + Sage: Open Source Mathematics Software: Linear Algebra with fflas-ffpack, Givaro, IML, LinBox +=============================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-ntl`` is a small +distribution that provides modules that depend on fflas-ffpack, Givaro, IML, LinBox. diff --git a/pkgs/sagemath-linbox/VERSION.txt b/pkgs/sagemath-linbox/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-linbox/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-linbox/meson.build b/pkgs/sagemath-linbox/meson.build new file mode 100644 index 00000000000..3bd5cdab7a1 --- /dev/null +++ b/pkgs/sagemath-linbox/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-linbox', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_linbox', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-linbox/pyproject.toml.m4 b/pkgs/sagemath-linbox/pyproject.toml.m4 new file mode 100644 index 00000000000..b57d9de4cc8 --- /dev/null +++ b/pkgs/sagemath-linbox/pyproject.toml.m4 @@ -0,0 +1,65 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_flint + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_pari + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_numpy + SPKG_INSTALL_REQUIRES_pkgconfig +] +build-backend = "mesonpy" + +[project] +name = "sagemath-linbox" +description = "Sage: Open Source Mathematics Software: Linear Algebra with fflas-ffpack, Givaro, IML, LinBox" +dependencies = [ + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_pari +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/givaro", + "pkg:generic/gmp", + "pkg:generic/iml", + "pkg:generic/linbox", + "pkg:generic/m4ri", + "pkg:generic/m4rie", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-linbox/requirements-editable.txt.m4 b/pkgs/sagemath-linbox/requirements-editable.txt.m4 new file mode 100644 index 00000000000..c2b0a8b99a8 --- /dev/null +++ b/pkgs/sagemath-linbox/requirements-editable.txt.m4 @@ -0,0 +1,10 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cypari +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-pari diff --git a/pkgs/sagemath-linbox/requirements.txt.m4 b/pkgs/sagemath-linbox/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-linbox/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-linbox/sage b/pkgs/sagemath-linbox/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-linbox/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-linbox/sage-cython-native-file.ini b/pkgs/sagemath-linbox/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-linbox/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-linbox/setup.py b/pkgs/sagemath-linbox/setup.py new file mode 100644 index 00000000000..2e68c59d4d0 --- /dev/null +++ b/pkgs/sagemath-linbox/setup.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-linbox'], + required_modules=('fflas-ffpack', 'givaro', 'gsl', 'linbox', 'cblas', + 'm4ri', 'gdlib', 'libpng', 'zlib')) diff --git a/pkgs/sagemath-linbox/tox.ini b/pkgs/sagemath-linbox/tox.ini new file mode 100644 index 00000000000..7dfcba03e5d --- /dev/null +++ b/pkgs/sagemath-linbox/tox.ini @@ -0,0 +1,65 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-ntl && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-ntl/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +[testenv] +deps = + !norequirements: -rrequirements.txt + # tox 3.x does not handle extras when using --installpkg. https://github.com/tox-dev/tox/issues/1576 + sagemath-repl + +extras = test + +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + # Importing sage.libs.gap.libgap does not work yet because of the runtime dep on 'sage.rings.polynomial' + # {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.gap.libgap' + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 diff --git a/pkgs/sagemath-mcqd/VERSION.txt~brial_experimental b/pkgs/sagemath-mcqd/VERSION.txt~brial_experimental new file mode 100644 index 00000000000..7786f0e63e4 --- /dev/null +++ b/pkgs/sagemath-mcqd/VERSION.txt~brial_experimental @@ -0,0 +1 @@ +10.2.beta5 diff --git a/pkgs/sagemath-mcqd/requirements-editable.txt.m4 b/pkgs/sagemath-mcqd/requirements-editable.txt.m4 new file mode 100644 index 00000000000..1d909c00118 --- /dev/null +++ b/pkgs/sagemath-mcqd/requirements-editable.txt.m4 @@ -0,0 +1,3 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cysignals diff --git a/pkgs/sagemath-mcqd/setup.py b/pkgs/sagemath-mcqd/setup.py index 8cbcf6477c2..0ff59500880 100644 --- a/pkgs/sagemath-mcqd/setup.py +++ b/pkgs/sagemath-mcqd/setup.py @@ -1,65 +1,5 @@ #!/usr/bin/env python -from distutils import log -from setuptools import setup +from sage_setup import sage_setup -# Work around a Cython problem in Python 3.8.x on macOS -# https://github.com/cython/cython/issues/3262 -import os -if os.uname().sysname == 'Darwin': - import multiprocessing - multiprocessing.set_start_method('fork', force=True) - -# If build isolation is not in use and setuptools_scm is installed, -# then its file_finders entry point is invoked, which we don't need. -# Workaround from ​https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286 -try: - import setuptools_scm.integration - setuptools_scm.integration.find_files = lambda _: [] -except ImportError: - pass - -# PEP 517 builds do not have . in sys.path -import sys -sys.path.insert(0, os.path.dirname(__file__)) - -if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"): - sdist = True -else: - sdist = False - -if sdist: - cmdclass = {} -else: - from sage_setup.excepthook import excepthook - sys.excepthook = excepthook - - from sage_setup.setenv import setenv - setenv() - - import sage.env - sage.env.default_required_modules = sage.env.default_optional_modules = () - - from sage_setup.command.sage_build_cython import sage_build_cython - from sage_setup.command.sage_build_ext import sage_build_ext - from sage_setup.command.sage_build_py import sage_build_py - sage_build_cython.built_distributions = ['sagemath-mcqd'] - - cmdclass = dict(build_cython=sage_build_cython, - build_ext=sage_build_ext, - build_py=sage_build_py) - -from sage_setup.find import find_python_sources -python_packages, python_modules, cython_modules = find_python_sources( - '.', ['sage'], distributions=['sagemath-mcqd']) - -log.warn('python_packages = {0}'.format(python_packages)) -log.warn('python_modules = {0}'.format(python_modules)) -log.warn('cython_modules = {0}'.format(cython_modules)) - -setup( - cmdclass = cmdclass, - packages = python_packages, - py_modules = python_modules, - ext_modules = cython_modules, -) +sage_setup(['sagemath-mcqd']) diff --git a/pkgs/sagemath-meataxe/VERSION.txt~brial_experimental b/pkgs/sagemath-meataxe/VERSION.txt~brial_experimental new file mode 100644 index 00000000000..7786f0e63e4 --- /dev/null +++ b/pkgs/sagemath-meataxe/VERSION.txt~brial_experimental @@ -0,0 +1 @@ +10.2.beta5 diff --git a/pkgs/sagemath-meataxe/requirements-editable.txt.m4 b/pkgs/sagemath-meataxe/requirements-editable.txt.m4 new file mode 100644 index 00000000000..357d4eb2596 --- /dev/null +++ b/pkgs/sagemath-meataxe/requirements-editable.txt.m4 @@ -0,0 +1,2 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. diff --git a/pkgs/sagemath-meataxe/setup.py b/pkgs/sagemath-meataxe/setup.py index f8e3f30ea9b..5273b703654 100644 --- a/pkgs/sagemath-meataxe/setup.py +++ b/pkgs/sagemath-meataxe/setup.py @@ -1,65 +1,5 @@ #!/usr/bin/env python -from distutils import log -from setuptools import setup +from sage_setup import sage_setup -# Work around a Cython problem in Python 3.8.x on macOS -# https://github.com/cython/cython/issues/3262 -import os -if os.uname().sysname == 'Darwin': - import multiprocessing - multiprocessing.set_start_method('fork', force=True) - -# If build isolation is not in use and setuptools_scm is installed, -# then its file_finders entry point is invoked, which we don't need. -# Workaround from ​https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286 -try: - import setuptools_scm.integration - setuptools_scm.integration.find_files = lambda _: [] -except ImportError: - pass - -# PEP 517 builds do not have . in sys.path -import sys -sys.path.insert(0, os.path.dirname(__file__)) - -if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"): - sdist = True -else: - sdist = False - -if sdist: - cmdclass = {} -else: - from sage_setup.excepthook import excepthook - sys.excepthook = excepthook - - from sage_setup.setenv import setenv - setenv() - - import sage.env - sage.env.default_required_modules = sage.env.default_optional_modules = () - - from sage_setup.command.sage_build_cython import sage_build_cython - from sage_setup.command.sage_build_ext import sage_build_ext - from sage_setup.command.sage_build_py import sage_build_py - sage_build_cython.built_distributions = ['sagemath-meataxe'] - - cmdclass = dict(build_cython=sage_build_cython, - build_ext=sage_build_ext, - build_py=sage_build_py) - -from sage_setup.find import find_python_sources -python_packages, python_modules, cython_modules = find_python_sources( - '.', ['sage'], distributions=['sagemath-meataxe']) - -log.warn('python_packages = {0}'.format(python_packages)) -log.warn('python_modules = {0}'.format(python_modules)) -log.warn('cython_modules = {0}'.format(cython_modules)) - -setup( - cmdclass = cmdclass, - packages = python_packages, - py_modules = python_modules, - ext_modules = cython_modules, -) +sage_setup(['sagemath-meataxe']) diff --git a/pkgs/sagemath-modules/MANIFEST.in.m4 b/pkgs/sagemath-modules/MANIFEST.in.m4 new file mode 100644 index 00000000000..3f8884fb2a8 --- /dev/null +++ b/pkgs/sagemath-modules/MANIFEST.in.m4 @@ -0,0 +1,311 @@ +dnl MANIFEST.in is generated from this file by SAGE_ROOT/bootstrap via m4. +prune sage + +include VERSION.txt + +prune .tox +exclude *.m4 +include requirements.txt + +graft sage/misc +exclude sage/misc/all.py +# exclude what's in sagemath-objects +exclude sage/misc/classcall_metaclass.* +exclude sage/misc/inherit_comparison*.* +exclude sage/misc/weak_dict.* +exclude sage/misc/nested_class*.* +exclude sage/misc/test_nested_class*.p* +exclude sage/misc/abstract_method.* +exclude sage/misc/cachefunc.* +exclude sage/misc/decorators.* +exclude sage/misc/c3_controlled.* +exclude sage/misc/lazy_attribute.* +exclude sage/misc/function_mangling.* +exclude sage/misc/lazy_string.* +exclude sage/misc/lazy_format.* +exclude sage/misc/unknown.* +exclude sage/misc/fast_methods.* +exclude sage/misc/constant_function.* +exclude sage/misc/call.* +exclude sage/misc/bindable_class.* +exclude sage/misc/namespace_package.p* +exclude sage/misc/package_dir.py +exclude sage/misc/verbose.* +exclude sage/misc/repr.* +exclude sage/misc/superseded.* +exclude sage/misc/misc_c.* +exclude sage/misc/flatten.* +exclude sage/misc/lazy_list.p* +exclude sage/misc/lazy_import*.* +exclude sage/misc/sageinspect.* +exclude sage/misc/instancedoc.* +exclude sage/misc/persist.* +exclude sage/misc/sage_unittest.* +exclude sage/misc/fpickle.p* +exclude sage/misc/randstate.* +exclude sage/misc/prandom.* +exclude sage/misc/misc.* +exclude sage/misc/timing.p* +exclude sage/misc/globals.p* +exclude sage/misc/sage_timeit*.p* +exclude sage/misc/session.p* +exclude sage/misc/reset.p* +exclude sage/misc/sage_ostools.p* + +# exclude what's in sagemath-categories +exclude sage/misc/object_multiplexer.p* +exclude sage/misc/multireplace.p* +exclude sage/misc/allocator.* +exclude sage/misc/latex*.* +exclude sage/misc/html.p* +exclude sage/misc/mathml.p* +exclude sage/misc/table.p* +exclude sage/misc/map_threaded.p* +exclude sage/misc/mrange.p* +exclude sage/misc/defaults.p* +exclude sage/misc/converting_dict.p* +exclude sage/misc/parser.p* +exclude sage/misc/method_decorator.p* +exclude sage/misc/random_testing.p* +exclude sage/misc/rest_index_of_methods.p* +exclude sage/misc/callable_dict.p* +exclude sage/misc/search.p* +exclude sage/misc/derivative.p* +exclude sage/misc/functional.p* +exclude sage/misc/binary_tree.p* +exclude sage/misc/stopgap.p* + +# Exclude what's in sagemath-environment +exclude sage/misc/package.py +exclude sage/misc/package_dir.py +exclude sage/misc/temporary_file.py +exclude sage/misc/viewer.py + + +# Exclude what's in sagemath-repl +exclude sage/misc/banner.py +exclude sage/misc/sagedoc.py +exclude sage/misc/sage_input.py +exclude sage/misc/sage_eval.py +exclude sage/misc/explain_pickle.py +exclude sage/misc/trace.py +exclude sage/misc/profiler.py +exclude sage/misc/dev_tools.py +exclude sage/misc/edit_module.py +exclude sage/misc/pager.py +exclude sage/misc/cython.py +exclude sage/misc/inline_fortran.py + +# see sage.misc.all__sagemath_modules -- exclude dev tools, session management not already excluded above. +exclude sage/misc/sage_timeit_class.p* +exclude sage/misc/edit_module.p* +exclude sage/misc/remote_file.p* +exclude sage/misc/dist.p* +#??? sage/misc/sagedoc.p* +exclude sage/misc/classgraph.p* +exclude sage/misc/benchmark.p* +exclude sage/misc/citation.p* +exclude sage/misc/copying.p* +exclude sage/misc/gperftools.p* +exclude sage/misc/messaging.p* +exclude sage/misc/python.p* +exclude sage/misc/sh.p* +# lost and abandoned +prune sage/misc/notes + +graft sage/modules +exclude sage/modules/module.* # in sagemath-objects +exclude sage/modules/vector_mod2*.* # depends on m4ri +exclude sage/modules/vector_*symbol*.* # --> sagemath-symbolics +prune sage/modules/fp_graded + +include sage/geometry/toric_lattice*.p* + +# Also just modules +graft sage/groups/additive_abelian +graft sage/groups/abelian_gps +include sage/groups/galois_group.p* +exclude sage/groups/abelian_gps/abelian_group_morphism.p* # gap +exclude sage/groups/abelian_gps/abelian_aut.p* # gap +exclude sage/groups/abelian_gps/*gap*.p* # gap +exclude sage/groups/abelian_gps/all.p* + +# Need sage.combinat.free_module for polyhedral modules +include sage/combinat/free_module.py +include sage/combinat/cartesian_product.py +include sage/combinat/family.py # until https://trac.sagemath.org/ticket/32624 is done + +# root_system; could also instead go to sagemath-polyhedra (which has hyperplane arrangements) +graft sage/combinat/root_system +exclude sage/combinat/root_system/reflection_group*.p* # cimports PermutationGroupElement, depends on gap3 +exclude sage/combinat/root_system/weyl_group*.p* # gap + +include sage/algebras/algebra.py +include sage/algebras/catalog.py +graft sage/algebras/finite_dimensional_algebras # for hyperplane arrangements +include sage/algebras/group_algebra.py + +graft sage/matrix +exclude sage/matrix/misc.p* # Matrix_integer_sparse +exclude sage/matrix/misc_flint.p* +exclude sage/matrix/matrix_gap.* +exclude sage/matrix/matrix_*ball*.* # depends on arb +exclude sage/matrix/matrix_*cyclo*.* # depends on ntl +exclude sage/matrix/matrix_*gap*.* # depends on gap +exclude sage/matrix/matrix_gf2*.* # depends on m4ri, m4rie +exclude sage/matrix/matrix_gfpn*.* # depends on meataxe +exclude sage/matrix/matrix_integer_*.* # depends on flint, pari, iml, linbox +exclude sage/matrix/matrix_mod2*.* # depends on m4ri +exclude sage/matrix/matrix_modn*.* # depends on linbox or flint +exclude sage/matrix/matrix_mpolynom*.* # depends on singular +exclude sage/matrix/matrix_rational_*.* # depends on flint, pari +exclude sage/matrix/matrix_symbolic_*.* # --> sagemath-symbolics +exclude sage/matrix/change_ring.* # depends on matrix_integer_* + +# Can add sage/calculus/functions.p* (jacobian, wronskian) -- excluded from sagemath-categories because it needs matrices + +graft sage/quadratic_forms +prune sage/quadratic_forms/genera # this and below are lazy-imported and can only be tested with pari present +exclude sage/quadratic_forms/quadratic_form__automorphisms.p* +exclude sage/quadratic_forms/quadratic_form__genus.p* +exclude sage/quadratic_forms/quadratic_form__local_density_interfaces.p* +exclude sage/quadratic_forms/quadratic_form__local_normal_form.p* +exclude sage/quadratic_forms/quadratic_form__local_representation_conditions.p* +exclude sage/quadratic_forms/quadratic_form__mass*.p* +exclude sage/quadratic_forms/quadratic_form__siegel_product.p* +exclude sage/quadratic_forms/qfsolve.p* +exclude sage/quadratic_forms/special_values.p* + +graft sage/groups/affine_gps +include sage/groups/matrix_gps/all.p* +include sage/groups/matrix_gps/catalog.p* +include sage/groups/matrix_gps/finitely_generated.p* +include sage/groups/matrix_gps/group_element.p* +include sage/groups/matrix_gps/linear.p* +include sage/groups/matrix_gps/matrix_group.p* +include sage/groups/matrix_gps/named_group.p* +include sage/groups/matrix_gps/orthogonal.p* +include sage/groups/matrix_gps/symplectic.p* +include sage/groups/matrix_gps/unitary.p* +include sage/groups/matrix_gps/coxeter_group.p* + +include sage/groups/perm_gps/partn_ref/refinement_matrices.p* +include sage/groups/perm_gps/partn_ref/refinement_binary.p* + +graft sage/tensor +graft sage/matroids # though many doctests use graphs, finite fields +include sage/algebras/orlik_solomon.p* +include sage/algebras/orlik_terao.p* + + +# just modules +graft sage/homology +# exclude stuff moved to sage/topology +exclude sage/homology/cell_*.p* +exclude sage/homology/cubical_*.p* +exclude sage/homology/delta_*.p* +exclude sage/homology/examples.p* +exclude sage/homology/simplicial_*.p* +exclude sage/homology/tests.p* + +include sage/rings/derivation.p* +include sage/rings/finite_rings/maps_finite_field.p* # vector space morphisms +include sage/rings/function_field/differential.p* +include sage/rings/function_field/derivations.p* # module elements +include sage/rings/function_field/derivations_rational.p* # module elements +include sage/rings/function_field/differential.p* # module elements +include sage/rings/function_field/divisor.p* # module elements +include sage/rings/function_field/hermite_form_polynomial.p* # cimports Matrix +#include sage/rings/function_field/valuation.p* -> sagemath-pari + +include sage/rings/polynomial/laurent_polynomial_mpair.p* # cimports Matrix +include sage/rings/polynomial/ore_*.p* +include sage/rings/polynomial/skew_*.p* + +include sage/rings/ring_extension*.p* + +graft sage/rings/invariants + +# mpfr, gsl +graft sage/libs/mpfr +graft sage/libs/gsl +include sage/rings/real_mpfr.p* +include sage/rings/real_field.p* +include sage/rings/polynomial/*_mpfr_*.p* +include sage/rings/cc.p* +include sage/rings/complex_double.p* +include sage/rings/complex_field.p* +include sage/rings/complex_mpfr.p* +include sage/rings/complex_conversion.p* +include sage/rings/real_double_element_gsl.p* +# uses gsl +graft sage/calculus +# exclude what is included in sagemath-categories +exclude sage/calculus/functional.p* +exclude sage/calculus/functions.p* +# exclude symbolics +exclude sage/calculus/all.* +exclude sage/calculus/calculus.* +exclude sage/calculus/desolvers.* +exclude sage/calculus/predefined.* +exclude sage/calculus/tests.* +exclude sage/calculus/var.* + +# More from algebras with compile-time dependencies on sagemath-modules +include sage/algebras/clifford_algebra*.p* +include sage/algebras/exterior_algebra*.p* +include sage/algebras/octonion_algebra.p* +include sage/algebras/weyl_algebra.p* +include sage/algebras/lie_algebras/lie_algebra_element.p* + + +graft sage/coding +prune sage/coding/codecan # needs sage.groups + +graft sage/crypto +## # parts of sage.crypto using linear algebra +## include sage/crypto/lattice.p* +## include sage/crypto/sbox*.p* # cimports Matrix +## include sage/crypto/boolean_function.p* # dep of sbox +## graft sage/crypto/mq +## # parts of sage.crypto using StringMonoid +## # they could as well go to sagemath-combinat, but sage.crypto.__init__ is nonempty +## include sage/crypto/block_cipher/sdes.p* +## include sage/crypto/stream*.p* +## include sage/crypto/util*.p* +## graft sage/crypto/public_key + +# sage.stats.distributions.discrete_gaussian is needed for sage.crypto.lwe. +# We include other parts of sage.stats for simplicity, +# although they cimports numpy directly or via sage.modules.vector_real_double_dense +graft sage/stats +graft sage/probability # uses gsl + +# only needed by interpreter +graft sage/libs/mpc +include sage/rings/complex_mpc.p* + +# because it needs real_mpfr +include sage/numerical/gauss_legendre.p* +# uses vector +include sage/numerical/optimize.p* + +global-exclude all__sagemath_*.* +global-include all__sagemath_modules.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist + + +# TODO: +# include sage/geometry/linear_expression.py +# include sage/geometry/hyperplane_arrangement/affine_subspace.py +# include sage/geometry/hyperplane_arrangement/hyperplane.py +# include sage/numerical/linear_functions.p* +# include sage/numerical/linear_tensor*.p* diff --git a/pkgs/sagemath-modules/README.rst b/pkgs/sagemath-modules/README.rst new file mode 100644 index 00000000000..57a2a69b69f --- /dev/null +++ b/pkgs/sagemath-modules/README.rst @@ -0,0 +1,87 @@ +=========================================================================================================================================================================================================== + Sage: Open Source Mathematics Software: Vectors, matrices, tensors, vector spaces, affine spaces, modules and algebras, additive groups, quadratic forms, root systems, homology, coding theory, matroids +=========================================================================================================================================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2020 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via Sage-the-distribution (https://www.sagemath.org/download-source.html). Sage-the-distribution first builds a large number of open source packages from source (unless it finds suitable versions installed in the system) and then installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this experimental pip-installable source distribution +----------------------------------------------------------- + +This pip-installable source distribution `sagemath-modules` is an experimental distribution of a part of the Sage Library. Use at your own risk. It provides a small subset of the modules of the Sage library ("sagelib", `sagemath-standard`). + + +What is included +---------------- + +* `Vectors, Vector Spaces, Modules `_ + +* `Matrices and Spaces of Matrices `_ + +* Fields of real and complex numbers in arbitrary precision floating point arithmetic (using MPFR, GSL, mpmath, MPC) + +* `Free Modules with Combinatorial Bases `_ + +* `Tensor Modules `_ + +* `Additive Abelian Groups `_ + +* `Matrix and Affine Groups `_ + +* `Root Systems `_ + +* `Quadratic Forms `_ + +* `Ring Extensions `_ and `Derivations `_ + +* `Clifford, Exterior `_, and `Weyl Algebras `_ + +* `Chain Complexes, Homology `_, `Free Resolutions `_ + +* `Matroid Theory `_ + +* `Coding Theory `_ + +* `Cryptography `_ + +* `Probability Spaces and Distributions `_, `Statistics `_ + + +Available as extras, from other distributions +--------------------------------------------- + +`pip install "sagemath-modules[RDF,CDF]"` + Linear algebra over fields of real and complex numbers using NumPy + +`pip install "sagemath-modules[RBF,CBF]"` + Linear algebra over fields of real and complex numbers with ball arithmetic using FLINT/arb + +`pip install "sagemath-modules[GF,GF2,GF2e,GFpn]"` + Linear algebra over finite fields (various implementations) + +`pip install "sagemath-modules[QQbar,NumberField,CyclotomicField]"` + Linear algebra over the algebraic numbers or number fields + +`pip install "sagemath-modules[padics]"` + Linear algebra over p-adic rings and fields + +`pip install "sagemath-modules[combinat]"` + Modules and algebras with combinatorial bases; algebraic combinatorics + +`pip install "sagemath-modules[invariant]"` + Submodules invariant under group actions + +`pip install "sagemath-modules[standard]"` + All related features as in a standard installation of SageMath diff --git a/pkgs/sagemath-modules/VERSION.txt b/pkgs/sagemath-modules/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-modules/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-modules/known-test-failures.json b/pkgs/sagemath-modules/known-test-failures.json new file mode 100644 index 00000000000..8901b784f90 --- /dev/null +++ b/pkgs/sagemath-modules/known-test-failures.json @@ -0,0 +1,2982 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "ntests": 72 + }, + "sage.algebras.orlik_terao": { + "failed": true, + "ntests": 80 + }, + "sage.algebras.weyl_algebra": { + "ntests": 4 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 906 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 4 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.riemann": { + "ntests": 13 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 110 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "failed": true, + "ntests": 66 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 155 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 7 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 3 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 26 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 17 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "ntests": 38 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "ntests": 362 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "ntests": 2 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 109 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 90 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 39 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 108 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "ntests": 128 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 48 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 209 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 380 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 145 + }, + "sage.categories.modules_with_basis": { + "ntests": 488 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 85 + }, + "sage.categories.morphism": { + "ntests": 99 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.primer": { + "ntests": 163 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 746 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 81 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "ntests": 166 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 106 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 434 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 54 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 8 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 38 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.binary_code": { + "ntests": 1 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 44 + }, + "sage.coding.code_constructions": { + "ntests": 30 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "ntests": 1 + }, + "sage.coding.databases": { + "ntests": 2 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 2 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.golay_code": { + "ntests": 2 + }, + "sage.coding.goppa_code": { + "ntests": 1 + }, + "sage.coding.grs_code": { + "ntests": 1 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 2 + }, + "sage.coding.kasami_codes": { + "ntests": 2 + }, + "sage.coding.linear_code": { + "ntests": 44 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 2 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.combinat": { + "ntests": 411 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.free_module": { + "ntests": 398 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.permutation": { + "ntests": 1214 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 55 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 402 + }, + "sage.combinat.root_system.coxeter_group": { + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.hecke_algebra_representation": { + "ntests": 1 + }, + "sage.combinat.root_system.integrable_representations": { + "ntests": 5 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "ntests": 25 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 284 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 489 + }, + "sage.combinat.root_system.root_space": { + "ntests": 72 + }, + "sage.combinat.root_system.root_system": { + "ntests": 117 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 19 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 67 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 31 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 130 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.boolean_function": { + "ntests": 202 + }, + "sage.crypto.classical": { + "ntests": 14 + }, + "sage.crypto.classical_cipher": { + "ntests": 2 + }, + "sage.crypto.cryptosystem": { + "ntests": 14 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 18 + }, + "sage.crypto.lwe": { + "ntests": 4 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "ntests": 16 + }, + "sage.crypto.mq.sr": { + "ntests": 24 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 11 + }, + "sage.crypto.sbox": { + "ntests": 12 + }, + "sage.crypto.util": { + "ntests": 9 + }, + "sage.data_structures.bitset": { + "ntests": 425 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 303 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 179 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 97 + }, + "sage.functions.bessel": { + "failed": true, + "ntests": 172 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 156 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 136 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "failed": true, + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 78 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 157 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 237 + }, + "sage.functions.other": { + "failed": true, + "ntests": 247 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 58 + }, + "sage.functions.trig": { + "failed": true, + "ntests": 128 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 270 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 23 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 2 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 55 + }, + "sage.groups.abelian_gps.values": { + "ntests": 65 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "ntests": 97 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 92 + }, + "sage.groups.galois_group": { + "ntests": 54 + }, + "sage.groups.generic": { + "ntests": 94 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.matrix_gps.coxeter_group": { + "ntests": 10 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 47 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 33 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 24 + }, + "sage.groups.matrix_gps.matrix_group": { + "ntests": 45 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 21 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 44 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 31 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 251 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 87 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.homology_group": { + "ntests": 22 + }, + "sage.homology.homology_vector_space_with_basis": { + "ntests": 6 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 4 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 134 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.constructor": { + "ntests": 128 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 790 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 425 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 1982 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 25 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_polynomial_dense": { + "failed": true, + "ntests": 420 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 419 + }, + "sage.matrix.matrix_sparse": { + "ntests": 159 + }, + "sage.matrix.misc_mpfr": { + "failed": true, + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 90 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 436 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 181 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 129 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.graphic_matroid": { + "ntests": 4 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 614 + }, + "sage.matroids.matroid": { + "ntests": 858 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 22 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 59 + }, + "sage.matroids.utilities": { + "ntests": 58 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 150 + }, + "sage.misc.cachefunc": { + "ntests": 692 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 40 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "ntests": 306 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 243 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 227 + }, + "sage.misc.lazy_string": { + "ntests": 131 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 141 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 38 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, + "sage.misc.sage_eval": { + "ntests": 31 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 250 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 435 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 170 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1455 + }, + "sage.modules.free_module_element": { + "ntests": 873 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 163 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 133 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 400 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "ntests": 122 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 171 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 2 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_modn_dense": { + "ntests": 59 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 4 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 1 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "ntests": 151 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 161 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.optimize": { + "ntests": 39 + }, + "sage.parallel.decorate": { + "ntests": 86 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "failed": true, + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 288 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 184 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 60 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "failed": true, + "ntests": 133 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "ntests": 32 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 69 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.ternary": { + "ntests": 95 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 290 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "failed": true, + "ntests": 331 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 494 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 295 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.derivation": { + "ntests": 391 + }, + "sage.rings.factorint": { + "ntests": 10 + }, + "sage.rings.finite_rings.conway_polynomials": { + "ntests": 20 + }, + "sage.rings.finite_rings.element_base": { + "ntests": 11 + }, + "sage.rings.finite_rings.finite_field_base": { + "ntests": 15 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "ntests": 17 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 28 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 1 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 15 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 536 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 253 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 39 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 233 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 263 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 98 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 68 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 154 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 135 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 100 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 82 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "ntests": 64 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 7 + }, + "sage.rings.generic": { + "ntests": 50 + }, + "sage.rings.homset": { + "ntests": 37 + }, + "sage.rings.ideal": { + "ntests": 340 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1103 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 197 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 879 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 145 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 381 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 121 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 467 + }, + "sage.rings.multi_power_series_ring": { + "ntests": 216 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 425 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.padics.local_generic": { + "ntests": 71 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_generic": { + "ntests": 58 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 31 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 384 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 334 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 87 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 507 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "ntests": 287 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 106 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 232 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.ore_function_element": { + "ntests": 56 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 63 + }, + "sage.rings.polynomial.ore_polynomial_element": { + "ntests": 25 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 20 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1903 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 192 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "ntests": 33 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "ntests": 2 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_ring": { + "ntests": 398 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 139 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 42 + }, + "sage.rings.polynomial.skew_polynomial_element": { + "ntests": 1 + }, + "sage.rings.polynomial.skew_polynomial_ring": { + "ntests": 20 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 327 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 21 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 267 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 478 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 190 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 185 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 542 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 193 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 356 + }, + "sage.rings.real_double_element_gsl": { + "failed": true, + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1018 + }, + "sage.rings.ring": { + "ntests": 346 + }, + "sage.rings.ring_extension": { + "ntests": 207 + }, + "sage.rings.ring_extension_element": { + "ntests": 111 + }, + "sage.rings.ring_extension_morphism": { + "ntests": 97 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 39 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 296 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 117 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 395 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 180 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 97 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 62 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 62 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 499 + }, + "sage.schemes.projective.projective_point": { + "ntests": 279 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 34 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 376 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 240 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "ntests": 367 + }, + "sage.sets.set_from_iterator": { + "ntests": 155 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 51 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.distributions": { + "ntests": 1 + }, + "sage.stats.hmm.hmm": { + "ntests": 4 + }, + "sage.stats.intlist": { + "ntests": 3 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "ntests": 6 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 163 + }, + "sage.structure.coerce": { + "ntests": 335 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 662 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 200 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 109 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 123 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 315 + }, + "sage.structure.parent_gens": { + "ntests": 29 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 8 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 226 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 179 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "ntests": 13 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 1 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 4 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-modules/meson.build b/pkgs/sagemath-modules/meson.build new file mode 100644 index 00000000000..757f6a6d222 --- /dev/null +++ b/pkgs/sagemath-modules/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-modules', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_modules', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-modules/pyproject.toml.m4 b/pkgs/sagemath-modules/pyproject.toml.m4 new file mode 100644 index 00000000000..6439eb1aafe --- /dev/null +++ b/pkgs/sagemath-modules/pyproject.toml.m4 @@ -0,0 +1,115 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +# +# Note we include numpy here to build some modules that cimport numpy, +# but it is not part of the install-requires. +requires = [ + "sage_setup[autogen]", + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_mpmath + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_numpy + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator +] +build-backend = "mesonpy" + +[project] +name = "sagemath-modules" +description = "Sage: Open Source Mathematics Software: Vectors, matrices, tensors, vector spaces, affine spaces, modules and algebras, additive groups, quadratic forms, homology, coding theory, matroids" +dependencies = [ + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_mpmath +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [SPKG_INSTALL_REQUIRES_sagemath_repl] + +# extras by packages +flint = [SPKG_INSTALL_REQUIRES_sagemath_flint] +gap = [SPKG_INSTALL_REQUIRES_sagemath_gap] +gsl = [] # No extra needed +linbox = [SPKG_INSTALL_REQUIRES_sagemath_linbox] +m4ri = ["sagemath-modules[linbox]"] +m4rie = ["sagemath-modules[linbox]"] +meataxe = [SPKG_INSTALL_REQUIRES_sagemath_meataxe] +mpfi = ["sagemath-modules[flint]"] +mpfr = [] # No extra needed +mpmath = [] # No extra needed +ntl = [SPKG_INSTALL_REQUIRES_sagemath_ntl] +numpy = [SPKG_INSTALL_REQUIRES_numpy] +pari = [SPKG_INSTALL_REQUIRES_sagemath_pari] + +# extras by rings +RDF = ["sagemath-modules[numpy]"] +CDF = ["sagemath-modules[numpy]"] +RR = [] # No extra needed +CC = [] # No extra needed +RIF = ["sagemath-modules[flint]"] +CIF = ["sagemath-modules[flint]"] +RBF = ["sagemath-modules[flint]"] +CBF = ["sagemath-modules[flint]"] +GF = ["sagemath-modules[pari]"] +GF2 = ["sagemath-modules[m4ri]"] +GF2e = ["sagemath-modules[m4rie]"] +GF2n = ["sagemath-modules[m4rie]"] +GFpn = ["sagemath-modules[meataxe]"] +QQbar = ["sagemath-modules[NumberField]"] +AA = ["sagemath-modules[NumberField]"] +UCF = ["sagemath-modules[gap]"] +Zp = ["sagemath-modules[pari]"] +Qp = ["sagemath-modules[Zp]"] +Zq = ["sagemath-modules[Zp]"] +Qq = ["sagemath-modules[Zp]"] +SR = [SPKG_INSTALL_REQUIRES_sagemath_symbolics] +FiniteField = ["sagemath-modules[GF]"] +NumberField = ["sagemath-modules[flint]"] +QuadraticField = ["sagemath-modules[NumberField]"] +CyclotomicField = ["sagemath-modules[NumberField]"] + +# extras by features +invariant = [SPKG_INSTALL_REQUIRES_sagemath_groups] +combinat = [SPKG_INSTALL_REQUIRES_sagemath_combinat] +padics = ["sagemath-modules[Zp]"] + +# the whole package +standard = ["sagemath-modules[invariant,combinat,padics,NumberField,FiniteField,m4ri,m4rie,flint,linbox,numpy,mpfi,ntl,pari]"] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/gsl", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-modules/requirements-editable.txt.m4 b/pkgs/sagemath-modules/requirements-editable.txt.m4 new file mode 100644 index 00000000000..c9c0263fbab --- /dev/null +++ b/pkgs/sagemath-modules/requirements-editable.txt.m4 @@ -0,0 +1,10 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +dnl To be added when ready for editable: +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-mpmath diff --git a/pkgs/sagemath-modules/requirements.txt.m4 b/pkgs/sagemath-modules/requirements.txt.m4 new file mode 100644 index 00000000000..d145756dfd1 --- /dev/null +++ b/pkgs/sagemath-modules/requirements.txt.m4 @@ -0,0 +1,3 @@ +dnl Include all from sagemath-categories (via m4 include) +include(`../sagemath_categories/src/requirements.txt.m4') +pplpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)') diff --git a/pkgs/sagemath-modules/sage b/pkgs/sagemath-modules/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-modules/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-modules/sage-cython-native-file.ini b/pkgs/sagemath-modules/sage-cython-native-file.ini new file mode 120000 index 00000000000..e9a14ce871a --- /dev/null +++ b/pkgs/sagemath-modules/sage-cython-native-file.ini @@ -0,0 +1 @@ +../sagemath-objects/sage-cython-native-file.ini \ No newline at end of file diff --git a/pkgs/sagemath-modules/setup.py b/pkgs/sagemath-modules/setup.py new file mode 100644 index 00000000000..759414987c9 --- /dev/null +++ b/pkgs/sagemath-modules/setup.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-modules'], + interpreters=['CDF', 'RDF', 'RR', 'CC'], + required_modules=('gsl',)) diff --git a/pkgs/sagemath-modules/tox.ini b/pkgs/sagemath-modules/tox.ini new file mode 100644 index 00000000000..f3434f834c8 --- /dev/null +++ b/pkgs/sagemath-modules/tox.ini @@ -0,0 +1,121 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_modules-build-deps && ./sage -sh -c '(cd pkgs/sagemath-modules && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-modules/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.cpython.builtin_types, sage.cpython.cython_metaclass, sage.cpython.debug, sage.structure.all, sage.categories.all, sage.all__sagemath_modules' + + # Test that importing sage.categories.all initializes categories + python -c 'import sys; "" in sys.path and sys.path.remove(""); from sage.categories.all import *; SimplicialComplexes(); FunctionFields()' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_modules --probe all --baseline-stats-path=$KNOWN_TEST_FAILURES {posargs:--installed}' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-mpmath/MANIFEST.in b/pkgs/sagemath-mpmath/MANIFEST.in new file mode 100644 index 00000000000..acbf75c35c8 --- /dev/null +++ b/pkgs/sagemath-mpmath/MANIFEST.in @@ -0,0 +1,26 @@ +prune sage + +include VERSION.txt +include vendor.txt + +# these are currently shipped by sagemath-modules, which depends on sagemath-mpmath! +include sage/libs/mpfr/*.pxd # FIXME +include sage/rings/real_mpfr.pxd # FIXME +include sage/rings/complex_mpfr.pxd # FIXME + +graft sage/libs/mpmath + +global-exclude *.c +global-exclude *.cpp + +global-exclude all__sagemath*.py +global-include all__sagemath_mpmath.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-mpmath/README.rst b/pkgs/sagemath-mpmath/README.rst new file mode 100644 index 00000000000..21b6fe1e9be --- /dev/null +++ b/pkgs/sagemath-mpmath/README.rst @@ -0,0 +1,26 @@ +======================================================================================== + Sage: Open Source Mathematics Software: Vendored copy of mpmath using the Sage backend +======================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- diff --git a/pkgs/sagemath-mpmath/VERSION.txt b/pkgs/sagemath-mpmath/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-mpmath/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-mpmath/meson.build b/pkgs/sagemath-mpmath/meson.build new file mode 100644 index 00000000000..d981339e95d --- /dev/null +++ b/pkgs/sagemath-mpmath/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-mpmath', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_mpmath', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-mpmath/pyproject.toml.m4 b/pkgs/sagemath-mpmath/pyproject.toml.m4 new file mode 100644 index 00000000000..90b6258e1d6 --- /dev/null +++ b/pkgs/sagemath-mpmath/pyproject.toml.m4 @@ -0,0 +1,50 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_pkgconfig +] +build-backend = "mesonpy" + +[project] +name = "sagemath-mpmath" +description = "Sage: Open Source Mathematics Software: Vendored copy of mpmath using the Sage backend" +dependencies = [ + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_sagemath_categories +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[tool.vendoring] +# Following example at https://github.com/pypa/pip/blob/main/pyproject.toml#L30 + +destination = "sage/libs/mpmath/_vendor/" +requirements = "vendor.txt" +namespace = "sage.libs.mpmath._vendor" + +protected-files = ["vendor.txt", "__init__.py", "nodoctest.py"] +patches-dir = "vendoring_patches" + +[tool.vendoring.transformations] +substitute = [ + {match='sage[.]all', replace='sage.libs.mpmath.hooks'}, + {match="'MPMATH_NOSAGE' not in os.environ and", replace='True or'}, + {match='from mpmath', replace='from sage.libs.mpmath._vendor.mpmath'}, +] diff --git a/pkgs/sagemath-mpmath/requirements-editable.txt.m4 b/pkgs/sagemath-mpmath/requirements-editable.txt.m4 new file mode 100644 index 00000000000..dd2f110936b --- /dev/null +++ b/pkgs/sagemath-mpmath/requirements-editable.txt.m4 @@ -0,0 +1,12 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires (+ their install-requires) +dnl FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_ipython +SPKG_INSTALL_REQUIRES_ipywidgets +dnl To be added when ready for editable: +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories diff --git a/pkgs/sagemath-mpmath/requirements.txt.m4 b/pkgs/sagemath-mpmath/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-mpmath/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-mpmath/sage b/pkgs/sagemath-mpmath/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-mpmath/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-mpmath/sage-cython-native-file.ini b/pkgs/sagemath-mpmath/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-mpmath/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-mpmath/setup.py b/pkgs/sagemath-mpmath/setup.py new file mode 100644 index 00000000000..6712cfc120f --- /dev/null +++ b/pkgs/sagemath-mpmath/setup.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-mpmath'], + recurse_packages=['sage.libs.mpmath._vendor*'], + package_data={'sage.libs.mpmath': ['*.pxd']}) diff --git a/pkgs/sagemath-mpmath/tox.ini b/pkgs/sagemath-mpmath/tox.ini new file mode 100644 index 00000000000..023443617a4 --- /dev/null +++ b/pkgs/sagemath-mpmath/tox.ini @@ -0,0 +1,117 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_mpmath-build-deps sagemath_repl && ./sage -sh -c '(cd pkgs/sagemath-mpmath && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-mpmath/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + +allowlist_externals = + bash + +commands = # Cannot be imported because of dependency on real_mpfr + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + # {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.cpython.builtin_types, sage.cpython.cython_metaclass, sage.cpython.debug, sage.structure.all, sage.libs.mpmath._vendor.mpmath' + + ## bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + ## && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_mpmath --baseline-stats-path={toxinidir}/known-test-failures.json --optional=sage --installed' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-mpmath/vendor.txt.m4 b/pkgs/sagemath-mpmath/vendor.txt.m4 new file mode 100644 index 00000000000..edcac2040ff --- /dev/null +++ b/pkgs/sagemath-mpmath/vendor.txt.m4 @@ -0,0 +1 @@ +mpmath ~= 1.3.0 diff --git a/pkgs/sagemath-ntl/MANIFEST.in b/pkgs/sagemath-ntl/MANIFEST.in new file mode 100644 index 00000000000..1a3ef5ff82f --- /dev/null +++ b/pkgs/sagemath-ntl/MANIFEST.in @@ -0,0 +1,48 @@ +prune sage + +include VERSION.txt + +graft sage/libs/ntl + +include sage/rings/bernoulli_mod_p.p* +include sage/rings/finite_rings/*_ntl_*.p* + +include sage/rings/padics/padic_ext_element.p* +include sage/rings/padics/pow_computer_ext.p* +include sage/rings/padics/padic_ZZ_pX_*.p* + +include sage/rings/polynomial/*_ntl.p* +include sage/rings/polynomial/polynomial_zz_pex.p* +include sage/rings/polynomial/polynomial_template*.pxi +#include sage/rings/polynomial/polynomial_gf2x.p* # inexplicably also needs m4ri; -> sagemath-linbox (or could go in a distribution 'sagemath-gf2x' with dep on sagemath-ntl, sagemath-m4ri) + +include sage/rings/bernmm.p* # dep of sage.rings.bernoulli_mod_p + +include sage/libs/mpfi/*.pxd # FIXME - shipped by sagemath-flint +include sage/rings/real_mpfi.pxd +include sage/matrix/matrix_modn_*.pxd # FIXME - shipped by sagemath-linbox +include sage/matrix/matrix_modn_*.pxi +include sage/rings/padics/*.pxd +include sage/rings/padics/*.pxi # FIXME +exclude sage/rings/padics/*flint*.p* +exclude sage/rings/padics/local_generic_element.p* + +include sage/schemes/hyperelliptic_curves/hypellfrob.p* + +global-exclude *.c +global-exclude *.cpp + +graft sage/rings/bernmm +graft sage/schemes/hyperelliptic_curves/hypellfrob + +global-exclude all__sagemath_*.py +global-include all__sagemath_ntl.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-ntl/README.rst b/pkgs/sagemath-ntl/README.rst new file mode 100644 index 00000000000..1d441401614 --- /dev/null +++ b/pkgs/sagemath-ntl/README.rst @@ -0,0 +1,29 @@ +============================================================================== + Sage: Open Source Mathematics Software: Computational Number Theory with NTL +============================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-ntl`` is a small +distribution that provides modules that depend on NTL. diff --git a/pkgs/sagemath-ntl/VERSION.txt b/pkgs/sagemath-ntl/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-ntl/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-ntl/meson.build b/pkgs/sagemath-ntl/meson.build new file mode 100644 index 00000000000..751f20e27f8 --- /dev/null +++ b/pkgs/sagemath-ntl/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-ntl', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_ntl', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-ntl/pyproject.toml.m4 b/pkgs/sagemath-ntl/pyproject.toml.m4 new file mode 100644 index 00000000000..fd15f74328d --- /dev/null +++ b/pkgs/sagemath-ntl/pyproject.toml.m4 @@ -0,0 +1,63 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_pari + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_pkgconfig +] +build-backend = "mesonpy" + +[project] +name = "sagemath-ntl" +description = "Sage: Open Source Mathematics Software: Computational Number Theory with NTL" +dependencies = [ + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_pari +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[tool.setuptools] +packages = ["sage.libs.ntl"] +include-package-data = false + +[tool.setuptools.package-data] +"sage.libs.ntl" = ["*.h"] + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", + "pkg:generic/ntl", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-ntl/requirements-editable.txt.m4 b/pkgs/sagemath-ntl/requirements-editable.txt.m4 new file mode 100644 index 00000000000..227c4e346fe --- /dev/null +++ b/pkgs/sagemath-ntl/requirements-editable.txt.m4 @@ -0,0 +1,9 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cypari +SPKG_INSTALL_REQUIRES_cysignals +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-pari diff --git a/pkgs/sagemath-ntl/requirements.txt.m4 b/pkgs/sagemath-ntl/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-ntl/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-ntl/sage b/pkgs/sagemath-ntl/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-ntl/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-ntl/sage-cython-native-file.ini b/pkgs/sagemath-ntl/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-ntl/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-ntl/setup.py b/pkgs/sagemath-ntl/setup.py new file mode 100644 index 00000000000..fe9446750ed --- /dev/null +++ b/pkgs/sagemath-ntl/setup.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-ntl'], + package_data={'sage.libs.ntl': ['*.h', '*.pxi']}) diff --git a/pkgs/sagemath-ntl/tox.ini b/pkgs/sagemath-ntl/tox.ini new file mode 100644 index 00000000000..050452592bf --- /dev/null +++ b/pkgs/sagemath-ntl/tox.ini @@ -0,0 +1,117 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-ntl && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-ntl/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + # Importing sage.libs.gap.libgap does not work yet because of the runtime dep on 'sage.rings.polynomial' + # {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.gap.libgap' + + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-objects/MANIFEST.in b/pkgs/sagemath-objects/MANIFEST.in index c9b25189372..8df65d2eccb 100644 --- a/pkgs/sagemath-objects/MANIFEST.in +++ b/pkgs/sagemath-objects/MANIFEST.in @@ -32,6 +32,7 @@ include sage/misc/classcall_metaclass.* include sage/misc/inherit_comparison*.* include sage/misc/weak_dict.* include sage/misc/nested_class*.* +include sage/misc/test_nested_class*.p* include sage/misc/abstract_method.* include sage/misc/cachefunc.* include sage/misc/decorators.* @@ -46,41 +47,55 @@ include sage/misc/constant_function.* include sage/misc/call.* include sage/misc/bindable_class.* include sage/misc/namespace_package.p* -include sage/misc/package_dir.py include sage/misc/verbose.* include sage/misc/repr.* include sage/misc/superseded.* include sage/misc/misc_c.* # prod include sage/misc/flatten.* # dep of sage/categories/coxeter_groups.py - +include sage/misc/lazy_list.p* include sage/misc/lazy_import*.* include sage/misc/sageinspect.* # dep of sage/misc/lazy_import include sage/misc/instancedoc.* # dep of sage/misc/lazy_import include sage/misc/persist.* include sage/misc/sage_unittest.* # dep of sage/misc/persist +include sage/misc/fpickle.p* include sage/misc/randstate.* # used in sage.doctest include sage/misc/prandom.* # dep of sage/rings/ring include sage/ext/stdsage.pxd +include sage/ext/mod_int.* +include sage/ext/cplusplus.pxd include sage/sets/pythonclass.* include sage/arith/power.* include sage/arith/numerical_approx.* # integers... include sage/arith/long.* include sage/rings/integer_fake.* -graft sage/libs/gmp +# coerce actions needs is_Group +include sage/groups/group.* +include sage/groups/old.* +# needed for sage.structure.formal_sum +include sage/modules/module.p* + +graft sage/libs/gmp +include sage/libs/gmpxx.pxd ## What we do not want: # sage/misc/latex -- this should really go to another package -## FIXME: Needed for doctesting +## Needed for doctesting; we keep sagemath-repl pure Python include sage/misc/misc.* # some_tuples used in sage.misc.sage_unittest include sage/misc/timing.p* # walltime, cputime used in sage.doctest +include sage/misc/globals.p* +include sage/misc/sage_timeit*.p* +include sage/misc/session.p* +include sage/misc/reset.p* +include sage/misc/sage_ostools.p* global-exclude all__*.py global-include all__sagemath_objects.py diff --git a/pkgs/sagemath-objects/meson.build b/pkgs/sagemath-objects/meson.build new file mode 100644 index 00000000000..e654689fe13 --- /dev/null +++ b/pkgs/sagemath-objects/meson.build @@ -0,0 +1,23 @@ +project( + 'sagemath-objects', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_objects', true) + +interpreters = ['Element', 'Python'] # RDF uses gsl --> sagemath-modules + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-objects/pyproject.toml.m4 b/pkgs/sagemath-objects/pyproject.toml.m4 index 68cfbafe935..ab023403488 100644 --- a/pkgs/sagemath-objects/pyproject.toml.m4 +++ b/pkgs/sagemath-objects/pyproject.toml.m4 @@ -2,8 +2,7 @@ include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- [build-system] # Minimum requirements for the build system to execute. requires = [ - SPKG_INSTALL_REQUIRES_setuptools - SPKG_INSTALL_REQUIRES_wheel + SPKG_INSTALL_REQUIRES_meson_python SPKG_INSTALL_REQUIRES_sage_setup SPKG_INSTALL_REQUIRES_sagemath_environment SPKG_INSTALL_REQUIRES_cython @@ -11,7 +10,7 @@ requires = [ SPKG_INSTALL_REQUIRES_cysignals SPKG_INSTALL_REQUIRES_pkgconfig ] -build-backend = "setuptools.build_meta" +build-backend = "mesonpy" [project] name = "sagemath-objects" @@ -40,11 +39,15 @@ version = {file = ["VERSION.txt"]} [tool.setuptools.package-data] "sage.cpython" = [ + "pycore_long.h", "pyx_visit.h", "string_impl.h", "cython_metaclass.h", "python_debug.h", ] +"sage.ext" = [ + "mod_int.h", +] "sage.rings" = ["integer_fake.h"] [external] diff --git a/pkgs/sagemath-objects/requirements.txt.m4 b/pkgs/sagemath-objects/requirements.txt.m4 index 562b53896b6..9b0d4ee5bbf 100644 --- a/pkgs/sagemath-objects/requirements.txt.m4 +++ b/pkgs/sagemath-objects/requirements.txt.m4 @@ -2,3 +2,4 @@ cysignals==esyscmd(`printf $(sed "s/[.]p.*//;" ../cysignals/package-version.txt) Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') gmpy2==esyscmd(`printf $(sed "s/[.]p.*//;" ../gmpy2/package-version.txt)') ipython==esyscmd(`printf $(sed "s/[.]p.*//;" ../ipython/package-version.txt)') +memory_allocator==esyscmd(`printf $(sed "s/[.]p.*//;" ../memory_allocator/package-version.txt)') diff --git a/pkgs/sagemath-objects/sage-cython-native-file.ini b/pkgs/sagemath-objects/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-objects/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-objects/setup.py b/pkgs/sagemath-objects/setup.py index ad114fa0de1..0e84bfae3fb 100644 --- a/pkgs/sagemath-objects/setup.py +++ b/pkgs/sagemath-objects/setup.py @@ -1,45 +1,7 @@ #!/usr/bin/env python -from distutils import log -from setuptools import setup +from sage_setup import sage_setup -# Work around a Cython problem in Python 3.8.x on macOS -# https://github.com/cython/cython/issues/3262 -import os -if os.uname().sysname == 'Darwin': - import multiprocessing - multiprocessing.set_start_method('fork', force=True) - -# PEP 517 builds do not have . in sys.path -import sys -sys.path.insert(0, os.path.dirname(__file__)) - -from sage_setup.excepthook import excepthook -sys.excepthook = excepthook - -from sage_setup.setenv import setenv -setenv() - -import sage.env -sage.env.default_required_modules = sage.env.default_optional_modules = () - -from sage_setup.command.sage_build_cython import sage_build_cython -from sage_setup.command.sage_build_ext import sage_build_ext - -cmdclass = dict(build_cython=sage_build_cython, - build_ext=sage_build_ext) - -from sage_setup.find import find_python_sources -python_packages, python_modules, cython_modules = find_python_sources( - '.', ['sage']) # for now, we do the filtering using MANIFEST - -log.warn('python_packages = {0}'.format(python_packages)) -log.warn('python_modules = {0}'.format(python_modules)) -log.warn('cython_modules = {0}'.format(cython_modules)) - -setup( - cmdclass = cmdclass, - packages = python_packages, - py_modules = python_modules, - ext_modules = cython_modules, +sage_setup( + ['sagemath-objects'] ) diff --git a/pkgs/sagemath-pari/MANIFEST.in b/pkgs/sagemath-pari/MANIFEST.in new file mode 100644 index 00000000000..2d83c9b3f5b --- /dev/null +++ b/pkgs/sagemath-pari/MANIFEST.in @@ -0,0 +1,73 @@ +prune sage + +include VERSION.txt + +include sage/ext/memory.p* # only used by sage.libs.pari + +include sage/interfaces/gp.p* + +graft sage/libs/pari +exclude sage/libs/pari/convert_flint.p* +include sage/groups/pari_group.p* +include sage/rings/finite_rings/*pari*.p* # needs sage.rings.finite_rings.element_base +include sage/rings/factorint_pari.p* # needs sage.rings.integer +include sage/rings/power_series_pari.p* # needs sage.rings.power_series_ring_element, sage.rings.polynomial.polynomial_element +include sage/rings/pari_ring.p* + +# We could but don't currently include this +# -- rather we ship all of sage.rings.number_field in sagemath-ntl (which currently depends on sagemath-pari) +# include sage/rings/number_field/totallyreal*.p* # needs sage.rings.{integer,rational} + +# +# padics using PARI. +# +graft sage/rings/padics +graft sage/rings/polynomial/padics +graft sage/rings/valuation +include sage/rings/function_field/valuation.p* +include sage/libs/linkages/padics/*.pxi # FIXME? +include sage/rings/tate*.p* +# exclude what is shipped by sagemath-categories +exclude sage/rings/padics/padic_generic.p* +exclude sage/rings/padics/local_generic.p* +exclude sage/rings/padics/local_generic_element.p* +exclude sage/rings/padics/precision_error.p* +exclude sage/rings/padics/misc.p* +# exclude what is shipped by sagemath-ntl +exclude sage/rings/padics/padic_ext_element.p* +exclude sage/rings/padics/pow_computer_ext.p* +exclude sage/rings/padics/padic_ZZ_pX_*.p* +# exclude what is shipped by sagemath-flint +exclude sage/rings/padics/all.p* +exclude sage/rings/padics/*flint*.p* +exclude sage/rings/padics/padic_relaxed_*.p* + +# Parts of quadratic_forms excluded form sagemath-modules; +# lazy-imported and can only be tested with pari present +graft sage/quadratic_forms/genera +include sage/quadratic_forms/quadratic_form__automorphisms.p* +include sage/quadratic_forms/quadratic_form__genus.p* +include sage/quadratic_forms/quadratic_form__local_density_interfaces.p* +include sage/quadratic_forms/quadratic_form__local_normal_form.p* +include sage/quadratic_forms/quadratic_form__local_representation_conditions.p* +include sage/quadratic_forms/quadratic_form__mass*.p* +include sage/quadratic_forms/quadratic_form__siegel_product.p* +include sage/quadratic_forms/qfsolve.p* +include sage/quadratic_forms/special_values.p* + +global-exclude *.c +global-exclude *.cpp + +include sage/rings/padics/transcendantal.c # sic + +global-exclude all__sagemath*.* +global-include all__sagemath_pari.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-pari/README.rst b/pkgs/sagemath-pari/README.rst new file mode 100644 index 00000000000..e126e35018c --- /dev/null +++ b/pkgs/sagemath-pari/README.rst @@ -0,0 +1,30 @@ +================================================================================== + Sage: Open Source Mathematics Software: Computational Number Theory with PARI/GP +================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-pari`` is a small +distribution that provides modules that depend on the computer algebra +system PARI/GP. diff --git a/pkgs/sagemath-pari/VERSION.txt b/pkgs/sagemath-pari/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-pari/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-pari/known-test-failures.json b/pkgs/sagemath-pari/known-test-failures.json new file mode 100644 index 00000000000..46521f022c4 --- /dev/null +++ b/pkgs/sagemath-pari/known-test-failures.json @@ -0,0 +1,2291 @@ +{ + "sage.all__sagemath_pari": { + "ntests": 3 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 1042 + }, + "sage.arith.numerical_approx": { + "ntests": 1 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 72 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.categories.action": { + "ntests": 78 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "failed": true, + "ntests": 140 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 5 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 4 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 74 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 22 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 21 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "failed": true, + "ntests": 50 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "failed": true, + "ntests": 362 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 23 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "failed": true, + "ntests": 228 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.filtered_modules_with_basis": { + "ntests": 12 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 1 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_modules_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 25 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_cat": { + "ntests": 155 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 123 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 39 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 65 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 75 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 34 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "ntests": 51 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_posets": { + "ntests": 19 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "failed": true, + "ntests": 137 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 45 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 210 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 52 + }, + "sage.categories.map": { + "ntests": 353 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 120 + }, + "sage.categories.modules_with_basis": { + "ntests": 221 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 81 + }, + "sage.categories.morphism": { + "ntests": 104 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.posets": { + "ntests": 2 + }, + "sage.categories.primer": { + "ntests": 161 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 648 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 119 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.regular_crystals": { + "ntests": 3 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "failed": true, + "ntests": 141 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 112 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 412 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 57 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "failed": true, + "ntests": 10 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 10 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 32 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "ntests": 24 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 411 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.dlx": { + "ntests": 61 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 9 + }, + "sage.combinat.permutation": { + "ntests": 1213 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.data_structures.bitset": { + "ntests": 431 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 386 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 305 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 317 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.ext.memory": { + "ntests": 3 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 167 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 99 + }, + "sage.functions.bessel": { + "ntests": 160 + }, + "sage.functions.error": { + "ntests": 94 + }, + "sage.functions.exp_integral": { + "ntests": 156 + }, + "sage.functions.gamma": { + "ntests": 140 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "ntests": 77 + }, + "sage.functions.jacobi": { + "ntests": 38 + }, + "sage.functions.log": { + "ntests": 154 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "ntests": 229 + }, + "sage.functions.other": { + "ntests": 239 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "ntests": 55 + }, + "sage.functions.trig": { + "ntests": 126 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.groups.generic": { + "failed": true, + "ntests": 156 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.pari_group": { + "failed": true, + "ntests": 45 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.gp": { + "failed": true, + "ntests": 148 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 4 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.libs.pari.convert_gmp": { + "ntests": 16 + }, + "sage.libs.pari.convert_sage": { + "ntests": 84 + }, + "sage.libs.pari.convert_sage_complex_double": { + "ntests": 2 + }, + "sage.libs.pari.convert_sage_real_double": { + "ntests": 2 + }, + "sage.libs.pari.tests": { + "failed": true, + "ntests": 629 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3_controlled": { + "ntests": 150 + }, + "sage.misc.cachefunc": { + "ntests": 692 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 126 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 291 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 219 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 237 + }, + "sage.misc.lazy_string": { + "ntests": 137 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "failed": true, + "ntests": 134 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 38 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, + "sage.misc.sage_eval": { + "failed": true, + "ntests": 35 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 329 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 281 + }, + "sage.modules.module": { + "ntests": 37 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 22 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.parallel.decorate": { + "ntests": 90 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.quadratic_forms.genera.genus": { + "ntests": 2 + }, + "sage.quadratic_forms.quadratic_form__automorphisms": { + "ntests": 5 + }, + "sage.quadratic_forms.quadratic_form__mass__Conway_Sloane_masses": { + "ntests": 6 + }, + "sage.quadratic_forms.quadratic_form__mass__Siegel_densities": { + "ntests": 5 + }, + "sage.quadratic_forms.special_values": { + "ntests": 6 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 27 + }, + "sage.repl.display.formatter": { + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.algebraic_closure_finite_field": { + "failed": true, + "ntests": 213 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.continued_fraction": { + "ntests": 286 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.factorint": { + "ntests": 13 + }, + "sage.rings.factorint_pari": { + "ntests": 3 + }, + "sage.rings.fast_arith": { + "ntests": 20 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 43 + }, + "sage.rings.finite_rings.element_base": { + "failed": true, + "ntests": 202 + }, + "sage.rings.finite_rings.element_pari_ffelt": { + "failed": true, + "ntests": 260 + }, + "sage.rings.finite_rings.finite_field_base": { + "failed": true, + "ntests": 289 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "failed": true, + "ntests": 124 + }, + "sage.rings.finite_rings.finite_field_pari_ffelt": { + "failed": true, + "ntests": 41 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 38 + }, + "sage.rings.finite_rings.galois_group": { + "failed": true, + "ntests": 20 + }, + "sage.rings.finite_rings.hom_finite_field": { + "failed": true, + "ntests": 192 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 21 + }, + "sage.rings.finite_rings.homset": { + "failed": true, + "ntests": 67 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 575 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 262 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 132 + }, + "sage.rings.finite_rings.residue_field_pari_ffelt": { + "ntests": 11 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 240 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 271 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 83 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 163 + }, + "sage.rings.function_field.function_field_rational": { + "failed": true, + "ntests": 148 + }, + "sage.rings.function_field.ideal": { + "ntests": 113 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 150 + }, + "sage.rings.function_field.maps": { + "ntests": 59 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 20 + }, + "sage.rings.function_field.order_rational": { + "ntests": 82 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 22 + }, + "sage.rings.function_field.valuation": { + "failed": true, + "ntests": 271 + }, + "sage.rings.generic": { + "ntests": 69 + }, + "sage.rings.homset": { + "ntests": 44 + }, + "sage.rings.ideal": { + "ntests": 357 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1156 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 219 + }, + "sage.rings.laurent_series_ring": { + "ntests": 160 + }, + "sage.rings.laurent_series_ring_element": { + "ntests": 393 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 141 + }, + "sage.rings.morphism": { + "ntests": 549 + }, + "sage.rings.multi_power_series_ring": { + "failed": true, + "ntests": 230 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 437 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 4 + }, + "sage.rings.padics.CA_template.pxi": { + "ntests": 193 + }, + "sage.rings.padics.CR_template.pxi": { + "ntests": 314 + }, + "sage.rings.padics.FM_template.pxi": { + "ntests": 174 + }, + "sage.rings.padics.FP_template.pxi": { + "ntests": 240 + }, + "sage.rings.padics.eisenstein_extension_generic": { + "ntests": 41 + }, + "sage.rings.padics.factory": { + "failed": true, + "ntests": 408 + }, + "sage.rings.padics.generic_nodes": { + "ntests": 194 + }, + "sage.rings.padics.lattice_precision": { + "ntests": 456 + }, + "sage.rings.padics.local_generic": { + "ntests": 71 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_base_generic": { + "ntests": 44 + }, + "sage.rings.padics.padic_base_leaves": { + "ntests": 177 + }, + "sage.rings.padics.padic_capped_absolute_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_capped_relative_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_extension_leaves": { + "ntests": 72 + }, + "sage.rings.padics.padic_fixed_mod_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_floating_point_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_generic": { + "ntests": 50 + }, + "sage.rings.padics.padic_generic_element": { + "failed": true, + "ntests": 613 + }, + "sage.rings.padics.padic_lattice_element": { + "ntests": 269 + }, + "sage.rings.padics.padic_printing": { + "ntests": 108 + }, + "sage.rings.padics.padic_template_element.pxi": { + "failed": true, + "ntests": 117 + }, + "sage.rings.padics.padic_valuation": { + "ntests": 135 + }, + "sage.rings.padics.pow_computer": { + "ntests": 76 + }, + "sage.rings.padics.pow_computer_relative": { + "ntests": 3 + }, + "sage.rings.padics.tests": { + "ntests": 12 + }, + "sage.rings.padics.tutorial": { + "ntests": 45 + }, + "sage.rings.padics.unramified_extension_generic": { + "ntests": 29 + }, + "sage.rings.pari_ring": { + "ntests": 46 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 37 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 278 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 379 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "ntests": 83 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 5 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 477 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true, + "ntests": 271 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 79 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 226 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.padics.polynomial_padic": { + "ntests": 25 + }, + "sage.rings.polynomial.padics.polynomial_padic_capped_relative_dense": { + "ntests": 7 + }, + "sage.rings.polynomial.padics.polynomial_padic_flat": { + "ntests": 3 + }, + "sage.rings.polynomial.polydict": { + "ntests": 393 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 2118 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 199 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "failed": true, + "ntests": 322 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_ring": { + "failed": true, + "ntests": 456 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 30 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 52 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 319 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 37 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_pari": { + "failed": true, + "ntests": 173 + }, + "sage.rings.power_series_poly": { + "ntests": 260 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 482 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 198 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 196 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 529 + }, + "sage.rings.rational_field": { + "ntests": 198 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 354 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, + "sage.rings.ring": { + "failed": true, + "ntests": 345 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 120 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tate_algebra": { + "failed": true, + "ntests": 267 + }, + "sage.rings.tate_algebra_element": { + "failed": true, + "ntests": 671 + }, + "sage.rings.tate_algebra_ideal": { + "failed": true, + "ntests": 126 + }, + "sage.rings.tests": { + "ntests": 44 + }, + "sage.rings.valuation.augmented_valuation": { + "failed": true, + "ntests": 174 + }, + "sage.rings.valuation.developing_valuation": { + "ntests": 27 + }, + "sage.rings.valuation.gauss_valuation": { + "ntests": 92 + }, + "sage.rings.valuation.inductive_valuation": { + "ntests": 139 + }, + "sage.rings.valuation.limit_valuation": { + "ntests": 18 + }, + "sage.rings.valuation.mapped_valuation": { + "ntests": 22 + }, + "sage.rings.valuation.scaled_valuation": { + "ntests": 41 + }, + "sage.rings.valuation.trivial_valuation": { + "ntests": 53 + }, + "sage.rings.valuation.valuation": { + "ntests": 193 + }, + "sage.rings.valuation.valuation_space": { + "ntests": 200 + }, + "sage.rings.valuation.value_group": { + "ntests": 102 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 302 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "failed": true, + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 85 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 335 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 122 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 387 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 179 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 99 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 67 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 58 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 502 + }, + "sage.schemes.projective.projective_point": { + "ntests": 287 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 36 + }, + "sage.schemes.projective.projective_space": { + "ntests": 381 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 232 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 52 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "failed": true, + "ntests": 393 + }, + "sage.sets.set_from_iterator": { + "ntests": 150 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.structure.category_object": { + "ntests": 140 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 321 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "failed": true, + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 588 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 223 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 105 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.graphics_file": { + "ntests": 8 + }, + "sage.structure.indexed_generators": { + "ntests": 90 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 305 + }, + "sage.structure.parent_gens": { + "failed": true, + "ntests": 36 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 8 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 229 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 168 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "failed": true, + "ntests": 249 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 1 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 4 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-pari/meson.build b/pkgs/sagemath-pari/meson.build new file mode 100644 index 00000000000..9bca4e94180 --- /dev/null +++ b/pkgs/sagemath-pari/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-pari', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_pari', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-pari/pyproject.toml.m4 b/pkgs/sagemath-pari/pyproject.toml.m4 new file mode 100644 index 00000000000..a45efa969d7 --- /dev/null +++ b/pkgs/sagemath-pari/pyproject.toml.m4 @@ -0,0 +1,65 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_mpmath + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_pkgconfig +] +build-backend = "mesonpy" + +[project] +name = "sagemath-pari" +description = "Sage: Open Source Mathematics Software: Computational Number Theory with PARI/GP" +dependencies = [ + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [SPKG_INSTALL_REQUIRES_sagemath_repl] + +[tool.setuptools] +packages = ["sage.libs.pari"] +include-package-data = false + +[tool.setuptools.package-data] +"sage.libs.pari" = ["*.pxd"] + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", + "pkg:generic/pari", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-pari/requirements-editable.txt.m4 b/pkgs/sagemath-pari/requirements-editable.txt.m4 new file mode 100644 index 00000000000..9a0e9e08725 --- /dev/null +++ b/pkgs/sagemath-pari/requirements-editable.txt.m4 @@ -0,0 +1,10 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cypari +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_pplpy +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories diff --git a/pkgs/sagemath-pari/requirements.txt.m4 b/pkgs/sagemath-pari/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-pari/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-pari/sage b/pkgs/sagemath-pari/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-pari/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-pari/sage-cython-native-file.ini b/pkgs/sagemath-pari/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-pari/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-pari/setup.py b/pkgs/sagemath-pari/setup.py new file mode 100644 index 00000000000..2c5fcf8f37d --- /dev/null +++ b/pkgs/sagemath-pari/setup.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-pari'], + required_modules=('gsl',)) + diff --git a/pkgs/sagemath-pari/tox.ini b/pkgs/sagemath-pari/tox.ini new file mode 100644 index 00000000000..e504e01eea7 --- /dev/null +++ b/pkgs/sagemath-pari/tox.ini @@ -0,0 +1,118 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-pari && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-pari/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.pari.all' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_pari --probe all --baseline-stats-path=$KNOWN_TEST_FAILURES --installed' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-plot/MANIFEST.in.m4 b/pkgs/sagemath-plot/MANIFEST.in.m4 new file mode 100644 index 00000000000..8e898302c29 --- /dev/null +++ b/pkgs/sagemath-plot/MANIFEST.in.m4 @@ -0,0 +1,28 @@ +dnl MANIFEST.in is generated from this file by SAGE_ROOT/bootstrap via m4. +prune sage + +include VERSION.txt + +exclude *.m4 +include requirements.txt + +global-include all__sagemath_plot.py + +graft sage/plot + +include sage/interfaces/jmoldata.p* +include sage/interfaces/povray.p* +include sage/interfaces/tachyon.p* +include sage/interfaces/gnuplot.p* + +include sage/ext_data/graphs/graph_plot_js.html +graft sage/ext_data/threejs + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-plot/README.rst b/pkgs/sagemath-plot/README.rst new file mode 100644 index 00000000000..b77861ad4c0 --- /dev/null +++ b/pkgs/sagemath-plot/README.rst @@ -0,0 +1,54 @@ +=============================================================================================== + Sage: Open Source Mathematics Software: Plotting and graphics with Matplotlib, Three.JS, etc. +=============================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via Sage-the-distribution (https://www.sagemath.org/download-source.html). Sage-the-distribution first builds a large number of open source packages from source (unless it finds suitable versions installed in the system) and then installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this experimental pip-installable source distribution +----------------------------------------------------------- + +This pip-installable source distribution `sagemath-plot` is an experimental distribution of a part of the Sage Library. Use at your own risk. It provides a small subset of the modules of the Sage library ("sagelib", `sagemath-standard`). + +This distribution provides the namespace packages `sage.plot` and `sage.plot.plot3d`, which provide functions for plotting that are very similar to Mathematica's plotting functions. This is analogous to how matplotlib's `pyplot` package provides a UI on top of the core `matplotlib` library that is similar to matlab's plotting UI. + +What is included +---------------- + +* `2D Graphics `_ + +* Backend for 2D graphics: `matplotlib `_ + +* `3D Graphics `_ + +* Backend for 3D graphics: `three.js `_ + +* Interfaces: `Gnuplot `_, `Jmol `_, `POV-Ray `_, `Tachyon `_ + + +Available as extras, from other distributions +--------------------------------------------- + +`pip install "sagemath-plot[jsmol]"` + Alternative backend for 3D graphics: `jupyter-jsmol `_ + +`pip install "sagemath-plot[polyhedra]"` + Polyhedra in arbitrary dimension, plotting in dimensions 2, 3, 4: `sagemath-polyhedra `_ + +`pip install "sagemath-plot[graphs]"` + Graphs and networks: `sagemath-graphs `_ + +`pip install "sagemath-plot[symbolics]"` + Defining and plotting symbolic functions and manifolds: `sagemath-symbolics `_ diff --git a/pkgs/sagemath-plot/VERSION.txt b/pkgs/sagemath-plot/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-plot/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-plot/known-test-failures.json b/pkgs/sagemath-plot/known-test-failures.json new file mode 100644 index 00000000000..1865b003470 --- /dev/null +++ b/pkgs/sagemath-plot/known-test-failures.json @@ -0,0 +1,2838 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 585 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 152 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 92 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 46 + }, + "sage.algebras.octonion_algebra": { + "ntests": 217 + }, + "sage.algebras.orlik_solomon": { + "ntests": 66 + }, + "sage.algebras.orlik_terao": { + "failed": true, + "ntests": 78 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.all__sagemath_plot": { + "ntests": 2 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 36 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 695 + }, + "sage.arith.numerical_approx": { + "ntests": 3 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 53 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.transforms.dft": { + "ntests": 102 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "failed": true, + "ntests": 74 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 153 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 6 + }, + "sage.categories.algebra_ideals": { + "ntests": 6 + }, + "sage.categories.algebra_modules": { + "ntests": 8 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 8 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 413 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 18 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 5 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 17 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 8 + }, + "sage.categories.commutative_algebras": { + "ntests": 10 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 6 + }, + "sage.categories.commutative_rings": { + "ntests": 21 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 8 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 12 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_groups": { + "ntests": 184 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 31 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 12 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 6 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 78 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 25 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 24 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 14 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 96 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 80 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 22 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 2 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 15 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 25 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 87 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 115 + }, + "sage.categories.finite_fields": { + "ntests": 12 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 7 + }, + "sage.categories.finite_monoids": { + "ntests": 18 + }, + "sage.categories.finite_semigroups": { + "ntests": 11 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 1 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 8 + }, + "sage.categories.functor": { + "ntests": 128 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 6 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 2 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 13 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 8 + }, + "sage.categories.groups": { + "ntests": 21 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 14 + }, + "sage.categories.homset": { + "ntests": 187 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 11 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 7 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 18 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 3 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 7 + }, + "sage.categories.lattice_posets": { + "ntests": 6 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 51 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 7 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 9 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.magmas": { + "ntests": 136 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 12 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 360 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 40 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 133 + }, + "sage.categories.modules_with_basis": { + "ntests": 403 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 56 + }, + "sage.categories.morphism": { + "ntests": 91 + }, + "sage.categories.number_fields": { + "ntests": 17 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 3 + }, + "sage.categories.poor_man_map": { + "ntests": 58 + }, + "sage.categories.primer": { + "ntests": 134 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 10 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 668 + }, + "sage.categories.quantum_group_representations": { + "ntests": 10 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 59 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 16 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "ntests": 140 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 70 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 9 + }, + "sage.categories.sets_cat": { + "ntests": 383 + }, + "sage.categories.sets_with_grading": { + "ntests": 20 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 11 + }, + "sage.categories.simplicial_sets": { + "ntests": 8 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 6 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 3 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 2 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 38 + }, + "sage.categories.unital_algebras": { + "ntests": 24 + }, + "sage.categories.vector_spaces": { + "ntests": 42 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 16 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.source_coding.huffman": { + "ntests": 59 + }, + "sage.combinat.backtrack": { + "ntests": 27 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.combinat": { + "ntests": 329 + }, + "sage.combinat.combinat_cython": { + "ntests": 21 + }, + "sage.combinat.combination": { + "ntests": 90 + }, + "sage.combinat.combinatorial_map": { + "ntests": 73 + }, + "sage.combinat.composition": { + "ntests": 268 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.free_module": { + "ntests": 356 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 303 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 227 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 238 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.permutation": { + "ntests": 1014 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 19 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 326 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 75 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 246 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "failed": true, + "ntests": 286 + }, + "sage.combinat.root_system.root_space": { + "ntests": 48 + }, + "sage.combinat.root_system.root_system": { + "ntests": 94 + }, + "sage.combinat.root_system.type_A": { + "ntests": 43 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 25 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 35 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 28 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 35 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_D": { + "ntests": 33 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 16 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 17 + }, + "sage.combinat.root_system.type_F": { + "ntests": 34 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 16 + }, + "sage.combinat.root_system.type_G": { + "ntests": 30 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 16 + }, + "sage.combinat.root_system.type_H": { + "ntests": 15 + }, + "sage.combinat.root_system.type_I": { + "ntests": 17 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 47 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 123 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 29 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 97 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 70 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 107 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 113 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 88 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 64 + }, + "sage.combinat.subset": { + "ntests": 278 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 10 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 30 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.debug": { + "ntests": 13 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 63 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 11 + }, + "sage.crypto.boolean_function": { + "ntests": 172 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 12 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 29 + }, + "sage.data_structures.bitset": { + "ntests": 419 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.external": { + "ntests": 40 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 401 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 300 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 376 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 138 + }, + "sage.env": { + "ntests": 35 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 237 + }, + "sage.ext.fast_eval": { + "ntests": 1 + }, + "sage.features": { + "ntests": 134 + }, + "sage.features.all": { + "failed": true, + "ntests": 15 + }, + "sage.features.bliss": { + "ntests": 6 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 4 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "ntests": 21 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 5 + }, + "sage.features.gap": { + "ntests": 5 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 12 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 3 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 21 + }, + "sage.features.kenzo": { + "ntests": 4 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 7 + }, + "sage.features.lrs": { + "ntests": 11 + }, + "sage.features.mcqd": { + "ntests": 3 + }, + "sage.features.meataxe": { + "ntests": 3 + }, + "sage.features.mip_backends": { + "ntests": 5 + }, + "sage.features.msolve": { + "ntests": 4 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 3 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 3 + }, + "sage.features.pkg_systems": { + "ntests": 23 + }, + "sage.features.polymake": { + "ntests": 3 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 21 + }, + "sage.features.sagemath": { + "ntests": 125 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 3 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 30 + }, + "sage.functions.bessel": { + "failed": true, + "ntests": 59 + }, + "sage.functions.error": { + "failed": true, + "ntests": 19 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 60 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 42 + }, + "sage.functions.generalized": { + "ntests": 14 + }, + "sage.functions.hyperbolic": { + "failed": true, + "ntests": 31 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 10 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 92 + }, + "sage.functions.log": { + "failed": true, + "ntests": 40 + }, + "sage.functions.min_max": { + "ntests": 3 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 109 + }, + "sage.functions.other": { + "failed": true, + "ntests": 89 + }, + "sage.functions.special": { + "failed": true, + "ntests": 29 + }, + "sage.functions.spike_function": { + "failed": true, + "ntests": 30 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 14 + }, + "sage.functions.trig": { + "failed": true, + "ntests": 43 + }, + "sage.functions.wigner": { + "ntests": 16 + }, + "sage.geometry.abc": { + "ntests": 8 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "failed": true, + "ntests": 80 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 225 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 19 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 43 + }, + "sage.groups.abelian_gps.values": { + "ntests": 59 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 75 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "ntests": 69 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 51 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 30 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 90 + }, + "sage.groups.galois_group": { + "ntests": 14 + }, + "sage.groups.generic": { + "ntests": 55 + }, + "sage.groups.group": { + "ntests": 41 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 44 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 13 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 22 + }, + "sage.groups.matrix_gps.matrix_group": { + "ntests": 36 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 15 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 40 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 23 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 6 + }, + "sage.groups.old": { + "ntests": 33 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 240 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 78 + }, + "sage.homology.homology_group": { + "ntests": 17 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.gnuplot": { + "ntests": 1 + }, + "sage.interfaces.jmoldata": { + "ntests": 21 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 7 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.interfaces.tachyon": { + "failed": true, + "ntests": 23 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 36 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.matrix.action": { + "ntests": 104 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 132 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 6 + }, + "sage.matrix.constructor": { + "failed": true, + "ntests": 148 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 9 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 744 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 379 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 1729 + }, + "sage.matrix.matrix_cdv": { + "ntests": 3 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 4 + }, + "sage.matrix.matrix_dense": { + "ntests": 33 + }, + "sage.matrix.matrix_double_dense": { + "failed": true, + "ntests": 449 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 24 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 90 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 61 + }, + "sage.matrix.matrix_numpy_integer_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_polynomial_dense": { + "failed": true, + "ntests": 410 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 13 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 362 + }, + "sage.matrix.matrix_sparse": { + "ntests": 157 + }, + "sage.matrix.misc_mpfr": { + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 60 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 413 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 13 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 183 + }, + "sage.matroids.basis_matroid": { + "ntests": 149 + }, + "sage.matroids.catalog": { + "ntests": 153 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 79 + }, + "sage.matroids.constructor": { + "ntests": 93 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 530 + }, + "sage.matroids.matroid": { + "ntests": 771 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 61 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 55 + }, + "sage.matroids.utilities": { + "ntests": 42 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 114 + }, + "sage.misc.cachefunc": { + "failed": true, + "ntests": 636 + }, + "sage.misc.call": { + "ntests": 24 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 75 + }, + "sage.misc.compat": { + "ntests": 1 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 127 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 19 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 51 + }, + "sage.misc.edit_module": { + "ntests": 15 + }, + "sage.misc.element_with_label": { + "ntests": 30 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 348 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 31 + }, + "sage.misc.functional": { + "ntests": 183 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "failed": true, + "ntests": 18 + }, + "sage.misc.instancedoc": { + "ntests": 63 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 224 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 196 + }, + "sage.misc.lazy_attribute": { + "ntests": 97 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 273 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 208 + }, + "sage.misc.lazy_string": { + "ntests": 129 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 132 + }, + "sage.misc.misc_c": { + "ntests": 120 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 66 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 61 + }, + "sage.misc.package_dir": { + "ntests": 33 + }, + "sage.misc.parser": { + "ntests": 103 + }, + "sage.misc.persist": { + "failed": true, + "ntests": 135 + }, + "sage.misc.prandom": { + "ntests": 70 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 27 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 24 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 11 + }, + "sage.misc.sage_eval": { + "ntests": 28 + }, + "sage.misc.sage_input": { + "ntests": 727 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 34 + }, + "sage.misc.sage_timeit_class": { + "ntests": 5 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 90 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 291 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 51 + }, + "sage.misc.table": { + "ntests": 58 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 25 + }, + "sage.misc.trace": { + "ntests": 4 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 247 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 420 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 157 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1425 + }, + "sage.modules.free_module_element": { + "ntests": 769 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 77 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 150 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 304 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 90 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 394 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 41 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "ntests": 120 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 75 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 141 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 42 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 11 + }, + "sage.modules.vector_double_dense": { + "failed": true, + "ntests": 96 + }, + "sage.modules.vector_integer_dense": { + "ntests": 43 + }, + "sage.modules.vector_modn_dense": { + "ntests": 52 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 41 + }, + "sage.modules.vector_numpy_integer_dense": { + "ntests": 5 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 12 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "ntests": 138 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 142 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.gauss_legendre": { + "ntests": 47 + }, + "sage.numerical.optimize": { + "failed": true, + "ntests": 52 + }, + "sage.parallel.decorate": { + "ntests": 79 + }, + "sage.parallel.map_reduce": { + "ntests": 289 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.plot.arc": { + "ntests": 44 + }, + "sage.plot.arrow": { + "ntests": 61 + }, + "sage.plot.bar_chart": { + "ntests": 22 + }, + "sage.plot.bezier_path": { + "ntests": 38 + }, + "sage.plot.circle": { + "ntests": 56 + }, + "sage.plot.colors": { + "failed": true, + "ntests": 246 + }, + "sage.plot.complex_plot": { + "ntests": 66 + }, + "sage.plot.disk": { + "ntests": 63 + }, + "sage.plot.ellipse": { + "ntests": 38 + }, + "sage.plot.graphics": { + "ntests": 190 + }, + "sage.plot.histogram": { + "failed": true, + "ntests": 39 + }, + "sage.plot.line": { + "ntests": 65 + }, + "sage.plot.matrix_plot": { + "ntests": 61 + }, + "sage.plot.plot3d.base": { + "failed": true, + "ntests": 0 + }, + "sage.plot.plot3d.index_face_set": { + "ntests": 149 + }, + "sage.plot.plot3d.list_plot3d": { + "ntests": 47 + }, + "sage.plot.plot3d.platonic": { + "ntests": 53 + }, + "sage.plot.plot3d.shapes": { + "ntests": 179 + }, + "sage.plot.plot3d.shapes2": { + "ntests": 137 + }, + "sage.plot.plot3d.tachyon": { + "ntests": 365 + }, + "sage.plot.plot3d.texture": { + "ntests": 65 + }, + "sage.plot.plot3d.transform": { + "failed": true, + "ntests": 10 + }, + "sage.plot.plot3d.tri_plot": { + "ntests": 70 + }, + "sage.plot.point": { + "ntests": 76 + }, + "sage.plot.polygon": { + "ntests": 54 + }, + "sage.plot.primitive": { + "ntests": 44 + }, + "sage.plot.scatter_plot": { + "ntests": 19 + }, + "sage.plot.text": { + "ntests": 55 + }, + "sage.probability.probability_distribution": { + "failed": true, + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 17 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 240 + }, + "sage.quadratic_forms.constructions": { + "ntests": 4 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 16 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 176 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 38 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 132 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "failed": true, + "ntests": 96 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "ntests": 25 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 17 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 58 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.ternary": { + "ntests": 91 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 284 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 52 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.image": { + "ntests": 42 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 11 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 109 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "ntests": 38 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 94 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 20 + }, + "sage.repl.load": { + "failed": true, + "ntests": 41 + }, + "sage.repl.preparse": { + "ntests": 343 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 50 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "failed": true, + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "failed": true, + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 46 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 25 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 51 + }, + "sage.rings.big_oh": { + "ntests": 12 + }, + "sage.rings.complex_conversion": { + "ntests": 3 + }, + "sage.rings.complex_double": { + "failed": true, + "ntests": 275 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 395 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 440 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 164 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 21 + }, + "sage.rings.derivation": { + "ntests": 380 + }, + "sage.rings.factorint": { + "ntests": 8 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 20 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 26 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 10 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 483 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 205 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 12 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 223 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 246 + }, + "sage.rings.function_field.constructor": { + "ntests": 26 + }, + "sage.rings.function_field.derivations": { + "ntests": 14 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 51 + }, + "sage.rings.function_field.element": { + "ntests": 80 + }, + "sage.rings.function_field.element_rational": { + "ntests": 62 + }, + "sage.rings.function_field.extensions": { + "ntests": 1 + }, + "sage.rings.function_field.function_field": { + "ntests": 75 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 104 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 77 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 76 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 26 + }, + "sage.rings.function_field.order_basis": { + "ntests": 35 + }, + "sage.rings.function_field.order_rational": { + "ntests": 60 + }, + "sage.rings.function_field.place": { + "ntests": 16 + }, + "sage.rings.generic": { + "ntests": 47 + }, + "sage.rings.homset": { + "ntests": 26 + }, + "sage.rings.ideal": { + "ntests": 292 + }, + "sage.rings.ideal_monoid": { + "ntests": 16 + }, + "sage.rings.infinity": { + "ntests": 268 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 993 + }, + "sage.rings.integer_ring": { + "ntests": 189 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 879 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 58 + }, + "sage.rings.laurent_series_ring": { + "ntests": 138 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 370 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 91 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 338 + }, + "sage.rings.multi_power_series_ring": { + "ntests": 207 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 412 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 2 + }, + "sage.rings.padics.misc": { + "ntests": 21 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 22 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.ideal": { + "ntests": 9 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 277 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 270 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 382 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 321 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 151 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 82 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 436 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "ntests": 173 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 143 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 218 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 63 + }, + "sage.rings.polynomial.ore_function_element": { + "ntests": 39 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 52 + }, + "sage.rings.polynomial.polydict": { + "ntests": 378 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1678 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 177 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 119 + }, + "sage.rings.polynomial.polynomial_ring": { + "ntests": 309 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 101 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 20 + }, + "sage.rings.polynomial.term_order": { + "ntests": 240 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 25 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 41 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 19 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 256 + }, + "sage.rings.power_series_ring": { + "ntests": 227 + }, + "sage.rings.power_series_ring_element": { + "ntests": 455 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 57 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 183 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 152 + }, + "sage.rings.quotient_ring_element": { + "ntests": 25 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 501 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 161 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 338 + }, + "sage.rings.real_double_element_gsl": { + "failed": true, + "ntests": 122 + }, + "sage.rings.real_field": { + "ntests": 3 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 965 + }, + "sage.rings.ring": { + "ntests": 266 + }, + "sage.rings.ring_extension": { + "ntests": 88 + }, + "sage.rings.ring_extension_element": { + "ntests": 38 + }, + "sage.rings.ring_extension_morphism": { + "ntests": 27 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 12 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 26 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 42 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 258 + }, + "sage.schemes.affine.affine_point": { + "ntests": 56 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 25 + }, + "sage.schemes.affine.affine_space": { + "ntests": 147 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 60 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 273 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 59 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 36 + }, + "sage.schemes.generic.homset": { + "ntests": 105 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 387 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 156 + }, + "sage.schemes.generic.spec": { + "ntests": 29 + }, + "sage.schemes.product_projective.homset": { + "ntests": 17 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 93 + }, + "sage.schemes.product_projective.point": { + "ntests": 102 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 24 + }, + "sage.schemes.product_projective.space": { + "ntests": 143 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 44 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 36 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 401 + }, + "sage.schemes.projective.projective_point": { + "ntests": 229 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 27 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 335 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 182 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 38 + }, + "sage.sets.disjoint_set": { + "ntests": 235 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 47 + }, + "sage.sets.family": { + "ntests": 375 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 56 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 41 + }, + "sage.sets.positive_integers": { + "ntests": 13 + }, + "sage.sets.primes": { + "ntests": 32 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 337 + }, + "sage.sets.set": { + "ntests": 325 + }, + "sage.sets.set_from_iterator": { + "ntests": 140 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 67 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 47 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 74 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 22 + }, + "sage.stats.hmm.chmm": { + "failed": true, + "ntests": 120 + }, + "sage.stats.hmm.distributions": { + "ntests": 70 + }, + "sage.stats.hmm.hmm": { + "failed": true, + "ntests": 122 + }, + "sage.stats.hmm.util": { + "ntests": 16 + }, + "sage.stats.intlist": { + "ntests": 68 + }, + "sage.stats.time_series": { + "ntests": 310 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 146 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 327 + }, + "sage.structure.coerce_actions": { + "ntests": 117 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 83 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 605 + }, + "sage.structure.element.pxd": { + "ntests": 20 + }, + "sage.structure.element_wrapper": { + "ntests": 156 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 159 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 96 + }, + "sage.structure.formal_sum": { + "ntests": 65 + }, + "sage.structure.global_options": { + "ntests": 121 + }, + "sage.structure.indexed_generators": { + "ntests": 112 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 271 + }, + "sage.structure.parent_gens": { + "ntests": 29 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 6 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 49 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 23 + }, + "sage.structure.sage_object": { + "ntests": 73 + }, + "sage.structure.sequence": { + "ntests": 180 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 211 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 117 + }, + "sage.symbolic.symbols": { + "ntests": 1 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1006 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "ntests": 250 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 65 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.cmdline": { + "ntests": 149 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.numpy": { + "ntests": 6 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "ntests": 11 + }, + "sage.typeset.character_art": { + "ntests": 106 + }, + "sage.typeset.character_art_factory": { + "ntests": 36 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 10 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-plot/meson.build b/pkgs/sagemath-plot/meson.build new file mode 100644 index 00000000000..af898dc428b --- /dev/null +++ b/pkgs/sagemath-plot/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-plot', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_plot', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-plot/pyproject.toml.m4 b/pkgs/sagemath-plot/pyproject.toml.m4 new file mode 100644 index 00000000000..e3019063653 --- /dev/null +++ b/pkgs/sagemath-plot/pyproject.toml.m4 @@ -0,0 +1,74 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_numpy + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator +] +build-backend = "mesonpy" + +[project] +name = "sagemath-plot" +description = "Sage: Open Source Mathematics Software: Plotting and graphics with Matplotlib, Three.JS, etc." +dependencies = [ + SPKG_INSTALL_REQUIRES_sage_conf + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_numpy + SPKG_INSTALL_REQUIRES_scipy + SPKG_INSTALL_REQUIRES_pillow + SPKG_INSTALL_REQUIRES_matplotlib +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [SPKG_INSTALL_REQUIRES_sagemath_repl] + +# extras by libraries +jsmol = [SPKG_INSTALL_REQUIRES_jupyter_jsmol] +matplotlib = [] # no extra needed + +# extras by other features +graphs = [SPKG_INSTALL_REQUIRES_sagemath_graphs] +polyhedra = [SPKG_INSTALL_REQUIRES_sagemath_polyhedra] +symbolics = [SPKG_INSTALL_REQUIRES_sagemath_symbolics] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-plot/requirements-editable.txt.m4 b/pkgs/sagemath-plot/requirements-editable.txt.m4 new file mode 100644 index 00000000000..0b1693b8edc --- /dev/null +++ b/pkgs/sagemath-plot/requirements-editable.txt.m4 @@ -0,0 +1,13 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_numpy +SPKG_INSTALL_REQUIRES_scipy +SPKG_INSTALL_REQUIRES_pillow +SPKG_INSTALL_REQUIRES_matplotlib +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-modules +-e ../sagemath-repl diff --git a/pkgs/sagemath-plot/requirements.txt.m4 b/pkgs/sagemath-plot/requirements.txt.m4 new file mode 100644 index 00000000000..d145756dfd1 --- /dev/null +++ b/pkgs/sagemath-plot/requirements.txt.m4 @@ -0,0 +1,3 @@ +dnl Include all from sagemath-categories (via m4 include) +include(`../sagemath_categories/src/requirements.txt.m4') +pplpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)') diff --git a/pkgs/sagemath-plot/sage b/pkgs/sagemath-plot/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-plot/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-plot/sage-cython-native-file.ini b/pkgs/sagemath-plot/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-plot/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-plot/setup.py b/pkgs/sagemath-plot/setup.py new file mode 100644 index 00000000000..a3bab6b0b8a --- /dev/null +++ b/pkgs/sagemath-plot/setup.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-plot'], + required_modules=('gsl',)) + diff --git a/pkgs/sagemath-plot/tox.ini b/pkgs/sagemath-plot/tox.ini new file mode 100644 index 00000000000..14170c8d51c --- /dev/null +++ b/pkgs/sagemath-plot/tox.ini @@ -0,0 +1,103 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_polyhedra-build-deps && ./sage -sh -c '(cd pkgs/sagemath-polyhedra && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-polyhedra/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.all__sagemath_plot' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_plot --baseline-stats-path={toxinidir}/known-test-failures.json --installed' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython diff --git a/pkgs/sagemath-polyhedra/MANIFEST.in.m4 b/pkgs/sagemath-polyhedra/MANIFEST.in.m4 new file mode 100644 index 00000000000..3d7f52963ad --- /dev/null +++ b/pkgs/sagemath-polyhedra/MANIFEST.in.m4 @@ -0,0 +1,43 @@ +dnl MANIFEST.in is generated from this file by SAGE_ROOT/bootstrap via m4. +prune sage + +include VERSION.txt + +exclude *.m4 +include requirements.txt + +include sage/interfaces/latte.p* +include sage/interfaces/four_ti_2.p* + +graft sage/geometry +exclude sage/geometry/abc.p* # in sagemath-categories +exclude sage/geometry/toric_lattice*.p* # in sagemath-modules +exclude sage/geometry/all.py +prune sage/geometry/hyperbolic_space +prune sage/geometry/riemannian_manifolds +exclude sage/geometry/ribbon_graph.p* # depends on sage.groups.perm_gps +exclude sage/geometry/integral_points_integer_dense.pyx # depends on matrix_integer_dense (flint) + +graft sage/game_theory + +graft sage/numerical +exclude sage/numerical/backends/generic*backend.p* # sagemath-categories +exclude sage/numerical/gauss_legendre.p* # sagemath-modules +exclude sage/numerical/optimize.p* # sagemath-modules +exclude sage/numerical/backends/glpk*.p* # sagemath-glpk + +include sage/rings/groebner_fan.p* + +graft sage/schemes/toric + +global-exclude all__sagemath_*.py +global-include all__sagemath_polyhedra.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-polyhedra/README.rst b/pkgs/sagemath-polyhedra/README.rst new file mode 100644 index 00000000000..a3a11bf8792 --- /dev/null +++ b/pkgs/sagemath-polyhedra/README.rst @@ -0,0 +1,87 @@ +==================================================================================================================== + Sage: Open Source Mathematics Software: Convex polyhedra in arbitrary dimension, mixed integer linear optimization +==================================================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2020 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via Sage-the-distribution (https://www.sagemath.org/download-source.html). Sage-the-distribution first builds a large number of open source packages from source (unless it finds suitable versions installed in the system) and then installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this experimental pip-installable source distribution +----------------------------------------------------------- + +This pip-installable source distribution `sagemath-polyhedra` is an experimental distribution of a part of the Sage Library. Use at your own risk. It provides a small subset of the modules of the Sage library ("sagelib", `sagemath-standard`), sufficient for computations with convex polyhedra in arbitrary dimension (in exact rational arithmetic), and linear and mixed integer linear optimization (in floating point arithmetic). + + +What is included +---------------- + +* `Combinatorial and Discrete Geometry `_: Polyhedra, lattice polyhedra, lattice points in polyhedra, triangulations, fans, polyhedral complexes, hyperplane arrrangements + +* `Parma Polyhedra Library (PPL) backends for rational polyhedra `_, `lattice polygons `_, `lattice polytopes `_; via `pplpy `_ + +* `Python backend for polyhedra over general ordered fields `_ + +* `Linear, Mixed Integer Linear, and Semidefinite Optimization frontends `_ + +* `GNU Linear Programming Kit (GLPK) backend for large-scale linear and mixed integer linear optimization (floating point arithmetic) `_ + +* `Interactive Simplex Method `_ + + +Available as extras, from other distributions +--------------------------------------------- + +Additional features: + +`pip install "sagemath-polyhedra[graphs]"` + Face lattices, combinatorial polyhedra, graph-theoretic constructions + +`pip install "sagemath-polyhedra[groups]"` + Constructing symmetric polyhedra, computing automorphisms, lattice point counting modulo group actions + +`pip install "sagemath-polyhedra[toric]"` + `Toric Varieties `_ + +Other backends for polyhedral computations can be installed: + +`pip install "sagemath-polyhedra[normaliz]"` + `Normaliz `_, via `PyNormaliz `_ + +`pip install "sagemath-polyhedra[polymake]"` + `Polymake `_, via `JuPyMake `_ + +`sagemath-polyhedra` also provides integration with other packages for additional functionality: + +* `LattE integrale `_ +* `lrslib `_ + +Optional backends for optimization: + +`pip install "sagemath-polyhedra[cbc]"` + `COIN/OR CBC `_ Mixed Integer Linear Optimization solver, + via `sage_numerical_backends_coin `_ + +`pip install "sagemath-polyhedra[cplex]"` + CPLEX Mixed Integer Optimization solver (proprietary; requires licensed installation), + via `sage_numerical_backends_cplex `_ + +`pip install "sagemath-polyhedra[cvxpy]"` + `CVXPy `_ as middle-end for `various backends `_ + +`pip install "sagemath-polyhedra[gurobi]"` + Gurobi Mixed Integer Optimization solver (proprietary; requires licensed installation), via `sage_numerical_backends_gurobi `_ + +`pip install "sagemath-polyhedra[scip]"` + `SCIP `_ Mixed Integer Optimization solver, + via `PySCIPOpt `_ diff --git a/pkgs/sagemath-polyhedra/VERSION.txt b/pkgs/sagemath-polyhedra/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-polyhedra/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-polyhedra/known-test-failures--standard.json b/pkgs/sagemath-polyhedra/known-test-failures--standard.json new file mode 100644 index 00000000000..b1f26cc3eee --- /dev/null +++ b/pkgs/sagemath-polyhedra/known-test-failures--standard.json @@ -0,0 +1,5019 @@ +{ + "sage.algebras.clifford_algebra": { + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 153 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_ideal": { + "ntests": 36 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.group_algebra": { + "failed": true, + "ntests": 43 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "failed": true, + "ntests": 181 + }, + "sage.algebras.orlik_terao": { + "ntests": 183 + }, + "sage.algebras.weyl_algebra": { + "ntests": 4 + }, + "sage.all__sagemath_flint": { + "ntests": 5 + }, + "sage.all__sagemath_gap": { + "ntests": 2 + }, + "sage.all__sagemath_graphs": { + "ntests": 2 + }, + "sage.all__sagemath_groups": { + "ntests": 2 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.all__sagemath_pari": { + "ntests": 3 + }, + "sage.all__sagemath_plot": { + "ntests": 2 + }, + "sage.all__sagemath_polyhedra": { + "ntests": 3 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 1105 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 54 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 120 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "ntests": 77 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 161 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "failed": true, + "ntests": 154 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 23 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 3 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "failed": true, + "ntests": 438 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 89 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 35 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 28 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 21 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "failed": true, + "ntests": 67 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 141 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_groups": { + "ntests": 360 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "failed": true, + "ntests": 228 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.hopf_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_cat": { + "ntests": 155 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 137 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 90 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "failed": true, + "ntests": 205 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "failed": true, + "ntests": 45 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 131 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "failed": true, + "ntests": 19 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 39 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 48 + }, + "sage.categories.finite_permutation_groups": { + "failed": true, + "ntests": 30 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "failed": true, + "ntests": 137 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 9 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 50 + }, + "sage.categories.groupoid": { + "ntests": 9 + }, + "sage.categories.groups": { + "ntests": 74 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 274 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 19 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 43 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 9 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 108 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "failed": true, + "ntests": 159 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 423 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 145 + }, + "sage.categories.modules_with_basis": { + "failed": true, + "ntests": 490 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "failed": true, + "ntests": 98 + }, + "sage.categories.morphism": { + "ntests": 125 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 8 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.posets": { + "failed": true, + "ntests": 147 + }, + "sage.categories.primer": { + "ntests": 167 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 18 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 886 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 157 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "failed": true, + "ntests": 166 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 121 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "failed": true, + "ntests": 441 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 145 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 45 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.abstract_code": { + "ntests": 136 + }, + "sage.coding.bch_code": { + "failed": true, + "ntests": 82 + }, + "sage.coding.binary_code": { + "ntests": 367 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channel": { + "ntests": 116 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 45 + }, + "sage.coding.code_constructions": { + "failed": true, + "ntests": 148 + }, + "sage.coding.codecan.autgroup_can_label": { + "ntests": 82 + }, + "sage.coding.codecan.codecan": { + "ntests": 71 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "failed": true, + "ntests": 274 + }, + "sage.coding.databases": { + "ntests": 7 + }, + "sage.coding.decoder": { + "ntests": 62 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 57 + }, + "sage.coding.encoder": { + "ntests": 72 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.extended_code": { + "ntests": 81 + }, + "sage.coding.gabidulin_code": { + "failed": true, + "ntests": 235 + }, + "sage.coding.golay_code": { + "ntests": 48 + }, + "sage.coding.goppa_code": { + "ntests": 115 + }, + "sage.coding.grs_code": { + "failed": true, + "ntests": 530 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.interpolation": { + "failed": true, + "ntests": 47 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 19 + }, + "sage.coding.hamming_code": { + "ntests": 18 + }, + "sage.coding.information_set_decoder": { + "ntests": 172 + }, + "sage.coding.kasami_codes": { + "failed": true, + "ntests": 45 + }, + "sage.coding.linear_code": { + "failed": true, + "ntests": 404 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 249 + }, + "sage.coding.linear_rank_metric": { + "ntests": 138 + }, + "sage.coding.parity_check_code": { + "ntests": 48 + }, + "sage.coding.punctured_code": { + "ntests": 111 + }, + "sage.coding.reed_muller_code": { + "ntests": 168 + }, + "sage.coding.self_dual_codes": { + "ntests": 26 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.coding.subfield_subcode": { + "ntests": 65 + }, + "sage.coding.two_weight_db": { + "failed": true, + "ntests": 2 + }, + "sage.combinat.abstract_tree": { + "ntests": 422 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.binary_tree": { + "ntests": 719 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.cluster_algebra_quiver.cluster_seed": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.cluster_algebra_quiver.interact": { + "ntests": 2 + }, + "sage.combinat.cluster_algebra_quiver.mutation_class": { + "ntests": 66 + }, + "sage.combinat.cluster_algebra_quiver.mutation_type": { + "ntests": 73 + }, + "sage.combinat.cluster_algebra_quiver.quiver": { + "failed": true, + "ntests": 312 + }, + "sage.combinat.cluster_algebra_quiver.quiver_mutation_type": { + "ntests": 244 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 435 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.designs.bibd": { + "ntests": 127 + }, + "sage.combinat.designs.block_design": { + "failed": true, + "ntests": 83 + }, + "sage.combinat.designs.covering_design": { + "ntests": 46 + }, + "sage.combinat.designs.database": { + "failed": true, + "ntests": 365 + }, + "sage.combinat.designs.design_catalog": { + "ntests": 2 + }, + "sage.combinat.designs.designs_pyx": { + "failed": true, + "ntests": 69 + }, + "sage.combinat.designs.difference_family": { + "failed": true, + "ntests": 360 + }, + "sage.combinat.designs.difference_matrices": { + "ntests": 20 + }, + "sage.combinat.designs.evenly_distributed_sets": { + "ntests": 50 + }, + "sage.combinat.designs.ext_rep": { + "failed": true, + "ntests": 0 + }, + "sage.combinat.designs.gen_quadrangles_with_spread": { + "ntests": 51 + }, + "sage.combinat.designs.group_divisible_designs": { + "ntests": 24 + }, + "sage.combinat.designs.incidence_structures": { + "failed": true, + "ntests": 297 + }, + "sage.combinat.designs.latin_squares": { + "ntests": 36 + }, + "sage.combinat.designs.orthogonal_arrays_build_recursive": { + "failed": true, + "ntests": 61 + }, + "sage.combinat.designs.resolvable_bibd": { + "ntests": 22 + }, + "sage.combinat.designs.steiner_quadruple_systems": { + "ntests": 36 + }, + "sage.combinat.designs.subhypergraph_search": { + "ntests": 12 + }, + "sage.combinat.designs.twographs": { + "ntests": 33 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.finite_state_machine": { + "failed": true, + "ntests": 2076 + }, + "sage.combinat.finite_state_machine_generators": { + "ntests": 172 + }, + "sage.combinat.free_module": { + "ntests": 403 + }, + "sage.combinat.graph_path": { + "ntests": 95 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.interval_posets": { + "ntests": 562 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.ordered_tree": { + "ntests": 260 + }, + "sage.combinat.permutation": { + "failed": true, + "ntests": 1232 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.posets.cartesian_product": { + "ntests": 75 + }, + "sage.combinat.posets.elements": { + "ntests": 67 + }, + "sage.combinat.posets.hasse_cython": { + "ntests": 24 + }, + "sage.combinat.posets.hasse_cython_flint": { + "ntests": 14 + }, + "sage.combinat.posets.hasse_diagram": { + "ntests": 578 + }, + "sage.combinat.posets.incidence_algebras": { + "ntests": 165 + }, + "sage.combinat.posets.lattices": { + "failed": true, + "ntests": 623 + }, + "sage.combinat.posets.linear_extension_iterator": { + "ntests": 13 + }, + "sage.combinat.posets.linear_extensions": { + "ntests": 174 + }, + "sage.combinat.posets.mobile": { + "failed": true, + "ntests": 36 + }, + "sage.combinat.posets.moebius_algebra": { + "ntests": 118 + }, + "sage.combinat.posets.poset_examples": { + "ntests": 1 + }, + "sage.combinat.posets.posets": { + "failed": true, + "ntests": 1461 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 80 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_move_calculator": { + "ntests": 17 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.branching_rules": { + "ntests": 255 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 167 + }, + "sage.combinat.root_system.cartan_type": { + "ntests": 468 + }, + "sage.combinat.root_system.coxeter_group": { + "failed": true, + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_matrix": { + "ntests": 181 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 85 + }, + "sage.combinat.root_system.extended_affine_weyl_group": { + "ntests": 408 + }, + "sage.combinat.root_system.fundamental_group": { + "ntests": 155 + }, + "sage.combinat.root_system.hecke_algebra_representation": { + "failed": true, + "ntests": 292 + }, + "sage.combinat.root_system.integrable_representations": { + "ntests": 157 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "failed": true, + "ntests": 506 + }, + "sage.combinat.root_system.pieri_factors": { + "ntests": 225 + }, + "sage.combinat.root_system.reflection_group_c": { + "ntests": 51 + }, + "sage.combinat.root_system.reflection_group_element": { + "ntests": 101 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 311 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 610 + }, + "sage.combinat.root_system.root_space": { + "ntests": 82 + }, + "sage.combinat.root_system.root_system": { + "ntests": 130 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 26 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 52 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 23 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 72 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 38 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 214 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.root_system.weyl_characters": { + "failed": true, + "ntests": 273 + }, + "sage.combinat.root_system.weyl_group": { + "ntests": 251 + }, + "sage.combinat.rooted_tree": { + "ntests": 162 + }, + "sage.combinat.shard_order": { + "ntests": 40 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tamari_lattices": { + "ntests": 34 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.combinat.yang_baxter_graph": { + "ntests": 181 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.block_cipher.des": { + "ntests": 156 + }, + "sage.crypto.block_cipher.present": { + "ntests": 138 + }, + "sage.crypto.boolean_function": { + "ntests": 206 + }, + "sage.crypto.lattice": { + "ntests": 18 + }, + "sage.crypto.lfsr": { + "ntests": 29 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "failed": true, + "ntests": 362 + }, + "sage.crypto.mq.sr": { + "ntests": 355 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 6 + }, + "sage.crypto.sbox": { + "failed": true, + "ntests": 268 + }, + "sage.crypto.sboxes": { + "failed": true, + "ntests": 27 + }, + "sage.data_structures.bitset": { + "ntests": 431 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.bounded_integer_sequences": { + "ntests": 261 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.databases.knotinfo_db": { + "ntests": 100 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 314 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.ext.memory": { + "ntests": 3 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "failed": true, + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "failed": true, + "ntests": 190 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 91 + }, + "sage.functions.bessel": { + "ntests": 171 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 158 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 141 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 75 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 174 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 252 + }, + "sage.functions.other": { + "failed": true, + "ntests": 246 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 63 + }, + "sage.functions.trig": { + "ntests": 132 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.game_theory.catalog_normal_form_games": { + "failed": true, + "ntests": 0 + }, + "sage.game_theory.cooperative_game": { + "ntests": 101 + }, + "sage.game_theory.matching_game": { + "ntests": 304 + }, + "sage.game_theory.normal_form_game": { + "failed": true, + "ntests": 616 + }, + "sage.game_theory.parser": { + "ntests": 65 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.cone": { + "ntests": 1197 + }, + "sage.geometry.cone_catalog": { + "ntests": 79 + }, + "sage.geometry.convex_set": { + "ntests": 148 + }, + "sage.geometry.fan": { + "ntests": 2 + }, + "sage.geometry.fan_isomorphism": { + "ntests": 65 + }, + "sage.geometry.fan_morphism": { + "ntests": 302 + }, + "sage.geometry.hasse_diagram": { + "ntests": 5 + }, + "sage.geometry.hyperplane_arrangement.affine_subspace": { + "ntests": 93 + }, + "sage.geometry.hyperplane_arrangement.arrangement": { + "failed": true, + "ntests": 543 + }, + "sage.geometry.hyperplane_arrangement.hyperplane": { + "failed": true, + "ntests": 145 + }, + "sage.geometry.hyperplane_arrangement.library": { + "failed": true, + "ntests": 47 + }, + "sage.geometry.hyperplane_arrangement.plot": { + "failed": true, + "ntests": 59 + }, + "sage.geometry.integral_points.pxi": { + "ntests": 171 + }, + "sage.geometry.lattice_polytope": { + "failed": true, + "ntests": 654 + }, + "sage.geometry.linear_expression": { + "ntests": 165 + }, + "sage.geometry.newton_polygon": { + "ntests": 110 + }, + "sage.geometry.point_collection": { + "ntests": 111 + }, + "sage.geometry.polyhedral_complex": { + "ntests": 455 + }, + "sage.geometry.polyhedron.backend_cdd": { + "ntests": 33 + }, + "sage.geometry.polyhedron.backend_cdd_rdf": { + "ntests": 39 + }, + "sage.geometry.polyhedron.backend_field": { + "failed": true, + "ntests": 64 + }, + "sage.geometry.polyhedron.backend_normaliz": { + "ntests": 15 + }, + "sage.geometry.polyhedron.backend_number_field": { + "failed": true, + "ntests": 27 + }, + "sage.geometry.polyhedron.backend_polymake": { + "ntests": 73 + }, + "sage.geometry.polyhedron.backend_ppl": { + "ntests": 90 + }, + "sage.geometry.polyhedron.base": { + "failed": true, + "ntests": 177 + }, + "sage.geometry.polyhedron.base0": { + "failed": true, + "ntests": 212 + }, + "sage.geometry.polyhedron.base1": { + "ntests": 144 + }, + "sage.geometry.polyhedron.base2": { + "ntests": 96 + }, + "sage.geometry.polyhedron.base3": { + "ntests": 329 + }, + "sage.geometry.polyhedron.base4": { + "failed": true, + "ntests": 191 + }, + "sage.geometry.polyhedron.base5": { + "failed": true, + "ntests": 382 + }, + "sage.geometry.polyhedron.base6": { + "failed": true, + "ntests": 247 + }, + "sage.geometry.polyhedron.base7": { + "failed": true, + "ntests": 138 + }, + "sage.geometry.polyhedron.base_QQ": { + "ntests": 112 + }, + "sage.geometry.polyhedron.base_RDF": { + "ntests": 14 + }, + "sage.geometry.polyhedron.base_ZZ": { + "ntests": 90 + }, + "sage.geometry.polyhedron.base_mutable": { + "ntests": 57 + }, + "sage.geometry.polyhedron.base_number_field": { + "ntests": 8 + }, + "sage.geometry.polyhedron.cdd_file_format": { + "ntests": 10 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.base": { + "ntests": 603 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face": { + "ntests": 180 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.conversions": { + "ntests": 58 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.face_iterator": { + "ntests": 391 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.list_of_faces": { + "ntests": 67 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.polyhedron_face_lattice": { + "ntests": 52 + }, + "sage.geometry.polyhedron.constructor": { + "ntests": 109 + }, + "sage.geometry.polyhedron.double_description": { + "ntests": 116 + }, + "sage.geometry.polyhedron.double_description_inhomogeneous": { + "ntests": 72 + }, + "sage.geometry.polyhedron.face": { + "ntests": 159 + }, + "sage.geometry.polyhedron.lattice_euclidean_group_element": { + "ntests": 27 + }, + "sage.geometry.polyhedron.library": { + "failed": true, + "ntests": 321 + }, + "sage.geometry.polyhedron.misc": { + "ntests": 12 + }, + "sage.geometry.polyhedron.modules.formal_polyhedra_module": { + "ntests": 44 + }, + "sage.geometry.polyhedron.palp_database": { + "ntests": 64 + }, + "sage.geometry.polyhedron.parent": { + "failed": true, + "ntests": 200 + }, + "sage.geometry.polyhedron.plot": { + "failed": true, + "ntests": 247 + }, + "sage.geometry.polyhedron.ppl_lattice_polygon": { + "ntests": 81 + }, + "sage.geometry.polyhedron.ppl_lattice_polytope": { + "ntests": 176 + }, + "sage.geometry.polyhedron.representation": { + "ntests": 343 + }, + "sage.geometry.pseudolines": { + "ntests": 77 + }, + "sage.geometry.relative_interior": { + "ntests": 88 + }, + "sage.geometry.ribbon_graph": { + "ntests": 224 + }, + "sage.geometry.toric_lattice": { + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.geometry.toric_plotter": { + "failed": true, + "ntests": 100 + }, + "sage.geometry.triangulation.base": { + "ntests": 173 + }, + "sage.geometry.triangulation.element": { + "ntests": 116 + }, + "sage.geometry.triangulation.point_configuration": { + "ntests": 214 + }, + "sage.geometry.voronoi_diagram": { + "failed": true, + "ntests": 32 + }, + "sage.graphs.all": { + "ntests": 3 + }, + "sage.graphs.asteroidal_triples": { + "ntests": 13 + }, + "sage.graphs.base.boost_graph": { + "ntests": 204 + }, + "sage.graphs.base.c_graph": { + "ntests": 773 + }, + "sage.graphs.base.dense_graph": { + "ntests": 86 + }, + "sage.graphs.base.graph_backends": { + "ntests": 85 + }, + "sage.graphs.base.overview": { + "ntests": 1 + }, + "sage.graphs.base.sparse_graph": { + "ntests": 119 + }, + "sage.graphs.base.static_dense_graph": { + "ntests": 110 + }, + "sage.graphs.base.static_sparse_backend": { + "ntests": 181 + }, + "sage.graphs.base.static_sparse_graph": { + "failed": true, + "ntests": 66 + }, + "sage.graphs.bipartite_graph": { + "ntests": 424 + }, + "sage.graphs.centrality": { + "ntests": 31 + }, + "sage.graphs.chrompoly": { + "ntests": 41 + }, + "sage.graphs.cliquer": { + "ntests": 34 + }, + "sage.graphs.comparability": { + "ntests": 52 + }, + "sage.graphs.connectivity": { + "ntests": 523 + }, + "sage.graphs.convexity_properties": { + "ntests": 43 + }, + "sage.graphs.digraph": { + "failed": true, + "ntests": 549 + }, + "sage.graphs.digraph_generators": { + "ntests": 128 + }, + "sage.graphs.distances_all_pairs": { + "ntests": 165 + }, + "sage.graphs.domination": { + "ntests": 155 + }, + "sage.graphs.dot2tex_utils": { + "ntests": 6 + }, + "sage.graphs.edge_connectivity": { + "ntests": 101 + }, + "sage.graphs.generators.basic": { + "failed": true, + "ntests": 126 + }, + "sage.graphs.generators.chessboard": { + "failed": true, + "ntests": 42 + }, + "sage.graphs.generators.classical_geometries": { + "ntests": 105 + }, + "sage.graphs.generators.degree_sequence": { + "ntests": 13 + }, + "sage.graphs.generators.distance_regular": { + "failed": true, + "ntests": 165 + }, + "sage.graphs.generators.families": { + "failed": true, + "ntests": 405 + }, + "sage.graphs.generators.intersection": { + "ntests": 72 + }, + "sage.graphs.generators.platonic_solids": { + "ntests": 26 + }, + "sage.graphs.generators.random": { + "ntests": 162 + }, + "sage.graphs.generators.smallgraphs": { + "failed": true, + "ntests": 408 + }, + "sage.graphs.generators.world_map": { + "ntests": 20 + }, + "sage.graphs.generic_graph": { + "failed": true, + "ntests": 3800 + }, + "sage.graphs.generic_graph_pyx": { + "ntests": 139 + }, + "sage.graphs.genus": { + "ntests": 51 + }, + "sage.graphs.graph": { + "failed": true, + "ntests": 1275 + }, + "sage.graphs.graph_coloring": { + "ntests": 161 + }, + "sage.graphs.graph_database": { + "failed": true, + "ntests": 50 + }, + "sage.graphs.graph_decompositions.bandwidth": { + "ntests": 14 + }, + "sage.graphs.graph_decompositions.clique_separators": { + "ntests": 68 + }, + "sage.graphs.graph_decompositions.cutwidth": { + "ntests": 63 + }, + "sage.graphs.graph_decompositions.fast_digraph": { + "ntests": 11 + }, + "sage.graphs.graph_decompositions.graph_products": { + "ntests": 48 + }, + "sage.graphs.graph_decompositions.modular_decomposition": { + "ntests": 151 + }, + "sage.graphs.graph_decompositions.rankwidth": { + "ntests": 23 + }, + "sage.graphs.graph_decompositions.tree_decomposition": { + "ntests": 202 + }, + "sage.graphs.graph_decompositions.vertex_separation": { + "failed": true, + "ntests": 173 + }, + "sage.graphs.graph_editor": { + "ntests": 8 + }, + "sage.graphs.graph_generators": { + "ntests": 159 + }, + "sage.graphs.graph_generators_pyx": { + "failed": true, + "ntests": 7 + }, + "sage.graphs.graph_input": { + "ntests": 50 + }, + "sage.graphs.graph_latex": { + "ntests": 196 + }, + "sage.graphs.graph_list": { + "failed": true, + "ntests": 58 + }, + "sage.graphs.graph_plot": { + "ntests": 161 + }, + "sage.graphs.graph_plot_js": { + "failed": true, + "ntests": 9 + }, + "sage.graphs.hyperbolicity": { + "ntests": 68 + }, + "sage.graphs.hypergraph_generators": { + "ntests": 29 + }, + "sage.graphs.independent_sets": { + "failed": true, + "ntests": 56 + }, + "sage.graphs.isgci": { + "ntests": 84 + }, + "sage.graphs.isoperimetric_inequalities": { + "ntests": 25 + }, + "sage.graphs.line_graph": { + "ntests": 40 + }, + "sage.graphs.lovasz_theta": { + "ntests": 5 + }, + "sage.graphs.matchpoly": { + "failed": true, + "ntests": 57 + }, + "sage.graphs.orientations": { + "ntests": 28 + }, + "sage.graphs.partial_cube": { + "ntests": 14 + }, + "sage.graphs.path_enumeration": { + "ntests": 253 + }, + "sage.graphs.planarity": { + "ntests": 6 + }, + "sage.graphs.pq_trees": { + "ntests": 90 + }, + "sage.graphs.print_graphs": { + "ntests": 12 + }, + "sage.graphs.schnyder": { + "ntests": 103 + }, + "sage.graphs.spanning_tree": { + "ntests": 169 + }, + "sage.graphs.strongly_regular_db": { + "failed": true, + "ntests": 312 + }, + "sage.graphs.traversals": { + "ntests": 215 + }, + "sage.graphs.trees": { + "ntests": 25 + }, + "sage.graphs.tutte_polynomial": { + "ntests": 109 + }, + "sage.graphs.views": { + "ntests": 206 + }, + "sage.graphs.weakly_chordal": { + "ntests": 33 + }, + "sage.groups.abelian_gps.abelian_aut": { + "ntests": 123 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 339 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 29 + }, + "sage.groups.abelian_gps.abelian_group_gap": { + "ntests": 261 + }, + "sage.groups.abelian_gps.abelian_group_morphism": { + "ntests": 44 + }, + "sage.groups.abelian_gps.dual_abelian_group": { + "ntests": 96 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 38 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 62 + }, + "sage.groups.abelian_gps.values": { + "ntests": 72 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "failed": true, + "ntests": 106 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 65 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 34 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 101 + }, + "sage.groups.artin": { + "failed": true, + "ntests": 136 + }, + "sage.groups.braid": { + "failed": true, + "ntests": 517 + }, + "sage.groups.cactus_group": { + "ntests": 174 + }, + "sage.groups.class_function": { + "ntests": 311 + }, + "sage.groups.conjugacy_classes": { + "ntests": 135 + }, + "sage.groups.cubic_braid": { + "failed": true, + "ntests": 192 + }, + "sage.groups.finitely_presented": { + "ntests": 329 + }, + "sage.groups.finitely_presented_named": { + "ntests": 79 + }, + "sage.groups.fqf_orthogonal": { + "ntests": 116 + }, + "sage.groups.free_group": { + "ntests": 186 + }, + "sage.groups.galois_group": { + "failed": true, + "ntests": 90 + }, + "sage.groups.galois_group_perm": { + "failed": true, + "ntests": 31 + }, + "sage.groups.generic": { + "failed": true, + "ntests": 175 + }, + "sage.groups.group": { + "ntests": 48 + }, + "sage.groups.group_exp": { + "ntests": 72 + }, + "sage.groups.group_semidirect_product": { + "ntests": 82 + }, + "sage.groups.kernel_subgroup": { + "ntests": 55 + }, + "sage.groups.libgap_group": { + "ntests": 13 + }, + "sage.groups.libgap_mixin": { + "ntests": 180 + }, + "sage.groups.libgap_morphism": { + "ntests": 202 + }, + "sage.groups.libgap_wrapper": { + "ntests": 171 + }, + "sage.groups.lie_gps.nilpotent_lie_group": { + "failed": true, + "ntests": 186 + }, + "sage.groups.matrix_gps.binary_dihedral": { + "ntests": 8 + }, + "sage.groups.matrix_gps.coxeter_group": { + "failed": true, + "ntests": 119 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 72 + }, + "sage.groups.matrix_gps.finitely_generated_gap": { + "failed": true, + "ntests": 189 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 38 + }, + "sage.groups.matrix_gps.group_element_gap": { + "ntests": 80 + }, + "sage.groups.matrix_gps.heisenberg": { + "failed": true, + "ntests": 36 + }, + "sage.groups.matrix_gps.isometries": { + "ntests": 103 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 48 + }, + "sage.groups.matrix_gps.linear_gap": { + "ntests": 3 + }, + "sage.groups.matrix_gps.matrix_group": { + "failed": true, + "ntests": 74 + }, + "sage.groups.matrix_gps.matrix_group_gap": { + "failed": true, + "ntests": 57 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 31 + }, + "sage.groups.matrix_gps.named_group_gap": { + "ntests": 3 + }, + "sage.groups.matrix_gps.orthogonal": { + "failed": true, + "ntests": 71 + }, + "sage.groups.matrix_gps.orthogonal_gap": { + "ntests": 19 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 30 + }, + "sage.groups.matrix_gps.symplectic_gap": { + "ntests": 6 + }, + "sage.groups.matrix_gps.unitary": { + "failed": true, + "ntests": 58 + }, + "sage.groups.matrix_gps.unitary_gap": { + "ntests": 5 + }, + "sage.groups.misc_gps.argument_groups": { + "failed": true, + "ntests": 332 + }, + "sage.groups.misc_gps.imaginary_groups": { + "failed": true, + "ntests": 74 + }, + "sage.groups.old": { + "ntests": 38 + }, + "sage.groups.pari_group": { + "ntests": 45 + }, + "sage.groups.perm_gps.constructor": { + "ntests": 46 + }, + "sage.groups.perm_gps.cubegroup": { + "ntests": 137 + }, + "sage.groups.perm_gps.partn_ref.automorphism_group_canonical_label": { + "ntests": 32 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 38 + }, + "sage.groups.perm_gps.partn_ref.double_coset": { + "ntests": 15 + }, + "sage.groups.perm_gps.partn_ref.refinement_binary": { + "ntests": 75 + }, + "sage.groups.perm_gps.partn_ref.refinement_graphs": { + "ntests": 117 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.groups.perm_gps.partn_ref2.refinement_generic": { + "ntests": 39 + }, + "sage.groups.perm_gps.permgroup": { + "failed": true, + "ntests": 965 + }, + "sage.groups.perm_gps.permgroup_element": { + "ntests": 393 + }, + "sage.groups.perm_gps.permgroup_morphism": { + "failed": true, + "ntests": 90 + }, + "sage.groups.perm_gps.permgroup_named": { + "failed": true, + "ntests": 535 + }, + "sage.groups.perm_gps.symgp_conjugacy_class": { + "ntests": 47 + }, + "sage.groups.raag": { + "ntests": 179 + }, + "sage.groups.semimonomial_transformations.semimonomial_transformation": { + "failed": true, + "ntests": 57 + }, + "sage.groups.semimonomial_transformations.semimonomial_transformation_group": { + "failed": true, + "ntests": 62 + }, + "sage.homology.algebraic_topological_model": { + "ntests": 44 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 265 + }, + "sage.homology.chain_complex_homspace": { + "failed": true, + "ntests": 40 + }, + "sage.homology.chain_complex_morphism": { + "failed": true, + "ntests": 135 + }, + "sage.homology.chain_homotopy": { + "ntests": 96 + }, + "sage.homology.chains": { + "ntests": 136 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.homology_group": { + "ntests": 23 + }, + "sage.homology.homology_morphism": { + "failed": true, + "ntests": 100 + }, + "sage.homology.homology_vector_space_with_basis": { + "ntests": 193 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.four_ti_2": { + "ntests": 54 + }, + "sage.interfaces.gap": { + "failed": true, + "ntests": 215 + }, + "sage.interfaces.gap3": { + "ntests": 66 + }, + "sage.interfaces.gap_workspace": { + "failed": true, + "ntests": 14 + }, + "sage.interfaces.gnuplot": { + "ntests": 1 + }, + "sage.interfaces.gp": { + "failed": true, + "ntests": 148 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.jmoldata": { + "ntests": 22 + }, + "sage.interfaces.latte": { + "ntests": 65 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 1 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.interfaces.tachyon": { + "failed": true, + "ntests": 23 + }, + "sage.knots.gauss_code": { + "ntests": 18 + }, + "sage.knots.knot": { + "failed": true, + "ntests": 95 + }, + "sage.knots.knotinfo": { + "failed": true, + "ntests": 382 + }, + "sage.knots.link": { + "failed": true, + "ntests": 547 + }, + "sage.libs.arb.arb_version": { + "ntests": 2 + }, + "sage.libs.arb.arith": { + "ntests": 8 + }, + "sage.libs.flint.arith": { + "ntests": 44 + }, + "sage.libs.flint.flint": { + "ntests": 6 + }, + "sage.libs.flint.fmpz_poly": { + "ntests": 84 + }, + "sage.libs.flint.nmod_poly_linkage.pxi": { + "ntests": 196 + }, + "sage.libs.flint.qsieve": { + "ntests": 4 + }, + "sage.libs.flint.ulong_extras": { + "ntests": 3 + }, + "sage.libs.gap.context_managers": { + "ntests": 14 + }, + "sage.libs.gap.element": { + "failed": true, + "ntests": 507 + }, + "sage.libs.gap.libgap": { + "failed": true, + "ntests": 98 + }, + "sage.libs.gap.operations": { + "ntests": 15 + }, + "sage.libs.gap.saved_workspace": { + "ntests": 7 + }, + "sage.libs.gap.test": { + "ntests": 2 + }, + "sage.libs.gap.test_long": { + "ntests": 3 + }, + "sage.libs.gap.util": { + "ntests": 19 + }, + "sage.libs.glpk.error": { + "ntests": 12 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.libs.ntl.error": { + "ntests": 4 + }, + "sage.libs.ntl.ntl_GF2": { + "ntests": 50 + }, + "sage.libs.ntl.ntl_GF2E": { + "ntests": 70 + }, + "sage.libs.ntl.ntl_GF2EContext": { + "failed": true, + "ntests": 20 + }, + "sage.libs.ntl.ntl_GF2EX": { + "ntests": 31 + }, + "sage.libs.ntl.ntl_GF2X": { + "failed": true, + "ntests": 112 + }, + "sage.libs.ntl.ntl_GF2X_linkage.pxi": { + "ntests": 86 + }, + "sage.libs.ntl.ntl_ZZ": { + "ntests": 76 + }, + "sage.libs.ntl.ntl_ZZX": { + "ntests": 223 + }, + "sage.libs.ntl.ntl_ZZ_p": { + "ntests": 68 + }, + "sage.libs.ntl.ntl_ZZ_pContext": { + "ntests": 34 + }, + "sage.libs.ntl.ntl_ZZ_pE": { + "ntests": 27 + }, + "sage.libs.ntl.ntl_ZZ_pEContext": { + "ntests": 29 + }, + "sage.libs.ntl.ntl_ZZ_pEX": { + "ntests": 304 + }, + "sage.libs.ntl.ntl_ZZ_pEX_linkage.pxi": { + "ntests": 80 + }, + "sage.libs.ntl.ntl_ZZ_pX": { + "ntests": 264 + }, + "sage.libs.ntl.ntl_lzz_p": { + "ntests": 48 + }, + "sage.libs.ntl.ntl_lzz_pContext": { + "ntests": 21 + }, + "sage.libs.ntl.ntl_lzz_pX": { + "ntests": 142 + }, + "sage.libs.ntl.ntl_mat_GF2": { + "ntests": 107 + }, + "sage.libs.ntl.ntl_mat_GF2E": { + "ntests": 132 + }, + "sage.libs.ntl.ntl_mat_ZZ": { + "ntests": 119 + }, + "sage.libs.pari": { + "ntests": 33 + }, + "sage.libs.pari.convert_flint": { + "ntests": 2 + }, + "sage.libs.pari.convert_gmp": { + "ntests": 16 + }, + "sage.libs.pari.convert_sage": { + "ntests": 94 + }, + "sage.libs.pari.convert_sage_complex_double": { + "ntests": 22 + }, + "sage.libs.pari.convert_sage_matrix": { + "ntests": 19 + }, + "sage.libs.pari.convert_sage_real_double": { + "ntests": 2 + }, + "sage.libs.pari.convert_sage_real_mpfr": { + "ntests": 7 + }, + "sage.libs.pari.tests": { + "failed": true, + "ntests": 766 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 158 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.change_ring": { + "ntests": 4 + }, + "sage.matrix.compute_J_ideal": { + "ntests": 99 + }, + "sage.matrix.constructor": { + "failed": true, + "ntests": 152 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 862 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 456 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 2552 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_ball_dense": { + "ntests": 118 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 7 + }, + "sage.matrix.matrix_cyclo_dense": { + "failed": true, + "ntests": 236 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "ntests": 486 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 24 + }, + "sage.matrix.matrix_gap": { + "ntests": 120 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 57 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_gf2e_dense": { + "ntests": 385 + }, + "sage.matrix.matrix_integer_dense": { + "failed": true, + "ntests": 660 + }, + "sage.matrix.matrix_integer_dense_hnf": { + "ntests": 125 + }, + "sage.matrix.matrix_integer_dense_saturation": { + "ntests": 44 + }, + "sage.matrix.matrix_integer_sparse": { + "ntests": 152 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_mod2_dense": { + "ntests": 372 + }, + "sage.matrix.matrix_modn_dense_double": { + "ntests": 41 + }, + "sage.matrix.matrix_modn_dense_float": { + "ntests": 37 + }, + "sage.matrix.matrix_modn_dense_template.pxi": { + "ntests": 561 + }, + "sage.matrix.matrix_modn_sparse": { + "ntests": 143 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 64 + }, + "sage.matrix.matrix_numpy_integer_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_polynomial_dense": { + "ntests": 436 + }, + "sage.matrix.matrix_rational_dense": { + "failed": true, + "ntests": 330 + }, + "sage.matrix.matrix_rational_sparse": { + "ntests": 56 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 13 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 438 + }, + "sage.matrix.matrix_sparse": { + "ntests": 164 + }, + "sage.matrix.misc": { + "ntests": 22 + }, + "sage.matrix.misc_flint": { + "ntests": 5 + }, + "sage.matrix.misc_mpfr": { + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 185 + }, + "sage.matrix.special": { + "ntests": 480 + }, + "sage.matrix.strassen": { + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 187 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 141 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.graphic_matroid": { + "ntests": 358 + }, + "sage.matroids.lean_matrix": { + "ntests": 292 + }, + "sage.matroids.linear_matroid": { + "ntests": 658 + }, + "sage.matroids.matroid": { + "ntests": 877 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 73 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 64 + }, + "sage.matroids.utilities": { + "ntests": 69 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 204 + }, + "sage.misc.cachefunc": { + "ntests": 688 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 39 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 329 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "failed": true, + "ntests": 18 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "ntests": 243 + }, + "sage.misc.latex_macros": { + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 237 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 237 + }, + "sage.misc.lazy_string": { + "ntests": 137 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 149 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 64 + }, + "sage.misc.package_dir": { + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "failed": true, + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.randstate": { + "failed": true, + "ntests": 146 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 27 + }, + "sage.misc.sage_eval": { + "ntests": 43 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 281 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.diamond_cutting": { + "ntests": 19 + }, + "sage.modules.fg_pid.fgp_element": { + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "ntests": 437 + }, + "sage.modules.fg_pid.fgp_morphism": { + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 175 + }, + "sage.modules.finite_submodule_iter": { + "failed": true, + "ntests": 95 + }, + "sage.modules.free_module": { + "ntests": 1474 + }, + "sage.modules.free_module_element": { + "failed": true, + "ntests": 945 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 108 + }, + "sage.modules.free_module_morphism": { + "ntests": 177 + }, + "sage.modules.free_quadratic_module": { + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 226 + }, + "sage.modules.matrix_morphism": { + "ntests": 406 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "failed": true, + "ntests": 133 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "ntests": 171 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 13 + }, + "sage.modules.vector_double_dense": { + "ntests": 96 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_mod2_dense": { + "ntests": 125 + }, + "sage.modules.vector_modn_dense": { + "ntests": 69 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 45 + }, + "sage.modules.vector_numpy_integer_dense": { + "ntests": 5 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 12 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "failed": true, + "ntests": 184 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 161 + }, + "sage.modules.with_basis.invariant": { + "failed": true, + "ntests": 300 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.representation": { + "failed": true, + "ntests": 258 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.backends.cvxopt_backend": { + "ntests": 14 + }, + "sage.numerical.backends.cvxopt_sdp_backend": { + "ntests": 111 + }, + "sage.numerical.backends.cvxpy_backend": { + "failed": true, + "ntests": 174 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 80 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 34 + }, + "sage.numerical.backends.glpk_backend": { + "ntests": 589 + }, + "sage.numerical.backends.glpk_exact_backend": { + "ntests": 24 + }, + "sage.numerical.backends.glpk_graph_backend": { + "ntests": 196 + }, + "sage.numerical.backends.interactivelp_backend": { + "failed": true, + "ntests": 266 + }, + "sage.numerical.backends.logging_backend": { + "ntests": 45 + }, + "sage.numerical.backends.matrix_sdp_backend": { + "ntests": 87 + }, + "sage.numerical.backends.ppl_backend": { + "ntests": 221 + }, + "sage.numerical.backends.scip_backend": { + "failed": true, + "ntests": 250 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.interactive_simplex_method": { + "failed": true, + "ntests": 1043 + }, + "sage.numerical.knapsack": { + "ntests": 77 + }, + "sage.numerical.linear_functions": { + "failed": true, + "ntests": 303 + }, + "sage.numerical.linear_tensor": { + "failed": true, + "ntests": 78 + }, + "sage.numerical.linear_tensor_constraints": { + "ntests": 66 + }, + "sage.numerical.linear_tensor_element": { + "ntests": 80 + }, + "sage.numerical.mip": { + "failed": true, + "ntests": 734 + }, + "sage.numerical.optimize": { + "failed": true, + "ntests": 87 + }, + "sage.numerical.sdp": { + "ntests": 283 + }, + "sage.parallel.decorate": { + "ntests": 90 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "ntests": 28 + }, + "sage.plot.animate": { + "ntests": 5 + }, + "sage.plot.arc": { + "ntests": 44 + }, + "sage.plot.arrow": { + "ntests": 62 + }, + "sage.plot.bar_chart": { + "ntests": 22 + }, + "sage.plot.bezier_path": { + "ntests": 42 + }, + "sage.plot.circle": { + "ntests": 56 + }, + "sage.plot.colors": { + "ntests": 247 + }, + "sage.plot.complex_plot": { + "ntests": 93 + }, + "sage.plot.disk": { + "ntests": 63 + }, + "sage.plot.ellipse": { + "ntests": 39 + }, + "sage.plot.graphics": { + "ntests": 306 + }, + "sage.plot.histogram": { + "ntests": 41 + }, + "sage.plot.line": { + "ntests": 71 + }, + "sage.plot.matrix_plot": { + "ntests": 73 + }, + "sage.plot.plot": { + "ntests": 2 + }, + "sage.plot.plot3d.base": { + "failed": true, + "ntests": 0 + }, + "sage.plot.plot3d.index_face_set": { + "ntests": 162 + }, + "sage.plot.plot3d.list_plot3d": { + "ntests": 47 + }, + "sage.plot.plot3d.platonic": { + "ntests": 53 + }, + "sage.plot.plot3d.shapes": { + "ntests": 187 + }, + "sage.plot.plot3d.shapes2": { + "failed": true, + "ntests": 0 + }, + "sage.plot.plot3d.tachyon": { + "ntests": 376 + }, + "sage.plot.plot3d.texture": { + "ntests": 65 + }, + "sage.plot.plot3d.transform": { + "ntests": 23 + }, + "sage.plot.plot3d.tri_plot": { + "ntests": 70 + }, + "sage.plot.point": { + "ntests": 87 + }, + "sage.plot.polygon": { + "ntests": 76 + }, + "sage.plot.primitive": { + "ntests": 44 + }, + "sage.plot.scatter_plot": { + "ntests": 19 + }, + "sage.plot.text": { + "ntests": 57 + }, + "sage.probability.probability_distribution": { + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 326 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "ntests": 17 + }, + "sage.quadratic_forms.genera.genus": { + "failed": true, + "ntests": 529 + }, + "sage.quadratic_forms.genera.spinor_genus": { + "ntests": 30 + }, + "sage.quadratic_forms.qfsolve": { + "ntests": 38 + }, + "sage.quadratic_forms.quadratic_form": { + "failed": true, + "ntests": 206 + }, + "sage.quadratic_forms.quadratic_form__automorphisms": { + "ntests": 51 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 108 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__genus": { + "ntests": 10 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_density_interfaces": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "ntests": 143 + }, + "sage.quadratic_forms.quadratic_form__local_normal_form": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__local_representation_conditions": { + "ntests": 144 + }, + "sage.quadratic_forms.quadratic_form__mass": { + "ntests": 4 + }, + "sage.quadratic_forms.quadratic_form__mass__Conway_Sloane_masses": { + "ntests": 59 + }, + "sage.quadratic_forms.quadratic_form__mass__Siegel_densities": { + "ntests": 14 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "ntests": 30 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__siegel_product": { + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "ntests": 99 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.special_values": { + "ntests": 21 + }, + "sage.quadratic_forms.ternary": { + "ntests": 105 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 306 + }, + "sage.quivers.algebra": { + "ntests": 119 + }, + "sage.quivers.algebra_elements": { + "failed": true, + "ntests": 211 + }, + "sage.quivers.algebra_elements.pxi": { + "failed": true, + "ntests": 5 + }, + "sage.quivers.homspace": { + "ntests": 97 + }, + "sage.quivers.morphism": { + "ntests": 346 + }, + "sage.quivers.path_semigroup": { + "ntests": 195 + }, + "sage.quivers.paths": { + "ntests": 154 + }, + "sage.quivers.representation": { + "ntests": 495 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.image": { + "ntests": 42 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 30 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 116 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 88 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "failed": true, + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "failed": true, + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.algebraic_closure_finite_field": { + "failed": true, + "ntests": 213 + }, + "sage.rings.bernmm": { + "ntests": 25 + }, + "sage.rings.bernoulli_mod_p": { + "ntests": 26 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_arb": { + "failed": true, + "ntests": 653 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "ntests": 339 + }, + "sage.rings.complex_interval": { + "ntests": 266 + }, + "sage.rings.complex_interval_field": { + "ntests": 131 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 520 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 355 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.derivation": { + "ntests": 405 + }, + "sage.rings.factorint": { + "ntests": 26 + }, + "sage.rings.factorint_flint": { + "ntests": 10 + }, + "sage.rings.factorint_pari": { + "ntests": 3 + }, + "sage.rings.fast_arith": { + "ntests": 20 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 57 + }, + "sage.rings.finite_rings.element_base": { + "failed": true, + "ntests": 238 + }, + "sage.rings.finite_rings.element_givaro": { + "failed": true, + "ntests": 242 + }, + "sage.rings.finite_rings.element_ntl_gf2e": { + "failed": true, + "ntests": 176 + }, + "sage.rings.finite_rings.element_pari_ffelt": { + "failed": true, + "ntests": 293 + }, + "sage.rings.finite_rings.finite_field_base": { + "failed": true, + "ntests": 329 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "failed": true, + "ntests": 126 + }, + "sage.rings.finite_rings.finite_field_givaro": { + "failed": true, + "ntests": 122 + }, + "sage.rings.finite_rings.finite_field_ntl_gf2e": { + "failed": true, + "ntests": 61 + }, + "sage.rings.finite_rings.finite_field_pari_ffelt": { + "failed": true, + "ntests": 41 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 42 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 20 + }, + "sage.rings.finite_rings.hom_finite_field": { + "failed": true, + "ntests": 192 + }, + "sage.rings.finite_rings.hom_finite_field_givaro": { + "failed": true, + "ntests": 37 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 21 + }, + "sage.rings.finite_rings.homset": { + "failed": true, + "ntests": 67 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 585 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 308 + }, + "sage.rings.finite_rings.maps_finite_field": { + "ntests": 31 + }, + "sage.rings.finite_rings.residue_field": { + "failed": true, + "ntests": 434 + }, + "sage.rings.finite_rings.residue_field_givaro": { + "ntests": 30 + }, + "sage.rings.finite_rings.residue_field_ntl_gf2e": { + "ntests": 32 + }, + "sage.rings.finite_rings.residue_field_pari_ffelt": { + "ntests": 34 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 260 + }, + "sage.rings.fraction_field_FpT": { + "ntests": 369 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 282 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 108 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 83 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 159 + }, + "sage.rings.function_field.function_field_rational": { + "failed": true, + "ntests": 152 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 136 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 150 + }, + "sage.rings.function_field.maps": { + "ntests": 72 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "ntests": 116 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 30 + }, + "sage.rings.function_field.valuation": { + "failed": true, + "ntests": 284 + }, + "sage.rings.generic": { + "ntests": 69 + }, + "sage.rings.homset": { + "ntests": 44 + }, + "sage.rings.ideal": { + "ntests": 361 + }, + "sage.rings.ideal_monoid": { + "ntests": 48 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1180 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 224 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 883 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 160 + }, + "sage.rings.laurent_series_ring_element": { + "ntests": 398 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 175 + }, + "sage.rings.monomials": { + "ntests": 5 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 599 + }, + "sage.rings.multi_power_series_ring": { + "failed": true, + "ntests": 237 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 443 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.bdd_height": { + "failed": true, + "ntests": 76 + }, + "sage.rings.number_field.class_group": { + "ntests": 239 + }, + "sage.rings.number_field.galois_group": { + "failed": true, + "ntests": 280 + }, + "sage.rings.number_field.homset": { + "ntests": 131 + }, + "sage.rings.number_field.maps": { + "ntests": 196 + }, + "sage.rings.number_field.morphism": { + "ntests": 46 + }, + "sage.rings.number_field.number_field": { + "failed": true, + "ntests": 2358 + }, + "sage.rings.number_field.number_field_base": { + "failed": true, + "ntests": 82 + }, + "sage.rings.number_field.number_field_element": { + "failed": true, + "ntests": 1259 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_element_quadratic": { + "failed": true, + "ntests": 608 + }, + "sage.rings.number_field.number_field_ideal": { + "failed": true, + "ntests": 761 + }, + "sage.rings.number_field.number_field_ideal_rel": { + "ntests": 259 + }, + "sage.rings.number_field.number_field_morphisms": { + "ntests": 167 + }, + "sage.rings.number_field.number_field_rel": { + "failed": true, + "ntests": 600 + }, + "sage.rings.number_field.order": { + "ntests": 652 + }, + "sage.rings.number_field.selmer_group": { + "ntests": 93 + }, + "sage.rings.number_field.small_primes_of_degree_one": { + "ntests": 41 + }, + "sage.rings.number_field.splitting_field": { + "ntests": 73 + }, + "sage.rings.number_field.structure": { + "ntests": 68 + }, + "sage.rings.number_field.totallyreal": { + "ntests": 17 + }, + "sage.rings.number_field.totallyreal_data": { + "ntests": 24 + }, + "sage.rings.number_field.totallyreal_phc": { + "ntests": 3 + }, + "sage.rings.number_field.totallyreal_rel": { + "failed": true, + "ntests": 43 + }, + "sage.rings.number_field.unit_group": { + "ntests": 177 + }, + "sage.rings.padics.CA_template.pxi": { + "failed": true, + "ntests": 309 + }, + "sage.rings.padics.CR_template.pxi": { + "failed": true, + "ntests": 431 + }, + "sage.rings.padics.FM_template.pxi": { + "failed": true, + "ntests": 277 + }, + "sage.rings.padics.FP_template.pxi": { + "failed": true, + "ntests": 340 + }, + "sage.rings.padics.eisenstein_extension_generic": { + "ntests": 41 + }, + "sage.rings.padics.factory": { + "failed": true, + "ntests": 559 + }, + "sage.rings.padics.generic_nodes": { + "ntests": 254 + }, + "sage.rings.padics.lattice_precision": { + "ntests": 456 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 1 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.morphism": { + "ntests": 66 + }, + "sage.rings.padics.padic_base_generic": { + "ntests": 44 + }, + "sage.rings.padics.padic_base_leaves": { + "ntests": 223 + }, + "sage.rings.padics.padic_extension_generic": { + "failed": true, + "ntests": 208 + }, + "sage.rings.padics.padic_extension_leaves": { + "failed": true, + "ntests": 72 + }, + "sage.rings.padics.padic_generic_element": { + "failed": true, + "ntests": 816 + }, + "sage.rings.padics.padic_lattice_element": { + "ntests": 269 + }, + "sage.rings.padics.padic_printing": { + "failed": true, + "ntests": 108 + }, + "sage.rings.padics.padic_relaxed_errors": { + "ntests": 5 + }, + "sage.rings.padics.padic_template_element.pxi": { + "ntests": 138 + }, + "sage.rings.padics.padic_valuation": { + "ntests": 192 + }, + "sage.rings.padics.pow_computer": { + "ntests": 88 + }, + "sage.rings.padics.pow_computer_flint": { + "ntests": 76 + }, + "sage.rings.padics.pow_computer_relative": { + "failed": true, + "ntests": 97 + }, + "sage.rings.padics.qadic_flint_CA": { + "failed": true, + "ntests": 19 + }, + "sage.rings.padics.qadic_flint_CR": { + "failed": true, + "ntests": 23 + }, + "sage.rings.padics.qadic_flint_FM": { + "failed": true, + "ntests": 17 + }, + "sage.rings.padics.qadic_flint_FP": { + "failed": true, + "ntests": 22 + }, + "sage.rings.padics.relative_extension_leaves": { + "failed": true, + "ntests": 87 + }, + "sage.rings.padics.relative_ramified_CA": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_CR": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FM": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FP": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relaxed_template.pxi": { + "ntests": 509 + }, + "sage.rings.padics.tests": { + "ntests": 12 + }, + "sage.rings.padics.tutorial": { + "failed": true, + "ntests": 45 + }, + "sage.rings.padics.unramified_extension_generic": { + "failed": true, + "ntests": 33 + }, + "sage.rings.pari_ring": { + "ntests": 46 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.complex_roots": { + "ntests": 42 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 37 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 150 + }, + "sage.rings.polynomial.hilbert": { + "failed": true, + "ntests": 8 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 412 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 339 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 91 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 563 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true, + "ntests": 515 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 19 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 249 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.ore_function_element": { + "failed": true, + "ntests": 243 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 231 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 1 + }, + "sage.rings.polynomial.padics.polynomial_padic": { + "ntests": 64 + }, + "sage.rings.polynomial.padics.polynomial_padic_capped_relative_dense": { + "ntests": 150 + }, + "sage.rings.polynomial.padics.polynomial_padic_flat": { + "ntests": 3 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_complex_arb": { + "ntests": 144 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 0 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 213 + }, + "sage.rings.polynomial.polynomial_gf2x": { + "ntests": 43 + }, + "sage.rings.polynomial.polynomial_integer_dense_flint": { + "ntests": 306 + }, + "sage.rings.polynomial.polynomial_integer_dense_ntl": { + "ntests": 188 + }, + "sage.rings.polynomial.polynomial_modn_dense_ntl": { + "ntests": 331 + }, + "sage.rings.polynomial.polynomial_number_field": { + "failed": true, + "ntests": 75 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "failed": true, + "ntests": 508 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "failed": true, + "ntests": 160 + }, + "sage.rings.polynomial.polynomial_rational_flint": { + "ntests": 405 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring": { + "failed": true, + "ntests": 512 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 151 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 30 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 52 + }, + "sage.rings.polynomial.polynomial_template.pxi": { + "ntests": 122 + }, + "sage.rings.polynomial.polynomial_zmod_flint": { + "ntests": 147 + }, + "sage.rings.polynomial.polynomial_zz_pex": { + "failed": true, + "ntests": 125 + }, + "sage.rings.polynomial.real_roots": { + "failed": true, + "ntests": 417 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 345 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 42 + }, + "sage.rings.polynomial.weil.weil_polynomials": { + "failed": true, + "ntests": 92 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_pari": { + "ntests": 177 + }, + "sage.rings.power_series_poly": { + "ntests": 271 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 491 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 209 + }, + "sage.rings.qqbar": { + "failed": true, + "ntests": 1326 + }, + "sage.rings.qqbar_decorators": { + "failed": true, + "ntests": 14 + }, + "sage.rings.quotient_ring": { + "ntests": 200 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 564 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 207 + }, + "sage.rings.real_arb": { + "failed": true, + "ntests": 561 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 362 + }, + "sage.rings.real_double_element_gsl": { + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_interval_absolute": { + "ntests": 1 + }, + "sage.rings.real_lazy": { + "ntests": 279 + }, + "sage.rings.real_mpfi": { + "failed": true, + "ntests": 925 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1041 + }, + "sage.rings.ring": { + "failed": true, + "ntests": 377 + }, + "sage.rings.ring_extension": { + "failed": true, + "ntests": 442 + }, + "sage.rings.ring_extension_conversion": { + "failed": true, + "ntests": 75 + }, + "sage.rings.ring_extension_element": { + "failed": true, + "ntests": 279 + }, + "sage.rings.ring_extension_homset": { + "failed": true, + "ntests": 9 + }, + "sage.rings.ring_extension_morphism": { + "failed": true, + "ntests": 148 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tate_algebra": { + "ntests": 267 + }, + "sage.rings.tate_algebra_element": { + "ntests": 671 + }, + "sage.rings.tate_algebra_ideal": { + "failed": true, + "ntests": 126 + }, + "sage.rings.tests": { + "ntests": 52 + }, + "sage.rings.universal_cyclotomic_field": { + "ntests": 327 + }, + "sage.rings.valuation.augmented_valuation": { + "failed": true, + "ntests": 462 + }, + "sage.rings.valuation.developing_valuation": { + "ntests": 62 + }, + "sage.rings.valuation.gauss_valuation": { + "ntests": 139 + }, + "sage.rings.valuation.inductive_valuation": { + "failed": true, + "ntests": 284 + }, + "sage.rings.valuation.limit_valuation": { + "ntests": 155 + }, + "sage.rings.valuation.mapped_valuation": { + "ntests": 76 + }, + "sage.rings.valuation.scaled_valuation": { + "ntests": 41 + }, + "sage.rings.valuation.trivial_valuation": { + "ntests": 53 + }, + "sage.rings.valuation.valuation": { + "failed": true, + "ntests": 205 + }, + "sage.rings.valuation.valuation_space": { + "ntests": 200 + }, + "sage.rings.valuation.value_group": { + "ntests": 102 + }, + "sage.sandpiles.examples": { + "ntests": 24 + }, + "sage.sandpiles.sandpile": { + "ntests": 913 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 382 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 38 + }, + "sage.schemes.affine.affine_space": { + "failed": true, + "ntests": 175 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 99 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 391 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 132 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 459 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 179 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 110 + }, + "sage.schemes.product_projective.point": { + "ntests": 116 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 31 + }, + "sage.schemes.product_projective.space": { + "failed": true, + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 67 + }, + "sage.schemes.projective.proj_bdd_height": { + "failed": true, + "ntests": 45 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 62 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 627 + }, + "sage.schemes.projective.projective_point": { + "ntests": 327 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 46 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 435 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 260 + }, + "sage.schemes.toric.chow_group": { + "ntests": 199 + }, + "sage.schemes.toric.divisor": { + "ntests": 366 + }, + "sage.schemes.toric.divisor_class": { + "ntests": 62 + }, + "sage.schemes.toric.fano_variety": { + "failed": true, + "ntests": 175 + }, + "sage.schemes.toric.homset": { + "ntests": 94 + }, + "sage.schemes.toric.library": { + "ntests": 100 + }, + "sage.schemes.toric.morphism": { + "ntests": 341 + }, + "sage.schemes.toric.points": { + "failed": true, + "ntests": 195 + }, + "sage.schemes.toric.sheaf.constructor": { + "ntests": 41 + }, + "sage.schemes.toric.sheaf.klyachko": { + "failed": true, + "ntests": 146 + }, + "sage.schemes.toric.toric_subscheme": { + "failed": true, + "ntests": 89 + }, + "sage.schemes.toric.variety": { + "failed": true, + "ntests": 426 + }, + "sage.schemes.toric.weierstrass": { + "failed": true, + "ntests": 146 + }, + "sage.schemes.toric.weierstrass_covering": { + "failed": true, + "ntests": 86 + }, + "sage.schemes.toric.weierstrass_higher": { + "ntests": 53 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 77 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 361 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "failed": true, + "ntests": 397 + }, + "sage.sets.set_from_iterator": { + "ntests": 204 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 56 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.chmm": { + "ntests": 120 + }, + "sage.stats.hmm.distributions": { + "ntests": 70 + }, + "sage.stats.hmm.hmm": { + "ntests": 125 + }, + "sage.stats.hmm.util": { + "ntests": 16 + }, + "sage.stats.intlist": { + "ntests": 68 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "ntests": 312 + }, + "sage.structure.category_object": { + "ntests": 163 + }, + "sage.structure.coerce": { + "ntests": 356 + }, + "sage.structure.coerce_actions": { + "ntests": 138 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 700 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "ntests": 238 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 115 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 123 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 369 + }, + "sage.structure.parent_gens": { + "failed": true, + "ntests": 41 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 11 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "failed": true, + "ntests": 87 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 234 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 188 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tensor.modules.tensor_with_indices": { + "ntests": 233 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 103 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "failed": true, + "ntests": 248 + }, + "sage.tests.cmdline": { + "ntests": 164 + }, + "sage.tests.finite_poset": { + "ntests": 8 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 11 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.numpy": { + "ntests": 6 + }, + "sage.tests.parigp": { + "ntests": 11 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.topology.cell_complex": { + "ntests": 161 + }, + "sage.topology.cubical_complex": { + "ntests": 256 + }, + "sage.topology.delta_complex": { + "ntests": 166 + }, + "sage.topology.filtered_simplicial_complex": { + "ntests": 110 + }, + "sage.topology.moment_angle_complex": { + "ntests": 111 + }, + "sage.topology.simplicial_complex": { + "ntests": 670 + }, + "sage.topology.simplicial_complex_catalog": { + "ntests": 6 + }, + "sage.topology.simplicial_complex_examples": { + "ntests": 137 + }, + "sage.topology.simplicial_complex_homset": { + "ntests": 47 + }, + "sage.topology.simplicial_complex_morphism": { + "failed": true, + "ntests": 219 + }, + "sage.topology.simplicial_set": { + "failed": true, + "ntests": 854 + }, + "sage.topology.simplicial_set_catalog": { + "ntests": 6 + }, + "sage.topology.simplicial_set_constructions": { + "ntests": 488 + }, + "sage.topology.simplicial_set_examples": { + "failed": true, + "ntests": 99 + }, + "sage.topology.simplicial_set_morphism": { + "ntests": 308 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-polyhedra/known-test-failures.json b/pkgs/sagemath-polyhedra/known-test-failures.json new file mode 100644 index 00000000000..0ad1690754a --- /dev/null +++ b/pkgs/sagemath-polyhedra/known-test-failures.json @@ -0,0 +1,3317 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "failed": true, + "ntests": 77 + }, + "sage.algebras.orlik_terao": { + "failed": true, + "ntests": 89 + }, + "sage.algebras.weyl_algebra": { + "ntests": 4 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.all__sagemath_polyhedra": { + "ntests": 3 + }, + "sage.arith.functions": { + "failed": true, + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 906 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 4 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.riemann": { + "ntests": 13 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 110 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "failed": true, + "ntests": 66 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "ntests": 155 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 7 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 3 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 26 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 17 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "ntests": 38 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "ntests": 362 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "ntests": 2 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 109 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 90 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 39 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 108 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "ntests": 128 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 48 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 16 + }, + "sage.categories.homset": { + "ntests": 209 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 380 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 145 + }, + "sage.categories.modules_with_basis": { + "ntests": 488 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 85 + }, + "sage.categories.morphism": { + "ntests": 99 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 8 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.primer": { + "ntests": 163 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 746 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 81 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "ntests": 166 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 106 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 434 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 54 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 8 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 38 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.binary_code": { + "ntests": 1 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 44 + }, + "sage.coding.code_constructions": { + "ntests": 30 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "ntests": 1 + }, + "sage.coding.databases": { + "ntests": 2 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 57 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.golay_code": { + "ntests": 2 + }, + "sage.coding.goppa_code": { + "ntests": 1 + }, + "sage.coding.grs_code": { + "ntests": 1 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 2 + }, + "sage.coding.kasami_codes": { + "ntests": 2 + }, + "sage.coding.linear_code": { + "ntests": 44 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 2 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.combinat": { + "ntests": 411 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.free_module": { + "ntests": 398 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.permutation": { + "ntests": 1214 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 55 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 402 + }, + "sage.combinat.root_system.coxeter_group": { + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.hecke_algebra_representation": { + "ntests": 1 + }, + "sage.combinat.root_system.integrable_representations": { + "ntests": 5 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "ntests": 25 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 284 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 489 + }, + "sage.combinat.root_system.root_space": { + "ntests": 72 + }, + "sage.combinat.root_system.root_system": { + "ntests": 117 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 19 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 67 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 31 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 130 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.boolean_function": { + "ntests": 202 + }, + "sage.crypto.classical": { + "ntests": 14 + }, + "sage.crypto.classical_cipher": { + "ntests": 2 + }, + "sage.crypto.cryptosystem": { + "ntests": 14 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 18 + }, + "sage.crypto.lwe": { + "ntests": 4 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "ntests": 16 + }, + "sage.crypto.mq.sr": { + "ntests": 24 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 11 + }, + "sage.crypto.sbox": { + "ntests": 12 + }, + "sage.crypto.util": { + "ntests": 9 + }, + "sage.data_structures.bitset": { + "ntests": 425 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 303 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "failed": true, + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 179 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 97 + }, + "sage.functions.bessel": { + "failed": true, + "ntests": 172 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 156 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 136 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "failed": true, + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 78 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 157 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 237 + }, + "sage.functions.other": { + "failed": true, + "ntests": 247 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 58 + }, + "sage.functions.trig": { + "failed": true, + "ntests": 128 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.game_theory.catalog_normal_form_games": { + "failed": true, + "ntests": 0 + }, + "sage.game_theory.cooperative_game": { + "ntests": 101 + }, + "sage.game_theory.matching_game": { + "ntests": 3 + }, + "sage.game_theory.normal_form_game": { + "failed": true, + "ntests": 616 + }, + "sage.game_theory.parser": { + "ntests": 65 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.cone": { + "failed": true, + "ntests": 1104 + }, + "sage.geometry.cone_catalog": { + "ntests": 79 + }, + "sage.geometry.convex_set": { + "ntests": 148 + }, + "sage.geometry.fan": { + "ntests": 7 + }, + "sage.geometry.fan_isomorphism": { + "failed": true, + "ntests": 65 + }, + "sage.geometry.hasse_diagram": { + "ntests": 5 + }, + "sage.geometry.hyperplane_arrangement.affine_subspace": { + "ntests": 93 + }, + "sage.geometry.hyperplane_arrangement.arrangement": { + "failed": true, + "ntests": 0 + }, + "sage.geometry.hyperplane_arrangement.hyperplane": { + "ntests": 130 + }, + "sage.geometry.hyperplane_arrangement.library": { + "ntests": 24 + }, + "sage.geometry.hyperplane_arrangement.plot": { + "ntests": 51 + }, + "sage.geometry.integral_points.pxi": { + "failed": true, + "ntests": 171 + }, + "sage.geometry.lattice_polytope": { + "failed": true, + "ntests": 613 + }, + "sage.geometry.linear_expression": { + "ntests": 165 + }, + "sage.geometry.newton_polygon": { + "ntests": 110 + }, + "sage.geometry.point_collection": { + "ntests": 111 + }, + "sage.geometry.polyhedral_complex": { + "ntests": 11 + }, + "sage.geometry.polyhedron.backend_cdd": { + "ntests": 33 + }, + "sage.geometry.polyhedron.backend_cdd_rdf": { + "ntests": 34 + }, + "sage.geometry.polyhedron.backend_field": { + "ntests": 53 + }, + "sage.geometry.polyhedron.backend_normaliz": { + "ntests": 52 + }, + "sage.geometry.polyhedron.backend_number_field": { + "ntests": 22 + }, + "sage.geometry.polyhedron.backend_polymake": { + "ntests": 73 + }, + "sage.geometry.polyhedron.backend_ppl": { + "ntests": 90 + }, + "sage.geometry.polyhedron.base": { + "ntests": 152 + }, + "sage.geometry.polyhedron.base0": { + "failed": true, + "ntests": 212 + }, + "sage.geometry.polyhedron.base1": { + "ntests": 140 + }, + "sage.geometry.polyhedron.base2": { + "ntests": 96 + }, + "sage.geometry.polyhedron.base3": { + "ntests": 323 + }, + "sage.geometry.polyhedron.base4": { + "ntests": 14 + }, + "sage.geometry.polyhedron.base5": { + "ntests": 351 + }, + "sage.geometry.polyhedron.base6": { + "ntests": 162 + }, + "sage.geometry.polyhedron.base7": { + "failed": true, + "ntests": 124 + }, + "sage.geometry.polyhedron.base_QQ": { + "ntests": 112 + }, + "sage.geometry.polyhedron.base_RDF": { + "failed": true, + "ntests": 14 + }, + "sage.geometry.polyhedron.base_ZZ": { + "ntests": 90 + }, + "sage.geometry.polyhedron.base_mutable": { + "ntests": 57 + }, + "sage.geometry.polyhedron.base_number_field": { + "ntests": 8 + }, + "sage.geometry.polyhedron.cdd_file_format": { + "ntests": 10 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.base": { + "ntests": 584 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face": { + "ntests": 180 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.conversions": { + "ntests": 58 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.face_iterator": { + "ntests": 364 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.list_of_faces": { + "ntests": 67 + }, + "sage.geometry.polyhedron.combinatorial_polyhedron.polyhedron_face_lattice": { + "ntests": 52 + }, + "sage.geometry.polyhedron.constructor": { + "ntests": 98 + }, + "sage.geometry.polyhedron.double_description": { + "ntests": 112 + }, + "sage.geometry.polyhedron.double_description_inhomogeneous": { + "failed": true, + "ntests": 72 + }, + "sage.geometry.polyhedron.face": { + "ntests": 159 + }, + "sage.geometry.polyhedron.lattice_euclidean_group_element": { + "ntests": 27 + }, + "sage.geometry.polyhedron.library": { + "failed": true, + "ntests": 309 + }, + "sage.geometry.polyhedron.misc": { + "ntests": 12 + }, + "sage.geometry.polyhedron.modules.formal_polyhedra_module": { + "ntests": 44 + }, + "sage.geometry.polyhedron.palp_database": { + "ntests": 64 + }, + "sage.geometry.polyhedron.parent": { + "ntests": 187 + }, + "sage.geometry.polyhedron.plot": { + "failed": true, + "ntests": 197 + }, + "sage.geometry.polyhedron.ppl_lattice_polygon": { + "ntests": 81 + }, + "sage.geometry.polyhedron.ppl_lattice_polytope": { + "failed": true, + "ntests": 166 + }, + "sage.geometry.polyhedron.representation": { + "ntests": 343 + }, + "sage.geometry.pseudolines": { + "ntests": 77 + }, + "sage.geometry.relative_interior": { + "ntests": 88 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.geometry.toric_plotter": { + "failed": true, + "ntests": 82 + }, + "sage.geometry.triangulation.base": { + "ntests": 173 + }, + "sage.geometry.triangulation.element": { + "ntests": 116 + }, + "sage.geometry.triangulation.point_configuration": { + "failed": true, + "ntests": 215 + }, + "sage.geometry.voronoi_diagram": { + "ntests": 24 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 270 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 23 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 2 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 55 + }, + "sage.groups.abelian_gps.values": { + "ntests": 65 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "ntests": 97 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 92 + }, + "sage.groups.galois_group": { + "ntests": 54 + }, + "sage.groups.generic": { + "ntests": 94 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.matrix_gps.coxeter_group": { + "ntests": 10 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 47 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 33 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 24 + }, + "sage.groups.matrix_gps.matrix_group": { + "ntests": 45 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 21 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 44 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 31 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 251 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 87 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.homology_group": { + "ntests": 22 + }, + "sage.homology.homology_vector_space_with_basis": { + "ntests": 6 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.four_ti_2": { + "ntests": 54 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.latte": { + "ntests": 65 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 4 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.libs.glpk.error": { + "failed": true, + "ntests": 12 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 134 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.constructor": { + "ntests": 128 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 790 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 425 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 2022 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 25 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_polynomial_dense": { + "failed": true, + "ntests": 420 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 3 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 419 + }, + "sage.matrix.matrix_sparse": { + "ntests": 159 + }, + "sage.matrix.misc_mpfr": { + "failed": true, + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 90 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 436 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 181 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 129 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 614 + }, + "sage.matroids.matroid": { + "ntests": 858 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 22 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 59 + }, + "sage.matroids.utilities": { + "ntests": 58 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 150 + }, + "sage.misc.cachefunc": { + "ntests": 692 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 40 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "ntests": 306 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "failed": true, + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "ntests": 12 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 243 + }, + "sage.misc.latex_macros": { + "failed": true, + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 227 + }, + "sage.misc.lazy_string": { + "ntests": 131 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 141 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 64 + }, + "sage.misc.package_dir": { + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, + "sage.misc.sage_eval": { + "ntests": 31 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 250 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.diamond_cutting": { + "ntests": 19 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 435 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 170 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1455 + }, + "sage.modules.free_module_element": { + "ntests": 873 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 163 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 133 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 400 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "ntests": 122 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 171 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 2 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_modn_dense": { + "ntests": 59 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 4 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 1 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "ntests": 151 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 161 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.backends.cvxopt_backend": { + "ntests": 14 + }, + "sage.numerical.backends.cvxopt_sdp_backend": { + "ntests": 111 + }, + "sage.numerical.backends.cvxpy_backend": { + "failed": true, + "ntests": 174 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 75 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 34 + }, + "sage.numerical.backends.glpk_backend": { + "ntests": 558 + }, + "sage.numerical.backends.glpk_exact_backend": { + "ntests": 24 + }, + "sage.numerical.backends.interactivelp_backend": { + "failed": true, + "ntests": 258 + }, + "sage.numerical.backends.logging_backend": { + "ntests": 45 + }, + "sage.numerical.backends.matrix_sdp_backend": { + "ntests": 87 + }, + "sage.numerical.backends.ppl_backend": { + "failed": true, + "ntests": 221 + }, + "sage.numerical.backends.scip_backend": { + "failed": true, + "ntests": 250 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.interactive_simplex_method": { + "failed": true, + "ntests": 1043 + }, + "sage.numerical.knapsack": { + "ntests": 77 + }, + "sage.numerical.linear_functions": { + "failed": true, + "ntests": 303 + }, + "sage.numerical.linear_tensor": { + "failed": true, + "ntests": 78 + }, + "sage.numerical.linear_tensor_constraints": { + "ntests": 66 + }, + "sage.numerical.linear_tensor_element": { + "ntests": 80 + }, + "sage.numerical.mip": { + "failed": true, + "ntests": 700 + }, + "sage.numerical.optimize": { + "ntests": 30 + }, + "sage.numerical.sdp": { + "ntests": 277 + }, + "sage.parallel.decorate": { + "ntests": 86 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "failed": true, + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "failed": true, + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 288 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 184 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 60 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "failed": true, + "ntests": 133 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "ntests": 32 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 69 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.ternary": { + "ntests": 95 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 290 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 80 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "failed": true, + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "failed": true, + "ntests": 331 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 494 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 295 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.derivation": { + "ntests": 391 + }, + "sage.rings.factorint": { + "ntests": 10 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 20 + }, + "sage.rings.finite_rings.element_base": { + "ntests": 11 + }, + "sage.rings.finite_rings.finite_field_base": { + "ntests": 15 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "ntests": 17 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 28 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 1 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 15 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 536 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 253 + }, + "sage.rings.finite_rings.residue_field": { + "ntests": 39 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 233 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 263 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 98 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 68 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 154 + }, + "sage.rings.function_field.function_field_rational": { + "ntests": 135 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 100 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 82 + }, + "sage.rings.function_field.maps": { + "ntests": 55 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "ntests": 64 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "ntests": 7 + }, + "sage.rings.generic": { + "ntests": 50 + }, + "sage.rings.homset": { + "ntests": 37 + }, + "sage.rings.ideal": { + "ntests": 340 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1103 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 197 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 879 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 145 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 381 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 121 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 467 + }, + "sage.rings.multi_power_series_ring": { + "ntests": 216 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 425 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 9 + }, + "sage.rings.padics.local_generic": { + "ntests": 67 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 12 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.padic_generic": { + "ntests": 56 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 31 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 384 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 334 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 87 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 507 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "ntests": 287 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 106 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 232 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.ore_function_element": { + "ntests": 56 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 63 + }, + "sage.rings.polynomial.ore_polynomial_element": { + "ntests": 25 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 20 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 1903 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 192 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "ntests": 33 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "ntests": 2 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_ring": { + "ntests": 398 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 139 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 24 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 42 + }, + "sage.rings.polynomial.skew_polynomial_element": { + "ntests": 1 + }, + "sage.rings.polynomial.skew_polynomial_ring": { + "ntests": 20 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 327 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 21 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_poly": { + "failed": true, + "ntests": 267 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 478 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 190 + }, + "sage.rings.quotient_ring": { + "failed": true, + "ntests": 185 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 542 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 193 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 356 + }, + "sage.rings.real_double_element_gsl": { + "failed": true, + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_lazy": { + "ntests": 19 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1018 + }, + "sage.rings.ring": { + "ntests": 346 + }, + "sage.rings.ring_extension": { + "ntests": 207 + }, + "sage.rings.ring_extension_element": { + "ntests": 111 + }, + "sage.rings.ring_extension_morphism": { + "ntests": 97 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 39 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 296 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 40 + }, + "sage.schemes.generic.homset": { + "ntests": 117 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 395 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 180 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 97 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 62 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 62 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 499 + }, + "sage.schemes.projective.projective_point": { + "ntests": 279 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 34 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 376 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 240 + }, + "sage.schemes.toric.chow_group": { + "ntests": 3 + }, + "sage.schemes.toric.divisor": { + "ntests": 7 + }, + "sage.schemes.toric.fano_variety": { + "ntests": 4 + }, + "sage.schemes.toric.homset": { + "ntests": 1 + }, + "sage.schemes.toric.morphism": { + "ntests": 1 + }, + "sage.schemes.toric.points": { + "ntests": 7 + }, + "sage.schemes.toric.toric_subscheme": { + "ntests": 3 + }, + "sage.schemes.toric.variety": { + "ntests": 28 + }, + "sage.schemes.toric.weierstrass_covering": { + "ntests": 5 + }, + "sage.schemes.toric.weierstrass_higher": { + "ntests": 1 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 77 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 23 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "ntests": 367 + }, + "sage.sets.set_from_iterator": { + "ntests": 155 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 51 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.distributions": { + "ntests": 1 + }, + "sage.stats.hmm.hmm": { + "ntests": 4 + }, + "sage.stats.intlist": { + "ntests": 3 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "ntests": 6 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 163 + }, + "sage.structure.coerce": { + "ntests": 335 + }, + "sage.structure.coerce_actions": { + "ntests": 128 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 662 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 200 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 109 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 123 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "ntests": 315 + }, + "sage.structure.parent_gens": { + "ntests": 29 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 8 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 226 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 179 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "ntests": 13 + }, + "sage.tests.cmdline": { + "ntests": 164 + }, + "sage.tests.finite_poset": { + "ntests": 1 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.parigp": { + "ntests": 4 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-polyhedra/meson.build b/pkgs/sagemath-polyhedra/meson.build new file mode 100644 index 00000000000..c6f56447c6d --- /dev/null +++ b/pkgs/sagemath-polyhedra/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-polyhedra', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_polyhedra', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-polyhedra/pyproject.toml.m4 b/pkgs/sagemath-polyhedra/pyproject.toml.m4 new file mode 100644 index 00000000000..8a722005e5d --- /dev/null +++ b/pkgs/sagemath-polyhedra/pyproject.toml.m4 @@ -0,0 +1,109 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator +] +build-backend = "mesonpy" + +[project] +name = "sagemath-polyhedra" +description = "Sage: Open Source Mathematics Software: Convex polyhedra in arbitrary dimension, mixed integer linear optimization" +dependencies = [ + SPKG_INSTALL_REQUIRES_sage_conf + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_pplpy + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_glpk + SPKG_INSTALL_REQUIRES_sagemath_modules +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [SPKG_INSTALL_REQUIRES_sagemath_repl] + +# general libraries +flint = [SPKG_INSTALL_REQUIRES_sagemath_flint] +fpylll = [SPKG_INSTALL_REQUIRES_fpylll] +linbox = [SPKG_INSTALL_REQUIRES_sagemath_linbox] +pari = [SPKG_INSTALL_REQUIRES_sagemath_pari] + +# polyhedral libraries +4ti2 = [] # FIXME +cddlib = [] # FIXME +latte = ["sagemath-polyhedra[latte_int]"] # alias +latte_int = [] # FIXME +normaliz = [SPKG_INSTALL_REQUIRES_pynormaliz] +polymake = [SPKG_INSTALL_REQUIRES_jupymake] +ppl = [] # no extra required +topcom = [] # FIXME + +# optimization libraries +cbc = ["sagemath-polyhedra[cbc_sage]"] +cbc_sage = [SPKG_INSTALL_REQUIRES_sage_numerical_backends_coin] +coin = ["sagemath-polyhedra[cbc_sage]"] +coin_sage = ["sagemath-polyhedra[cbc_sage]"] +cplex = ["sagemath-polyhedra[cplex_sage]"] +cplex_sage = [SPKG_INSTALL_REQUIRES_sage_numerical_backends_cplex] +cvxopt = ["sagemath-polyhedra[cvxopt_sage]"] +cvxopt_sage = [SPKG_INSTALL_REQUIRES_cvxopt] +cvxpy = [SPKG_INSTALL_REQUIRES_cvxpy] +glpk = ["sagemath-polyhedra[glpk_sage]"] +glpk_sage = [] # no extra required +gurobi = ["sagemath-polyhedra[gurobi_sage]"] +gurobi_sage = [SPKG_INSTALL_REQUIRES_sage_numerical_backends_gurobi] +scip = [SPKG_INSTALL_REQUIRES_pyscipopt] + +# supported rings +QQ = [] +ZZ = [] +RDF = [] # FIXME: cddlib +NumberField = ["sagemath-polyhedra[flint]"] + +# features +graphs = [SPKG_INSTALL_REQUIRES_sagemath_graphs] +groups = [SPKG_INSTALL_REQUIRES_sagemath_groups] +plot = [SPKG_INSTALL_REQUIRES_sagemath_plot] +posets = [SPKG_INSTALL_REQUIRES_sagemath_graphs] +toric = [SPKG_INSTALL_REQUIRES_sagemath_graphs] + +# the whole package +standard = ["sagemath-polyhedra[flint,fpylll,linbox,glpk,graphs,groups,pari,plot,RDF]"] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-polyhedra/requirements-editable.txt.m4 b/pkgs/sagemath-polyhedra/requirements-editable.txt.m4 new file mode 100644 index 00000000000..aabc12d9af2 --- /dev/null +++ b/pkgs/sagemath-polyhedra/requirements-editable.txt.m4 @@ -0,0 +1,15 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires (+ their install-requires) +dnl FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_ipython +SPKG_INSTALL_REQUIRES_ipywidgets +-e ../sagemath-environment +-e ../sagemath-categories +-e ../sagemath-glpk +-e ../sagemath-modules +-e ../sagemath-mpmath +dnl To be added when ready for editable: +-e ../sagemath-objects diff --git a/pkgs/sagemath-polyhedra/requirements.txt.m4 b/pkgs/sagemath-polyhedra/requirements.txt.m4 new file mode 100644 index 00000000000..d145756dfd1 --- /dev/null +++ b/pkgs/sagemath-polyhedra/requirements.txt.m4 @@ -0,0 +1,3 @@ +dnl Include all from sagemath-categories (via m4 include) +include(`../sagemath_categories/src/requirements.txt.m4') +pplpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)') diff --git a/pkgs/sagemath-polyhedra/sage b/pkgs/sagemath-polyhedra/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-polyhedra/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-polyhedra/sage-cython-native-file.ini b/pkgs/sagemath-polyhedra/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-polyhedra/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-polyhedra/setup.py b/pkgs/sagemath-polyhedra/setup.py new file mode 100644 index 00000000000..34e5d277054 --- /dev/null +++ b/pkgs/sagemath-polyhedra/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-polyhedra']) diff --git a/pkgs/sagemath-polyhedra/tox.ini b/pkgs/sagemath-polyhedra/tox.ini new file mode 100644 index 00000000000..4834f78340e --- /dev/null +++ b/pkgs/sagemath-polyhedra/tox.ini @@ -0,0 +1,135 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_polyhedra-build-deps && ./sage -sh -c '(cd pkgs/sagemath-polyhedra && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-polyhedra/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + sagepython-sagewheels-nopypi-norequirements-standard + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + standard: _STANDARD=--standard + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures{env:_STANDARD:}.json +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.cpython.builtin_types, sage.cpython.cython_metaclass, sage.cpython.debug, sage.structure.all, sage.categories.all, sage.geometry.polyhedron.all' + + # Test that importing sage.categories.all initializes categories + python -c 'import sys; "" in sys.path and sys.path.remove(""); from sage.categories.all import *; SimplicialComplexes(); FunctionFields()' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_polyhedra --probe all --baseline-stats-path=$KNOWN_TEST_FAILURES {posargs:--installed}' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-norequirements-standard] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi +extras = test, standard + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict + +[testenv:sagepython-sagewheels-nopypi-editable-standard] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict +extras = test, standard diff --git a/pkgs/sagemath-repl/MANIFEST.in b/pkgs/sagemath-repl/MANIFEST.in index ba331ec2931..f160c046d47 100644 --- a/pkgs/sagemath-repl/MANIFEST.in +++ b/pkgs/sagemath-repl/MANIFEST.in @@ -2,11 +2,23 @@ prune sage graft sage/doctest graft sage/repl +graft sage/tests + include sage/misc/banner.py include sage/misc/sagedoc.py include sage/misc/sage_input.py include sage/misc/sage_eval.py +include sage/misc/explain_pickle.py +include sage/misc/trace.py +include sage/misc/profiler.py +include sage/misc/dev_tools.py +include sage/misc/edit_module.py +include sage/misc/pager.py + +include sage/misc/cython.py +include sage/misc/inline_fortran.py + include VERSION.txt global-exclude all__*.py diff --git a/pkgs/sagemath-repl/README.rst b/pkgs/sagemath-repl/README.rst index 53c3ac0e2de..def2b5438f1 100644 --- a/pkgs/sagemath-repl/README.rst +++ b/pkgs/sagemath-repl/README.rst @@ -28,3 +28,11 @@ distribution of a small part of the Sage Library. It provides a small, fundamental subset of the modules of the Sage library ("sagelib", `sagemath-standard`), providing the IPython kernel, Sage preparser, and doctester. + + +What is included +---------------- + +* `Doctesting Framework `_ + +* `The Sage REPL `_ diff --git a/pkgs/sagemath-repl/known-test-failures.json b/pkgs/sagemath-repl/known-test-failures.json index 6703c0a50cf..69a41acbe01 100644 --- a/pkgs/sagemath-repl/known-test-failures.json +++ b/pkgs/sagemath-repl/known-test-failures.json @@ -1,22 +1,17 @@ { - "sage.doctest.control": { - "failed": true, - "ntests": 0 - }, "sage.doctest.external": { - "ntests": 41 + "ntests": 40 }, "sage.doctest.fixtures": { - "failed": true, - "ntests": 59 + "ntests": 58 }, "sage.doctest.forker": { "failed": true, - "ntests": 432 + "ntests": 385 }, "sage.doctest.parsing": { "failed": true, - "ntests": 316 + "ntests": 296 }, "sage.doctest.reporting": { "failed": true, @@ -30,8 +25,7 @@ "ntests": 23 }, "sage.doctest.util": { - "failed": true, - "ntests": 141 + "ntests": 138 }, "sage.misc.sage_eval": { "failed": true, @@ -52,8 +46,7 @@ "ntests": 24 }, "sage.repl.display.formatter": { - "failed": true, - "ntests": 47 + "ntests": 46 }, "sage.repl.display.jsmol_iframe": { "ntests": 24 @@ -65,10 +58,6 @@ "sage.repl.display.util": { "ntests": 6 }, - "sage.repl.image": { - "failed": true, - "ntests": 42 - }, "sage.repl.inputhook": { "ntests": 7 }, @@ -113,7 +102,7 @@ }, "sage.repl.preparse": { "failed": true, - "ntests": 343 + "ntests": 341 }, "sage.repl.rich_output.backend_base": { "failed": true, @@ -126,7 +115,6 @@ "ntests": 15 }, "sage.repl.rich_output.backend_ipython": { - "failed": true, "ntests": 75 }, "sage.repl.rich_output.buffer": { diff --git a/pkgs/sagemath-repl/pyproject.toml.m4 b/pkgs/sagemath-repl/pyproject.toml.m4 index 459a599f1fb..ed4ca23eef2 100644 --- a/pkgs/sagemath-repl/pyproject.toml.m4 +++ b/pkgs/sagemath-repl/pyproject.toml.m4 @@ -3,7 +3,6 @@ include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- # Minimum requirements for the build system to execute. requires = [ SPKG_INSTALL_REQUIRES_setuptools - SPKG_INSTALL_REQUIRES_wheel ] build-backend = "setuptools.build_meta" @@ -39,6 +38,14 @@ py-modules = [ "sage.misc.sagedoc", "sage.misc.sage_input", "sage.misc.sage_eval", + "sage.misc.explain_pickle", + "sage.misc.trace", + "sage.misc.profiler", + "sage.misc.dev_tools", + "sage.misc.edit_module", + "sage.misc.pager", + "sage.misc.cython", + "sage.misc.inline_fortran", ] packages = [ "sage.doctest", @@ -46,6 +53,7 @@ packages = [ "sage.repl.display", "sage.repl.ipython_kernel", "sage.repl.rich_output", + "sage.tests", ] script-files = [ # Other scripts that should be in the path also for OS packaging of sage: diff --git a/pkgs/sagemath-schemes/MANIFEST.in.m4 b/pkgs/sagemath-schemes/MANIFEST.in.m4 new file mode 100644 index 00000000000..fc3111066bd --- /dev/null +++ b/pkgs/sagemath-schemes/MANIFEST.in.m4 @@ -0,0 +1,40 @@ +dnl MANIFEST.in is generated from this file by SAGE_ROOT/bootstrap via m4. +prune sage + +include VERSION.txt + +exclude *.m4 +include requirements.txt + +graft sage/schemes +graft sage/modular +graft sage/dynamics/arithmetic_dynamics +# Included in sagemath-categories +prune sage/schemes/affine +prune sage/schemes/projective +prune sage/schemes/generic +prune sage/schemes/product_projective +# in sagemath-polyhedra +prune sage/schemes/toric +# Has compile-time dependencies on sagemath-ntl +exclude sage/schemes/hyperelliptic_curves/hypellfrob.pyx +# Has compile-time dependencies on flint +exclude sage/modular/modform/eis_series_cython.p* +exclude sage/modular/modsym/apply.p* +exclude sage/modular/modsym/heilbronn.p* +exclude sage/modular/pollack_stevens/dist.p* +exclude sage/schemes/elliptic_curves/descent_two_isogeny.p* +#exclude sage/modular/arithgroup/arithgroup_element.pyx # via Matrix_integer_dense +#exclude sage/modular/arithgroup/congroup.pyx # via Matrix_integer_dense + +global-exclude all__sagemath_*.* +global-include all__sagemath_schemes.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-schemes/README.rst b/pkgs/sagemath-schemes/README.rst new file mode 100644 index 00000000000..12bc0b4752d --- /dev/null +++ b/pkgs/sagemath-schemes/README.rst @@ -0,0 +1,53 @@ +============================================================================================================================================= + Sage: Open Source Mathematics Software: Schemes, varieties, elliptic curves, algebraic Riemann surfaces, modular forms, arithmetic dynamics +============================================================================================================================================= + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via Sage-the-distribution (https://www.sagemath.org/download-source.html). Sage-the-distribution first builds a large number of open source packages from source (unless it finds suitable versions installed in the system) and then installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this experimental pip-installable source distribution +----------------------------------------------------------- + +This pip-installable source distribution `sagemath-schemes` is an experimental distribution of a part of the Sage Library. Use at your own risk. It provides a small subset of the modules of the Sage library ("sagelib", `sagemath-standard`). + + +What is included +---------------- + +* `Ideals and Varieties `_ + +* `Schemes `_ + +* `Plane and Space Curves `_ + +* `Elliptic and Hyperelliptic Curves `_ + +* `Modular Forms `_ + +* `Modular Symbols `_ + +* `Modular Abelian Varieties `_ + +* `Arithmetic Dynamical Systems `_ + + +Status +------ + +The wheel builds. Some Cython modules that depend on FLINT or NTL are excluded. + +`sage.all__sagemath_schemes` can be imported. + +Many tests fail; see ``known-test-failures.json``. diff --git a/pkgs/sagemath-schemes/VERSION.txt b/pkgs/sagemath-schemes/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-schemes/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-schemes/known-test-failures--ntl.json b/pkgs/sagemath-schemes/known-test-failures--ntl.json new file mode 100644 index 00000000000..813ef8f88f1 --- /dev/null +++ b/pkgs/sagemath-schemes/known-test-failures--ntl.json @@ -0,0 +1,4507 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_ideal": { + "ntests": 36 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.fusion_rings.f_matrix": { + "failed": true, + "ntests": 355 + }, + "sage.algebras.fusion_rings.fast_parallel_fmats_methods": { + "failed": true, + "ntests": 50 + }, + "sage.algebras.fusion_rings.fast_parallel_fusion_ring_braid_repn": { + "failed": true, + "ntests": 16 + }, + "sage.algebras.fusion_rings.fusion_double": { + "failed": true, + "ntests": 105 + }, + "sage.algebras.fusion_rings.fusion_ring": { + "failed": true, + "ntests": 210 + }, + "sage.algebras.fusion_rings.poly_tup_engine": { + "failed": true, + "ntests": 87 + }, + "sage.algebras.fusion_rings.shm_managers": { + "failed": true, + "ntests": 138 + }, + "sage.algebras.letterplace.free_algebra_element_letterplace": { + "failed": true, + "ntests": 119 + }, + "sage.algebras.letterplace.free_algebra_letterplace": { + "failed": true, + "ntests": 134 + }, + "sage.algebras.letterplace.letterplace_ideal": { + "failed": true, + "ntests": 54 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "ntests": 72 + }, + "sage.algebras.orlik_terao": { + "ntests": 80 + }, + "sage.algebras.quatalg.quaternion_algebra": { + "failed": true, + "ntests": 443 + }, + "sage.algebras.quatalg.quaternion_algebra_cython": { + "failed": true, + "ntests": 10 + }, + "sage.algebras.quatalg.quaternion_algebra_element": { + "failed": true, + "ntests": 255 + }, + "sage.algebras.weyl_algebra": { + "ntests": 4 + }, + "sage.all__sagemath_flint": { + "failed": true, + "ntests": 5 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.all__sagemath_pari": { + "ntests": 3 + }, + "sage.all__sagemath_schemes": { + "ntests": 3 + }, + "sage.arith.functions": { + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 1060 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 54 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.riemann": { + "ntests": 13 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 110 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "ntests": 66 + }, + "sage.categories.action": { + "failed": true, + "ntests": 107 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "failed": true, + "ntests": 161 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 5 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 3 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 26 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 21 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "failed": true, + "ntests": 57 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "ntests": 362 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "failed": true, + "ntests": 228 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_cat": { + "ntests": 155 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 132 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 90 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 99 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 39 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 108 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "failed": true, + "ntests": 137 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 48 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "failed": true, + "ntests": 20 + }, + "sage.categories.homset": { + "failed": true, + "ntests": 222 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 380 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 145 + }, + "sage.categories.modules_with_basis": { + "failed": true, + "ntests": 488 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 85 + }, + "sage.categories.morphism": { + "ntests": 104 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.primer": { + "ntests": 163 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 786 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 119 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "failed": true, + "ntests": 166 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 106 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 432 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 54 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 38 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.abstract_code": { + "ntests": 136 + }, + "sage.coding.ag_code": { + "failed": true, + "ntests": 264 + }, + "sage.coding.ag_code_decoders": { + "failed": true, + "ntests": 543 + }, + "sage.coding.bch_code": { + "failed": true, + "ntests": 82 + }, + "sage.coding.binary_code": { + "ntests": 337 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channel": { + "ntests": 116 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 47 + }, + "sage.coding.code_constructions": { + "failed": true, + "ntests": 148 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "failed": true, + "ntests": 274 + }, + "sage.coding.databases": { + "ntests": 3 + }, + "sage.coding.decoder": { + "ntests": 62 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 2 + }, + "sage.coding.encoder": { + "ntests": 72 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.extended_code": { + "ntests": 81 + }, + "sage.coding.gabidulin_code": { + "failed": true, + "ntests": 235 + }, + "sage.coding.golay_code": { + "ntests": 48 + }, + "sage.coding.goppa_code": { + "failed": true, + "ntests": 115 + }, + "sage.coding.grs_code": { + "failed": true, + "ntests": 530 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.interpolation": { + "failed": true, + "ntests": 47 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 19 + }, + "sage.coding.hamming_code": { + "ntests": 18 + }, + "sage.coding.information_set_decoder": { + "ntests": 172 + }, + "sage.coding.kasami_codes": { + "failed": true, + "ntests": 45 + }, + "sage.coding.linear_code": { + "failed": true, + "ntests": 362 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 232 + }, + "sage.coding.linear_rank_metric": { + "ntests": 138 + }, + "sage.coding.parity_check_code": { + "ntests": 48 + }, + "sage.coding.punctured_code": { + "failed": true, + "ntests": 111 + }, + "sage.coding.reed_muller_code": { + "ntests": 168 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.coding.subfield_subcode": { + "failed": true, + "ntests": 65 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 416 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.free_module": { + "ntests": 403 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.permutation": { + "failed": true, + "ntests": 1214 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 55 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 402 + }, + "sage.combinat.root_system.coxeter_group": { + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.hecke_algebra_representation": { + "ntests": 1 + }, + "sage.combinat.root_system.integrable_representations": { + "ntests": 5 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "ntests": 25 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 284 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 488 + }, + "sage.combinat.root_system.root_space": { + "ntests": 72 + }, + "sage.combinat.root_system.root_system": { + "ntests": 117 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 19 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 67 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 31 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 130 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.block_cipher.des": { + "ntests": 156 + }, + "sage.crypto.block_cipher.present": { + "ntests": 138 + }, + "sage.crypto.boolean_function": { + "failed": true, + "ntests": 206 + }, + "sage.crypto.classical": { + "ntests": 13 + }, + "sage.crypto.classical_cipher": { + "ntests": 2 + }, + "sage.crypto.cryptosystem": { + "ntests": 14 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 18 + }, + "sage.crypto.lfsr": { + "ntests": 29 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "failed": true, + "ntests": 342 + }, + "sage.crypto.mq.sr": { + "failed": true, + "ntests": 355 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 6 + }, + "sage.crypto.sbox": { + "failed": true, + "ntests": 268 + }, + "sage.crypto.sboxes": { + "failed": true, + "ntests": 27 + }, + "sage.data_structures.bitset": { + "ntests": 431 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.bounded_integer_sequences": { + "ntests": 261 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 314 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.dynamics.arithmetic_dynamics.affine_ds": { + "failed": true, + "ntests": 183 + }, + "sage.dynamics.arithmetic_dynamics.berkovich_ds": { + "failed": true, + "ntests": 123 + }, + "sage.dynamics.arithmetic_dynamics.dynamical_semigroup": { + "failed": true, + "ntests": 0 + }, + "sage.dynamics.arithmetic_dynamics.endPN_automorphism_group": { + "failed": true, + "ntests": 137 + }, + "sage.dynamics.arithmetic_dynamics.endPN_minimal_model": { + "failed": true, + "ntests": 64 + }, + "sage.dynamics.arithmetic_dynamics.generic_ds": { + "failed": true, + "ntests": 79 + }, + "sage.dynamics.arithmetic_dynamics.product_projective_ds": { + "ntests": 37 + }, + "sage.dynamics.arithmetic_dynamics.projective_ds": { + "failed": true, + "ntests": 1467 + }, + "sage.dynamics.arithmetic_dynamics.projective_ds_helper": { + "ntests": 26 + }, + "sage.dynamics.arithmetic_dynamics.wehlerK3": { + "failed": true, + "ntests": 346 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.ext.memory": { + "ntests": 3 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 179 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 91 + }, + "sage.functions.bessel": { + "ntests": 171 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 162 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 141 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 77 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 174 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 252 + }, + "sage.functions.other": { + "failed": true, + "ntests": 246 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 64 + }, + "sage.functions.trig": { + "ntests": 132 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.graphs.matchpoly": { + "ntests": 3 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 270 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 23 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 1 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 55 + }, + "sage.groups.abelian_gps.values": { + "ntests": 65 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "failed": true, + "ntests": 126 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 92 + }, + "sage.groups.galois_group": { + "ntests": 58 + }, + "sage.groups.generic": { + "failed": true, + "ntests": 192 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.matrix_gps.coxeter_group": { + "ntests": 10 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 47 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 33 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 24 + }, + "sage.groups.matrix_gps.matrix_group": { + "failed": true, + "ntests": 45 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 21 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 43 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 38 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_binary": { + "ntests": 75 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 251 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 87 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.homology_group": { + "failed": true, + "ntests": 0 + }, + "sage.homology.homology_vector_space_with_basis": { + "ntests": 6 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "failed": true, + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.gp": { + "failed": true, + "ntests": 148 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 1 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.libs.arb.arb_version": { + "ntests": 2 + }, + "sage.libs.arb.arith": { + "ntests": 8 + }, + "sage.libs.flint.arith": { + "ntests": 44 + }, + "sage.libs.flint.flint": { + "ntests": 6 + }, + "sage.libs.flint.fmpz_poly": { + "ntests": 84 + }, + "sage.libs.flint.nmod_poly_linkage.pxi": { + "ntests": 196 + }, + "sage.libs.flint.qsieve": { + "ntests": 4 + }, + "sage.libs.flint.ulong_extras": { + "ntests": 3 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.libs.ntl.error": { + "ntests": 4 + }, + "sage.libs.ntl.ntl_GF2": { + "ntests": 50 + }, + "sage.libs.ntl.ntl_GF2E": { + "failed": true, + "ntests": 70 + }, + "sage.libs.ntl.ntl_GF2EContext": { + "failed": true, + "ntests": 20 + }, + "sage.libs.ntl.ntl_GF2EX": { + "failed": true, + "ntests": 31 + }, + "sage.libs.ntl.ntl_GF2X": { + "failed": true, + "ntests": 112 + }, + "sage.libs.ntl.ntl_GF2X_linkage.pxi": { + "ntests": 86 + }, + "sage.libs.ntl.ntl_ZZ": { + "ntests": 76 + }, + "sage.libs.ntl.ntl_ZZX": { + "ntests": 223 + }, + "sage.libs.ntl.ntl_ZZ_p": { + "ntests": 68 + }, + "sage.libs.ntl.ntl_ZZ_pContext": { + "ntests": 34 + }, + "sage.libs.ntl.ntl_ZZ_pE": { + "ntests": 27 + }, + "sage.libs.ntl.ntl_ZZ_pEContext": { + "ntests": 29 + }, + "sage.libs.ntl.ntl_ZZ_pEX": { + "ntests": 304 + }, + "sage.libs.ntl.ntl_ZZ_pEX_linkage.pxi": { + "ntests": 80 + }, + "sage.libs.ntl.ntl_ZZ_pX": { + "ntests": 264 + }, + "sage.libs.ntl.ntl_lzz_p": { + "ntests": 48 + }, + "sage.libs.ntl.ntl_lzz_pContext": { + "ntests": 21 + }, + "sage.libs.ntl.ntl_lzz_pX": { + "ntests": 142 + }, + "sage.libs.ntl.ntl_mat_GF2": { + "ntests": 107 + }, + "sage.libs.ntl.ntl_mat_GF2E": { + "failed": true, + "ntests": 132 + }, + "sage.libs.ntl.ntl_mat_ZZ": { + "failed": true, + "ntests": 119 + }, + "sage.libs.pari": { + "ntests": 33 + }, + "sage.libs.pari.convert_flint": { + "ntests": 2 + }, + "sage.libs.pari.convert_gmp": { + "ntests": 16 + }, + "sage.libs.pari.convert_sage": { + "ntests": 86 + }, + "sage.libs.pari.convert_sage_complex_double": { + "ntests": 22 + }, + "sage.libs.pari.convert_sage_matrix": { + "ntests": 19 + }, + "sage.libs.pari.convert_sage_real_double": { + "ntests": 2 + }, + "sage.libs.pari.convert_sage_real_mpfr": { + "ntests": 7 + }, + "sage.libs.pari.tests": { + "failed": true, + "ntests": 705 + }, + "sage.libs.singular.function": { + "failed": true, + "ntests": 310 + }, + "sage.libs.singular.function_factory": { + "failed": true, + "ntests": 8 + }, + "sage.libs.singular.groebner_strategy": { + "failed": true, + "ntests": 135 + }, + "sage.libs.singular.option": { + "failed": true, + "ntests": 122 + }, + "sage.libs.singular.polynomial": { + "failed": true, + "ntests": 0 + }, + "sage.libs.singular.ring": { + "failed": true, + "ntests": 101 + }, + "sage.libs.singular.singular": { + "failed": true, + "ntests": 171 + }, + "sage.libs.singular.standard_options": { + "failed": true, + "ntests": 48 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 151 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.compute_J_ideal": { + "failed": true, + "ntests": 99 + }, + "sage.matrix.constructor": { + "failed": true, + "ntests": 151 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 800 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 440 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 2147 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_ball_dense": { + "ntests": 118 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 7 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "ntests": 456 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 24 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_modn_dense_template.pxi": { + "failed": true, + "ntests": 0 + }, + "sage.matrix.matrix_mpolynomial_dense": { + "failed": true, + "ntests": 77 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 64 + }, + "sage.matrix.matrix_numpy_integer_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_polynomial_dense": { + "ntests": 436 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 13 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 429 + }, + "sage.matrix.matrix_sparse": { + "ntests": 164 + }, + "sage.matrix.misc_flint": { + "failed": true, + "ntests": 5 + }, + "sage.matrix.misc_mpfr": { + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 90 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 451 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 181 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 129 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.graphic_matroid": { + "ntests": 4 + }, + "sage.matroids.lean_matrix": { + "ntests": 288 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 639 + }, + "sage.matroids.matroid": { + "ntests": 858 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 73 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 64 + }, + "sage.matroids.utilities": { + "ntests": 58 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 150 + }, + "sage.misc.cachefunc": { + "failed": true, + "ntests": 688 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 40 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 325 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "failed": true, + "ntests": 18 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 243 + }, + "sage.misc.latex_macros": { + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 237 + }, + "sage.misc.lazy_string": { + "ntests": 137 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 149 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 36 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "failed": true, + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, + "sage.misc.sage_eval": { + "ntests": 35 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 281 + }, + "sage.modular.abvar.abvar": { + "failed": true, + "ntests": 0 + }, + "sage.modular.abvar.abvar_ambient_jacobian": { + "failed": true, + "ntests": 53 + }, + "sage.modular.abvar.abvar_newform": { + "failed": true, + "ntests": 32 + }, + "sage.modular.abvar.constructor": { + "failed": true, + "ntests": 15 + }, + "sage.modular.abvar.cuspidal_subgroup": { + "failed": true, + "ntests": 66 + }, + "sage.modular.abvar.finite_subgroup": { + "failed": true, + "ntests": 151 + }, + "sage.modular.abvar.homology": { + "failed": true, + "ntests": 95 + }, + "sage.modular.abvar.homspace": { + "failed": true, + "ntests": 116 + }, + "sage.modular.abvar.lseries": { + "failed": true, + "ntests": 57 + }, + "sage.modular.abvar.morphism": { + "failed": true, + "ntests": 167 + }, + "sage.modular.abvar.torsion_subgroup": { + "failed": true, + "ntests": 85 + }, + "sage.modular.arithgroup.arithgroup_element": { + "failed": true, + "ntests": 66 + }, + "sage.modular.arithgroup.arithgroup_generic": { + "failed": true, + "ntests": 155 + }, + "sage.modular.arithgroup.congroup": { + "ntests": 9 + }, + "sage.modular.arithgroup.congroup_gamma": { + "ntests": 45 + }, + "sage.modular.arithgroup.congroup_gamma0": { + "failed": true, + "ntests": 95 + }, + "sage.modular.arithgroup.congroup_gamma1": { + "failed": true, + "ntests": 80 + }, + "sage.modular.arithgroup.congroup_gammaH": { + "failed": true, + "ntests": 158 + }, + "sage.modular.arithgroup.congroup_sl2z": { + "ntests": 32 + }, + "sage.modular.arithgroup.farey_symbol": { + "failed": true, + "ntests": 89 + }, + "sage.modular.btquotients.btquotient": { + "failed": true, + "ntests": 374 + }, + "sage.modular.btquotients.pautomorphicform": { + "failed": true, + "ntests": 375 + }, + "sage.modular.buzzard": { + "failed": true, + "ntests": 9 + }, + "sage.modular.cusps": { + "failed": true, + "ntests": 149 + }, + "sage.modular.dims": { + "ntests": 95 + }, + "sage.modular.dirichlet": { + "failed": true, + "ntests": 566 + }, + "sage.modular.etaproducts": { + "failed": true, + "ntests": 102 + }, + "sage.modular.hecke.algebra": { + "failed": true, + "ntests": 88 + }, + "sage.modular.hecke.ambient_module": { + "failed": true, + "ntests": 94 + }, + "sage.modular.hecke.degenmap": { + "failed": true, + "ntests": 15 + }, + "sage.modular.hecke.element": { + "failed": true, + "ntests": 48 + }, + "sage.modular.hecke.hecke_operator": { + "failed": true, + "ntests": 125 + }, + "sage.modular.hecke.homspace": { + "failed": true, + "ntests": 24 + }, + "sage.modular.hecke.module": { + "failed": true, + "ntests": 193 + }, + "sage.modular.hecke.morphism": { + "failed": true, + "ntests": 19 + }, + "sage.modular.hecke.submodule": { + "failed": true, + "ntests": 141 + }, + "sage.modular.hypergeometric_misc": { + "failed": true, + "ntests": 11 + }, + "sage.modular.hypergeometric_motive": { + "failed": true, + "ntests": 258 + }, + "sage.modular.local_comp.liftings": { + "failed": true, + "ntests": 48 + }, + "sage.modular.local_comp.local_comp": { + "failed": true, + "ntests": 101 + }, + "sage.modular.local_comp.type_space": { + "failed": true, + "ntests": 90 + }, + "sage.modular.modform.ambient": { + "failed": true, + "ntests": 113 + }, + "sage.modular.modform.ambient_R": { + "failed": true, + "ntests": 12 + }, + "sage.modular.modform.ambient_g0": { + "failed": true, + "ntests": 13 + }, + "sage.modular.modform.ambient_g1": { + "failed": true, + "ntests": 25 + }, + "sage.modular.modform.constructor": { + "failed": true, + "ntests": 54 + }, + "sage.modular.modform.cuspidal_submodule": { + "failed": true, + "ntests": 56 + }, + "sage.modular.modform.eis_series": { + "failed": true, + "ntests": 38 + }, + "sage.modular.modform.eisenstein_submodule": { + "failed": true, + "ntests": 89 + }, + "sage.modular.modform.element": { + "failed": true, + "ntests": 624 + }, + "sage.modular.modform.find_generators": { + "failed": true, + "ntests": 9 + }, + "sage.modular.modform.half_integral": { + "failed": true, + "ntests": 7 + }, + "sage.modular.modform.hecke_operator_on_qexp": { + "failed": true, + "ntests": 29 + }, + "sage.modular.modform.j_invariant": { + "failed": true, + "ntests": 3 + }, + "sage.modular.modform.l_series_gross_zagier": { + "failed": true, + "ntests": 25 + }, + "sage.modular.modform.l_series_gross_zagier_coeffs": { + "failed": true, + "ntests": 20 + }, + "sage.modular.modform.numerical": { + "failed": true, + "ntests": 46 + }, + "sage.modular.modform.ring": { + "failed": true, + "ntests": 146 + }, + "sage.modular.modform.space": { + "failed": true, + "ntests": 246 + }, + "sage.modular.modform.submodule": { + "ntests": 12 + }, + "sage.modular.modform.tests": { + "failed": true, + "ntests": 4 + }, + "sage.modular.modform.theta": { + "ntests": 15 + }, + "sage.modular.modform.vm_basis": { + "failed": true, + "ntests": 27 + }, + "sage.modular.modform.weight1": { + "failed": true, + "ntests": 10 + }, + "sage.modular.modform_hecketriangle.abstract_ring": { + "failed": true, + "ntests": 523 + }, + "sage.modular.modform_hecketriangle.analytic_type": { + "ntests": 6 + }, + "sage.modular.modform_hecketriangle.graded_ring_element": { + "ntests": 51 + }, + "sage.modular.modsym.ambient": { + "failed": true, + "ntests": 442 + }, + "sage.modular.modsym.boundary": { + "failed": true, + "ntests": 200 + }, + "sage.modular.modsym.element": { + "failed": true, + "ntests": 48 + }, + "sage.modular.modsym.g1list": { + "ntests": 21 + }, + "sage.modular.modsym.ghlist": { + "ntests": 23 + }, + "sage.modular.modsym.hecke_operator": { + "failed": true, + "ntests": 6 + }, + "sage.modular.modsym.manin_symbol": { + "failed": true, + "ntests": 111 + }, + "sage.modular.modsym.manin_symbol_list": { + "failed": true, + "ntests": 129 + }, + "sage.modular.modsym.modsym": { + "failed": true, + "ntests": 76 + }, + "sage.modular.modsym.modular_symbols": { + "failed": true, + "ntests": 65 + }, + "sage.modular.modsym.p1list": { + "ntests": 120 + }, + "sage.modular.modsym.relation_matrix": { + "failed": true, + "ntests": 29 + }, + "sage.modular.modsym.relation_matrix_pyx": { + "ntests": 4 + }, + "sage.modular.modsym.space": { + "failed": true, + "ntests": 312 + }, + "sage.modular.modsym.subspace": { + "failed": true, + "ntests": 57 + }, + "sage.modular.modsym.tests": { + "failed": true, + "ntests": 37 + }, + "sage.modular.overconvergent.genus0": { + "ntests": 1 + }, + "sage.modular.overconvergent.hecke_series": { + "failed": true, + "ntests": 76 + }, + "sage.modular.pollack_stevens.fund_domain": { + "failed": true, + "ntests": 174 + }, + "sage.modular.pollack_stevens.modsym": { + "failed": true, + "ntests": 243 + }, + "sage.modular.pollack_stevens.sigma0": { + "failed": true, + "ntests": 101 + }, + "sage.modular.quasimodform.element": { + "failed": true, + "ntests": 166 + }, + "sage.modular.quasimodform.ring": { + "failed": true, + "ntests": 152 + }, + "sage.modular.quatalg.brandt": { + "failed": true, + "ntests": 165 + }, + "sage.modular.ssmod.ssmod": { + "failed": true, + "ntests": 77 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 0 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 170 + }, + "sage.modules.finite_submodule_iter": { + "failed": true, + "ntests": 95 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1473 + }, + "sage.modules.free_module_element": { + "failed": true, + "ntests": 924 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 170 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 0 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 400 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "failed": true, + "ntests": 124 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 171 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 13 + }, + "sage.modules.vector_double_dense": { + "ntests": 96 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_modn_dense": { + "ntests": 69 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 45 + }, + "sage.modules.vector_numpy_integer_dense": { + "ntests": 5 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 12 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "failed": true, + "ntests": 157 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 161 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.optimize": { + "failed": true, + "ntests": 87 + }, + "sage.parallel.decorate": { + "ntests": 90 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 326 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.genera.genus": { + "failed": true, + "ntests": 529 + }, + "sage.quadratic_forms.qfsolve": { + "ntests": 38 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 196 + }, + "sage.quadratic_forms.quadratic_form__automorphisms": { + "ntests": 51 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 74 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__genus": { + "ntests": 10 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_density_interfaces": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "ntests": 143 + }, + "sage.quadratic_forms.quadratic_form__local_normal_form": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__mass": { + "ntests": 4 + }, + "sage.quadratic_forms.quadratic_form__mass__Conway_Sloane_masses": { + "ntests": 59 + }, + "sage.quadratic_forms.quadratic_form__mass__Siegel_densities": { + "ntests": 14 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "failed": true, + "ntests": 32 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__siegel_product": { + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 99 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.special_values": { + "ntests": 21 + }, + "sage.quadratic_forms.ternary": { + "ntests": 105 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 306 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 88 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "failed": true, + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.algebraic_closure_finite_field": { + "failed": true, + "ntests": 213 + }, + "sage.rings.bernmm": { + "ntests": 25 + }, + "sage.rings.bernoulli_mod_p": { + "ntests": 26 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_arb": { + "failed": true, + "ntests": 653 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "ntests": 339 + }, + "sage.rings.complex_interval": { + "ntests": 266 + }, + "sage.rings.complex_interval_field": { + "ntests": 131 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 520 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 295 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.derivation": { + "ntests": 405 + }, + "sage.rings.factorint": { + "ntests": 26 + }, + "sage.rings.factorint_flint": { + "ntests": 10 + }, + "sage.rings.factorint_pari": { + "ntests": 3 + }, + "sage.rings.fast_arith": { + "ntests": 20 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 57 + }, + "sage.rings.finite_rings.element_base": { + "failed": true, + "ntests": 233 + }, + "sage.rings.finite_rings.element_ntl_gf2e": { + "failed": true, + "ntests": 176 + }, + "sage.rings.finite_rings.element_pari_ffelt": { + "failed": true, + "ntests": 276 + }, + "sage.rings.finite_rings.finite_field_base": { + "failed": true, + "ntests": 325 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "failed": true, + "ntests": 124 + }, + "sage.rings.finite_rings.finite_field_ntl_gf2e": { + "failed": true, + "ntests": 61 + }, + "sage.rings.finite_rings.finite_field_pari_ffelt": { + "failed": true, + "ntests": 41 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 38 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 20 + }, + "sage.rings.finite_rings.hom_finite_field": { + "failed": true, + "ntests": 192 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 21 + }, + "sage.rings.finite_rings.homset": { + "failed": true, + "ntests": 67 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 580 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 255 + }, + "sage.rings.finite_rings.maps_finite_field": { + "ntests": 31 + }, + "sage.rings.finite_rings.residue_field": { + "failed": true, + "ntests": 144 + }, + "sage.rings.finite_rings.residue_field_ntl_gf2e": { + "ntests": 14 + }, + "sage.rings.finite_rings.residue_field_pari_ffelt": { + "ntests": 8 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 248 + }, + "sage.rings.fraction_field_FpT": { + "ntests": 369 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 271 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_polymod": { + "failed": true, + "ntests": 161 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 108 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 83 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 159 + }, + "sage.rings.function_field.function_field_rational": { + "failed": true, + "ntests": 148 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 136 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 150 + }, + "sage.rings.function_field.maps": { + "ntests": 59 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "failed": true, + "ntests": 106 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "failed": true, + "ntests": 30 + }, + "sage.rings.function_field.valuation": { + "failed": true, + "ntests": 271 + }, + "sage.rings.generic": { + "ntests": 69 + }, + "sage.rings.homset": { + "ntests": 44 + }, + "sage.rings.ideal": { + "ntests": 361 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1171 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 224 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 883 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 160 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 397 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 175 + }, + "sage.rings.monomials": { + "ntests": 5 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 547 + }, + "sage.rings.multi_power_series_ring": { + "failed": true, + "ntests": 230 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 437 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.class_group": { + "ntests": 239 + }, + "sage.rings.number_field.galois_group": { + "ntests": 2 + }, + "sage.rings.number_field.homset": { + "ntests": 131 + }, + "sage.rings.number_field.maps": { + "ntests": 196 + }, + "sage.rings.number_field.morphism": { + "ntests": 42 + }, + "sage.rings.number_field.number_field": { + "ntests": 47 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element": { + "ntests": 31 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_element_quadratic": { + "ntests": 15 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 5 + }, + "sage.rings.number_field.number_field_ideal_rel": { + "failed": true, + "ntests": 259 + }, + "sage.rings.number_field.number_field_morphisms": { + "ntests": 2 + }, + "sage.rings.number_field.number_field_rel": { + "ntests": 600 + }, + "sage.rings.number_field.order": { + "ntests": 6 + }, + "sage.rings.number_field.selmer_group": { + "ntests": 93 + }, + "sage.rings.number_field.small_primes_of_degree_one": { + "ntests": 41 + }, + "sage.rings.number_field.splitting_field": { + "ntests": 73 + }, + "sage.rings.number_field.totallyreal": { + "ntests": 17 + }, + "sage.rings.number_field.totallyreal_data": { + "ntests": 24 + }, + "sage.rings.number_field.totallyreal_phc": { + "ntests": 3 + }, + "sage.rings.number_field.totallyreal_rel": { + "ntests": 1 + }, + "sage.rings.number_field.unit_group": { + "ntests": 172 + }, + "sage.rings.padics.CA_template.pxi": { + "failed": true, + "ntests": 309 + }, + "sage.rings.padics.CR_template.pxi": { + "failed": true, + "ntests": 431 + }, + "sage.rings.padics.FM_template.pxi": { + "failed": true, + "ntests": 277 + }, + "sage.rings.padics.FP_template.pxi": { + "failed": true, + "ntests": 340 + }, + "sage.rings.padics.eisenstein_extension_generic": { + "ntests": 41 + }, + "sage.rings.padics.factory": { + "failed": true, + "ntests": 559 + }, + "sage.rings.padics.generic_nodes": { + "ntests": 254 + }, + "sage.rings.padics.lattice_precision": { + "failed": true, + "ntests": 456 + }, + "sage.rings.padics.local_generic": { + "ntests": 4 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 1 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.morphism": { + "ntests": 66 + }, + "sage.rings.padics.padic_ZZ_pX_CA_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_ZZ_pX_FM_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_ZZ_pX_element": { + "ntests": 10 + }, + "sage.rings.padics.padic_base_generic": { + "ntests": 44 + }, + "sage.rings.padics.padic_base_leaves": { + "ntests": 185 + }, + "sage.rings.padics.padic_extension_generic": { + "failed": true, + "ntests": 208 + }, + "sage.rings.padics.padic_extension_leaves": { + "failed": true, + "ntests": 72 + }, + "sage.rings.padics.padic_generic": { + "ntests": 5 + }, + "sage.rings.padics.padic_generic_element": { + "failed": true, + "ntests": 816 + }, + "sage.rings.padics.padic_lattice_element": { + "ntests": 269 + }, + "sage.rings.padics.padic_printing": { + "failed": true, + "ntests": 108 + }, + "sage.rings.padics.padic_relaxed_errors": { + "ntests": 5 + }, + "sage.rings.padics.padic_template_element.pxi": { + "failed": true, + "ntests": 141 + }, + "sage.rings.padics.padic_valuation": { + "ntests": 148 + }, + "sage.rings.padics.pow_computer": { + "ntests": 88 + }, + "sage.rings.padics.pow_computer_flint": { + "ntests": 76 + }, + "sage.rings.padics.pow_computer_relative": { + "failed": true, + "ntests": 97 + }, + "sage.rings.padics.qadic_flint_CA": { + "failed": true, + "ntests": 19 + }, + "sage.rings.padics.qadic_flint_CR": { + "failed": true, + "ntests": 23 + }, + "sage.rings.padics.qadic_flint_FM": { + "failed": true, + "ntests": 17 + }, + "sage.rings.padics.qadic_flint_FP": { + "failed": true, + "ntests": 22 + }, + "sage.rings.padics.relative_extension_leaves": { + "failed": true, + "ntests": 87 + }, + "sage.rings.padics.relative_ramified_CA": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_CR": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FM": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FP": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relaxed_template.pxi": { + "ntests": 509 + }, + "sage.rings.padics.tests": { + "ntests": 12 + }, + "sage.rings.padics.tutorial": { + "failed": true, + "ntests": 45 + }, + "sage.rings.padics.unramified_extension_generic": { + "failed": true, + "ntests": 33 + }, + "sage.rings.pari_ring": { + "ntests": 46 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.complex_roots": { + "ntests": 42 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 37 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.hilbert": { + "failed": true, + "ntests": 8 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 402 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 339 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 87 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 529 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true, + "ntests": 297 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 58 + }, + "sage.rings.polynomial.multi_polynomial_ideal_libsingular": { + "failed": true, + "ntests": 25 + }, + "sage.rings.polynomial.multi_polynomial_libsingular": { + "failed": true, + "ntests": 1131 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 232 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.ore_function_element": { + "failed": true, + "ntests": 243 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 231 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 1 + }, + "sage.rings.polynomial.padics.polynomial_padic": { + "failed": true, + "ntests": 69 + }, + "sage.rings.polynomial.padics.polynomial_padic_capped_relative_dense": { + "ntests": 150 + }, + "sage.rings.polynomial.padics.polynomial_padic_flat": { + "ntests": 3 + }, + "sage.rings.polynomial.plural": { + "failed": true, + "ntests": 621 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_complex_arb": { + "ntests": 144 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 2299 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 203 + }, + "sage.rings.polynomial.polynomial_integer_dense_flint": { + "ntests": 306 + }, + "sage.rings.polynomial.polynomial_integer_dense_ntl": { + "ntests": 188 + }, + "sage.rings.polynomial.polynomial_modn_dense_ntl": { + "failed": true, + "ntests": 331 + }, + "sage.rings.polynomial.polynomial_number_field": { + "failed": true, + "ntests": 75 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "failed": true, + "ntests": 349 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_rational_flint": { + "failed": true, + "ntests": 394 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring": { + "failed": true, + "ntests": 508 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 148 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 30 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 52 + }, + "sage.rings.polynomial.polynomial_template.pxi": { + "failed": true, + "ntests": 122 + }, + "sage.rings.polynomial.polynomial_zmod_flint": { + "failed": true, + "ntests": 147 + }, + "sage.rings.polynomial.polynomial_zz_pex": { + "failed": true, + "ntests": 125 + }, + "sage.rings.polynomial.real_roots": { + "ntests": 6 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 327 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 42 + }, + "sage.rings.polynomial.weil.weil_polynomials": { + "failed": true, + "ntests": 92 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_pari": { + "ntests": 177 + }, + "sage.rings.power_series_poly": { + "ntests": 271 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 491 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 198 + }, + "sage.rings.qqbar": { + "ntests": 153 + }, + "sage.rings.quotient_ring": { + "ntests": 200 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 552 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 207 + }, + "sage.rings.real_arb": { + "failed": true, + "ntests": 561 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 362 + }, + "sage.rings.real_double_element_gsl": { + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_interval_absolute": { + "ntests": 1 + }, + "sage.rings.real_lazy": { + "failed": true, + "ntests": 279 + }, + "sage.rings.real_mpfi": { + "failed": true, + "ntests": 925 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1041 + }, + "sage.rings.ring": { + "failed": true, + "ntests": 356 + }, + "sage.rings.ring_extension": { + "failed": true, + "ntests": 380 + }, + "sage.rings.ring_extension_conversion": { + "failed": true, + "ntests": 75 + }, + "sage.rings.ring_extension_element": { + "failed": true, + "ntests": 247 + }, + "sage.rings.ring_extension_homset": { + "failed": true, + "ntests": 9 + }, + "sage.rings.ring_extension_morphism": { + "failed": true, + "ntests": 138 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tate_algebra": { + "failed": true, + "ntests": 267 + }, + "sage.rings.tate_algebra_element": { + "ntests": 671 + }, + "sage.rings.tate_algebra_ideal": { + "failed": true, + "ntests": 126 + }, + "sage.rings.tests": { + "ntests": 44 + }, + "sage.rings.valuation.augmented_valuation": { + "ntests": 424 + }, + "sage.rings.valuation.developing_valuation": { + "ntests": 62 + }, + "sage.rings.valuation.gauss_valuation": { + "ntests": 139 + }, + "sage.rings.valuation.inductive_valuation": { + "ntests": 271 + }, + "sage.rings.valuation.limit_valuation": { + "ntests": 18 + }, + "sage.rings.valuation.mapped_valuation": { + "ntests": 22 + }, + "sage.rings.valuation.scaled_valuation": { + "ntests": 41 + }, + "sage.rings.valuation.trivial_valuation": { + "ntests": 53 + }, + "sage.rings.valuation.valuation": { + "failed": true, + "ntests": 207 + }, + "sage.rings.valuation.valuation_space": { + "ntests": 200 + }, + "sage.rings.valuation.value_group": { + "ntests": 102 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 318 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "failed": true, + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.berkovich.berkovich_cp_element": { + "ntests": 36 + }, + "sage.schemes.berkovich.berkovich_space": { + "ntests": 18 + }, + "sage.schemes.curves.affine_curve": { + "ntests": 22 + }, + "sage.schemes.curves.closed_point": { + "failed": true, + "ntests": 100 + }, + "sage.schemes.curves.curve": { + "ntests": 1 + }, + "sage.schemes.curves.projective_curve": { + "ntests": 17 + }, + "sage.schemes.curves.zariski_vankampen": { + "ntests": 3 + }, + "sage.schemes.cyclic_covers.constructor": { + "failed": true, + "ntests": 15 + }, + "sage.schemes.cyclic_covers.cycliccover_finite_field": { + "failed": true, + "ntests": 160 + }, + "sage.schemes.cyclic_covers.cycliccover_generic": { + "failed": true, + "ntests": 67 + }, + "sage.schemes.elliptic_curves.BSD": { + "failed": true, + "ntests": 76 + }, + "sage.schemes.elliptic_curves.Qcurves": { + "failed": true, + "ntests": 34 + }, + "sage.schemes.elliptic_curves.cardinality": { + "failed": true, + "ntests": 59 + }, + "sage.schemes.elliptic_curves.cm": { + "ntests": 79 + }, + "sage.schemes.elliptic_curves.constructor": { + "failed": true, + "ntests": 214 + }, + "sage.schemes.elliptic_curves.ec_database": { + "failed": true, + "ntests": 9 + }, + "sage.schemes.elliptic_curves.ell_curve_isogeny": { + "failed": true, + "ntests": 0 + }, + "sage.schemes.elliptic_curves.ell_egros": { + "failed": true, + "ntests": 29 + }, + "sage.schemes.elliptic_curves.ell_field": { + "failed": true, + "ntests": 232 + }, + "sage.schemes.elliptic_curves.ell_finite_field": { + "failed": true, + "ntests": 386 + }, + "sage.schemes.elliptic_curves.ell_generic": { + "failed": true, + "ntests": 527 + }, + "sage.schemes.elliptic_curves.ell_local_data": { + "failed": true, + "ntests": 79 + }, + "sage.schemes.elliptic_curves.ell_modular_symbols": { + "failed": true, + "ntests": 133 + }, + "sage.schemes.elliptic_curves.ell_point": { + "failed": true, + "ntests": 711 + }, + "sage.schemes.elliptic_curves.ell_rational_field": { + "failed": true, + "ntests": 889 + }, + "sage.schemes.elliptic_curves.ell_tate_curve": { + "failed": true, + "ntests": 64 + }, + "sage.schemes.elliptic_curves.ell_torsion": { + "failed": true, + "ntests": 48 + }, + "sage.schemes.elliptic_curves.ell_wp": { + "failed": true, + "ntests": 42 + }, + "sage.schemes.elliptic_curves.formal_group": { + "failed": true, + "ntests": 76 + }, + "sage.schemes.elliptic_curves.gal_reps": { + "failed": true, + "ntests": 170 + }, + "sage.schemes.elliptic_curves.gp_simon": { + "failed": true, + "ntests": 3 + }, + "sage.schemes.elliptic_curves.heegner": { + "ntests": 3 + }, + "sage.schemes.elliptic_curves.height": { + "failed": true, + "ntests": 236 + }, + "sage.schemes.elliptic_curves.hom": { + "failed": true, + "ntests": 235 + }, + "sage.schemes.elliptic_curves.hom_composite": { + "failed": true, + "ntests": 169 + }, + "sage.schemes.elliptic_curves.hom_frobenius": { + "failed": true, + "ntests": 126 + }, + "sage.schemes.elliptic_curves.hom_scalar": { + "failed": true, + "ntests": 140 + }, + "sage.schemes.elliptic_curves.hom_velusqrt": { + "failed": true, + "ntests": 260 + }, + "sage.schemes.elliptic_curves.isogeny_small_degree": { + "failed": true, + "ntests": 240 + }, + "sage.schemes.elliptic_curves.jacobian": { + "failed": true, + "ntests": 35 + }, + "sage.schemes.elliptic_curves.kodaira_symbol": { + "ntests": 29 + }, + "sage.schemes.elliptic_curves.kraus": { + "failed": true, + "ntests": 22 + }, + "sage.schemes.elliptic_curves.lseries_ell": { + "failed": true, + "ntests": 100 + }, + "sage.schemes.elliptic_curves.mod5family": { + "ntests": 2 + }, + "sage.schemes.elliptic_curves.mod_sym_num": { + "failed": true, + "ntests": 359 + }, + "sage.schemes.elliptic_curves.modular_parametrization": { + "failed": true, + "ntests": 51 + }, + "sage.schemes.elliptic_curves.padic_lseries": { + "ntests": 1 + }, + "sage.schemes.elliptic_curves.period_lattice": { + "failed": true, + "ntests": 172 + }, + "sage.schemes.elliptic_curves.period_lattice_region": { + "ntests": 12 + }, + "sage.schemes.elliptic_curves.sha_tate": { + "failed": true, + "ntests": 129 + }, + "sage.schemes.elliptic_curves.weierstrass_morphism": { + "failed": true, + "ntests": 187 + }, + "sage.schemes.elliptic_curves.weierstrass_transform": { + "failed": true, + "ntests": 34 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor": { + "failed": true, + "ntests": 79 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 47 + }, + "sage.schemes.generic.homset": { + "ntests": 122 + }, + "sage.schemes.generic.hypersurface": { + "ntests": 42 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 394 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "failed": true, + "ntests": 183 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.hyperelliptic_curves.all": { + "ntests": 4 + }, + "sage.schemes.hyperelliptic_curves.constructor": { + "failed": true, + "ntests": 42 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_finite_field": { + "failed": true, + "ntests": 373 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_g2": { + "ntests": 46 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_generic": { + "failed": true, + "ntests": 127 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_rational_field": { + "failed": true, + "ntests": 3 + }, + "sage.schemes.hyperelliptic_curves.invariants": { + "failed": true, + "ntests": 74 + }, + "sage.schemes.hyperelliptic_curves.jacobian_endomorphism_utils": { + "failed": true, + "ntests": 39 + }, + "sage.schemes.hyperelliptic_curves.jacobian_generic": { + "failed": true, + "ntests": 93 + }, + "sage.schemes.hyperelliptic_curves.jacobian_homset": { + "ntests": 36 + }, + "sage.schemes.hyperelliptic_curves.jacobian_morphism": { + "failed": true, + "ntests": 159 + }, + "sage.schemes.hyperelliptic_curves.kummer_surface": { + "ntests": 5 + }, + "sage.schemes.hyperelliptic_curves.mestre": { + "failed": true, + "ntests": 23 + }, + "sage.schemes.hyperelliptic_curves.monsky_washnitzer": { + "failed": true, + "ntests": 626 + }, + "sage.schemes.jacobians.abstract_jacobian": { + "failed": true, + "ntests": 56 + }, + "sage.schemes.overview": { + "ntests": 9 + }, + "sage.schemes.plane_conics.con_field": { + "failed": true, + "ntests": 167 + }, + "sage.schemes.plane_conics.con_finite_field": { + "failed": true, + "ntests": 28 + }, + "sage.schemes.plane_conics.con_rational_field": { + "ntests": 41 + }, + "sage.schemes.plane_conics.con_rational_function_field": { + "ntests": 62 + }, + "sage.schemes.plane_conics.constructor": { + "failed": true, + "ntests": 15 + }, + "sage.schemes.plane_quartics.quartic_constructor": { + "ntests": 6 + }, + "sage.schemes.plane_quartics.quartic_generic": { + "ntests": 13 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 97 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 67 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "failed": true, + "ntests": 70 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 564 + }, + "sage.schemes.projective.projective_point": { + "failed": true, + "ntests": 298 + }, + "sage.schemes.projective.projective_rational_point": { + "failed": true, + "ntests": 36 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 376 + }, + "sage.schemes.projective.projective_subscheme": { + "failed": true, + "ntests": 245 + }, + "sage.schemes.riemann_surfaces.riemann_surface": { + "ntests": 3 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 361 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "failed": true, + "ntests": 397 + }, + "sage.sets.set_from_iterator": { + "ntests": 155 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 56 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.chmm": { + "ntests": 120 + }, + "sage.stats.hmm.distributions": { + "ntests": 70 + }, + "sage.stats.hmm.hmm": { + "ntests": 125 + }, + "sage.stats.hmm.util": { + "ntests": 16 + }, + "sage.stats.intlist": { + "ntests": 68 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "ntests": 307 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 163 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 356 + }, + "sage.structure.coerce_actions": { + "ntests": 136 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 684 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 228 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 115 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 123 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "failed": true, + "ntests": 325 + }, + "sage.structure.parent_gens": { + "failed": true, + "ntests": 41 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 11 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 229 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 188 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "failed": true, + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "failed": true, + "ntests": 249 + }, + "sage.tests.book_stein_modform": { + "failed": true, + "ntests": 237 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 1 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.numpy": { + "ntests": 6 + }, + "sage.tests.parigp": { + "ntests": 9 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-schemes/known-test-failures--pari.json b/pkgs/sagemath-schemes/known-test-failures--pari.json new file mode 100644 index 00000000000..aa2cc0ff9ad --- /dev/null +++ b/pkgs/sagemath-schemes/known-test-failures--pari.json @@ -0,0 +1,4506 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_ideal": { + "ntests": 36 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.fusion_rings.f_matrix": { + "failed": true, + "ntests": 355 + }, + "sage.algebras.fusion_rings.fast_parallel_fmats_methods": { + "failed": true, + "ntests": 50 + }, + "sage.algebras.fusion_rings.fast_parallel_fusion_ring_braid_repn": { + "failed": true, + "ntests": 16 + }, + "sage.algebras.fusion_rings.fusion_double": { + "failed": true, + "ntests": 105 + }, + "sage.algebras.fusion_rings.fusion_ring": { + "failed": true, + "ntests": 210 + }, + "sage.algebras.fusion_rings.poly_tup_engine": { + "failed": true, + "ntests": 87 + }, + "sage.algebras.fusion_rings.shm_managers": { + "failed": true, + "ntests": 138 + }, + "sage.algebras.letterplace.free_algebra_element_letterplace": { + "failed": true, + "ntests": 119 + }, + "sage.algebras.letterplace.free_algebra_letterplace": { + "failed": true, + "ntests": 134 + }, + "sage.algebras.letterplace.letterplace_ideal": { + "failed": true, + "ntests": 54 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "ntests": 72 + }, + "sage.algebras.orlik_terao": { + "ntests": 80 + }, + "sage.algebras.quatalg.quaternion_algebra": { + "failed": true, + "ntests": 443 + }, + "sage.algebras.quatalg.quaternion_algebra_cython": { + "failed": true, + "ntests": 10 + }, + "sage.algebras.quatalg.quaternion_algebra_element": { + "failed": true, + "ntests": 255 + }, + "sage.algebras.weyl_algebra": { + "ntests": 4 + }, + "sage.all__sagemath_flint": { + "failed": true, + "ntests": 5 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.all__sagemath_pari": { + "ntests": 3 + }, + "sage.all__sagemath_schemes": { + "ntests": 3 + }, + "sage.arith.functions": { + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 1060 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 54 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.riemann": { + "ntests": 13 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 110 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "ntests": 66 + }, + "sage.categories.action": { + "failed": true, + "ntests": 107 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "failed": true, + "ntests": 161 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 5 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 3 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 26 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 21 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "failed": true, + "ntests": 57 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "ntests": 362 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "failed": true, + "ntests": 228 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_cat": { + "ntests": 155 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 132 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 90 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 99 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 39 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 108 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "failed": true, + "ntests": 137 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 48 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "failed": true, + "ntests": 20 + }, + "sage.categories.homset": { + "failed": true, + "ntests": 222 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 380 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 145 + }, + "sage.categories.modules_with_basis": { + "failed": true, + "ntests": 488 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 85 + }, + "sage.categories.morphism": { + "ntests": 104 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.primer": { + "ntests": 163 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 786 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 119 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "failed": true, + "ntests": 166 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 106 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 432 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 54 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 38 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.abstract_code": { + "ntests": 136 + }, + "sage.coding.ag_code": { + "failed": true, + "ntests": 264 + }, + "sage.coding.ag_code_decoders": { + "failed": true, + "ntests": 543 + }, + "sage.coding.bch_code": { + "failed": true, + "ntests": 82 + }, + "sage.coding.binary_code": { + "ntests": 337 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channel": { + "ntests": 116 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 47 + }, + "sage.coding.code_constructions": { + "failed": true, + "ntests": 148 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "failed": true, + "ntests": 274 + }, + "sage.coding.databases": { + "ntests": 3 + }, + "sage.coding.decoder": { + "ntests": 62 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 2 + }, + "sage.coding.encoder": { + "ntests": 72 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.extended_code": { + "ntests": 81 + }, + "sage.coding.gabidulin_code": { + "failed": true, + "ntests": 235 + }, + "sage.coding.golay_code": { + "ntests": 48 + }, + "sage.coding.goppa_code": { + "failed": true, + "ntests": 115 + }, + "sage.coding.grs_code": { + "failed": true, + "ntests": 530 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.interpolation": { + "failed": true, + "ntests": 47 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 19 + }, + "sage.coding.hamming_code": { + "ntests": 18 + }, + "sage.coding.information_set_decoder": { + "ntests": 172 + }, + "sage.coding.kasami_codes": { + "failed": true, + "ntests": 45 + }, + "sage.coding.linear_code": { + "failed": true, + "ntests": 362 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 232 + }, + "sage.coding.linear_rank_metric": { + "ntests": 138 + }, + "sage.coding.parity_check_code": { + "ntests": 48 + }, + "sage.coding.punctured_code": { + "failed": true, + "ntests": 111 + }, + "sage.coding.reed_muller_code": { + "ntests": 168 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.coding.subfield_subcode": { + "failed": true, + "ntests": 65 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 416 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.free_module": { + "ntests": 403 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.permutation": { + "failed": true, + "ntests": 1214 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 55 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 402 + }, + "sage.combinat.root_system.coxeter_group": { + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.hecke_algebra_representation": { + "ntests": 1 + }, + "sage.combinat.root_system.integrable_representations": { + "ntests": 5 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "ntests": 25 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 284 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 488 + }, + "sage.combinat.root_system.root_space": { + "ntests": 72 + }, + "sage.combinat.root_system.root_system": { + "ntests": 117 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 19 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 67 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 31 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 130 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.block_cipher.des": { + "ntests": 156 + }, + "sage.crypto.block_cipher.present": { + "ntests": 138 + }, + "sage.crypto.boolean_function": { + "failed": true, + "ntests": 206 + }, + "sage.crypto.classical": { + "ntests": 13 + }, + "sage.crypto.classical_cipher": { + "ntests": 2 + }, + "sage.crypto.cryptosystem": { + "ntests": 14 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 18 + }, + "sage.crypto.lfsr": { + "ntests": 29 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "failed": true, + "ntests": 342 + }, + "sage.crypto.mq.sr": { + "failed": true, + "ntests": 355 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 6 + }, + "sage.crypto.sbox": { + "failed": true, + "ntests": 268 + }, + "sage.crypto.sboxes": { + "failed": true, + "ntests": 27 + }, + "sage.data_structures.bitset": { + "ntests": 431 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.bounded_integer_sequences": { + "ntests": 261 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 314 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.dynamics.arithmetic_dynamics.affine_ds": { + "failed": true, + "ntests": 183 + }, + "sage.dynamics.arithmetic_dynamics.berkovich_ds": { + "failed": true, + "ntests": 123 + }, + "sage.dynamics.arithmetic_dynamics.dynamical_semigroup": { + "failed": true, + "ntests": 0 + }, + "sage.dynamics.arithmetic_dynamics.endPN_automorphism_group": { + "failed": true, + "ntests": 137 + }, + "sage.dynamics.arithmetic_dynamics.endPN_minimal_model": { + "failed": true, + "ntests": 64 + }, + "sage.dynamics.arithmetic_dynamics.generic_ds": { + "failed": true, + "ntests": 79 + }, + "sage.dynamics.arithmetic_dynamics.product_projective_ds": { + "ntests": 37 + }, + "sage.dynamics.arithmetic_dynamics.projective_ds": { + "failed": true, + "ntests": 1467 + }, + "sage.dynamics.arithmetic_dynamics.projective_ds_helper": { + "ntests": 26 + }, + "sage.dynamics.arithmetic_dynamics.wehlerK3": { + "failed": true, + "ntests": 346 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.ext.memory": { + "ntests": 3 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 179 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 91 + }, + "sage.functions.bessel": { + "ntests": 171 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 162 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 141 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 77 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 174 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 252 + }, + "sage.functions.other": { + "failed": true, + "ntests": 246 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 64 + }, + "sage.functions.trig": { + "ntests": 132 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.graphs.matchpoly": { + "ntests": 3 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 270 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 23 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 1 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 55 + }, + "sage.groups.abelian_gps.values": { + "ntests": 65 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "failed": true, + "ntests": 126 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 92 + }, + "sage.groups.galois_group": { + "ntests": 58 + }, + "sage.groups.generic": { + "failed": true, + "ntests": 192 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.matrix_gps.coxeter_group": { + "ntests": 10 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 47 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 33 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 24 + }, + "sage.groups.matrix_gps.matrix_group": { + "failed": true, + "ntests": 45 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 21 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 43 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 38 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_binary": { + "ntests": 75 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 251 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 87 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.homology_group": { + "failed": true, + "ntests": 0 + }, + "sage.homology.homology_vector_space_with_basis": { + "ntests": 6 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.gp": { + "failed": true, + "ntests": 148 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 1 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.libs.arb.arb_version": { + "ntests": 2 + }, + "sage.libs.arb.arith": { + "ntests": 8 + }, + "sage.libs.flint.arith": { + "ntests": 44 + }, + "sage.libs.flint.flint": { + "ntests": 6 + }, + "sage.libs.flint.fmpz_poly": { + "ntests": 84 + }, + "sage.libs.flint.nmod_poly_linkage.pxi": { + "ntests": 196 + }, + "sage.libs.flint.qsieve": { + "ntests": 4 + }, + "sage.libs.flint.ulong_extras": { + "ntests": 3 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.libs.ntl.error": { + "ntests": 4 + }, + "sage.libs.ntl.ntl_GF2": { + "ntests": 50 + }, + "sage.libs.ntl.ntl_GF2E": { + "failed": true, + "ntests": 70 + }, + "sage.libs.ntl.ntl_GF2EContext": { + "failed": true, + "ntests": 20 + }, + "sage.libs.ntl.ntl_GF2EX": { + "failed": true, + "ntests": 31 + }, + "sage.libs.ntl.ntl_GF2X": { + "failed": true, + "ntests": 112 + }, + "sage.libs.ntl.ntl_GF2X_linkage.pxi": { + "ntests": 86 + }, + "sage.libs.ntl.ntl_ZZ": { + "ntests": 76 + }, + "sage.libs.ntl.ntl_ZZX": { + "ntests": 223 + }, + "sage.libs.ntl.ntl_ZZ_p": { + "ntests": 68 + }, + "sage.libs.ntl.ntl_ZZ_pContext": { + "ntests": 34 + }, + "sage.libs.ntl.ntl_ZZ_pE": { + "ntests": 27 + }, + "sage.libs.ntl.ntl_ZZ_pEContext": { + "ntests": 29 + }, + "sage.libs.ntl.ntl_ZZ_pEX": { + "ntests": 304 + }, + "sage.libs.ntl.ntl_ZZ_pEX_linkage.pxi": { + "ntests": 80 + }, + "sage.libs.ntl.ntl_ZZ_pX": { + "ntests": 264 + }, + "sage.libs.ntl.ntl_lzz_p": { + "ntests": 48 + }, + "sage.libs.ntl.ntl_lzz_pContext": { + "ntests": 21 + }, + "sage.libs.ntl.ntl_lzz_pX": { + "ntests": 142 + }, + "sage.libs.ntl.ntl_mat_GF2": { + "ntests": 107 + }, + "sage.libs.ntl.ntl_mat_GF2E": { + "failed": true, + "ntests": 132 + }, + "sage.libs.ntl.ntl_mat_ZZ": { + "failed": true, + "ntests": 119 + }, + "sage.libs.pari": { + "ntests": 33 + }, + "sage.libs.pari.convert_flint": { + "ntests": 2 + }, + "sage.libs.pari.convert_gmp": { + "ntests": 16 + }, + "sage.libs.pari.convert_sage": { + "ntests": 86 + }, + "sage.libs.pari.convert_sage_complex_double": { + "ntests": 22 + }, + "sage.libs.pari.convert_sage_matrix": { + "ntests": 19 + }, + "sage.libs.pari.convert_sage_real_double": { + "ntests": 2 + }, + "sage.libs.pari.convert_sage_real_mpfr": { + "ntests": 7 + }, + "sage.libs.pari.tests": { + "failed": true, + "ntests": 705 + }, + "sage.libs.singular.function": { + "failed": true, + "ntests": 310 + }, + "sage.libs.singular.function_factory": { + "failed": true, + "ntests": 8 + }, + "sage.libs.singular.groebner_strategy": { + "failed": true, + "ntests": 135 + }, + "sage.libs.singular.option": { + "failed": true, + "ntests": 122 + }, + "sage.libs.singular.polynomial": { + "failed": true, + "ntests": 0 + }, + "sage.libs.singular.ring": { + "failed": true, + "ntests": 101 + }, + "sage.libs.singular.singular": { + "failed": true, + "ntests": 171 + }, + "sage.libs.singular.standard_options": { + "failed": true, + "ntests": 48 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 151 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.compute_J_ideal": { + "failed": true, + "ntests": 99 + }, + "sage.matrix.constructor": { + "failed": true, + "ntests": 151 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 800 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 440 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 2147 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_ball_dense": { + "ntests": 118 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 7 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "ntests": 456 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 24 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_modn_dense_template.pxi": { + "failed": true, + "ntests": 0 + }, + "sage.matrix.matrix_mpolynomial_dense": { + "failed": true, + "ntests": 77 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 64 + }, + "sage.matrix.matrix_numpy_integer_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_polynomial_dense": { + "ntests": 436 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 13 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 429 + }, + "sage.matrix.matrix_sparse": { + "ntests": 164 + }, + "sage.matrix.misc_flint": { + "failed": true, + "ntests": 5 + }, + "sage.matrix.misc_mpfr": { + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 90 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 451 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 181 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 129 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.graphic_matroid": { + "ntests": 4 + }, + "sage.matroids.lean_matrix": { + "ntests": 288 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 639 + }, + "sage.matroids.matroid": { + "ntests": 858 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 73 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 64 + }, + "sage.matroids.utilities": { + "ntests": 58 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 150 + }, + "sage.misc.cachefunc": { + "failed": true, + "ntests": 688 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 40 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 325 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "failed": true, + "ntests": 18 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 243 + }, + "sage.misc.latex_macros": { + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 237 + }, + "sage.misc.lazy_string": { + "ntests": 137 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 149 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 36 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "failed": true, + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, + "sage.misc.sage_eval": { + "ntests": 35 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 281 + }, + "sage.modular.abvar.abvar": { + "failed": true, + "ntests": 0 + }, + "sage.modular.abvar.abvar_ambient_jacobian": { + "failed": true, + "ntests": 53 + }, + "sage.modular.abvar.abvar_newform": { + "failed": true, + "ntests": 32 + }, + "sage.modular.abvar.constructor": { + "failed": true, + "ntests": 15 + }, + "sage.modular.abvar.cuspidal_subgroup": { + "failed": true, + "ntests": 66 + }, + "sage.modular.abvar.finite_subgroup": { + "failed": true, + "ntests": 151 + }, + "sage.modular.abvar.homology": { + "failed": true, + "ntests": 95 + }, + "sage.modular.abvar.homspace": { + "failed": true, + "ntests": 116 + }, + "sage.modular.abvar.lseries": { + "failed": true, + "ntests": 57 + }, + "sage.modular.abvar.morphism": { + "failed": true, + "ntests": 167 + }, + "sage.modular.abvar.torsion_subgroup": { + "failed": true, + "ntests": 85 + }, + "sage.modular.arithgroup.arithgroup_element": { + "failed": true, + "ntests": 66 + }, + "sage.modular.arithgroup.arithgroup_generic": { + "failed": true, + "ntests": 155 + }, + "sage.modular.arithgroup.congroup": { + "ntests": 9 + }, + "sage.modular.arithgroup.congroup_gamma": { + "ntests": 45 + }, + "sage.modular.arithgroup.congroup_gamma0": { + "failed": true, + "ntests": 95 + }, + "sage.modular.arithgroup.congroup_gamma1": { + "failed": true, + "ntests": 80 + }, + "sage.modular.arithgroup.congroup_gammaH": { + "failed": true, + "ntests": 158 + }, + "sage.modular.arithgroup.congroup_sl2z": { + "ntests": 32 + }, + "sage.modular.arithgroup.farey_symbol": { + "failed": true, + "ntests": 89 + }, + "sage.modular.btquotients.btquotient": { + "failed": true, + "ntests": 374 + }, + "sage.modular.btquotients.pautomorphicform": { + "failed": true, + "ntests": 375 + }, + "sage.modular.buzzard": { + "failed": true, + "ntests": 9 + }, + "sage.modular.cusps": { + "failed": true, + "ntests": 149 + }, + "sage.modular.dims": { + "ntests": 95 + }, + "sage.modular.dirichlet": { + "failed": true, + "ntests": 566 + }, + "sage.modular.etaproducts": { + "failed": true, + "ntests": 102 + }, + "sage.modular.hecke.algebra": { + "failed": true, + "ntests": 88 + }, + "sage.modular.hecke.ambient_module": { + "failed": true, + "ntests": 94 + }, + "sage.modular.hecke.degenmap": { + "failed": true, + "ntests": 15 + }, + "sage.modular.hecke.element": { + "failed": true, + "ntests": 48 + }, + "sage.modular.hecke.hecke_operator": { + "failed": true, + "ntests": 125 + }, + "sage.modular.hecke.homspace": { + "failed": true, + "ntests": 24 + }, + "sage.modular.hecke.module": { + "failed": true, + "ntests": 193 + }, + "sage.modular.hecke.morphism": { + "failed": true, + "ntests": 19 + }, + "sage.modular.hecke.submodule": { + "failed": true, + "ntests": 141 + }, + "sage.modular.hypergeometric_misc": { + "failed": true, + "ntests": 11 + }, + "sage.modular.hypergeometric_motive": { + "failed": true, + "ntests": 258 + }, + "sage.modular.local_comp.liftings": { + "failed": true, + "ntests": 48 + }, + "sage.modular.local_comp.local_comp": { + "failed": true, + "ntests": 101 + }, + "sage.modular.local_comp.type_space": { + "failed": true, + "ntests": 90 + }, + "sage.modular.modform.ambient": { + "failed": true, + "ntests": 113 + }, + "sage.modular.modform.ambient_R": { + "failed": true, + "ntests": 12 + }, + "sage.modular.modform.ambient_g0": { + "failed": true, + "ntests": 13 + }, + "sage.modular.modform.ambient_g1": { + "failed": true, + "ntests": 25 + }, + "sage.modular.modform.constructor": { + "failed": true, + "ntests": 54 + }, + "sage.modular.modform.cuspidal_submodule": { + "failed": true, + "ntests": 56 + }, + "sage.modular.modform.eis_series": { + "failed": true, + "ntests": 38 + }, + "sage.modular.modform.eisenstein_submodule": { + "failed": true, + "ntests": 89 + }, + "sage.modular.modform.element": { + "failed": true, + "ntests": 624 + }, + "sage.modular.modform.find_generators": { + "failed": true, + "ntests": 9 + }, + "sage.modular.modform.half_integral": { + "failed": true, + "ntests": 7 + }, + "sage.modular.modform.hecke_operator_on_qexp": { + "failed": true, + "ntests": 29 + }, + "sage.modular.modform.j_invariant": { + "failed": true, + "ntests": 3 + }, + "sage.modular.modform.l_series_gross_zagier": { + "failed": true, + "ntests": 25 + }, + "sage.modular.modform.l_series_gross_zagier_coeffs": { + "failed": true, + "ntests": 20 + }, + "sage.modular.modform.numerical": { + "failed": true, + "ntests": 46 + }, + "sage.modular.modform.ring": { + "failed": true, + "ntests": 146 + }, + "sage.modular.modform.space": { + "failed": true, + "ntests": 246 + }, + "sage.modular.modform.submodule": { + "ntests": 12 + }, + "sage.modular.modform.tests": { + "failed": true, + "ntests": 4 + }, + "sage.modular.modform.theta": { + "ntests": 15 + }, + "sage.modular.modform.vm_basis": { + "failed": true, + "ntests": 27 + }, + "sage.modular.modform.weight1": { + "failed": true, + "ntests": 10 + }, + "sage.modular.modform_hecketriangle.abstract_ring": { + "failed": true, + "ntests": 523 + }, + "sage.modular.modform_hecketriangle.analytic_type": { + "ntests": 6 + }, + "sage.modular.modform_hecketriangle.graded_ring_element": { + "ntests": 51 + }, + "sage.modular.modsym.ambient": { + "failed": true, + "ntests": 442 + }, + "sage.modular.modsym.boundary": { + "failed": true, + "ntests": 200 + }, + "sage.modular.modsym.element": { + "failed": true, + "ntests": 48 + }, + "sage.modular.modsym.g1list": { + "ntests": 21 + }, + "sage.modular.modsym.ghlist": { + "ntests": 23 + }, + "sage.modular.modsym.hecke_operator": { + "failed": true, + "ntests": 6 + }, + "sage.modular.modsym.manin_symbol": { + "failed": true, + "ntests": 111 + }, + "sage.modular.modsym.manin_symbol_list": { + "failed": true, + "ntests": 129 + }, + "sage.modular.modsym.modsym": { + "failed": true, + "ntests": 76 + }, + "sage.modular.modsym.modular_symbols": { + "failed": true, + "ntests": 65 + }, + "sage.modular.modsym.p1list": { + "ntests": 120 + }, + "sage.modular.modsym.relation_matrix": { + "failed": true, + "ntests": 29 + }, + "sage.modular.modsym.relation_matrix_pyx": { + "ntests": 4 + }, + "sage.modular.modsym.space": { + "failed": true, + "ntests": 312 + }, + "sage.modular.modsym.subspace": { + "failed": true, + "ntests": 57 + }, + "sage.modular.modsym.tests": { + "failed": true, + "ntests": 37 + }, + "sage.modular.overconvergent.genus0": { + "ntests": 1 + }, + "sage.modular.overconvergent.hecke_series": { + "failed": true, + "ntests": 76 + }, + "sage.modular.pollack_stevens.fund_domain": { + "failed": true, + "ntests": 174 + }, + "sage.modular.pollack_stevens.modsym": { + "failed": true, + "ntests": 243 + }, + "sage.modular.pollack_stevens.sigma0": { + "failed": true, + "ntests": 101 + }, + "sage.modular.quasimodform.element": { + "failed": true, + "ntests": 166 + }, + "sage.modular.quasimodform.ring": { + "failed": true, + "ntests": 152 + }, + "sage.modular.quatalg.brandt": { + "failed": true, + "ntests": 165 + }, + "sage.modular.ssmod.ssmod": { + "failed": true, + "ntests": 77 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 0 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 170 + }, + "sage.modules.finite_submodule_iter": { + "failed": true, + "ntests": 95 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1473 + }, + "sage.modules.free_module_element": { + "failed": true, + "ntests": 924 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 170 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 0 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 400 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "failed": true, + "ntests": 124 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 171 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 13 + }, + "sage.modules.vector_double_dense": { + "ntests": 96 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_modn_dense": { + "ntests": 69 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 45 + }, + "sage.modules.vector_numpy_integer_dense": { + "ntests": 5 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 12 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "failed": true, + "ntests": 157 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 161 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.optimize": { + "failed": true, + "ntests": 87 + }, + "sage.parallel.decorate": { + "ntests": 90 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 326 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.genera.genus": { + "failed": true, + "ntests": 529 + }, + "sage.quadratic_forms.qfsolve": { + "ntests": 38 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 196 + }, + "sage.quadratic_forms.quadratic_form__automorphisms": { + "ntests": 51 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 74 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__genus": { + "ntests": 10 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_density_interfaces": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "ntests": 143 + }, + "sage.quadratic_forms.quadratic_form__local_normal_form": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__mass": { + "ntests": 4 + }, + "sage.quadratic_forms.quadratic_form__mass__Conway_Sloane_masses": { + "ntests": 59 + }, + "sage.quadratic_forms.quadratic_form__mass__Siegel_densities": { + "ntests": 14 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "failed": true, + "ntests": 32 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__siegel_product": { + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 99 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.special_values": { + "ntests": 21 + }, + "sage.quadratic_forms.ternary": { + "ntests": 105 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 306 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 88 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "failed": true, + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.algebraic_closure_finite_field": { + "failed": true, + "ntests": 213 + }, + "sage.rings.bernmm": { + "ntests": 25 + }, + "sage.rings.bernoulli_mod_p": { + "ntests": 26 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_arb": { + "failed": true, + "ntests": 653 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "ntests": 339 + }, + "sage.rings.complex_interval": { + "ntests": 266 + }, + "sage.rings.complex_interval_field": { + "ntests": 131 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 520 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 295 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.derivation": { + "ntests": 405 + }, + "sage.rings.factorint": { + "ntests": 26 + }, + "sage.rings.factorint_flint": { + "ntests": 10 + }, + "sage.rings.factorint_pari": { + "ntests": 3 + }, + "sage.rings.fast_arith": { + "ntests": 20 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 57 + }, + "sage.rings.finite_rings.element_base": { + "failed": true, + "ntests": 233 + }, + "sage.rings.finite_rings.element_ntl_gf2e": { + "failed": true, + "ntests": 176 + }, + "sage.rings.finite_rings.element_pari_ffelt": { + "failed": true, + "ntests": 276 + }, + "sage.rings.finite_rings.finite_field_base": { + "failed": true, + "ntests": 325 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "failed": true, + "ntests": 124 + }, + "sage.rings.finite_rings.finite_field_ntl_gf2e": { + "failed": true, + "ntests": 61 + }, + "sage.rings.finite_rings.finite_field_pari_ffelt": { + "failed": true, + "ntests": 41 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 38 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 20 + }, + "sage.rings.finite_rings.hom_finite_field": { + "failed": true, + "ntests": 192 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 21 + }, + "sage.rings.finite_rings.homset": { + "failed": true, + "ntests": 67 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 580 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 255 + }, + "sage.rings.finite_rings.maps_finite_field": { + "ntests": 31 + }, + "sage.rings.finite_rings.residue_field": { + "failed": true, + "ntests": 144 + }, + "sage.rings.finite_rings.residue_field_ntl_gf2e": { + "ntests": 14 + }, + "sage.rings.finite_rings.residue_field_pari_ffelt": { + "ntests": 8 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 248 + }, + "sage.rings.fraction_field_FpT": { + "ntests": 369 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 271 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_polymod": { + "failed": true, + "ntests": 161 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 108 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 83 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 159 + }, + "sage.rings.function_field.function_field_rational": { + "failed": true, + "ntests": 148 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 136 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 150 + }, + "sage.rings.function_field.maps": { + "ntests": 59 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "failed": true, + "ntests": 106 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "failed": true, + "ntests": 30 + }, + "sage.rings.function_field.valuation": { + "failed": true, + "ntests": 271 + }, + "sage.rings.generic": { + "ntests": 69 + }, + "sage.rings.homset": { + "ntests": 44 + }, + "sage.rings.ideal": { + "ntests": 361 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1171 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 224 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 883 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 160 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 397 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 175 + }, + "sage.rings.monomials": { + "ntests": 5 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 547 + }, + "sage.rings.multi_power_series_ring": { + "failed": true, + "ntests": 230 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 437 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.class_group": { + "ntests": 239 + }, + "sage.rings.number_field.galois_group": { + "ntests": 2 + }, + "sage.rings.number_field.homset": { + "ntests": 131 + }, + "sage.rings.number_field.maps": { + "ntests": 196 + }, + "sage.rings.number_field.morphism": { + "ntests": 42 + }, + "sage.rings.number_field.number_field": { + "ntests": 47 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element": { + "ntests": 31 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_element_quadratic": { + "ntests": 15 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 5 + }, + "sage.rings.number_field.number_field_ideal_rel": { + "failed": true, + "ntests": 259 + }, + "sage.rings.number_field.number_field_morphisms": { + "ntests": 2 + }, + "sage.rings.number_field.number_field_rel": { + "ntests": 600 + }, + "sage.rings.number_field.order": { + "ntests": 6 + }, + "sage.rings.number_field.selmer_group": { + "ntests": 93 + }, + "sage.rings.number_field.small_primes_of_degree_one": { + "ntests": 41 + }, + "sage.rings.number_field.splitting_field": { + "ntests": 73 + }, + "sage.rings.number_field.totallyreal": { + "ntests": 17 + }, + "sage.rings.number_field.totallyreal_data": { + "ntests": 24 + }, + "sage.rings.number_field.totallyreal_phc": { + "ntests": 3 + }, + "sage.rings.number_field.totallyreal_rel": { + "ntests": 1 + }, + "sage.rings.number_field.unit_group": { + "ntests": 172 + }, + "sage.rings.padics.CA_template.pxi": { + "failed": true, + "ntests": 309 + }, + "sage.rings.padics.CR_template.pxi": { + "failed": true, + "ntests": 431 + }, + "sage.rings.padics.FM_template.pxi": { + "failed": true, + "ntests": 277 + }, + "sage.rings.padics.FP_template.pxi": { + "failed": true, + "ntests": 340 + }, + "sage.rings.padics.eisenstein_extension_generic": { + "ntests": 41 + }, + "sage.rings.padics.factory": { + "failed": true, + "ntests": 559 + }, + "sage.rings.padics.generic_nodes": { + "ntests": 254 + }, + "sage.rings.padics.lattice_precision": { + "failed": true, + "ntests": 456 + }, + "sage.rings.padics.local_generic": { + "ntests": 4 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 1 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.morphism": { + "ntests": 66 + }, + "sage.rings.padics.padic_ZZ_pX_CA_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_ZZ_pX_FM_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_ZZ_pX_element": { + "ntests": 10 + }, + "sage.rings.padics.padic_base_generic": { + "ntests": 44 + }, + "sage.rings.padics.padic_base_leaves": { + "ntests": 185 + }, + "sage.rings.padics.padic_extension_generic": { + "failed": true, + "ntests": 208 + }, + "sage.rings.padics.padic_extension_leaves": { + "failed": true, + "ntests": 72 + }, + "sage.rings.padics.padic_generic": { + "ntests": 5 + }, + "sage.rings.padics.padic_generic_element": { + "failed": true, + "ntests": 816 + }, + "sage.rings.padics.padic_lattice_element": { + "ntests": 269 + }, + "sage.rings.padics.padic_printing": { + "failed": true, + "ntests": 108 + }, + "sage.rings.padics.padic_relaxed_errors": { + "ntests": 5 + }, + "sage.rings.padics.padic_template_element.pxi": { + "failed": true, + "ntests": 141 + }, + "sage.rings.padics.padic_valuation": { + "ntests": 148 + }, + "sage.rings.padics.pow_computer": { + "ntests": 88 + }, + "sage.rings.padics.pow_computer_flint": { + "ntests": 76 + }, + "sage.rings.padics.pow_computer_relative": { + "failed": true, + "ntests": 97 + }, + "sage.rings.padics.qadic_flint_CA": { + "failed": true, + "ntests": 19 + }, + "sage.rings.padics.qadic_flint_CR": { + "failed": true, + "ntests": 23 + }, + "sage.rings.padics.qadic_flint_FM": { + "failed": true, + "ntests": 17 + }, + "sage.rings.padics.qadic_flint_FP": { + "failed": true, + "ntests": 22 + }, + "sage.rings.padics.relative_extension_leaves": { + "failed": true, + "ntests": 87 + }, + "sage.rings.padics.relative_ramified_CA": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_CR": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FM": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FP": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relaxed_template.pxi": { + "ntests": 509 + }, + "sage.rings.padics.tests": { + "ntests": 12 + }, + "sage.rings.padics.tutorial": { + "failed": true, + "ntests": 45 + }, + "sage.rings.padics.unramified_extension_generic": { + "failed": true, + "ntests": 33 + }, + "sage.rings.pari_ring": { + "ntests": 46 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.complex_roots": { + "ntests": 42 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 37 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.hilbert": { + "failed": true, + "ntests": 8 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 402 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 339 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 87 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 529 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true, + "ntests": 297 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 58 + }, + "sage.rings.polynomial.multi_polynomial_ideal_libsingular": { + "failed": true, + "ntests": 25 + }, + "sage.rings.polynomial.multi_polynomial_libsingular": { + "failed": true, + "ntests": 1131 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 232 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.ore_function_element": { + "failed": true, + "ntests": 243 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 231 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 1 + }, + "sage.rings.polynomial.padics.polynomial_padic": { + "failed": true, + "ntests": 69 + }, + "sage.rings.polynomial.padics.polynomial_padic_capped_relative_dense": { + "ntests": 150 + }, + "sage.rings.polynomial.padics.polynomial_padic_flat": { + "ntests": 3 + }, + "sage.rings.polynomial.plural": { + "failed": true, + "ntests": 621 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_complex_arb": { + "ntests": 144 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 2299 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 203 + }, + "sage.rings.polynomial.polynomial_integer_dense_flint": { + "ntests": 306 + }, + "sage.rings.polynomial.polynomial_integer_dense_ntl": { + "ntests": 188 + }, + "sage.rings.polynomial.polynomial_modn_dense_ntl": { + "failed": true, + "ntests": 331 + }, + "sage.rings.polynomial.polynomial_number_field": { + "failed": true, + "ntests": 75 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "failed": true, + "ntests": 349 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_rational_flint": { + "failed": true, + "ntests": 394 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring": { + "failed": true, + "ntests": 508 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 148 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 30 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 52 + }, + "sage.rings.polynomial.polynomial_template.pxi": { + "failed": true, + "ntests": 122 + }, + "sage.rings.polynomial.polynomial_zmod_flint": { + "failed": true, + "ntests": 147 + }, + "sage.rings.polynomial.polynomial_zz_pex": { + "failed": true, + "ntests": 125 + }, + "sage.rings.polynomial.real_roots": { + "ntests": 6 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 327 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 42 + }, + "sage.rings.polynomial.weil.weil_polynomials": { + "failed": true, + "ntests": 92 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_pari": { + "ntests": 177 + }, + "sage.rings.power_series_poly": { + "ntests": 271 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 491 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 198 + }, + "sage.rings.qqbar": { + "ntests": 153 + }, + "sage.rings.quotient_ring": { + "ntests": 200 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 552 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 207 + }, + "sage.rings.real_arb": { + "failed": true, + "ntests": 561 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 362 + }, + "sage.rings.real_double_element_gsl": { + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_interval_absolute": { + "ntests": 1 + }, + "sage.rings.real_lazy": { + "failed": true, + "ntests": 279 + }, + "sage.rings.real_mpfi": { + "failed": true, + "ntests": 925 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1041 + }, + "sage.rings.ring": { + "failed": true, + "ntests": 356 + }, + "sage.rings.ring_extension": { + "failed": true, + "ntests": 380 + }, + "sage.rings.ring_extension_conversion": { + "failed": true, + "ntests": 75 + }, + "sage.rings.ring_extension_element": { + "failed": true, + "ntests": 247 + }, + "sage.rings.ring_extension_homset": { + "failed": true, + "ntests": 9 + }, + "sage.rings.ring_extension_morphism": { + "failed": true, + "ntests": 138 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tate_algebra": { + "failed": true, + "ntests": 267 + }, + "sage.rings.tate_algebra_element": { + "ntests": 671 + }, + "sage.rings.tate_algebra_ideal": { + "failed": true, + "ntests": 126 + }, + "sage.rings.tests": { + "ntests": 44 + }, + "sage.rings.valuation.augmented_valuation": { + "ntests": 424 + }, + "sage.rings.valuation.developing_valuation": { + "ntests": 62 + }, + "sage.rings.valuation.gauss_valuation": { + "ntests": 139 + }, + "sage.rings.valuation.inductive_valuation": { + "ntests": 271 + }, + "sage.rings.valuation.limit_valuation": { + "ntests": 18 + }, + "sage.rings.valuation.mapped_valuation": { + "ntests": 22 + }, + "sage.rings.valuation.scaled_valuation": { + "ntests": 41 + }, + "sage.rings.valuation.trivial_valuation": { + "ntests": 53 + }, + "sage.rings.valuation.valuation": { + "failed": true, + "ntests": 207 + }, + "sage.rings.valuation.valuation_space": { + "ntests": 200 + }, + "sage.rings.valuation.value_group": { + "ntests": 102 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 318 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "failed": true, + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.berkovich.berkovich_cp_element": { + "ntests": 36 + }, + "sage.schemes.berkovich.berkovich_space": { + "ntests": 18 + }, + "sage.schemes.curves.affine_curve": { + "ntests": 22 + }, + "sage.schemes.curves.closed_point": { + "failed": true, + "ntests": 100 + }, + "sage.schemes.curves.curve": { + "ntests": 1 + }, + "sage.schemes.curves.projective_curve": { + "ntests": 17 + }, + "sage.schemes.curves.zariski_vankampen": { + "ntests": 3 + }, + "sage.schemes.cyclic_covers.constructor": { + "failed": true, + "ntests": 15 + }, + "sage.schemes.cyclic_covers.cycliccover_finite_field": { + "failed": true, + "ntests": 160 + }, + "sage.schemes.cyclic_covers.cycliccover_generic": { + "failed": true, + "ntests": 67 + }, + "sage.schemes.elliptic_curves.BSD": { + "failed": true, + "ntests": 76 + }, + "sage.schemes.elliptic_curves.Qcurves": { + "failed": true, + "ntests": 34 + }, + "sage.schemes.elliptic_curves.cardinality": { + "failed": true, + "ntests": 59 + }, + "sage.schemes.elliptic_curves.cm": { + "ntests": 79 + }, + "sage.schemes.elliptic_curves.constructor": { + "failed": true, + "ntests": 214 + }, + "sage.schemes.elliptic_curves.ec_database": { + "failed": true, + "ntests": 9 + }, + "sage.schemes.elliptic_curves.ell_curve_isogeny": { + "failed": true, + "ntests": 0 + }, + "sage.schemes.elliptic_curves.ell_egros": { + "failed": true, + "ntests": 29 + }, + "sage.schemes.elliptic_curves.ell_field": { + "failed": true, + "ntests": 232 + }, + "sage.schemes.elliptic_curves.ell_finite_field": { + "failed": true, + "ntests": 386 + }, + "sage.schemes.elliptic_curves.ell_generic": { + "failed": true, + "ntests": 527 + }, + "sage.schemes.elliptic_curves.ell_local_data": { + "failed": true, + "ntests": 79 + }, + "sage.schemes.elliptic_curves.ell_modular_symbols": { + "failed": true, + "ntests": 133 + }, + "sage.schemes.elliptic_curves.ell_point": { + "failed": true, + "ntests": 711 + }, + "sage.schemes.elliptic_curves.ell_rational_field": { + "failed": true, + "ntests": 889 + }, + "sage.schemes.elliptic_curves.ell_tate_curve": { + "failed": true, + "ntests": 64 + }, + "sage.schemes.elliptic_curves.ell_torsion": { + "failed": true, + "ntests": 48 + }, + "sage.schemes.elliptic_curves.ell_wp": { + "failed": true, + "ntests": 42 + }, + "sage.schemes.elliptic_curves.formal_group": { + "failed": true, + "ntests": 76 + }, + "sage.schemes.elliptic_curves.gal_reps": { + "failed": true, + "ntests": 170 + }, + "sage.schemes.elliptic_curves.gp_simon": { + "failed": true, + "ntests": 3 + }, + "sage.schemes.elliptic_curves.heegner": { + "ntests": 3 + }, + "sage.schemes.elliptic_curves.height": { + "failed": true, + "ntests": 236 + }, + "sage.schemes.elliptic_curves.hom": { + "failed": true, + "ntests": 235 + }, + "sage.schemes.elliptic_curves.hom_composite": { + "failed": true, + "ntests": 169 + }, + "sage.schemes.elliptic_curves.hom_frobenius": { + "failed": true, + "ntests": 126 + }, + "sage.schemes.elliptic_curves.hom_scalar": { + "failed": true, + "ntests": 140 + }, + "sage.schemes.elliptic_curves.hom_velusqrt": { + "failed": true, + "ntests": 260 + }, + "sage.schemes.elliptic_curves.isogeny_small_degree": { + "failed": true, + "ntests": 240 + }, + "sage.schemes.elliptic_curves.jacobian": { + "failed": true, + "ntests": 35 + }, + "sage.schemes.elliptic_curves.kodaira_symbol": { + "ntests": 29 + }, + "sage.schemes.elliptic_curves.kraus": { + "failed": true, + "ntests": 22 + }, + "sage.schemes.elliptic_curves.lseries_ell": { + "failed": true, + "ntests": 100 + }, + "sage.schemes.elliptic_curves.mod5family": { + "ntests": 2 + }, + "sage.schemes.elliptic_curves.mod_sym_num": { + "failed": true, + "ntests": 359 + }, + "sage.schemes.elliptic_curves.modular_parametrization": { + "failed": true, + "ntests": 51 + }, + "sage.schemes.elliptic_curves.padic_lseries": { + "ntests": 1 + }, + "sage.schemes.elliptic_curves.period_lattice": { + "failed": true, + "ntests": 172 + }, + "sage.schemes.elliptic_curves.period_lattice_region": { + "ntests": 12 + }, + "sage.schemes.elliptic_curves.sha_tate": { + "failed": true, + "ntests": 129 + }, + "sage.schemes.elliptic_curves.weierstrass_morphism": { + "failed": true, + "ntests": 187 + }, + "sage.schemes.elliptic_curves.weierstrass_transform": { + "failed": true, + "ntests": 34 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor": { + "failed": true, + "ntests": 79 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 47 + }, + "sage.schemes.generic.homset": { + "ntests": 122 + }, + "sage.schemes.generic.hypersurface": { + "ntests": 42 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 394 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "failed": true, + "ntests": 183 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.hyperelliptic_curves.all": { + "ntests": 4 + }, + "sage.schemes.hyperelliptic_curves.constructor": { + "failed": true, + "ntests": 42 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_finite_field": { + "failed": true, + "ntests": 373 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_g2": { + "ntests": 46 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_generic": { + "failed": true, + "ntests": 127 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_rational_field": { + "failed": true, + "ntests": 3 + }, + "sage.schemes.hyperelliptic_curves.invariants": { + "failed": true, + "ntests": 74 + }, + "sage.schemes.hyperelliptic_curves.jacobian_endomorphism_utils": { + "failed": true, + "ntests": 39 + }, + "sage.schemes.hyperelliptic_curves.jacobian_generic": { + "failed": true, + "ntests": 93 + }, + "sage.schemes.hyperelliptic_curves.jacobian_homset": { + "ntests": 36 + }, + "sage.schemes.hyperelliptic_curves.jacobian_morphism": { + "failed": true, + "ntests": 159 + }, + "sage.schemes.hyperelliptic_curves.kummer_surface": { + "ntests": 5 + }, + "sage.schemes.hyperelliptic_curves.mestre": { + "failed": true, + "ntests": 23 + }, + "sage.schemes.hyperelliptic_curves.monsky_washnitzer": { + "failed": true, + "ntests": 626 + }, + "sage.schemes.jacobians.abstract_jacobian": { + "failed": true, + "ntests": 56 + }, + "sage.schemes.overview": { + "ntests": 9 + }, + "sage.schemes.plane_conics.con_field": { + "failed": true, + "ntests": 167 + }, + "sage.schemes.plane_conics.con_finite_field": { + "failed": true, + "ntests": 28 + }, + "sage.schemes.plane_conics.con_rational_field": { + "ntests": 41 + }, + "sage.schemes.plane_conics.con_rational_function_field": { + "ntests": 62 + }, + "sage.schemes.plane_conics.constructor": { + "failed": true, + "ntests": 15 + }, + "sage.schemes.plane_quartics.quartic_constructor": { + "ntests": 6 + }, + "sage.schemes.plane_quartics.quartic_generic": { + "ntests": 13 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 97 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 67 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "failed": true, + "ntests": 70 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 564 + }, + "sage.schemes.projective.projective_point": { + "failed": true, + "ntests": 298 + }, + "sage.schemes.projective.projective_rational_point": { + "failed": true, + "ntests": 36 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 376 + }, + "sage.schemes.projective.projective_subscheme": { + "failed": true, + "ntests": 245 + }, + "sage.schemes.riemann_surfaces.riemann_surface": { + "ntests": 3 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 361 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "failed": true, + "ntests": 397 + }, + "sage.sets.set_from_iterator": { + "ntests": 155 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 56 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.chmm": { + "ntests": 120 + }, + "sage.stats.hmm.distributions": { + "ntests": 70 + }, + "sage.stats.hmm.hmm": { + "ntests": 125 + }, + "sage.stats.hmm.util": { + "ntests": 16 + }, + "sage.stats.intlist": { + "ntests": 68 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "ntests": 307 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 163 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 356 + }, + "sage.structure.coerce_actions": { + "ntests": 136 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 684 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 228 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 115 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 123 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "failed": true, + "ntests": 325 + }, + "sage.structure.parent_gens": { + "failed": true, + "ntests": 41 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 11 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 229 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 188 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "failed": true, + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "failed": true, + "ntests": 249 + }, + "sage.tests.book_stein_modform": { + "failed": true, + "ntests": 237 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 1 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.numpy": { + "ntests": 6 + }, + "sage.tests.parigp": { + "ntests": 9 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-schemes/known-test-failures.json b/pkgs/sagemath-schemes/known-test-failures.json new file mode 100644 index 00000000000..649085b11f8 --- /dev/null +++ b/pkgs/sagemath-schemes/known-test-failures.json @@ -0,0 +1,4506 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 586 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_ideal": { + "ntests": 36 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.fusion_rings.f_matrix": { + "failed": true, + "ntests": 355 + }, + "sage.algebras.fusion_rings.fast_parallel_fmats_methods": { + "failed": true, + "ntests": 50 + }, + "sage.algebras.fusion_rings.fast_parallel_fusion_ring_braid_repn": { + "failed": true, + "ntests": 16 + }, + "sage.algebras.fusion_rings.fusion_double": { + "failed": true, + "ntests": 105 + }, + "sage.algebras.fusion_rings.fusion_ring": { + "failed": true, + "ntests": 210 + }, + "sage.algebras.fusion_rings.poly_tup_engine": { + "failed": true, + "ntests": 87 + }, + "sage.algebras.fusion_rings.shm_managers": { + "failed": true, + "ntests": 138 + }, + "sage.algebras.letterplace.free_algebra_element_letterplace": { + "failed": true, + "ntests": 119 + }, + "sage.algebras.letterplace.free_algebra_letterplace": { + "failed": true, + "ntests": 134 + }, + "sage.algebras.letterplace.letterplace_ideal": { + "failed": true, + "ntests": 54 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "ntests": 72 + }, + "sage.algebras.orlik_terao": { + "ntests": 80 + }, + "sage.algebras.quatalg.quaternion_algebra": { + "failed": true, + "ntests": 443 + }, + "sage.algebras.quatalg.quaternion_algebra_cython": { + "failed": true, + "ntests": 10 + }, + "sage.algebras.quatalg.quaternion_algebra_element": { + "failed": true, + "ntests": 255 + }, + "sage.algebras.weyl_algebra": { + "ntests": 4 + }, + "sage.all__sagemath_flint": { + "failed": true, + "ntests": 5 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.all__sagemath_pari": { + "ntests": 3 + }, + "sage.all__sagemath_schemes": { + "ntests": 3 + }, + "sage.arith.functions": { + "ntests": 42 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 1060 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.functional": { + "ntests": 2 + }, + "sage.calculus.interpolation": { + "ntests": 67 + }, + "sage.calculus.interpolators": { + "ntests": 54 + }, + "sage.calculus.ode": { + "ntests": 41 + }, + "sage.calculus.riemann": { + "ntests": 13 + }, + "sage.calculus.test_sympy": { + "ntests": 17 + }, + "sage.calculus.transforms.dft": { + "ntests": 110 + }, + "sage.calculus.transforms.dwt": { + "ntests": 13 + }, + "sage.calculus.transforms.fft": { + "ntests": 66 + }, + "sage.categories.action": { + "failed": true, + "ntests": 107 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "failed": true, + "ntests": 161 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 14 + }, + "sage.categories.algebra_functor": { + "ntests": 5 + }, + "sage.categories.algebra_ideals": { + "ntests": 8 + }, + "sage.categories.algebra_modules": { + "ntests": 9 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras": { + "ntests": 3 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 24 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 433 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "ntests": 26 + }, + "sage.categories.coalgebras": { + "ntests": 1 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 20 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 21 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 9 + }, + "sage.categories.commutative_algebras": { + "ntests": 11 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 7 + }, + "sage.categories.commutative_rings": { + "failed": true, + "ntests": 57 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 30 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 16 + }, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": { + "ntests": 47 + }, + "sage.categories.covariant_functorial_construction": { + "ntests": 65 + }, + "sage.categories.coxeter_group_algebras": { + "ntests": 2 + }, + "sage.categories.coxeter_groups": { + "ntests": 362 + }, + "sage.categories.crystals": { + "ntests": 1 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 36 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 7 + }, + "sage.categories.drinfeld_modules": { + "failed": true, + "ntests": 228 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 79 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 27 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 25 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 39 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_cat": { + "ntests": 155 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 132 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 90 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 172 + }, + "sage.categories.finite_coxeter_groups": { + "ntests": 14 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 99 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 39 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 108 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 11 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 123 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_groups": { + "ntests": 5 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 31 + }, + "sage.categories.finite_monoids": { + "ntests": 28 + }, + "sage.categories.finite_permutation_groups": { + "ntests": 12 + }, + "sage.categories.finite_semigroups": { + "ntests": 14 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 11 + }, + "sage.categories.finitely_generated_lie_conformal_algebras": { + "ntests": 10 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 11 + }, + "sage.categories.functor": { + "failed": true, + "ntests": 137 + }, + "sage.categories.g_sets": { + "ntests": 7 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 8 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 8 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 5 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 25 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 29 + }, + "sage.categories.groups": { + "ntests": 48 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "failed": true, + "ntests": 20 + }, + "sage.categories.homset": { + "failed": true, + "ntests": 222 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 15 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 30 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 22 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 9 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 16 + }, + "sage.categories.lambda_bracket_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.lattice_posets": { + "ntests": 10 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 110 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 19 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 25 + }, + "sage.categories.lie_conformal_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.loop_crystals": { + "ntests": 1 + }, + "sage.categories.magmas": { + "ntests": 147 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 27 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 380 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "ntests": 46 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 145 + }, + "sage.categories.modules_with_basis": { + "failed": true, + "ntests": 488 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 85 + }, + "sage.categories.morphism": { + "ntests": 104 + }, + "sage.categories.number_fields": { + "ntests": 41 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 4 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.primer": { + "ntests": 163 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 11 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 786 + }, + "sage.categories.quantum_group_representations": { + "ntests": 13 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 119 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 21 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "failed": true, + "ntests": 166 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 106 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 15 + }, + "sage.categories.sets_cat": { + "ntests": 432 + }, + "sage.categories.sets_with_grading": { + "ntests": 23 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 17 + }, + "sage.categories.simplicial_sets": { + "ntests": 54 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 23 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 20 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 15 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 38 + }, + "sage.categories.vector_spaces": { + "ntests": 44 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.abstract_code": { + "ntests": 136 + }, + "sage.coding.ag_code": { + "failed": true, + "ntests": 264 + }, + "sage.coding.ag_code_decoders": { + "failed": true, + "ntests": 543 + }, + "sage.coding.bch_code": { + "failed": true, + "ntests": 82 + }, + "sage.coding.binary_code": { + "ntests": 337 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channel": { + "ntests": 116 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 47 + }, + "sage.coding.code_constructions": { + "failed": true, + "ntests": 148 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "failed": true, + "ntests": 274 + }, + "sage.coding.databases": { + "ntests": 3 + }, + "sage.coding.decoder": { + "ntests": 62 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.delsarte_bounds": { + "ntests": 2 + }, + "sage.coding.encoder": { + "ntests": 72 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.extended_code": { + "ntests": 81 + }, + "sage.coding.gabidulin_code": { + "failed": true, + "ntests": 235 + }, + "sage.coding.golay_code": { + "ntests": 48 + }, + "sage.coding.goppa_code": { + "failed": true, + "ntests": 115 + }, + "sage.coding.grs_code": { + "failed": true, + "ntests": 530 + }, + "sage.coding.guava": { + "ntests": 3 + }, + "sage.coding.guruswami_sudan.interpolation": { + "failed": true, + "ntests": 47 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 19 + }, + "sage.coding.hamming_code": { + "ntests": 18 + }, + "sage.coding.information_set_decoder": { + "ntests": 172 + }, + "sage.coding.kasami_codes": { + "failed": true, + "ntests": 45 + }, + "sage.coding.linear_code": { + "failed": true, + "ntests": 0 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 232 + }, + "sage.coding.linear_rank_metric": { + "ntests": 138 + }, + "sage.coding.parity_check_code": { + "ntests": 48 + }, + "sage.coding.punctured_code": { + "failed": true, + "ntests": 111 + }, + "sage.coding.reed_muller_code": { + "ntests": 168 + }, + "sage.coding.source_coding.huffman": { + "ntests": 64 + }, + "sage.coding.subfield_subcode": { + "failed": true, + "ntests": 65 + }, + "sage.combinat.backtrack": { + "ntests": 28 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 416 + }, + "sage.combinat.combinat_cython": { + "ntests": 22 + }, + "sage.combinat.combination": { + "ntests": 93 + }, + "sage.combinat.combinatorial_map": { + "ntests": 75 + }, + "sage.combinat.composition": { + "ntests": 286 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.free_module": { + "ntests": 403 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 304 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 249 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 250 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.permutation": { + "failed": true, + "ntests": 1214 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.associahedron": { + "ntests": 4 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 55 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 402 + }, + "sage.combinat.root_system.coxeter_group": { + "ntests": 13 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 81 + }, + "sage.combinat.root_system.hecke_algebra_representation": { + "ntests": 1 + }, + "sage.combinat.root_system.integrable_representations": { + "ntests": 5 + }, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": { + "ntests": 25 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 284 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 488 + }, + "sage.combinat.root_system.root_space": { + "ntests": 72 + }, + "sage.combinat.root_system.root_system": { + "ntests": 117 + }, + "sage.combinat.root_system.type_A": { + "ntests": 48 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 29 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 39 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 41 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 40 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_D": { + "ntests": 41 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 22 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 19 + }, + "sage.combinat.root_system.type_F": { + "ntests": 39 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_G": { + "ntests": 34 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 18 + }, + "sage.combinat.root_system.type_H": { + "ntests": 21 + }, + "sage.combinat.root_system.type_I": { + "ntests": 20 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 67 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 126 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 31 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 119 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 82 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 135 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 127 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 130 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 92 + }, + "sage.combinat.subset": { + "ntests": 280 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 16 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.cython_metaclass": { + "ntests": 4 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string": { + "ntests": 1 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 13 + }, + "sage.crypto.block_cipher.des": { + "ntests": 156 + }, + "sage.crypto.block_cipher.present": { + "ntests": 138 + }, + "sage.crypto.boolean_function": { + "failed": true, + "ntests": 206 + }, + "sage.crypto.classical": { + "ntests": 13 + }, + "sage.crypto.classical_cipher": { + "ntests": 2 + }, + "sage.crypto.cryptosystem": { + "ntests": 14 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 18 + }, + "sage.crypto.lfsr": { + "ntests": 29 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 30 + }, + "sage.crypto.mq.rijndael_gf": { + "failed": true, + "ntests": 342 + }, + "sage.crypto.mq.sr": { + "failed": true, + "ntests": 355 + }, + "sage.crypto.public_key.blum_goldwasser": { + "ntests": 6 + }, + "sage.crypto.sbox": { + "failed": true, + "ntests": 268 + }, + "sage.crypto.sboxes": { + "failed": true, + "ntests": 27 + }, + "sage.data_structures.bitset": { + "ntests": 431 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.bounded_integer_sequences": { + "ntests": 261 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.control": { + "ntests": 2 + }, + "sage.doctest.external": { + "ntests": 42 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 402 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 314 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 141 + }, + "sage.dynamics.arithmetic_dynamics.affine_ds": { + "failed": true, + "ntests": 183 + }, + "sage.dynamics.arithmetic_dynamics.berkovich_ds": { + "failed": true, + "ntests": 123 + }, + "sage.dynamics.arithmetic_dynamics.dynamical_semigroup": { + "failed": true, + "ntests": 0 + }, + "sage.dynamics.arithmetic_dynamics.endPN_automorphism_group": { + "failed": true, + "ntests": 137 + }, + "sage.dynamics.arithmetic_dynamics.endPN_minimal_model": { + "failed": true, + "ntests": 64 + }, + "sage.dynamics.arithmetic_dynamics.generic_ds": { + "failed": true, + "ntests": 79 + }, + "sage.dynamics.arithmetic_dynamics.product_projective_ds": { + "ntests": 37 + }, + "sage.dynamics.arithmetic_dynamics.projective_ds": { + "failed": true, + "ntests": 1467 + }, + "sage.dynamics.arithmetic_dynamics.projective_ds_helper": { + "ntests": 26 + }, + "sage.dynamics.arithmetic_dynamics.wehlerK3": { + "failed": true, + "ntests": 346 + }, + "sage.env": { + "ntests": 36 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 315 + }, + "sage.ext.fast_eval": { + "ntests": 4 + }, + "sage.ext.memory": { + "ntests": 3 + }, + "sage.features": { + "ntests": 145 + }, + "sage.features.all": { + "ntests": 16 + }, + "sage.features.bliss": { + "ntests": 8 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 6 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "failed": true, + "ntests": 26 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 6 + }, + "sage.features.gap": { + "ntests": 6 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 18 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 4 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 25 + }, + "sage.features.kenzo": { + "ntests": 6 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 8 + }, + "sage.features.lrs": { + "ntests": 16 + }, + "sage.features.mcqd": { + "ntests": 4 + }, + "sage.features.meataxe": { + "ntests": 4 + }, + "sage.features.mip_backends": { + "ntests": 7 + }, + "sage.features.msolve": { + "ntests": 6 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 4 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 4 + }, + "sage.features.pkg_systems": { + "ntests": 25 + }, + "sage.features.polymake": { + "ntests": 4 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 28 + }, + "sage.features.sagemath": { + "ntests": 179 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 4 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "ntests": 91 + }, + "sage.functions.bessel": { + "ntests": 171 + }, + "sage.functions.error": { + "failed": true, + "ntests": 94 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 162 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 141 + }, + "sage.functions.generalized": { + "ntests": 70 + }, + "sage.functions.hyperbolic": { + "ntests": 81 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 77 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 105 + }, + "sage.functions.log": { + "failed": true, + "ntests": 174 + }, + "sage.functions.min_max": { + "ntests": 21 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 252 + }, + "sage.functions.other": { + "failed": true, + "ntests": 246 + }, + "sage.functions.piecewise": { + "ntests": 13 + }, + "sage.functions.prime_pi": { + "ntests": 4 + }, + "sage.functions.special": { + "failed": true, + "ntests": 119 + }, + "sage.functions.spike_function": { + "ntests": 32 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 64 + }, + "sage.functions.trig": { + "ntests": 132 + }, + "sage.functions.wigner": { + "ntests": 24 + }, + "sage.geometry.abc": { + "ntests": 19 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 302 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 80 + }, + "sage.graphs.matchpoly": { + "ntests": 3 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 270 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 23 + }, + "sage.groups.abelian_gps.dual_abelian_group_element": { + "ntests": 1 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 55 + }, + "sage.groups.abelian_gps.values": { + "ntests": 65 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 76 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "failed": true, + "ntests": 126 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 92 + }, + "sage.groups.galois_group": { + "ntests": 58 + }, + "sage.groups.generic": { + "failed": true, + "ntests": 192 + }, + "sage.groups.group": { + "ntests": 44 + }, + "sage.groups.matrix_gps.coxeter_group": { + "ntests": 10 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 47 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 33 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 24 + }, + "sage.groups.matrix_gps.matrix_group": { + "failed": true, + "ntests": 45 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 21 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 43 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 38 + }, + "sage.groups.old": { + "ntests": 34 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_binary": { + "ntests": 75 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 251 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 87 + }, + "sage.homology.free_resolution": { + "ntests": 2 + }, + "sage.homology.graded_resolution": { + "ntests": 1 + }, + "sage.homology.homology_group": { + "failed": true, + "ntests": 0 + }, + "sage.homology.homology_vector_space_with_basis": { + "ntests": 6 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.gp": { + "failed": true, + "ntests": 148 + }, + "sage.interfaces.interface": { + "ntests": 4 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.quit": { + "ntests": 16 + }, + "sage.interfaces.sage0": { + "ntests": 1 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.libs.arb.arb_version": { + "ntests": 2 + }, + "sage.libs.arb.arith": { + "ntests": 8 + }, + "sage.libs.flint.arith": { + "ntests": 44 + }, + "sage.libs.flint.flint": { + "ntests": 6 + }, + "sage.libs.flint.fmpz_poly": { + "ntests": 84 + }, + "sage.libs.flint.nmod_poly_linkage.pxi": { + "ntests": 196 + }, + "sage.libs.flint.qsieve": { + "ntests": 4 + }, + "sage.libs.flint.ulong_extras": { + "ntests": 3 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.libs.ntl.error": { + "ntests": 4 + }, + "sage.libs.ntl.ntl_GF2": { + "ntests": 50 + }, + "sage.libs.ntl.ntl_GF2E": { + "failed": true, + "ntests": 70 + }, + "sage.libs.ntl.ntl_GF2EContext": { + "failed": true, + "ntests": 20 + }, + "sage.libs.ntl.ntl_GF2EX": { + "failed": true, + "ntests": 31 + }, + "sage.libs.ntl.ntl_GF2X": { + "failed": true, + "ntests": 112 + }, + "sage.libs.ntl.ntl_GF2X_linkage.pxi": { + "ntests": 86 + }, + "sage.libs.ntl.ntl_ZZ": { + "ntests": 76 + }, + "sage.libs.ntl.ntl_ZZX": { + "ntests": 223 + }, + "sage.libs.ntl.ntl_ZZ_p": { + "ntests": 68 + }, + "sage.libs.ntl.ntl_ZZ_pContext": { + "ntests": 34 + }, + "sage.libs.ntl.ntl_ZZ_pE": { + "ntests": 27 + }, + "sage.libs.ntl.ntl_ZZ_pEContext": { + "ntests": 29 + }, + "sage.libs.ntl.ntl_ZZ_pEX": { + "ntests": 304 + }, + "sage.libs.ntl.ntl_ZZ_pEX_linkage.pxi": { + "ntests": 80 + }, + "sage.libs.ntl.ntl_ZZ_pX": { + "ntests": 264 + }, + "sage.libs.ntl.ntl_lzz_p": { + "ntests": 48 + }, + "sage.libs.ntl.ntl_lzz_pContext": { + "ntests": 21 + }, + "sage.libs.ntl.ntl_lzz_pX": { + "ntests": 142 + }, + "sage.libs.ntl.ntl_mat_GF2": { + "ntests": 107 + }, + "sage.libs.ntl.ntl_mat_GF2E": { + "failed": true, + "ntests": 132 + }, + "sage.libs.ntl.ntl_mat_ZZ": { + "failed": true, + "ntests": 119 + }, + "sage.libs.pari": { + "ntests": 33 + }, + "sage.libs.pari.convert_flint": { + "ntests": 2 + }, + "sage.libs.pari.convert_gmp": { + "ntests": 16 + }, + "sage.libs.pari.convert_sage": { + "ntests": 86 + }, + "sage.libs.pari.convert_sage_complex_double": { + "ntests": 22 + }, + "sage.libs.pari.convert_sage_matrix": { + "ntests": 19 + }, + "sage.libs.pari.convert_sage_real_double": { + "ntests": 2 + }, + "sage.libs.pari.convert_sage_real_mpfr": { + "ntests": 7 + }, + "sage.libs.pari.tests": { + "failed": true, + "ntests": 705 + }, + "sage.libs.singular.function": { + "failed": true, + "ntests": 310 + }, + "sage.libs.singular.function_factory": { + "failed": true, + "ntests": 8 + }, + "sage.libs.singular.groebner_strategy": { + "failed": true, + "ntests": 135 + }, + "sage.libs.singular.option": { + "failed": true, + "ntests": 122 + }, + "sage.libs.singular.polynomial": { + "failed": true, + "ntests": 0 + }, + "sage.libs.singular.ring": { + "failed": true, + "ntests": 101 + }, + "sage.libs.singular.singular": { + "failed": true, + "ntests": 171 + }, + "sage.libs.singular.standard_options": { + "failed": true, + "ntests": 48 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 151 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.compute_J_ideal": { + "failed": true, + "ntests": 99 + }, + "sage.matrix.constructor": { + "failed": true, + "ntests": 151 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 800 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 440 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 2147 + }, + "sage.matrix.matrix_cdv": { + "ntests": 5 + }, + "sage.matrix.matrix_complex_ball_dense": { + "ntests": 118 + }, + "sage.matrix.matrix_complex_double_dense": { + "ntests": 7 + }, + "sage.matrix.matrix_dense": { + "ntests": 35 + }, + "sage.matrix.matrix_double_dense": { + "ntests": 456 + }, + "sage.matrix.matrix_double_sparse": { + "ntests": 24 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_modn_dense_template.pxi": { + "failed": true, + "ntests": 0 + }, + "sage.matrix.matrix_mpolynomial_dense": { + "failed": true, + "ntests": 77 + }, + "sage.matrix.matrix_numpy_dense": { + "ntests": 64 + }, + "sage.matrix.matrix_numpy_integer_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_polynomial_dense": { + "ntests": 436 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 13 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 429 + }, + "sage.matrix.matrix_sparse": { + "ntests": 164 + }, + "sage.matrix.misc_flint": { + "failed": true, + "ntests": 5 + }, + "sage.matrix.misc_mpfr": { + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 90 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 451 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 190 + }, + "sage.matroids.basis_matroid": { + "ntests": 152 + }, + "sage.matroids.catalog": { + "ntests": 181 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 82 + }, + "sage.matroids.constructor": { + "ntests": 129 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.graphic_matroid": { + "ntests": 4 + }, + "sage.matroids.lean_matrix": { + "ntests": 288 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 639 + }, + "sage.matroids.matroid": { + "ntests": 858 + }, + "sage.matroids.matroids_plot_helpers": { + "ntests": 73 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 64 + }, + "sage.matroids.utilities": { + "ntests": 58 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 150 + }, + "sage.misc.cachefunc": { + "failed": true, + "ntests": 688 + }, + "sage.misc.call": { + "ntests": 28 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 78 + }, + "sage.misc.compat": { + "ntests": 2 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 131 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 24 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 61 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 40 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 400 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 32 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 325 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "failed": true, + "ntests": 18 + }, + "sage.misc.instancedoc": { + "ntests": 67 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 243 + }, + "sage.misc.latex_macros": { + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 210 + }, + "sage.misc.lazy_attribute": { + "ntests": 100 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 279 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 237 + }, + "sage.misc.lazy_string": { + "ntests": 137 + }, + "sage.misc.map_threaded": { + "ntests": 1 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 149 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 67 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 36 + }, + "sage.misc.package_dir": { + "failed": true, + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 136 + }, + "sage.misc.persist": { + "failed": true, + "ntests": 137 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 31 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 28 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 22 + }, + "sage.misc.sage_eval": { + "ntests": 35 + }, + "sage.misc.sage_input": { + "ntests": 732 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 44 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 103 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 334 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 59 + }, + "sage.misc.table": { + "ntests": 66 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 35 + }, + "sage.misc.trace": { + "ntests": 5 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 281 + }, + "sage.modular.abvar.abvar": { + "failed": true, + "ntests": 0 + }, + "sage.modular.abvar.abvar_ambient_jacobian": { + "failed": true, + "ntests": 53 + }, + "sage.modular.abvar.abvar_newform": { + "failed": true, + "ntests": 32 + }, + "sage.modular.abvar.constructor": { + "failed": true, + "ntests": 15 + }, + "sage.modular.abvar.cuspidal_subgroup": { + "failed": true, + "ntests": 66 + }, + "sage.modular.abvar.finite_subgroup": { + "failed": true, + "ntests": 151 + }, + "sage.modular.abvar.homology": { + "failed": true, + "ntests": 95 + }, + "sage.modular.abvar.homspace": { + "failed": true, + "ntests": 116 + }, + "sage.modular.abvar.lseries": { + "failed": true, + "ntests": 57 + }, + "sage.modular.abvar.morphism": { + "failed": true, + "ntests": 167 + }, + "sage.modular.abvar.torsion_subgroup": { + "failed": true, + "ntests": 85 + }, + "sage.modular.arithgroup.arithgroup_element": { + "failed": true, + "ntests": 66 + }, + "sage.modular.arithgroup.arithgroup_generic": { + "failed": true, + "ntests": 155 + }, + "sage.modular.arithgroup.congroup": { + "ntests": 9 + }, + "sage.modular.arithgroup.congroup_gamma": { + "ntests": 45 + }, + "sage.modular.arithgroup.congroup_gamma0": { + "failed": true, + "ntests": 95 + }, + "sage.modular.arithgroup.congroup_gamma1": { + "failed": true, + "ntests": 80 + }, + "sage.modular.arithgroup.congroup_gammaH": { + "failed": true, + "ntests": 158 + }, + "sage.modular.arithgroup.congroup_sl2z": { + "ntests": 32 + }, + "sage.modular.arithgroup.farey_symbol": { + "failed": true, + "ntests": 89 + }, + "sage.modular.btquotients.btquotient": { + "failed": true, + "ntests": 374 + }, + "sage.modular.btquotients.pautomorphicform": { + "failed": true, + "ntests": 375 + }, + "sage.modular.buzzard": { + "failed": true, + "ntests": 9 + }, + "sage.modular.cusps": { + "failed": true, + "ntests": 149 + }, + "sage.modular.dims": { + "ntests": 95 + }, + "sage.modular.dirichlet": { + "failed": true, + "ntests": 566 + }, + "sage.modular.etaproducts": { + "failed": true, + "ntests": 102 + }, + "sage.modular.hecke.algebra": { + "failed": true, + "ntests": 88 + }, + "sage.modular.hecke.ambient_module": { + "failed": true, + "ntests": 94 + }, + "sage.modular.hecke.degenmap": { + "failed": true, + "ntests": 15 + }, + "sage.modular.hecke.element": { + "failed": true, + "ntests": 48 + }, + "sage.modular.hecke.hecke_operator": { + "failed": true, + "ntests": 125 + }, + "sage.modular.hecke.homspace": { + "failed": true, + "ntests": 24 + }, + "sage.modular.hecke.module": { + "failed": true, + "ntests": 193 + }, + "sage.modular.hecke.morphism": { + "failed": true, + "ntests": 19 + }, + "sage.modular.hecke.submodule": { + "failed": true, + "ntests": 141 + }, + "sage.modular.hypergeometric_misc": { + "failed": true, + "ntests": 11 + }, + "sage.modular.hypergeometric_motive": { + "failed": true, + "ntests": 258 + }, + "sage.modular.local_comp.liftings": { + "failed": true, + "ntests": 48 + }, + "sage.modular.local_comp.local_comp": { + "failed": true, + "ntests": 101 + }, + "sage.modular.local_comp.type_space": { + "failed": true, + "ntests": 90 + }, + "sage.modular.modform.ambient": { + "failed": true, + "ntests": 113 + }, + "sage.modular.modform.ambient_R": { + "failed": true, + "ntests": 12 + }, + "sage.modular.modform.ambient_g0": { + "failed": true, + "ntests": 13 + }, + "sage.modular.modform.ambient_g1": { + "failed": true, + "ntests": 25 + }, + "sage.modular.modform.constructor": { + "failed": true, + "ntests": 54 + }, + "sage.modular.modform.cuspidal_submodule": { + "failed": true, + "ntests": 56 + }, + "sage.modular.modform.eis_series": { + "failed": true, + "ntests": 38 + }, + "sage.modular.modform.eisenstein_submodule": { + "failed": true, + "ntests": 89 + }, + "sage.modular.modform.element": { + "failed": true, + "ntests": 624 + }, + "sage.modular.modform.find_generators": { + "failed": true, + "ntests": 9 + }, + "sage.modular.modform.half_integral": { + "failed": true, + "ntests": 7 + }, + "sage.modular.modform.hecke_operator_on_qexp": { + "failed": true, + "ntests": 29 + }, + "sage.modular.modform.j_invariant": { + "failed": true, + "ntests": 3 + }, + "sage.modular.modform.l_series_gross_zagier": { + "failed": true, + "ntests": 25 + }, + "sage.modular.modform.l_series_gross_zagier_coeffs": { + "failed": true, + "ntests": 20 + }, + "sage.modular.modform.numerical": { + "failed": true, + "ntests": 46 + }, + "sage.modular.modform.ring": { + "failed": true, + "ntests": 146 + }, + "sage.modular.modform.space": { + "failed": true, + "ntests": 246 + }, + "sage.modular.modform.submodule": { + "ntests": 12 + }, + "sage.modular.modform.tests": { + "failed": true, + "ntests": 4 + }, + "sage.modular.modform.theta": { + "ntests": 15 + }, + "sage.modular.modform.vm_basis": { + "failed": true, + "ntests": 27 + }, + "sage.modular.modform.weight1": { + "failed": true, + "ntests": 10 + }, + "sage.modular.modform_hecketriangle.abstract_ring": { + "failed": true, + "ntests": 523 + }, + "sage.modular.modform_hecketriangle.analytic_type": { + "ntests": 6 + }, + "sage.modular.modform_hecketriangle.graded_ring_element": { + "ntests": 51 + }, + "sage.modular.modsym.ambient": { + "failed": true, + "ntests": 442 + }, + "sage.modular.modsym.boundary": { + "failed": true, + "ntests": 200 + }, + "sage.modular.modsym.element": { + "failed": true, + "ntests": 48 + }, + "sage.modular.modsym.g1list": { + "ntests": 21 + }, + "sage.modular.modsym.ghlist": { + "ntests": 23 + }, + "sage.modular.modsym.hecke_operator": { + "failed": true, + "ntests": 6 + }, + "sage.modular.modsym.manin_symbol": { + "failed": true, + "ntests": 111 + }, + "sage.modular.modsym.manin_symbol_list": { + "failed": true, + "ntests": 129 + }, + "sage.modular.modsym.modsym": { + "failed": true, + "ntests": 76 + }, + "sage.modular.modsym.modular_symbols": { + "failed": true, + "ntests": 65 + }, + "sage.modular.modsym.p1list": { + "ntests": 120 + }, + "sage.modular.modsym.relation_matrix": { + "failed": true, + "ntests": 29 + }, + "sage.modular.modsym.relation_matrix_pyx": { + "ntests": 4 + }, + "sage.modular.modsym.space": { + "failed": true, + "ntests": 312 + }, + "sage.modular.modsym.subspace": { + "failed": true, + "ntests": 57 + }, + "sage.modular.modsym.tests": { + "failed": true, + "ntests": 37 + }, + "sage.modular.overconvergent.genus0": { + "ntests": 1 + }, + "sage.modular.overconvergent.hecke_series": { + "failed": true, + "ntests": 76 + }, + "sage.modular.pollack_stevens.fund_domain": { + "failed": true, + "ntests": 174 + }, + "sage.modular.pollack_stevens.modsym": { + "failed": true, + "ntests": 243 + }, + "sage.modular.pollack_stevens.sigma0": { + "failed": true, + "ntests": 101 + }, + "sage.modular.quasimodform.element": { + "failed": true, + "ntests": 166 + }, + "sage.modular.quasimodform.ring": { + "failed": true, + "ntests": 152 + }, + "sage.modular.quatalg.brandt": { + "failed": true, + "ntests": 165 + }, + "sage.modular.ssmod.ssmod": { + "failed": true, + "ntests": 77 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 0 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 170 + }, + "sage.modules.finite_submodule_iter": { + "failed": true, + "ntests": 95 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1473 + }, + "sage.modules.free_module_element": { + "failed": true, + "ntests": 924 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 170 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 0 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 400 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 47 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "failed": true, + "ntests": 124 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 91 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 171 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 43 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 13 + }, + "sage.modules.vector_double_dense": { + "ntests": 96 + }, + "sage.modules.vector_integer_dense": { + "ntests": 46 + }, + "sage.modules.vector_modn_dense": { + "ntests": 69 + }, + "sage.modules.vector_numpy_dense": { + "ntests": 45 + }, + "sage.modules.vector_numpy_integer_dense": { + "ntests": 5 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 12 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "failed": true, + "ntests": 157 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 161 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.backends.generic_backend": { + "ntests": 17 + }, + "sage.numerical.backends.generic_sdp_backend": { + "ntests": 12 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.numerical.optimize": { + "failed": true, + "ntests": 87 + }, + "sage.parallel.decorate": { + "ntests": 90 + }, + "sage.parallel.map_reduce": { + "ntests": 291 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "ntests": 244 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 326 + }, + "sage.quadratic_forms.constructions": { + "ntests": 5 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.genera.genus": { + "failed": true, + "ntests": 529 + }, + "sage.quadratic_forms.qfsolve": { + "ntests": 38 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 196 + }, + "sage.quadratic_forms.quadratic_form__automorphisms": { + "ntests": 51 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 74 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__genus": { + "ntests": 10 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 134 + }, + "sage.quadratic_forms.quadratic_form__local_density_interfaces": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "ntests": 143 + }, + "sage.quadratic_forms.quadratic_form__local_normal_form": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__mass": { + "ntests": 4 + }, + "sage.quadratic_forms.quadratic_form__mass__Conway_Sloane_masses": { + "ntests": 59 + }, + "sage.quadratic_forms.quadratic_form__mass__Siegel_densities": { + "ntests": 14 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "failed": true, + "ntests": 32 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__siegel_product": { + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 99 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.special_values": { + "ntests": 21 + }, + "sage.quadratic_forms.ternary": { + "ntests": 105 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 306 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 58 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 25 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 20 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 118 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 88 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 42 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 98 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 26 + }, + "sage.repl.load": { + "failed": true, + "ntests": 42 + }, + "sage.repl.preparse": { + "failed": true, + "ntests": 349 + }, + "sage.repl.rich_output.backend_base": { + "ntests": 96 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 58 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 78 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 88 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 41 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 91 + }, + "sage.rings.algebraic_closure_finite_field": { + "failed": true, + "ntests": 213 + }, + "sage.rings.bernmm": { + "ntests": 25 + }, + "sage.rings.bernoulli_mod_p": { + "ntests": 26 + }, + "sage.rings.big_oh": { + "ntests": 22 + }, + "sage.rings.complex_arb": { + "failed": true, + "ntests": 653 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "ntests": 339 + }, + "sage.rings.complex_interval": { + "ntests": 266 + }, + "sage.rings.complex_interval_field": { + "ntests": 131 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 520 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 295 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 34 + }, + "sage.rings.derivation": { + "ntests": 405 + }, + "sage.rings.factorint": { + "ntests": 26 + }, + "sage.rings.factorint_flint": { + "ntests": 10 + }, + "sage.rings.factorint_pari": { + "ntests": 3 + }, + "sage.rings.fast_arith": { + "ntests": 20 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 57 + }, + "sage.rings.finite_rings.element_base": { + "failed": true, + "ntests": 233 + }, + "sage.rings.finite_rings.element_ntl_gf2e": { + "failed": true, + "ntests": 176 + }, + "sage.rings.finite_rings.element_pari_ffelt": { + "failed": true, + "ntests": 276 + }, + "sage.rings.finite_rings.finite_field_base": { + "failed": true, + "ntests": 325 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "failed": true, + "ntests": 124 + }, + "sage.rings.finite_rings.finite_field_ntl_gf2e": { + "failed": true, + "ntests": 61 + }, + "sage.rings.finite_rings.finite_field_pari_ffelt": { + "failed": true, + "ntests": 41 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 38 + }, + "sage.rings.finite_rings.galois_group": { + "ntests": 20 + }, + "sage.rings.finite_rings.hom_finite_field": { + "failed": true, + "ntests": 192 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 21 + }, + "sage.rings.finite_rings.homset": { + "failed": true, + "ntests": 67 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 580 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 255 + }, + "sage.rings.finite_rings.maps_finite_field": { + "ntests": 31 + }, + "sage.rings.finite_rings.residue_field": { + "failed": true, + "ntests": 144 + }, + "sage.rings.finite_rings.residue_field_ntl_gf2e": { + "ntests": 14 + }, + "sage.rings.finite_rings.residue_field_pari_ffelt": { + "ntests": 8 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 248 + }, + "sage.rings.fraction_field_FpT": { + "ntests": 369 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 271 + }, + "sage.rings.function_field.constructor": { + "ntests": 34 + }, + "sage.rings.function_field.derivations": { + "ntests": 17 + }, + "sage.rings.function_field.derivations_polymod": { + "failed": true, + "ntests": 161 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 108 + }, + "sage.rings.function_field.element": { + "ntests": 142 + }, + "sage.rings.function_field.element_rational": { + "ntests": 83 + }, + "sage.rings.function_field.extensions": { + "ntests": 7 + }, + "sage.rings.function_field.function_field": { + "ntests": 159 + }, + "sage.rings.function_field.function_field_rational": { + "failed": true, + "ntests": 148 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 136 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 150 + }, + "sage.rings.function_field.maps": { + "ntests": 59 + }, + "sage.rings.function_field.order": { + "ntests": 29 + }, + "sage.rings.function_field.order_basis": { + "ntests": 55 + }, + "sage.rings.function_field.order_rational": { + "failed": true, + "ntests": 106 + }, + "sage.rings.function_field.place": { + "ntests": 51 + }, + "sage.rings.function_field.place_rational": { + "failed": true, + "ntests": 30 + }, + "sage.rings.function_field.valuation": { + "failed": true, + "ntests": 271 + }, + "sage.rings.generic": { + "ntests": 69 + }, + "sage.rings.homset": { + "ntests": 44 + }, + "sage.rings.ideal": { + "ntests": 361 + }, + "sage.rings.ideal_monoid": { + "ntests": 22 + }, + "sage.rings.infinity": { + "ntests": 324 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1171 + }, + "sage.rings.integer_fake.pxd": { + "ntests": 1 + }, + "sage.rings.integer_ring": { + "ntests": 224 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 883 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 160 + }, + "sage.rings.laurent_series_ring_element": { + "failed": true, + "ntests": 397 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 175 + }, + "sage.rings.monomials": { + "ntests": 5 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 547 + }, + "sage.rings.multi_power_series_ring": { + "failed": true, + "ntests": 230 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 437 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.class_group": { + "ntests": 239 + }, + "sage.rings.number_field.galois_group": { + "ntests": 2 + }, + "sage.rings.number_field.homset": { + "ntests": 131 + }, + "sage.rings.number_field.maps": { + "ntests": 196 + }, + "sage.rings.number_field.morphism": { + "ntests": 42 + }, + "sage.rings.number_field.number_field": { + "ntests": 47 + }, + "sage.rings.number_field.number_field_base": { + "ntests": 1 + }, + "sage.rings.number_field.number_field_element": { + "ntests": 31 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 4 + }, + "sage.rings.number_field.number_field_element_quadratic": { + "ntests": 15 + }, + "sage.rings.number_field.number_field_ideal": { + "ntests": 5 + }, + "sage.rings.number_field.number_field_ideal_rel": { + "failed": true, + "ntests": 259 + }, + "sage.rings.number_field.number_field_morphisms": { + "ntests": 2 + }, + "sage.rings.number_field.number_field_rel": { + "ntests": 600 + }, + "sage.rings.number_field.order": { + "ntests": 6 + }, + "sage.rings.number_field.selmer_group": { + "ntests": 93 + }, + "sage.rings.number_field.small_primes_of_degree_one": { + "ntests": 41 + }, + "sage.rings.number_field.splitting_field": { + "ntests": 73 + }, + "sage.rings.number_field.totallyreal": { + "ntests": 17 + }, + "sage.rings.number_field.totallyreal_data": { + "ntests": 24 + }, + "sage.rings.number_field.totallyreal_phc": { + "ntests": 3 + }, + "sage.rings.number_field.totallyreal_rel": { + "ntests": 1 + }, + "sage.rings.number_field.unit_group": { + "ntests": 172 + }, + "sage.rings.padics.CA_template.pxi": { + "failed": true, + "ntests": 309 + }, + "sage.rings.padics.CR_template.pxi": { + "failed": true, + "ntests": 431 + }, + "sage.rings.padics.FM_template.pxi": { + "failed": true, + "ntests": 277 + }, + "sage.rings.padics.FP_template.pxi": { + "failed": true, + "ntests": 340 + }, + "sage.rings.padics.eisenstein_extension_generic": { + "ntests": 41 + }, + "sage.rings.padics.factory": { + "failed": true, + "ntests": 559 + }, + "sage.rings.padics.generic_nodes": { + "ntests": 254 + }, + "sage.rings.padics.lattice_precision": { + "failed": true, + "ntests": 456 + }, + "sage.rings.padics.local_generic": { + "ntests": 4 + }, + "sage.rings.padics.local_generic_element": { + "ntests": 1 + }, + "sage.rings.padics.misc": { + "ntests": 26 + }, + "sage.rings.padics.morphism": { + "ntests": 66 + }, + "sage.rings.padics.padic_ZZ_pX_CA_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_ZZ_pX_FM_element": { + "ntests": 1 + }, + "sage.rings.padics.padic_ZZ_pX_element": { + "ntests": 10 + }, + "sage.rings.padics.padic_base_generic": { + "ntests": 44 + }, + "sage.rings.padics.padic_base_leaves": { + "ntests": 185 + }, + "sage.rings.padics.padic_extension_generic": { + "failed": true, + "ntests": 208 + }, + "sage.rings.padics.padic_extension_leaves": { + "failed": true, + "ntests": 72 + }, + "sage.rings.padics.padic_generic": { + "ntests": 5 + }, + "sage.rings.padics.padic_generic_element": { + "failed": true, + "ntests": 816 + }, + "sage.rings.padics.padic_lattice_element": { + "ntests": 269 + }, + "sage.rings.padics.padic_printing": { + "failed": true, + "ntests": 108 + }, + "sage.rings.padics.padic_relaxed_errors": { + "ntests": 5 + }, + "sage.rings.padics.padic_template_element.pxi": { + "failed": true, + "ntests": 141 + }, + "sage.rings.padics.padic_valuation": { + "ntests": 148 + }, + "sage.rings.padics.pow_computer": { + "ntests": 88 + }, + "sage.rings.padics.pow_computer_flint": { + "ntests": 76 + }, + "sage.rings.padics.pow_computer_relative": { + "failed": true, + "ntests": 97 + }, + "sage.rings.padics.qadic_flint_CA": { + "failed": true, + "ntests": 19 + }, + "sage.rings.padics.qadic_flint_CR": { + "failed": true, + "ntests": 23 + }, + "sage.rings.padics.qadic_flint_FM": { + "failed": true, + "ntests": 17 + }, + "sage.rings.padics.qadic_flint_FP": { + "failed": true, + "ntests": 22 + }, + "sage.rings.padics.relative_extension_leaves": { + "failed": true, + "ntests": 87 + }, + "sage.rings.padics.relative_ramified_CA": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_CR": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FM": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FP": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relaxed_template.pxi": { + "ntests": 509 + }, + "sage.rings.padics.tests": { + "ntests": 12 + }, + "sage.rings.padics.tutorial": { + "failed": true, + "ntests": 45 + }, + "sage.rings.padics.unramified_extension_generic": { + "failed": true, + "ntests": 33 + }, + "sage.rings.pari_ring": { + "ntests": 46 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.complex_roots": { + "ntests": 42 + }, + "sage.rings.polynomial.cyclotomic": { + "ntests": 37 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 133 + }, + "sage.rings.polynomial.hilbert": { + "failed": true, + "ntests": 8 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 284 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 275 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 402 + }, + "sage.rings.polynomial.laurent_polynomial_ideal": { + "ntests": 7 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 339 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 87 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 529 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true, + "ntests": 297 + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "ntests": 58 + }, + "sage.rings.polynomial.multi_polynomial_ideal_libsingular": { + "failed": true, + "ntests": 25 + }, + "sage.rings.polynomial.multi_polynomial_libsingular": { + "failed": true, + "ntests": 1131 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 232 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.ore_function_element": { + "failed": true, + "ntests": 243 + }, + "sage.rings.polynomial.ore_function_field": { + "failed": true, + "ntests": 231 + }, + "sage.rings.polynomial.ore_polynomial_ring": { + "ntests": 1 + }, + "sage.rings.polynomial.padics.polynomial_padic": { + "failed": true, + "ntests": 69 + }, + "sage.rings.polynomial.padics.polynomial_padic_capped_relative_dense": { + "ntests": 150 + }, + "sage.rings.polynomial.padics.polynomial_padic_flat": { + "ntests": 3 + }, + "sage.rings.polynomial.plural": { + "failed": true, + "ntests": 621 + }, + "sage.rings.polynomial.polydict": { + "ntests": 396 + }, + "sage.rings.polynomial.polynomial_complex_arb": { + "ntests": 144 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 2299 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 203 + }, + "sage.rings.polynomial.polynomial_integer_dense_flint": { + "ntests": 306 + }, + "sage.rings.polynomial.polynomial_integer_dense_ntl": { + "ntests": 188 + }, + "sage.rings.polynomial.polynomial_modn_dense_ntl": { + "failed": true, + "ntests": 331 + }, + "sage.rings.polynomial.polynomial_number_field": { + "failed": true, + "ntests": 75 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "failed": true, + "ntests": 349 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "failed": true, + "ntests": 128 + }, + "sage.rings.polynomial.polynomial_rational_flint": { + "failed": true, + "ntests": 394 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "failed": true, + "ntests": 136 + }, + "sage.rings.polynomial.polynomial_ring": { + "failed": true, + "ntests": 508 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 148 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 30 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 52 + }, + "sage.rings.polynomial.polynomial_template.pxi": { + "failed": true, + "ntests": 122 + }, + "sage.rings.polynomial.polynomial_zmod_flint": { + "failed": true, + "ntests": 147 + }, + "sage.rings.polynomial.polynomial_zz_pex": { + "failed": true, + "ntests": 125 + }, + "sage.rings.polynomial.real_roots": { + "ntests": 6 + }, + "sage.rings.polynomial.symmetric_ideal": { + "ntests": 37 + }, + "sage.rings.polynomial.symmetric_reduction": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 327 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 32 + }, + "sage.rings.polynomial.toy_d_basis": { + "ntests": 51 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 42 + }, + "sage.rings.polynomial.weil.weil_polynomials": { + "failed": true, + "ntests": 92 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_pari": { + "ntests": 177 + }, + "sage.rings.power_series_poly": { + "ntests": 271 + }, + "sage.rings.power_series_ring": { + "ntests": 238 + }, + "sage.rings.power_series_ring_element": { + "ntests": 491 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 68 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 198 + }, + "sage.rings.qqbar": { + "ntests": 153 + }, + "sage.rings.quotient_ring": { + "ntests": 200 + }, + "sage.rings.quotient_ring_element": { + "ntests": 100 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 552 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 207 + }, + "sage.rings.real_arb": { + "failed": true, + "ntests": 561 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 362 + }, + "sage.rings.real_double_element_gsl": { + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_interval_absolute": { + "ntests": 1 + }, + "sage.rings.real_lazy": { + "failed": true, + "ntests": 279 + }, + "sage.rings.real_mpfi": { + "failed": true, + "ntests": 925 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1041 + }, + "sage.rings.ring": { + "failed": true, + "ntests": 356 + }, + "sage.rings.ring_extension": { + "failed": true, + "ntests": 380 + }, + "sage.rings.ring_extension_conversion": { + "failed": true, + "ntests": 75 + }, + "sage.rings.ring_extension_element": { + "failed": true, + "ntests": 247 + }, + "sage.rings.ring_extension_homset": { + "failed": true, + "ntests": 9 + }, + "sage.rings.ring_extension_morphism": { + "failed": true, + "ntests": 138 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 16 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tate_algebra": { + "failed": true, + "ntests": 267 + }, + "sage.rings.tate_algebra_element": { + "ntests": 671 + }, + "sage.rings.tate_algebra_ideal": { + "failed": true, + "ntests": 126 + }, + "sage.rings.tests": { + "ntests": 44 + }, + "sage.rings.valuation.augmented_valuation": { + "ntests": 424 + }, + "sage.rings.valuation.developing_valuation": { + "ntests": 62 + }, + "sage.rings.valuation.gauss_valuation": { + "ntests": 139 + }, + "sage.rings.valuation.inductive_valuation": { + "ntests": 271 + }, + "sage.rings.valuation.limit_valuation": { + "ntests": 18 + }, + "sage.rings.valuation.mapped_valuation": { + "ntests": 22 + }, + "sage.rings.valuation.scaled_valuation": { + "ntests": 41 + }, + "sage.rings.valuation.trivial_valuation": { + "ntests": 53 + }, + "sage.rings.valuation.valuation": { + "failed": true, + "ntests": 207 + }, + "sage.rings.valuation.valuation_space": { + "ntests": 200 + }, + "sage.rings.valuation.value_group": { + "ntests": 102 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 52 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 318 + }, + "sage.schemes.affine.affine_point": { + "ntests": 65 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 26 + }, + "sage.schemes.affine.affine_space": { + "failed": true, + "ntests": 167 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 88 + }, + "sage.schemes.berkovich.berkovich_cp_element": { + "ntests": 36 + }, + "sage.schemes.berkovich.berkovich_space": { + "ntests": 18 + }, + "sage.schemes.curves.affine_curve": { + "ntests": 22 + }, + "sage.schemes.curves.closed_point": { + "failed": true, + "ntests": 100 + }, + "sage.schemes.curves.curve": { + "ntests": 1 + }, + "sage.schemes.curves.projective_curve": { + "ntests": 17 + }, + "sage.schemes.curves.zariski_vankampen": { + "ntests": 3 + }, + "sage.schemes.cyclic_covers.constructor": { + "failed": true, + "ntests": 15 + }, + "sage.schemes.cyclic_covers.cycliccover_finite_field": { + "failed": true, + "ntests": 160 + }, + "sage.schemes.cyclic_covers.cycliccover_generic": { + "failed": true, + "ntests": 67 + }, + "sage.schemes.elliptic_curves.BSD": { + "failed": true, + "ntests": 76 + }, + "sage.schemes.elliptic_curves.Qcurves": { + "failed": true, + "ntests": 34 + }, + "sage.schemes.elliptic_curves.cardinality": { + "failed": true, + "ntests": 59 + }, + "sage.schemes.elliptic_curves.cm": { + "ntests": 79 + }, + "sage.schemes.elliptic_curves.constructor": { + "failed": true, + "ntests": 214 + }, + "sage.schemes.elliptic_curves.ec_database": { + "failed": true, + "ntests": 9 + }, + "sage.schemes.elliptic_curves.ell_curve_isogeny": { + "failed": true, + "ntests": 0 + }, + "sage.schemes.elliptic_curves.ell_egros": { + "failed": true, + "ntests": 29 + }, + "sage.schemes.elliptic_curves.ell_field": { + "failed": true, + "ntests": 232 + }, + "sage.schemes.elliptic_curves.ell_finite_field": { + "failed": true, + "ntests": 386 + }, + "sage.schemes.elliptic_curves.ell_generic": { + "failed": true, + "ntests": 527 + }, + "sage.schemes.elliptic_curves.ell_local_data": { + "failed": true, + "ntests": 79 + }, + "sage.schemes.elliptic_curves.ell_modular_symbols": { + "failed": true, + "ntests": 133 + }, + "sage.schemes.elliptic_curves.ell_point": { + "failed": true, + "ntests": 711 + }, + "sage.schemes.elliptic_curves.ell_rational_field": { + "failed": true, + "ntests": 889 + }, + "sage.schemes.elliptic_curves.ell_tate_curve": { + "failed": true, + "ntests": 64 + }, + "sage.schemes.elliptic_curves.ell_torsion": { + "failed": true, + "ntests": 48 + }, + "sage.schemes.elliptic_curves.ell_wp": { + "failed": true, + "ntests": 42 + }, + "sage.schemes.elliptic_curves.formal_group": { + "failed": true, + "ntests": 76 + }, + "sage.schemes.elliptic_curves.gal_reps": { + "failed": true, + "ntests": 170 + }, + "sage.schemes.elliptic_curves.gp_simon": { + "failed": true, + "ntests": 3 + }, + "sage.schemes.elliptic_curves.heegner": { + "ntests": 3 + }, + "sage.schemes.elliptic_curves.height": { + "failed": true, + "ntests": 236 + }, + "sage.schemes.elliptic_curves.hom": { + "failed": true, + "ntests": 235 + }, + "sage.schemes.elliptic_curves.hom_composite": { + "failed": true, + "ntests": 169 + }, + "sage.schemes.elliptic_curves.hom_frobenius": { + "failed": true, + "ntests": 126 + }, + "sage.schemes.elliptic_curves.hom_scalar": { + "failed": true, + "ntests": 140 + }, + "sage.schemes.elliptic_curves.hom_velusqrt": { + "failed": true, + "ntests": 260 + }, + "sage.schemes.elliptic_curves.isogeny_small_degree": { + "failed": true, + "ntests": 240 + }, + "sage.schemes.elliptic_curves.jacobian": { + "failed": true, + "ntests": 35 + }, + "sage.schemes.elliptic_curves.kodaira_symbol": { + "ntests": 29 + }, + "sage.schemes.elliptic_curves.kraus": { + "failed": true, + "ntests": 22 + }, + "sage.schemes.elliptic_curves.lseries_ell": { + "failed": true, + "ntests": 100 + }, + "sage.schemes.elliptic_curves.mod5family": { + "ntests": 2 + }, + "sage.schemes.elliptic_curves.mod_sym_num": { + "failed": true, + "ntests": 359 + }, + "sage.schemes.elliptic_curves.modular_parametrization": { + "failed": true, + "ntests": 51 + }, + "sage.schemes.elliptic_curves.padic_lseries": { + "ntests": 1 + }, + "sage.schemes.elliptic_curves.period_lattice": { + "failed": true, + "ntests": 172 + }, + "sage.schemes.elliptic_curves.period_lattice_region": { + "ntests": 12 + }, + "sage.schemes.elliptic_curves.sha_tate": { + "failed": true, + "ntests": 129 + }, + "sage.schemes.elliptic_curves.weierstrass_morphism": { + "failed": true, + "ntests": 187 + }, + "sage.schemes.elliptic_curves.weierstrass_transform": { + "failed": true, + "ntests": 34 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 337 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor": { + "failed": true, + "ntests": 79 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 47 + }, + "sage.schemes.generic.homset": { + "ntests": 122 + }, + "sage.schemes.generic.hypersurface": { + "ntests": 42 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 394 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "failed": true, + "ntests": 183 + }, + "sage.schemes.generic.spec": { + "ntests": 32 + }, + "sage.schemes.hyperelliptic_curves.all": { + "ntests": 4 + }, + "sage.schemes.hyperelliptic_curves.constructor": { + "failed": true, + "ntests": 42 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_finite_field": { + "failed": true, + "ntests": 373 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_g2": { + "ntests": 46 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_generic": { + "failed": true, + "ntests": 127 + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_rational_field": { + "failed": true, + "ntests": 3 + }, + "sage.schemes.hyperelliptic_curves.invariants": { + "failed": true, + "ntests": 74 + }, + "sage.schemes.hyperelliptic_curves.jacobian_endomorphism_utils": { + "failed": true, + "ntests": 39 + }, + "sage.schemes.hyperelliptic_curves.jacobian_generic": { + "failed": true, + "ntests": 93 + }, + "sage.schemes.hyperelliptic_curves.jacobian_homset": { + "ntests": 36 + }, + "sage.schemes.hyperelliptic_curves.jacobian_morphism": { + "failed": true, + "ntests": 159 + }, + "sage.schemes.hyperelliptic_curves.kummer_surface": { + "ntests": 5 + }, + "sage.schemes.hyperelliptic_curves.mestre": { + "failed": true, + "ntests": 23 + }, + "sage.schemes.hyperelliptic_curves.monsky_washnitzer": { + "failed": true, + "ntests": 626 + }, + "sage.schemes.jacobians.abstract_jacobian": { + "failed": true, + "ntests": 56 + }, + "sage.schemes.overview": { + "ntests": 9 + }, + "sage.schemes.plane_conics.con_field": { + "failed": true, + "ntests": 167 + }, + "sage.schemes.plane_conics.con_finite_field": { + "failed": true, + "ntests": 28 + }, + "sage.schemes.plane_conics.con_rational_field": { + "ntests": 41 + }, + "sage.schemes.plane_conics.con_rational_function_field": { + "ntests": 62 + }, + "sage.schemes.plane_conics.constructor": { + "failed": true, + "ntests": 15 + }, + "sage.schemes.plane_quartics.quartic_constructor": { + "ntests": 6 + }, + "sage.schemes.plane_quartics.quartic_generic": { + "ntests": 13 + }, + "sage.schemes.product_projective.homset": { + "ntests": 26 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 97 + }, + "sage.schemes.product_projective.point": { + "ntests": 111 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 25 + }, + "sage.schemes.product_projective.space": { + "ntests": 153 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 67 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "failed": true, + "ntests": 70 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 564 + }, + "sage.schemes.projective.projective_point": { + "failed": true, + "ntests": 298 + }, + "sage.schemes.projective.projective_rational_point": { + "failed": true, + "ntests": 36 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 376 + }, + "sage.schemes.projective.projective_subscheme": { + "failed": true, + "ntests": 245 + }, + "sage.schemes.riemann_surfaces.riemann_surface": { + "ntests": 3 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 76 + }, + "sage.sets.disjoint_set": { + "ntests": 243 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 61 + }, + "sage.sets.family": { + "ntests": 378 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 48 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "ntests": 361 + }, + "sage.sets.recursively_enumerated_set": { + "ntests": 341 + }, + "sage.sets.set": { + "failed": true, + "ntests": 397 + }, + "sage.sets.set_from_iterator": { + "ntests": 155 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 56 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 81 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.chmm": { + "ntests": 120 + }, + "sage.stats.hmm.distributions": { + "ntests": 70 + }, + "sage.stats.hmm.hmm": { + "ntests": 125 + }, + "sage.stats.hmm.util": { + "ntests": 16 + }, + "sage.stats.intlist": { + "ntests": 68 + }, + "sage.stats.r": { + "ntests": 2 + }, + "sage.stats.time_series": { + "ntests": 307 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 163 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 356 + }, + "sage.structure.coerce_actions": { + "ntests": 136 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 90 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 684 + }, + "sage.structure.element.pxd": { + "ntests": 23 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "failed": true, + "ntests": 228 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 115 + }, + "sage.structure.formal_sum": { + "ntests": 67 + }, + "sage.structure.global_options": { + "ntests": 145 + }, + "sage.structure.indexed_generators": { + "ntests": 123 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "failed": true, + "ntests": 325 + }, + "sage.structure.parent_gens": { + "failed": true, + "ntests": 41 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 11 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 229 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 188 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 170 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "failed": true, + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 638 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": { + "ntests": 22 + }, + "sage.tests.book_schilling_zabrocki_kschur_primer": { + "ntests": 2 + }, + "sage.tests.book_stein_ent": { + "failed": true, + "ntests": 249 + }, + "sage.tests.book_stein_modform": { + "failed": true, + "ntests": 237 + }, + "sage.tests.cmdline": { + "ntests": 156 + }, + "sage.tests.finite_poset": { + "ntests": 1 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gap_packages": { + "ntests": 1 + }, + "sage.tests.gosper-sum": { + "ntests": 1 + }, + "sage.tests.modular_group_cohomology": { + "ntests": 1 + }, + "sage.tests.numpy": { + "ntests": 6 + }, + "sage.tests.parigp": { + "ntests": 9 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "ntests": 24 + }, + "sage.typeset.character_art": { + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "ntests": 53 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "ntests": 18 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-schemes/meson.build b/pkgs/sagemath-schemes/meson.build new file mode 100644 index 00000000000..49613a985ee --- /dev/null +++ b/pkgs/sagemath-schemes/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-schemes', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_schemes', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-schemes/pyproject.toml.m4 b/pkgs/sagemath-schemes/pyproject.toml.m4 new file mode 100644 index 00000000000..71a0384f33f --- /dev/null +++ b/pkgs/sagemath-schemes/pyproject.toml.m4 @@ -0,0 +1,110 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_scipy + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator +] +build-backend = "mesonpy" + +[project] +name = "sagemath-schemes" +description = "Sage: Open Source Mathematics Software: Schemes, varieties, elliptic curves, algebraic Riemann surfaces, modular forms, arithmetic dynamics" +dependencies = [ + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_scipy + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_singular +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [SPKG_INSTALL_REQUIRES_sagemath_repl] + +# extras by packages (same as sagemath-modules) +flint = [SPKG_INSTALL_REQUIRES_sagemath_flint] +linbox = [] # FIXME +m4ri = [] # FIXME +m4rie = [] # FIXME +meataxe = [SPKG_INSTALL_REQUIRES_sagemath_meataxe] +mpfi = [] # FIXME +ntl = [SPKG_INSTALL_REQUIRES_sagemath_ntl] +numpy = [SPKG_INSTALL_REQUIRES_numpy] +pari = [SPKG_INSTALL_REQUIRES_sagemath_pari] + +# extras by packages (specific to sagemath-schemes) + +singular = [] # no extra needed + +# extras by rings; same as in sagemath-modules +RDF = ["sagemath-schemes[numpy]"] +CDF = ["sagemath-schemes[numpy]"] +RR = [] # no extra needed +CC = [] # no extra needed +RIF = [] +CIF = [] +RBF = ["sagemath-schemes[flint]"] +CBF = ["sagemath-schemes[flint]"] +GF = ["sagemath-schemes[pari]"] +GF2 = ["sagemath-schemes[m4ri]"] +GF2e = ["sagemath-schemes[m4rie]"] +GF2n = ["sagemath-schemes[m4rie]"] +GFpn = ["sagemath-schemes[meataxe]"] +QQbar = ["sagemath-schemes[NumberField]"] +AA = ["sagemath-schemes[NumberField]"] +UCF = ["sagemath-schemes[NumberField]"] +Zp = [] # FIXME +Qp = ["sagemath-schemes[Zp]"] +Zq = ["sagemath-schemes[Zp]"] +Qq = ["sagemath-schemes[Zp]"] +FiniteField = ["sagemath-schemes[GF]"] +NumberField = [] # FIXME +QuadraticField = ["sagemath-schemes[NumberField]"] +CyclotomicField = ["sagemath-schemes[NumberField]"] + +# extras by features +toric = [SPKG_INSTALL_REQUIRES_sagemath_polyhedra + SPKG_INSTALL_REQUIRES_sagemath_graphs] +padics = ["sagemath-schemes[Zp]"] + +# the whole package +standard = ["sagemath-schemes[toric,padics,NumberField,FiniteField,flint,linbox,mpfi,ntl,numpy,pari,singular]"] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-schemes/requirements-editable.txt.m4 b/pkgs/sagemath-schemes/requirements-editable.txt.m4 new file mode 100644 index 00000000000..3cfa5472de3 --- /dev/null +++ b/pkgs/sagemath-schemes/requirements-editable.txt.m4 @@ -0,0 +1,11 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_numpy +SPKG_INSTALL_REQUIRES_scipy +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-modules +-e ../sagemath-repl diff --git a/pkgs/sagemath-schemes/requirements.txt.m4 b/pkgs/sagemath-schemes/requirements.txt.m4 new file mode 100644 index 00000000000..d145756dfd1 --- /dev/null +++ b/pkgs/sagemath-schemes/requirements.txt.m4 @@ -0,0 +1,3 @@ +dnl Include all from sagemath-categories (via m4 include) +include(`../sagemath_categories/src/requirements.txt.m4') +pplpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)') diff --git a/pkgs/sagemath-schemes/sage b/pkgs/sagemath-schemes/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-schemes/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-schemes/sage-cython-native-file.ini b/pkgs/sagemath-schemes/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-schemes/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-schemes/setup.py b/pkgs/sagemath-schemes/setup.py new file mode 100644 index 00000000000..11bd2acaafa --- /dev/null +++ b/pkgs/sagemath-schemes/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-schemes']) diff --git a/pkgs/sagemath-schemes/tox.ini b/pkgs/sagemath-schemes/tox.ini new file mode 100644 index 00000000000..6a3f836566e --- /dev/null +++ b/pkgs/sagemath-schemes/tox.ini @@ -0,0 +1,151 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_modules-build-deps && ./sage -sh -c '(cd pkgs/sagemath-modules && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-modules/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + sagepython-sagewheels-nopypi-norequirements-ntl + sagepython-sagewheels-nopypi-norequirements-pari + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + # Env factors for testing with extras + ntl: _NTL=--ntl + pari: _PARI=--pari + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures{env:_NTL}{env:_PARI}.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.cpython.builtin_types, sage.cpython.cython_metaclass, sage.cpython.debug, sage.structure.all, sage.categories.all, sage.all__sagemath_schemes' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_schemes --probe all --baseline-stats-path=$KNOWN_TEST_FAILURES --installed' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-norequirements-ntl] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi +extras = test, ntl + +[testenv:sagepython-sagewheels-nopypi-norequirements-pari] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi +extras = test, pari + + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict + +[testenv:sagepython-sagewheels-nopypi-editable-ntl] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict +extras = test, ntl + +[testenv:sagepython-sagewheels-nopypi-editable-pari] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict +extras = test, ntl diff --git a/pkgs/sagemath-singular/MANIFEST.in b/pkgs/sagemath-singular/MANIFEST.in new file mode 100644 index 00000000000..0268ac84e87 --- /dev/null +++ b/pkgs/sagemath-singular/MANIFEST.in @@ -0,0 +1,30 @@ +prune sage + +include VERSION.txt + +graft sage/algebras/quatalg # flint, singular +graft sage/algebras/letterplace # singular +graft sage/algebras/fusion_rings # number_field (ntl), singular +graft sage/ext_data/singular +graft sage/libs/singular +include sage/matrix/matrix_mpolynom*.p* +include sage/rings/function_field/*_polymod.* +include sage/rings/polynomial/plural.p* +include sage/rings/polynomial/*singular*.p* +exclude sage/rings/polynomial/polynomial_singular_interface.p* # in sagemath-categories + + +global-exclude *.c +global-exclude *.cpp + +global-exclude all__sagemath_*.py +global-include all__sagemath_singular.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-singular/README.rst b/pkgs/sagemath-singular/README.rst new file mode 100644 index 00000000000..c4ef73aa985 --- /dev/null +++ b/pkgs/sagemath-singular/README.rst @@ -0,0 +1,29 @@ +================================================================================================================ + Sage: Open Source Mathematics Software: Computer algebra, algebraic geometry, singularity theory with Singular +================================================================================================================ + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of +macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via +Sage-the-distribution (https://www.sagemath.org/download-source.html). +Sage-the-distribution first builds a large number of open source packages from +source (unless it finds suitable versions installed in the system) and then +installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this pip-installable source distribution +---------------------------------------------- + +This pip-installable source distribution ``sagemath-singular`` is a +distribution that provides modules that depend on Singular. diff --git a/pkgs/sagemath-singular/VERSION.txt b/pkgs/sagemath-singular/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-singular/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-singular/meson.build b/pkgs/sagemath-singular/meson.build new file mode 100644 index 00000000000..15e0ef666e1 --- /dev/null +++ b/pkgs/sagemath-singular/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-singular', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_singular', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-singular/pyproject.toml.m4 b/pkgs/sagemath-singular/pyproject.toml.m4 new file mode 100644 index 00000000000..5516a64ed25 --- /dev/null +++ b/pkgs/sagemath-singular/pyproject.toml.m4 @@ -0,0 +1,59 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_flint + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_memory_allocator +] +build-backend = "mesonpy" + +[project] +name = "sagemath-singular" +description = "Sage: Open Source Mathematics Software: Computer algebra, algebraic geometry, singularity theory with Singular" +dependencies = [ + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_flint +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/gmp", + "pkg:generic/mpc", + "pkg:generic/mpfr", + "pkg:generic/singular", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-singular/requirements-editable.txt.m4 b/pkgs/sagemath-singular/requirements-editable.txt.m4 new file mode 100644 index 00000000000..c2b0a8b99a8 --- /dev/null +++ b/pkgs/sagemath-singular/requirements-editable.txt.m4 @@ -0,0 +1,10 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cypari +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +-e ../sage-conf +-e ../sagemath-environment +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-pari diff --git a/pkgs/sagemath-singular/requirements.txt.m4 b/pkgs/sagemath-singular/requirements.txt.m4 new file mode 100644 index 00000000000..8b6ca03b0b9 --- /dev/null +++ b/pkgs/sagemath-singular/requirements.txt.m4 @@ -0,0 +1,2 @@ +Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') +sagemath-standard==esyscmd(`printf $(sed "s/[.]p.*//;" ../sagelib/package-version.txt)') diff --git a/pkgs/sagemath-singular/sage b/pkgs/sagemath-singular/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-singular/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-singular/sage-cython-native-file.ini b/pkgs/sagemath-singular/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-singular/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-singular/setup.py b/pkgs/sagemath-singular/setup.py new file mode 100644 index 00000000000..d42f1c19c44 --- /dev/null +++ b/pkgs/sagemath-singular/setup.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup(['sagemath-singular'], + required_modules=('Singular', + # from sagemath-linbox + 'fflas-ffpack', 'givaro', 'gsl', 'linbox', 'cblas', + 'm4ri', 'gdlib', 'libpng', 'zlib')) diff --git a/pkgs/sagemath-singular/tox.ini b/pkgs/sagemath-singular/tox.ini new file mode 100644 index 00000000000..cb2e3dfb4bf --- /dev/null +++ b/pkgs/sagemath-singular/tox.ini @@ -0,0 +1,117 @@ +# To build and test in the tox environment: +# +# ./sage -sh -c '(cd pkgs/sagemath-singular && tox -v -v -v -e sagepython)' +# +# To test interactively: +# +# pkgs/sagemath-singular/.tox/sagepython/bin/python +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the install sage package. + # Importing sage.libs.gap.libgap does not work yet because of the runtime dep on 'sage.rings.polynomial' + # {envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.libs.gap.libgap' + + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-sirocco/VERSION.txt~brial_experimental b/pkgs/sagemath-sirocco/VERSION.txt~brial_experimental new file mode 100644 index 00000000000..7786f0e63e4 --- /dev/null +++ b/pkgs/sagemath-sirocco/VERSION.txt~brial_experimental @@ -0,0 +1 @@ +10.2.beta5 diff --git a/pkgs/sagemath-sirocco/requirements-editable.txt.m4 b/pkgs/sagemath-sirocco/requirements-editable.txt.m4 new file mode 100644 index 00000000000..24bfe6aed19 --- /dev/null +++ b/pkgs/sagemath-sirocco/requirements-editable.txt.m4 @@ -0,0 +1,4 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cypari +SPKG_INSTALL_REQUIRES_cysignals diff --git a/pkgs/sagemath-sirocco/setup.py b/pkgs/sagemath-sirocco/setup.py index 9d82bfebcd8..566b9908d75 100644 --- a/pkgs/sagemath-sirocco/setup.py +++ b/pkgs/sagemath-sirocco/setup.py @@ -1,65 +1,5 @@ #!/usr/bin/env python -from distutils import log -from setuptools import setup +from sage_setup import sage_setup -# Work around a Cython problem in Python 3.8.x on macOS -# https://github.com/cython/cython/issues/3262 -import os -if os.uname().sysname == 'Darwin': - import multiprocessing - multiprocessing.set_start_method('fork', force=True) - -# If build isolation is not in use and setuptools_scm is installed, -# then its file_finders entry point is invoked, which we don't need. -# Workaround from ​https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286 -try: - import setuptools_scm.integration - setuptools_scm.integration.find_files = lambda _: [] -except ImportError: - pass - -# PEP 517 builds do not have . in sys.path -import sys -sys.path.insert(0, os.path.dirname(__file__)) - -if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"): - sdist = True -else: - sdist = False - -if sdist: - cmdclass = {} -else: - from sage_setup.excepthook import excepthook - sys.excepthook = excepthook - - from sage_setup.setenv import setenv - setenv() - - import sage.env - sage.env.default_required_modules = sage.env.default_optional_modules = () - - from sage_setup.command.sage_build_cython import sage_build_cython - from sage_setup.command.sage_build_ext import sage_build_ext - from sage_setup.command.sage_build_py import sage_build_py - sage_build_cython.built_distributions = ['sagemath-sirocco'] - - cmdclass = dict(build_cython=sage_build_cython, - build_ext=sage_build_ext, - build_py=sage_build_py) - -from sage_setup.find import find_python_sources -python_packages, python_modules, cython_modules = find_python_sources( - '.', ['sage'], distributions=['sagemath-sirocco']) - -log.warn('python_packages = {0}'.format(python_packages)) -log.warn('python_modules = {0}'.format(python_modules)) -log.warn('cython_modules = {0}'.format(cython_modules)) - -setup( - cmdclass = cmdclass, - packages = python_packages, - py_modules = python_modules, - ext_modules = cython_modules, -) +sage_setup(['sagemath-sirocco']) diff --git a/pkgs/sagemath-standard-no-symbolics/MANIFEST.in.m4 b/pkgs/sagemath-standard-no-symbolics/MANIFEST.in.m4 new file mode 100644 index 00000000000..99ff2b3e61d --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/MANIFEST.in.m4 @@ -0,0 +1,105 @@ +dnl MANIFEST.in is generated from this file by SAGE_ROOT/bootstrap via m4. + +dnl Include all from sagemath-categories (via m4 include) +include(`../../../src/MANIFEST.in') + +prune .tox +exclude *.m4 +include requirements.txt + +prune sage/symbolic +prune sage/manifolds +prune sage/lfunctions +prune sage/geometry/riemannian_manifolds +prune sage/geometry/hyperbolic_space +prune sage/dynamics/complex_dynamics +prune sage/groups/lie_gps +prune sage/modular/modform_hecketriangle +prune sage/rings/asymptotic + +prune sage/plot + +exclude sage/modules/vector_*symbol*.* +exclude sage/matrix/matrix_symbolic_*.* +exclude sage/groups/misc_gps/argument_groups.* +exclude sage/groups/misc_gps/imaginary_groups.* + +prune sage/libs/giac +prune sage/libs/pynac +exclude sage/libs/ecl.p* + +exclude sage/interfaces/fricas.p* +exclude sage/interfaces/giac.p* +exclude sage/interfaces/magma*.p* +exclude sage/interfaces/maple*.p* +exclude sage/interfaces/mathematica.p* +exclude sage/interfaces/mathics.p* +exclude sage/interfaces/maxima*.p* +exclude sage/interfaces/qepcad.p* +exclude sage/interfaces/sympy*.p* +exclude sage/interfaces/tides.p* + + +# Exclude what is included in other distros +## prune sage/algebras/finite_dimensional_algebras +## prune sage/arith +## prune sage/calculus +## prune sage/categories +## prune sage/coding +## prune sage/combinat/crystals +## prune sage/combinat/designs +## prune sage/combinat/integer_lists +## prune sage/combinat/rigged_configurations +## prune sage/combinat/sf +## prune sage/combinat/species +## prune sage/combinat/words +## prune sage/cpython +## prune sage/crypto +## prune sage/doctest +## prune sage/dynamics/arithmetic_dynamics +## prune sage/features +## prune sage/functions +## prune sage/game_theory +## prune sage/games +## prune sage/geometry/hyperplane_arrangement +## prune sage/geometry/polyhedron +## prune sage/geometry/triangulation +## prune sage/groups +## prune sage/libs/gap +## prune sage/libs/giac +## prune sage/libs/gmp +## prune sage/libs/gsl +## prune sage/libs/lrcalc +## prune sage/libs/mpc +## prune sage/libs/mpfr +prune sage/libs/mpmath +## prune sage/libs/ntl +## include sage/libs/ntl/*.px* # FIXME +## prune sage/libs/pari +## include sage/libs/pari/*.px* # FIXME +## prune sage/libs/symmetrica +## prune sage/matroids +## prune sage/misc +## prune sage/monoids +## prune sage/parallel +## prune sage/probability +## prune sage/repl +## prune sage/rings/bernmm +## prune sage/rings/polynomial/weil +## prune sage/rings/semirings +## prune sage/sandpiles +## prune sage/sat +## prune sage/schemes +## prune sage/sets +## prune sage/stats +## prune sage/structure +## prune sage/symbolic +## prune sage/tensor +## prune sage/topology + +include sage/calculus/all__sagemath_standard_no_symbolics.py +include sage/calculus/integration.p* + +global-exclude all__sagemath_*.py +global-include all.py +global-include all__sagemath_standard_no_symbolics.py diff --git a/pkgs/sagemath-standard-no-symbolics/README.rst b/pkgs/sagemath-standard-no-symbolics/README.rst new file mode 100644 index 00000000000..f8ad2583442 --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/README.rst @@ -0,0 +1,25 @@ +====================================================================================== + Sage: Open Source Mathematics Software: Sage library without the symbolics subsystem +====================================================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2022 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via Sage-the-distribution (https://www.sagemath.org/download-source.html). Sage-the-distribution first builds a large number of open source packages from source (unless it finds suitable versions installed in the system) and then installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this experimental pip-installable source distribution +----------------------------------------------------------- + +This pip-installable source distribution `sagemath-standard-no-symbolics` is an experimental subset distribution of the Sage library. + +Its main purpose is as a technical tool for the modularization project (https://trac.sagemath.org/ticket/29705), to test that large parts of the Sage library are independent of the symbolics subsystem. diff --git a/pkgs/sagemath-standard-no-symbolics/VERSION.txt b/pkgs/sagemath-standard-no-symbolics/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-standard/bin b/pkgs/sagemath-standard-no-symbolics/bin similarity index 100% rename from pkgs/sagemath-standard/bin rename to pkgs/sagemath-standard-no-symbolics/bin diff --git a/pkgs/sagemath-standard-no-symbolics/known-test-failures.json b/pkgs/sagemath-standard-no-symbolics/known-test-failures.json new file mode 100644 index 00000000000..e38fc0fbca1 --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/known-test-failures.json @@ -0,0 +1,4613 @@ +{ + "4ti2.rst": {}, + "Abstract-Algebra.rst": { + "failed": true + }, + "Advanced-2DPlotting.rst": { + "failed": true + }, + "Calculus.rst": { + "failed": true + }, + "Differential-Equations.rst": { + "failed": true + }, + "Graphs-and-Discrete.rst": { + "failed": true + }, + "Interact.rst": { + "failed": true + }, + "Intro-Tutorial.rst": { + "failed": true + }, + "Linear-Algebra.rst": { + "failed": true + }, + "Logging-On.rst": {}, + "Multivariable-Calculus.rst": { + "failed": true + }, + "NumAnalysis.rst": { + "failed": true + }, + "Number-Theory.rst": { + "failed": true + }, + "Programming.rst": { + "failed": true + }, + "SageTutorial": {}, + "SageTutorial-de": {}, + "SageTutorial_ru": {}, + "Statistics-and-Distributions.rst": { + "failed": true + }, + "Symbolics-and-Basic-Plotting.rst": { + "failed": true + }, + "ThematischeAnleitungen-de": {}, + "TutorialdeSage": {}, + "_bootstrap.rst": {}, + "_develop.rst": {}, + "_prereq.rst": {}, + "_recommended.rst": {}, + "_sagemath.rst": {}, + "a_tour_of_sage": {}, + "admcycles.rst": {}, + "affine.rst": {}, + "affine_finite_crystals.rst": {}, + "affine_hw_crystals.rst": {}, + "afterword.rst": {}, + "alabaster.rst": {}, + "algebraic_combinatorics.rst": {}, + "algebraic_geometry.rst": {}, + "algebras": {}, + "alt_forms.rst": {}, + "antic.rst": {}, + "appdirs.rst": {}, + "appendix.rst": {}, + "appnope.rst": {}, + "arb.rst": {}, + "argon2_cffi.rst": {}, + "argon2_cffi_bindings.rst": {}, + "arithgroup": {}, + "arithmetic_curves": {}, + "asttokens.rst": {}, + "asymptotic": {}, + "attrs.rst": {}, + "auditwheel_or_delocate.rst": {}, + "awali.rst": {}, + "babel.rst": {}, + "backcall.rst": {}, + "backports_zoneinfo.rst": {}, + "barvinok.rst": {}, + "beautifulsoup4.rst": {}, + "beniget.rst": {}, + "benzene.rst": {}, + "bibliography.rst": {}, + "binary.rst": {}, + "biopython.rst": {}, + "birds_eye_view.rst": {}, + "birds_other.rst": { + "failed": true + }, + "bleach.rst": {}, + "bliss.rst": {}, + "boost_cropped.rst": {}, + "branching_rules.rst": {}, + "brial.rst": {}, + "buckygen.rst": {}, + "bzip2.rst": {}, + "calculus": {}, + "calculus.rst": { + "failed": true + }, + "categories": {}, + "cbc.rst": {}, + "ccache.rst": {}, + "cddlib.rst": {}, + "cellular_automata.rst": {}, + "certifi.rst": {}, + "cffi.rst": {}, + "charset_normalizer.rst": {}, + "chart.rst": {}, + "cliquer.rst": {}, + "cmake.rst": {}, + "cocoalib.rst": {}, + "coding": {}, + "coding_basics.rst": { + "failed": true + }, + "coding_in_cython.rst": {}, + "coding_in_other.rst": {}, + "coding_in_python.rst": { + "failed": true + }, + "coding_theory.rst": {}, + "coercion": {}, + "coercion_and_categories.rst": { + "failed": true + }, + "combinat": {}, + "combinatorial_designs.rst": {}, + "comparison_to_cython.rst": {}, + "complex_dynamics.rst": {}, + "conda.rst": {}, + "configure.rst": {}, + "constants": {}, + "constructions": {}, + "continuous_map.rst": {}, + "contourpy.rst": {}, + "contributions.rst": {}, + "conway_polynomials.rst": {}, + "coxeter3.rst": {}, + "cppy.rst": {}, + "cpython": {}, + "cryptography": {}, + "cryptominisat.rst": {}, + "crystals.rst": { + "failed": true + }, + "csdp.rst": {}, + "ctypes.rst": {}, + "ctypes_examples.rst": {}, + "cubic_hecke_algebra.rst": {}, + "cunningham_tables.rst": {}, + "curl.rst": {}, + "curves": {}, + "cvxopt.rst": {}, + "cvxpy.rst": {}, + "cycler.rst": {}, + "cylp.rst": {}, + "cypari.rst": {}, + "cysignals.rst": {}, + "cython.rst": {}, + "d3js.rst": {}, + "data_structures": {}, + "database_cremona_ellcurve.rst": {}, + "database_cubic_hecke.rst": {}, + "database_jones_numfield.rst": {}, + "database_knotinfo.rst": {}, + "database_kohel.rst": {}, + "database_mutation_class.rst": {}, + "database_odlyzko_zeta.rst": {}, + "database_stein_watkins.rst": {}, + "database_stein_watkins_mini.rst": {}, + "database_symbolic_data.rst": {}, + "databases": {}, + "dateutil.rst": {}, + "debugpy.rst": {}, + "decorator.rst": {}, + "deformation.rst": {}, + "defusedxml.rst": {}, + "degenerate_metric.rst": {}, + "deprecation.rst": {}, + "developer": {}, + "diff_form.rst": {}, + "diff_manifold.rst": {}, + "diff_map.rst": {}, + "diff_scalarfield.rst": {}, + "diff_vector_bundle.rst": {}, + "diophantine_approximation": {}, + "discrete_geometry": {}, + "distlib.rst": {}, + "doctest": {}, + "documentation": {}, + "docutils.rst": {}, + "dot2tex.rst": {}, + "drinfeld_modules": {}, + "dsdp.rst": {}, + "dynamics": {}, + "e_antic.rst": {}, + "ecl.rst": {}, + "eclib.rst": {}, + "ecm.rst": {}, + "ecos_python.rst": {}, + "editables.rst": {}, + "elementary_crystals.rst": {}, + "elliptic_curves.rst": { + "failed": true + }, + "entrypoints.rst": {}, + "environ.rst": {}, + "euclidean_space.rst": {}, + "euclidean_spaces": {}, + "executing.rst": {}, + "f2py.rst": {}, + "f2py_examples.rst": {}, + "faq": {}, + "faq-contribute.rst": {}, + "faq-general.rst": {}, + "faq-usage.rst": { + "failed": true + }, + "fastjsonschema.rst": {}, + "fflas_ffpack.rst": {}, + "ffmpeg.rst": {}, + "filelock.rst": {}, + "finance": {}, + "finite_rings": {}, + "flint.rst": {}, + "flit_core.rst": {}, + "fonttools.rst": {}, + "fplll.rst": {}, + "fpylll.rst": {}, + "freetype.rst": {}, + "fricas.rst": {}, + "frobby.rst": {}, + "function_fields": {}, + "functional_programming.rst": {}, + "functions": {}, + "furo.rst": {}, + "fusion_rings.rst": {}, + "gambit.rst": {}, + "game_theory": {}, + "games": {}, + "gap.rst": {}, + "gap3.rst": {}, + "gap_jupyter.rst": {}, + "gap_packages.rst": {}, + "gast.rst": {}, + "gc.rst": {}, + "gcc.rst": {}, + "gdb.rst": {}, + "generators_for_rings.rst": {}, + "gengetopt.rst": {}, + "geometry.rst": {}, + "gf2x.rst": {}, + "gfan.rst": {}, + "gfortran.rst": {}, + "giac.rst": {}, + "git.rst": {}, + "git_advanced.rst": {}, + "git_background.rst": {}, + "git_basic.rst": {}, + "git_setup.rst": {}, + "github.rst": {}, + "github_cli.rst": {}, + "gitpython.rst": {}, + "givaro.rst": {}, + "glpk.rst": {}, + "glucose.rst": {}, + "gmp.rst": {}, + "gmpy2.rst": {}, + "gnulib.rst": {}, + "gp2c.rst": {}, + "graphs": {}, + "graphs.rst": {}, + "graphviz.rst": {}, + "group_theory.rst": {}, + "groups": {}, + "groups.rst": {}, + "gsl.rst": {}, + "half_integral.rst": {}, + "hatch_fancy_pypi_readme.rst": {}, + "hatch_nodejs_version.rst": {}, + "hatch_vcs.rst": {}, + "hatchling.rst": {}, + "hecke": {}, + "history_and_license": {}, + "homology": {}, + "html5lib.rst": {}, + "hyperbolic_geometry": {}, + "iconv.rst": {}, + "idna.rst": {}, + "igraph.rst": {}, + "imagemagick.rst": {}, + "imagesize.rst": {}, + "iml.rst": {}, + "importlib_metadata.rst": {}, + "importlib_resources.rst": {}, + "index.rst": { + "failed": true + }, + "index_alph.rst": {}, + "infinity_crystals.rst": {}, + "info.rst": {}, + "installation": {}, + "integer_factorization.rst": {}, + "integrable.rst": {}, + "interactive_shell.rst": { + "failed": true + }, + "interface_issues.rst": { + "failed": true + }, + "interfaces": {}, + "interfaces.rst": { + "failed": true + }, + "introduction.rst": { + "failed": true + }, + "invariant_theory.rst": {}, + "ipykernel.rst": {}, + "ipympl.rst": {}, + "ipython.rst": {}, + "ipython_genutils.rst": {}, + "ipywidgets.rst": {}, + "isl.rst": {}, + "iwahori_hecke_algebra.rst": {}, + "jedi.rst": {}, + "jinja2.rst": {}, + "jmol.rst": {}, + "jsonschema.rst": {}, + "jupymake.rst": {}, + "jupyter_client.rst": {}, + "jupyter_core.rst": {}, + "jupyter_jsmol.rst": {}, + "jupyter_packaging.rst": {}, + "jupyter_sphinx.rst": {}, + "jupyterlab.rst": {}, + "jupyterlab_pygments.rst": {}, + "jupyterlab_widgets.rst": {}, + "kazhdan_lusztig_polynomials.rst": {}, + "kenzo.rst": {}, + "kissat.rst": {}, + "kiwisolver.rst": {}, + "knots": {}, + "l_series.rst": { + "failed": true + }, + "latex.rst": { + "failed": true + }, + "latte_int.rst": {}, + "launching.rst": {}, + "lcalc.rst": {}, + "level_one_forms.rst": {}, + "lfunctions": {}, + "libatomic_ops.rst": {}, + "libbraiding.rst": {}, + "libffi.rst": {}, + "libgd.rst": {}, + "libgraphviz.rst": {}, + "libhomfly.rst": {}, + "liblzma.rst": {}, + "libnauty.rst": {}, + "libogg.rst": {}, + "libpng.rst": {}, + "libs": {}, + "libsemigroups.rst": {}, + "libtheora.rst": {}, + "libxml2.rst": {}, + "lidia.rst": {}, + "lie.rst": {}, + "lie_algebras.rst": {}, + "lie_basics.rst": {}, + "lie_conformal_algebras.rst": {}, + "linbox.rst": {}, + "linear_algebra.rst": { + "failed": true + }, + "linear_codes.rst": { + "failed": true + }, + "linear_programming.rst": { + "failed": true + }, + "linux.rst": {}, + "llvm.rst": {}, + "logic": {}, + "lrcalc.rst": {}, + "lrcalc_python.rst": {}, + "lrslib.rst": {}, + "m4ri.rst": {}, + "m4rie.rst": {}, + "manifold.rst": {}, + "manifolds": {}, + "markupsafe.rst": {}, + "mathics.rst": {}, + "mathics_scanner.rst": {}, + "mathjax.rst": {}, + "matplotlib.rst": {}, + "matplotlib_inline.rst": {}, + "matrices": {}, + "matroids": {}, + "maxima.rst": {}, + "mcqd.rst": {}, + "meataxe.rst": {}, + "memory_allocator.rst": {}, + "meson.rst": {}, + "meson_python.rst": {}, + "method_of_graphs.rst": {}, + "misc": {}, + "mistune.rst": {}, + "mixed_form.rst": {}, + "modabvar": {}, + "modabvar.rst": {}, + "modfrm": {}, + "modsym": {}, + "modular_decomposition.rst": {}, + "modular_forms.rst": {}, + "modular_forms_and_hecke_operators.rst": { + "failed": true + }, + "modular_resolution.rst": {}, + "modular_symbols.rst": {}, + "module_list.rst": {}, + "modules": {}, + "monoids": {}, + "morphisms.rst": {}, + "mpc.rst": {}, + "mpfi.rst": {}, + "mpfr.rst": {}, + "mpfrcx.rst": {}, + "mpi4py.rst": {}, + "mpmath.rst": {}, + "msolve.rst": {}, + "multivector.rst": {}, + "n_cube.rst": { + "failed": true + }, + "nauty.rst": {}, + "nbclient.rst": {}, + "nbconvert.rst": {}, + "nbformat.rst": {}, + "ncurses.rst": {}, + "nest_asyncio.rst": {}, + "networkx.rst": {}, + "nf_galois_groups.rst": { + "failed": true + }, + "nf_introduction.rst": { + "failed": true + }, + "nf_orders.rst": { + "failed": true + }, + "nibabel.rst": {}, + "ninja_build.rst": {}, + "nodeenv.rst": {}, + "nodejs.rst": {}, + "noncommutative_polynomial_rings": {}, + "normaliz.rst": {}, + "notebook.rst": {}, + "notedown.rst": {}, + "ntl.rst": {}, + "number_fields": {}, + "number_fields.rst": {}, + "number_theory.rst": {}, + "numerical": {}, + "numerical_tools.rst": {}, + "numpy.rst": {}, + "numtheory_rsa.rst": {}, + "onetbb.rst": {}, + "openblas.rst": {}, + "openssl.rst": {}, + "options.rst": {}, + "ore_algebra.rst": {}, + "osqp_python.rst": {}, + "p_group_cohomology.rst": {}, + "packaging.rst": {}, + "packaging_sage_library.rst": {}, + "padics": {}, + "palettable.rst": {}, + "palp.rst": {}, + "pandoc.rst": {}, + "pandoc_attributes.rst": {}, + "pandocfilters.rst": {}, + "papilo.rst": {}, + "parallel": {}, + "parallel_computation.rst": {}, + "parallel_laplace_solver.rst": {}, + "pari.rst": {}, + "pari_elldata.rst": {}, + "pari_galdata.rst": {}, + "pari_galpol.rst": {}, + "pari_jupyter.rst": {}, + "pari_nftables.rst": {}, + "pari_seadata.rst": {}, + "pari_seadata_small.rst": {}, + "parso.rst": {}, + "patch.rst": {}, + "patchelf.rst": {}, + "pathspec.rst": {}, + "pdf2svg.rst": {}, + "perl_cpan_polymake_prereq.rst": {}, + "perl_mongodb.rst": {}, + "perl_term_readline_gnu.rst": {}, + "pexpect.rst": {}, + "phitigra.rst": {}, + "pickleshare.rst": {}, + "pillow.rst": {}, + "pint.rst": {}, + "pip.rst": {}, + "pkgconf.rst": {}, + "pkgconfig.rst": {}, + "planarity.rst": {}, + "plantri.rst": {}, + "platformdirs.rst": {}, + "plot3d": {}, + "plotting": {}, + "plotting.rst": { + "failed": true + }, + "pluggy.rst": {}, + "ply.rst": {}, + "poetry_core.rst": {}, + "poisson_manifold.rst": {}, + "polyhedra_quickref.rst": {}, + "polyhedra_quicktutorial.rst": { + "failed": true + }, + "polyhedra_tutorial.rst": { + "failed": true + }, + "polylib.rst": {}, + "polymake.rst": {}, + "polynomial_rings": {}, + "polynomial_rings_multivar.rst": {}, + "polynomial_rings_toy_implementations.rst": {}, + "polynomial_rings_univar.rst": {}, + "polynomials.rst": { + "failed": true + }, + "polytope_tikz.rst": {}, + "polytopes_db.rst": {}, + "polytopes_db_4d.rst": {}, + "power_series": {}, + "ppl.rst": {}, + "pplpy.rst": {}, + "pplpy_doc.rst": {}, + "prep_tutorials": {}, + "primecount.rst": {}, + "primecountpy.rst": {}, + "primesieve.rst": {}, + "probability": {}, + "programming.rst": { + "failed": true + }, + "prometheus_client.rst": {}, + "prompt_toolkit.rst": {}, + "ptyprocess.rst": {}, + "pure_eval.rst": {}, + "py.rst": {}, + "pybind11.rst": {}, + "pybtex.rst": {}, + "pycosat.rst": {}, + "pycparser.rst": {}, + "pycryptosat.rst": {}, + "pycygwin.rst": {}, + "pyflakes.rst": {}, + "pygments.rst": {}, + "pygraphviz.rst": {}, + "pynormaliz.rst": {}, + "pyparsing.rst": {}, + "pyppeteer.rst": {}, + "pyproject_metadata.rst": {}, + "pyrsistent.rst": {}, + "pyscipopt.rst": {}, + "pysingular.rst": {}, + "pytest.rst": {}, + "pytest_mock.rst": {}, + "pytest_xdist.rst": {}, + "python3.rst": {}, + "python_build.rst": {}, + "python_igraph.rst": {}, + "pythran.rst": {}, + "pytz.rst": {}, + "pytz_deprecation_shim.rst": {}, + "pyx.rst": {}, + "pyzmq.rst": {}, + "qdldl_python.rst": {}, + "qepcad.rst": {}, + "qhull.rst": {}, + "quadratic_forms": {}, + "quantum_groups.rst": {}, + "quat_algebras": {}, + "quickstart.rst": {}, + "quivers": {}, + "r.rst": {}, + "r_jupyter.rst": {}, + "readline.rst": {}, + "reference": {}, + "references": {}, + "rep_theory.rst": {}, + "repl": {}, + "requests.rst": {}, + "resolutions": {}, + "retrolab.rst": {}, + "riem_manifold.rst": {}, + "riemannian_geometry": {}, + "rings": {}, + "rings.rst": {}, + "rings_numerical": {}, + "rings_standard": {}, + "rpy2.rst": {}, + "rsk.rst": {}, + "rst2ipynb.rst": {}, + "rubiks.rst": {}, + "rw.rst": {}, + "saclib.rst": {}, + "sage.algebras.affine_nil_temperley_lieb": {}, + "sage.algebras.algebra": {}, + "sage.algebras.all": {}, + "sage.algebras.all__sagemath_combinat": {}, + "sage.algebras.all__sagemath_modules": {}, + "sage.algebras.askey_wilson": {}, + "sage.algebras.associated_graded": {}, + "sage.algebras.catalog": {}, + "sage.algebras.cellular_basis": {}, + "sage.algebras.clifford_algebra": {}, + "sage.algebras.clifford_algebra_element": {}, + "sage.algebras.clifford_algebra_element.pxd": {}, + "sage.algebras.cluster_algebra": {}, + "sage.algebras.commutative_dga": {}, + "sage.algebras.down_up_algebra": {}, + "sage.algebras.exterior_algebra_groebner": {}, + "sage.algebras.exterior_algebra_groebner.pxd": {}, + "sage.algebras.finite_dimensional_algebras.all": {}, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": {}, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": {}, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element.pxd": {}, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_ideal": {}, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": {}, + "sage.algebras.finite_gca": {}, + "sage.algebras.free_algebra": {}, + "sage.algebras.free_algebra_element": {}, + "sage.algebras.free_algebra_quotient": {}, + "sage.algebras.free_algebra_quotient_element": { + "failed": true + }, + "sage.algebras.free_zinbiel_algebra": { + "failed": true + }, + "sage.algebras.fusion_rings.all": {}, + "sage.algebras.fusion_rings.f_matrix": { + "failed": true + }, + "sage.algebras.fusion_rings.fast_parallel_fmats_methods": {}, + "sage.algebras.fusion_rings.fast_parallel_fmats_methods.pxd": {}, + "sage.algebras.fusion_rings.fast_parallel_fusion_ring_braid_repn": {}, + "sage.algebras.fusion_rings.fast_parallel_fusion_ring_braid_repn.pxd": {}, + "sage.algebras.fusion_rings.fusion_double": { + "failed": true + }, + "sage.algebras.fusion_rings.fusion_ring": {}, + "sage.algebras.fusion_rings.poly_tup_engine": {}, + "sage.algebras.fusion_rings.poly_tup_engine.pxd": {}, + "sage.algebras.fusion_rings.shm_managers": { + "failed": true + }, + "sage.algebras.fusion_rings.shm_managers.pxd": {}, + "sage.algebras.group_algebra": {}, + "sage.algebras.hall_algebra": {}, + "sage.algebras.hecke_algebras.all": {}, + "sage.algebras.hecke_algebras.ariki_koike_algebra": {}, + "sage.algebras.hecke_algebras.cubic_hecke_algebra": {}, + "sage.algebras.hecke_algebras.cubic_hecke_base_ring": {}, + "sage.algebras.hecke_algebras.cubic_hecke_matrix_rep": {}, + "sage.algebras.iwahori_hecke_algebra": { + "failed": true + }, + "sage.algebras.jordan_algebra": {}, + "sage.algebras.letterplace.all": {}, + "sage.algebras.letterplace.free_algebra_element_letterplace": {}, + "sage.algebras.letterplace.free_algebra_element_letterplace.pxd": {}, + "sage.algebras.letterplace.free_algebra_letterplace": {}, + "sage.algebras.letterplace.free_algebra_letterplace.pxd": {}, + "sage.algebras.letterplace.letterplace_ideal": {}, + "sage.algebras.lie_algebras.abelian": {}, + "sage.algebras.lie_algebras.affine_lie_algebra": {}, + "sage.algebras.lie_algebras.all": {}, + "sage.algebras.lie_algebras.all__sagemath_modules": {}, + "sage.algebras.lie_algebras.bch": {}, + "sage.algebras.lie_algebras.classical_lie_algebra": {}, + "sage.algebras.lie_algebras.examples": {}, + "sage.algebras.lie_algebras.free_lie_algebra": {}, + "sage.algebras.lie_algebras.heisenberg": {}, + "sage.algebras.lie_algebras.lie_algebra": {}, + "sage.algebras.lie_algebras.lie_algebra_element": {}, + "sage.algebras.lie_algebras.lie_algebra_element.pxd": {}, + "sage.algebras.lie_algebras.morphism": {}, + "sage.algebras.lie_algebras.nilpotent_lie_algebra": {}, + "sage.algebras.lie_algebras.onsager": {}, + "sage.algebras.lie_algebras.poincare_birkhoff_witt": {}, + "sage.algebras.lie_algebras.quotient": {}, + "sage.algebras.lie_algebras.rank_two_heisenberg_virasoro": {}, + "sage.algebras.lie_algebras.structure_coefficients": {}, + "sage.algebras.lie_algebras.subalgebra": {}, + "sage.algebras.lie_algebras.symplectic_derivation": {}, + "sage.algebras.lie_algebras.verma_module": {}, + "sage.algebras.lie_algebras.virasoro": {}, + "sage.algebras.lie_conformal_algebras.abelian_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.affine_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.all": {}, + "sage.algebras.lie_conformal_algebras.bosonic_ghosts_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.examples": {}, + "sage.algebras.lie_conformal_algebras.fermionic_ghosts_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.finitely_freely_generated_lca": {}, + "sage.algebras.lie_conformal_algebras.free_bosons_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.free_fermions_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.freely_generated_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.graded_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.lie_conformal_algebra_element": {}, + "sage.algebras.lie_conformal_algebras.lie_conformal_algebra_with_basis": {}, + "sage.algebras.lie_conformal_algebras.lie_conformal_algebra_with_structure_coefs": {}, + "sage.algebras.lie_conformal_algebras.n2_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.neveu_schwarz_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.virasoro_lie_conformal_algebra": {}, + "sage.algebras.lie_conformal_algebras.weyl_lie_conformal_algebra": {}, + "sage.algebras.nil_coxeter_algebra": {}, + "sage.algebras.octonion_algebra": {}, + "sage.algebras.octonion_algebra.pxd": {}, + "sage.algebras.orlik_solomon": { + "failed": true + }, + "sage.algebras.orlik_terao": {}, + "sage.algebras.q_commuting_polynomials": {}, + "sage.algebras.q_system": {}, + "sage.algebras.quantum_clifford": {}, + "sage.algebras.quantum_groups.ace_quantum_onsager": {}, + "sage.algebras.quantum_groups.all": {}, + "sage.algebras.quantum_groups.fock_space": {}, + "sage.algebras.quantum_groups.q_numbers": {}, + "sage.algebras.quantum_groups.quantum_group_gap": {}, + "sage.algebras.quantum_groups.representations": {}, + "sage.algebras.quantum_matrix_coordinate_algebra": {}, + "sage.algebras.quatalg.all": {}, + "sage.algebras.quatalg.quaternion_algebra": {}, + "sage.algebras.quatalg.quaternion_algebra_cython": {}, + "sage.algebras.quatalg.quaternion_algebra_element": {}, + "sage.algebras.quatalg.quaternion_algebra_element.pxd": {}, + "sage.algebras.quaternion_algebra": {}, + "sage.algebras.quaternion_algebra_element": {}, + "sage.algebras.rational_cherednik_algebra": {}, + "sage.algebras.schur_algebra": {}, + "sage.algebras.shuffle_algebra": {}, + "sage.algebras.splitting_algebra": {}, + "sage.algebras.steenrod.all": {}, + "sage.algebras.steenrod.steenrod_algebra": {}, + "sage.algebras.steenrod.steenrod_algebra_bases": {}, + "sage.algebras.steenrod.steenrod_algebra_misc": {}, + "sage.algebras.steenrod.steenrod_algebra_mult": {}, + "sage.algebras.tensor_algebra": {}, + "sage.algebras.weyl_algebra": {}, + "sage.algebras.yangian": {}, + "sage.algebras.yokonuma_hecke_algebra": {}, + "sage.all": { + "failed": true + }, + "sage.all__sagemath_categories": {}, + "sage.all__sagemath_combinat": {}, + "sage.all__sagemath_environment": {}, + "sage.all__sagemath_flint": {}, + "sage.all__sagemath_gap": {}, + "sage.all__sagemath_glpk": {}, + "sage.all__sagemath_graphs": {}, + "sage.all__sagemath_groups": {}, + "sage.all__sagemath_homfly": {}, + "sage.all__sagemath_modules": {}, + "sage.all__sagemath_ntl": {}, + "sage.all__sagemath_objects": {}, + "sage.all__sagemath_pari": {}, + "sage.all__sagemath_polyhedra": {}, + "sage.all__sagemath_repl": {}, + "sage.all__sagemath_schemes": {}, + "sage.all_cmdline": {}, + "sage.arith.all": {}, + "sage.arith.all__sagemath_objects": {}, + "sage.arith.constants.pxd": {}, + "sage.arith.functions": {}, + "sage.arith.functions.pxd": {}, + "sage.arith.long.pxd": {}, + "sage.arith.misc": {}, + "sage.arith.multi_modular": {}, + "sage.arith.multi_modular.pxd": {}, + "sage.arith.numerical_approx": {}, + "sage.arith.numerical_approx.pxd": {}, + "sage.arith.power": {}, + "sage.arith.power.pxd": {}, + "sage.arith.rational_reconstruction": {}, + "sage.arith.rational_reconstruction.pxd": {}, + "sage.arith.srange": {}, + "sage.calculus.all": { + "failed": true + }, + "sage.calculus.all__sagemath_categories": {}, + "sage.calculus.all__sagemath_modules": {}, + "sage.calculus.calculus": { + "failed": true + }, + "sage.calculus.desolvers": { + "failed": true + }, + "sage.calculus.functional": {}, + "sage.calculus.functions": {}, + "sage.calculus.integration": {}, + "sage.calculus.interpolation": {}, + "sage.calculus.interpolation.pxd": {}, + "sage.calculus.interpolators": { + "failed": true + }, + "sage.calculus.ode": {}, + "sage.calculus.ode.pxd": {}, + "sage.calculus.predefined": {}, + "sage.calculus.riemann": {}, + "sage.calculus.test_sympy": {}, + "sage.calculus.tests": { + "failed": true + }, + "sage.calculus.transforms.all": {}, + "sage.calculus.transforms.dft": {}, + "sage.calculus.transforms.dwt": {}, + "sage.calculus.transforms.dwt.pxd": {}, + "sage.calculus.transforms.fft": {}, + "sage.calculus.transforms.fft.pxd": {}, + "sage.calculus.wester": {}, + "sage.categories.action": {}, + "sage.categories.action.pxd": {}, + "sage.categories.additive_groups": {}, + "sage.categories.additive_magmas": {}, + "sage.categories.additive_monoids": {}, + "sage.categories.additive_semigroups": {}, + "sage.categories.affine_weyl_groups": {}, + "sage.categories.algebra_functor": {}, + "sage.categories.algebra_ideals": {}, + "sage.categories.algebra_modules": {}, + "sage.categories.algebras": {}, + "sage.categories.algebras_with_basis": {}, + "sage.categories.all": {}, + "sage.categories.all__sagemath_objects": {}, + "sage.categories.aperiodic_semigroups": {}, + "sage.categories.associative_algebras": {}, + "sage.categories.basic": {}, + "sage.categories.bialgebras": {}, + "sage.categories.bialgebras_with_basis": {}, + "sage.categories.bimodules": {}, + "sage.categories.cartesian_product": {}, + "sage.categories.category": {}, + "sage.categories.category_cy_helper": {}, + "sage.categories.category_cy_helper.pxd": {}, + "sage.categories.category_singleton": {}, + "sage.categories.category_singleton.pxd": {}, + "sage.categories.category_types": {}, + "sage.categories.category_with_axiom": {}, + "sage.categories.chain_complexes": {}, + "sage.categories.classical_crystals": { + "failed": true + }, + "sage.categories.coalgebras": {}, + "sage.categories.coalgebras_with_basis": {}, + "sage.categories.coercion_methods": {}, + "sage.categories.commutative_additive_groups": {}, + "sage.categories.commutative_additive_monoids": {}, + "sage.categories.commutative_additive_semigroups": {}, + "sage.categories.commutative_algebra_ideals": {}, + "sage.categories.commutative_algebras": {}, + "sage.categories.commutative_ring_ideals": {}, + "sage.categories.commutative_rings": {}, + "sage.categories.complete_discrete_valuation": {}, + "sage.categories.complex_reflection_groups": {}, + "sage.categories.complex_reflection_or_generalized_coxeter_groups": {}, + "sage.categories.covariant_functorial_construction": {}, + "sage.categories.coxeter_group_algebras": {}, + "sage.categories.coxeter_groups": { + "failed": true + }, + "sage.categories.crystals": { + "failed": true + }, + "sage.categories.cw_complexes": {}, + "sage.categories.discrete_valuation": {}, + "sage.categories.distributive_magmas_and_additive_magmas": {}, + "sage.categories.division_rings": {}, + "sage.categories.domains": {}, + "sage.categories.drinfeld_modules": {}, + "sage.categories.dual": {}, + "sage.categories.enumerated_sets": {}, + "sage.categories.euclidean_domains": {}, + "sage.categories.examples.algebras_with_basis": {}, + "sage.categories.examples.all": {}, + "sage.categories.examples.commutative_additive_monoids": {}, + "sage.categories.examples.commutative_additive_semigroups": {}, + "sage.categories.examples.coxeter_groups": {}, + "sage.categories.examples.crystals": {}, + "sage.categories.examples.cw_complexes": {}, + "sage.categories.examples.facade_sets": {}, + "sage.categories.examples.filtered_algebras_with_basis": {}, + "sage.categories.examples.filtered_modules_with_basis": {}, + "sage.categories.examples.finite_coxeter_groups": {}, + "sage.categories.examples.finite_dimensional_algebras_with_basis": {}, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": {}, + "sage.categories.examples.finite_enumerated_sets": {}, + "sage.categories.examples.finite_monoids": {}, + "sage.categories.examples.finite_semigroups": {}, + "sage.categories.examples.finite_weyl_groups": {}, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": {}, + "sage.categories.examples.graded_modules_with_basis": {}, + "sage.categories.examples.graphs": {}, + "sage.categories.examples.hopf_algebras_with_basis": {}, + "sage.categories.examples.infinite_enumerated_sets": {}, + "sage.categories.examples.lie_algebras": {}, + "sage.categories.examples.lie_algebras_with_basis": {}, + "sage.categories.examples.magmas": {}, + "sage.categories.examples.manifolds": {}, + "sage.categories.examples.monoids": {}, + "sage.categories.examples.posets": {}, + "sage.categories.examples.semigroups": {}, + "sage.categories.examples.semigroups_cython": {}, + "sage.categories.examples.sets_cat": {}, + "sage.categories.examples.sets_with_grading": {}, + "sage.categories.examples.with_realizations": { + "failed": true + }, + "sage.categories.facade_sets": {}, + "sage.categories.fields": {}, + "sage.categories.filtered_algebras": {}, + "sage.categories.filtered_algebras_with_basis": {}, + "sage.categories.filtered_hopf_algebras_with_basis": {}, + "sage.categories.filtered_modules": {}, + "sage.categories.filtered_modules_with_basis": {}, + "sage.categories.finite_complex_reflection_groups": {}, + "sage.categories.finite_coxeter_groups": { + "failed": true + }, + "sage.categories.finite_crystals": {}, + "sage.categories.finite_dimensional_algebras_with_basis": {}, + "sage.categories.finite_dimensional_bialgebras_with_basis": {}, + "sage.categories.finite_dimensional_coalgebras_with_basis": {}, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": {}, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": {}, + "sage.categories.finite_dimensional_lie_algebras_with_basis": {}, + "sage.categories.finite_dimensional_modules_with_basis": {}, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": {}, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": {}, + "sage.categories.finite_enumerated_sets": {}, + "sage.categories.finite_fields": {}, + "sage.categories.finite_groups": {}, + "sage.categories.finite_lattice_posets": {}, + "sage.categories.finite_monoids": {}, + "sage.categories.finite_permutation_groups": { + "failed": true + }, + "sage.categories.finite_posets": {}, + "sage.categories.finite_semigroups": {}, + "sage.categories.finite_sets": {}, + "sage.categories.finite_weyl_groups": {}, + "sage.categories.finitely_generated_lambda_bracket_algebras": {}, + "sage.categories.finitely_generated_lie_conformal_algebras": {}, + "sage.categories.finitely_generated_magmas": {}, + "sage.categories.finitely_generated_semigroups": {}, + "sage.categories.function_fields": {}, + "sage.categories.functor": {}, + "sage.categories.functor.pxd": {}, + "sage.categories.g_sets": {}, + "sage.categories.gcd_domains": {}, + "sage.categories.generalized_coxeter_groups": {}, + "sage.categories.graded_algebras": {}, + "sage.categories.graded_algebras_with_basis": {}, + "sage.categories.graded_bialgebras": {}, + "sage.categories.graded_bialgebras_with_basis": {}, + "sage.categories.graded_coalgebras": {}, + "sage.categories.graded_coalgebras_with_basis": {}, + "sage.categories.graded_hopf_algebras": {}, + "sage.categories.graded_hopf_algebras_with_basis": {}, + "sage.categories.graded_lie_algebras": {}, + "sage.categories.graded_lie_algebras_with_basis": {}, + "sage.categories.graded_lie_conformal_algebras": {}, + "sage.categories.graded_modules": {}, + "sage.categories.graded_modules_with_basis": {}, + "sage.categories.graphs": {}, + "sage.categories.group_algebras": {}, + "sage.categories.groupoid": {}, + "sage.categories.groups": {}, + "sage.categories.h_trivial_semigroups": {}, + "sage.categories.hecke_modules": {}, + "sage.categories.highest_weight_crystals": {}, + "sage.categories.homset": {}, + "sage.categories.homsets": {}, + "sage.categories.hopf_algebras": {}, + "sage.categories.hopf_algebras_with_basis": {}, + "sage.categories.infinite_enumerated_sets": {}, + "sage.categories.integral_domains": {}, + "sage.categories.isomorphic_objects": {}, + "sage.categories.j_trivial_semigroups": {}, + "sage.categories.kac_moody_algebras": {}, + "sage.categories.l_trivial_semigroups": {}, + "sage.categories.lambda_bracket_algebras": {}, + "sage.categories.lambda_bracket_algebras_with_basis": {}, + "sage.categories.lattice_posets": {}, + "sage.categories.left_modules": {}, + "sage.categories.lie_algebras": {}, + "sage.categories.lie_algebras_with_basis": {}, + "sage.categories.lie_conformal_algebras": {}, + "sage.categories.lie_conformal_algebras_with_basis": {}, + "sage.categories.lie_groups": {}, + "sage.categories.loop_crystals": {}, + "sage.categories.magmas": {}, + "sage.categories.magmas_and_additive_magmas": {}, + "sage.categories.magmatic_algebras": {}, + "sage.categories.manifolds": {}, + "sage.categories.map": {}, + "sage.categories.map.pxd": {}, + "sage.categories.matrix_algebras": {}, + "sage.categories.metric_spaces": {}, + "sage.categories.modular_abelian_varieties": {}, + "sage.categories.modules": {}, + "sage.categories.modules_with_basis": {}, + "sage.categories.monoid_algebras": {}, + "sage.categories.monoids": {}, + "sage.categories.morphism": {}, + "sage.categories.morphism.pxd": {}, + "sage.categories.number_fields": {}, + "sage.categories.objects": {}, + "sage.categories.partially_ordered_monoids": {}, + "sage.categories.permutation_groups": {}, + "sage.categories.pointed_sets": {}, + "sage.categories.polyhedra": {}, + "sage.categories.poor_man_map": {}, + "sage.categories.posets": {}, + "sage.categories.primer": {}, + "sage.categories.principal_ideal_domains": {}, + "sage.categories.pushout": { + "failed": true + }, + "sage.categories.quantum_group_representations": {}, + "sage.categories.quotient_fields": {}, + "sage.categories.quotients": {}, + "sage.categories.r_trivial_semigroups": {}, + "sage.categories.realizations": {}, + "sage.categories.regular_crystals": {}, + "sage.categories.regular_supercrystals": {}, + "sage.categories.right_modules": {}, + "sage.categories.ring_ideals": {}, + "sage.categories.rings": {}, + "sage.categories.rngs": {}, + "sage.categories.schemes": {}, + "sage.categories.semigroups": {}, + "sage.categories.semirings": {}, + "sage.categories.semisimple_algebras": {}, + "sage.categories.sets_cat": { + "failed": true + }, + "sage.categories.sets_with_grading": {}, + "sage.categories.sets_with_partial_maps": {}, + "sage.categories.shephard_groups": {}, + "sage.categories.signed_tensor": {}, + "sage.categories.simplicial_complexes": {}, + "sage.categories.simplicial_sets": {}, + "sage.categories.subobjects": {}, + "sage.categories.subquotients": {}, + "sage.categories.super_algebras": {}, + "sage.categories.super_algebras_with_basis": {}, + "sage.categories.super_hopf_algebras_with_basis": {}, + "sage.categories.super_lie_conformal_algebras": {}, + "sage.categories.super_modules": {}, + "sage.categories.super_modules_with_basis": {}, + "sage.categories.supercommutative_algebras": {}, + "sage.categories.supercrystals": {}, + "sage.categories.tensor": {}, + "sage.categories.topological_spaces": {}, + "sage.categories.triangular_kac_moody_algebras": {}, + "sage.categories.tutorial": {}, + "sage.categories.unique_factorization_domains": {}, + "sage.categories.unital_algebras": {}, + "sage.categories.vector_bundles": {}, + "sage.categories.vector_spaces": {}, + "sage.categories.weyl_groups": { + "failed": true + }, + "sage.categories.with_realizations": { + "failed": true + }, + "sage.coding.abstract_code": {}, + "sage.coding.ag_code": {}, + "sage.coding.ag_code_decoders": {}, + "sage.coding.all": {}, + "sage.coding.all__sagemath_gap": {}, + "sage.coding.bch_code": { + "failed": true + }, + "sage.coding.binary_code": {}, + "sage.coding.binary_code.pxd": {}, + "sage.coding.bounds_catalog": {}, + "sage.coding.channel": {}, + "sage.coding.channels_catalog": {}, + "sage.coding.code_bounds": { + "failed": true + }, + "sage.coding.code_constructions": {}, + "sage.coding.codecan.all": {}, + "sage.coding.codecan.all__sagemath_gap": {}, + "sage.coding.codecan.autgroup_can_label": {}, + "sage.coding.codecan.codecan": {}, + "sage.coding.codecan.codecan.pxd": {}, + "sage.coding.codes_catalog": {}, + "sage.coding.cyclic_code": {}, + "sage.coding.databases": {}, + "sage.coding.decoder": {}, + "sage.coding.decoders_catalog": {}, + "sage.coding.delsarte_bounds": {}, + "sage.coding.encoder": {}, + "sage.coding.encoders_catalog": {}, + "sage.coding.extended_code": { + "failed": true + }, + "sage.coding.gabidulin_code": {}, + "sage.coding.golay_code": {}, + "sage.coding.goppa_code": {}, + "sage.coding.grs_code": {}, + "sage.coding.guava": {}, + "sage.coding.guruswami_sudan.all": {}, + "sage.coding.guruswami_sudan.gs_decoder": { + "failed": true + }, + "sage.coding.guruswami_sudan.interpolation": {}, + "sage.coding.guruswami_sudan.utils": { + "failed": true + }, + "sage.coding.hamming_code": {}, + "sage.coding.information_set_decoder": {}, + "sage.coding.kasami_codes": {}, + "sage.coding.linear_code": {}, + "sage.coding.linear_code_no_metric": {}, + "sage.coding.linear_rank_metric": {}, + "sage.coding.parity_check_code": {}, + "sage.coding.punctured_code": {}, + "sage.coding.reed_muller_code": {}, + "sage.coding.self_dual_codes": {}, + "sage.coding.source_coding.all": {}, + "sage.coding.source_coding.huffman": {}, + "sage.coding.subfield_subcode": {}, + "sage.coding.two_weight_db": {}, + "sage.combinat.abstract_tree": {}, + "sage.combinat.affine_permutation": {}, + "sage.combinat.algebraic_combinatorics": {}, + "sage.combinat.all": {}, + "sage.combinat.all__sagemath_categories": {}, + "sage.combinat.all__sagemath_combinat": {}, + "sage.combinat.all__sagemath_gap": {}, + "sage.combinat.all__sagemath_graphs": {}, + "sage.combinat.all__sagemath_modules": {}, + "sage.combinat.alternating_sign_matrix": {}, + "sage.combinat.backtrack": {}, + "sage.combinat.baxter_permutations": {}, + "sage.combinat.bijectionist": {}, + "sage.combinat.binary_recurrence_sequences": {}, + "sage.combinat.binary_tree": {}, + "sage.combinat.blob_algebra": {}, + "sage.combinat.cartesian_product": {}, + "sage.combinat.catalog_partitions": {}, + "sage.combinat.chas.all": {}, + "sage.combinat.chas.fsym": {}, + "sage.combinat.chas.wqsym": {}, + "sage.combinat.cluster_algebra_quiver.all": {}, + "sage.combinat.cluster_algebra_quiver.cluster_seed": {}, + "sage.combinat.cluster_algebra_quiver.interact": {}, + "sage.combinat.cluster_algebra_quiver.mutation_class": {}, + "sage.combinat.cluster_algebra_quiver.mutation_type": {}, + "sage.combinat.cluster_algebra_quiver.quiver": {}, + "sage.combinat.cluster_algebra_quiver.quiver_mutation_type": {}, + "sage.combinat.cluster_complex": {}, + "sage.combinat.colored_permutations": {}, + "sage.combinat.combinat": {}, + "sage.combinat.combinat_cython": {}, + "sage.combinat.combinat_cython.pxd": {}, + "sage.combinat.combination": {}, + "sage.combinat.combinatorial_map": {}, + "sage.combinat.composition": {}, + "sage.combinat.composition_signed": {}, + "sage.combinat.composition_tableau": {}, + "sage.combinat.constellation": {}, + "sage.combinat.core": {}, + "sage.combinat.counting": {}, + "sage.combinat.crystals.affine": {}, + "sage.combinat.crystals.affine_factorization": {}, + "sage.combinat.crystals.affinization": {}, + "sage.combinat.crystals.alcove_path": {}, + "sage.combinat.crystals.all": {}, + "sage.combinat.crystals.bkk_crystals": {}, + "sage.combinat.crystals.catalog": {}, + "sage.combinat.crystals.catalog_elementary_crystals": {}, + "sage.combinat.crystals.catalog_infinity_crystals": {}, + "sage.combinat.crystals.catalog_kirillov_reshetikhin": {}, + "sage.combinat.crystals.crystals": {}, + "sage.combinat.crystals.direct_sum": {}, + "sage.combinat.crystals.elementary_crystals": {}, + "sage.combinat.crystals.fast_crystals": {}, + "sage.combinat.crystals.fully_commutative_stable_grothendieck": {}, + "sage.combinat.crystals.generalized_young_walls": {}, + "sage.combinat.crystals.highest_weight_crystals": {}, + "sage.combinat.crystals.induced_structure": {}, + "sage.combinat.crystals.infinity_crystals": {}, + "sage.combinat.crystals.kac_modules": {}, + "sage.combinat.crystals.kirillov_reshetikhin": {}, + "sage.combinat.crystals.kyoto_path_model": {}, + "sage.combinat.crystals.letters": {}, + "sage.combinat.crystals.letters.pxd": {}, + "sage.combinat.crystals.littelmann_path": {}, + "sage.combinat.crystals.monomial_crystals": {}, + "sage.combinat.crystals.multisegments": {}, + "sage.combinat.crystals.mv_polytopes": {}, + "sage.combinat.crystals.pbw_crystal": {}, + "sage.combinat.crystals.pbw_datum": {}, + "sage.combinat.crystals.pbw_datum.pxd": {}, + "sage.combinat.crystals.polyhedral_realization": {}, + "sage.combinat.crystals.spins": {}, + "sage.combinat.crystals.spins.pxd": {}, + "sage.combinat.crystals.star_crystal": {}, + "sage.combinat.crystals.subcrystal": {}, + "sage.combinat.crystals.tensor_product": {}, + "sage.combinat.crystals.tensor_product_element": {}, + "sage.combinat.crystals.tensor_product_element.pxd": {}, + "sage.combinat.crystals.virtual_crystal": {}, + "sage.combinat.cyclic_sieving_phenomenon": {}, + "sage.combinat.debruijn_sequence": {}, + "sage.combinat.decorated_permutation": {}, + "sage.combinat.degree_sequences": {}, + "sage.combinat.derangements": {}, + "sage.combinat.descent_algebra": {}, + "sage.combinat.designs.all": {}, + "sage.combinat.designs.bibd": {}, + "sage.combinat.designs.block_design": {}, + "sage.combinat.designs.covering_design": {}, + "sage.combinat.designs.database": {}, + "sage.combinat.designs.design_catalog": {}, + "sage.combinat.designs.designs_pyx": {}, + "sage.combinat.designs.designs_pyx.pxd": {}, + "sage.combinat.designs.difference_family": {}, + "sage.combinat.designs.difference_matrices": {}, + "sage.combinat.designs.evenly_distributed_sets": {}, + "sage.combinat.designs.ext_rep": {}, + "sage.combinat.designs.gen_quadrangles_with_spread": {}, + "sage.combinat.designs.group_divisible_designs": {}, + "sage.combinat.designs.incidence_structures": {}, + "sage.combinat.designs.latin_squares": {}, + "sage.combinat.designs.orthogonal_arrays": {}, + "sage.combinat.designs.orthogonal_arrays_build_recursive": {}, + "sage.combinat.designs.orthogonal_arrays_find_recursive": {}, + "sage.combinat.designs.resolvable_bibd": {}, + "sage.combinat.designs.steiner_quadruple_systems": {}, + "sage.combinat.designs.subhypergraph_search": {}, + "sage.combinat.designs.twographs": {}, + "sage.combinat.diagram": {}, + "sage.combinat.diagram_algebras": {}, + "sage.combinat.dlx": {}, + "sage.combinat.dyck_word": {}, + "sage.combinat.e_one_star": { + "failed": true + }, + "sage.combinat.enumerated_sets": {}, + "sage.combinat.enumeration_mod_permgroup": {}, + "sage.combinat.enumeration_mod_permgroup.pxd": {}, + "sage.combinat.expnums": {}, + "sage.combinat.family": {}, + "sage.combinat.fast_vector_partitions": {}, + "sage.combinat.finite_state_machine": {}, + "sage.combinat.finite_state_machine_generators": {}, + "sage.combinat.fqsym": {}, + "sage.combinat.free_dendriform_algebra": {}, + "sage.combinat.free_module": {}, + "sage.combinat.free_prelie_algebra": {}, + "sage.combinat.fully_commutative_elements": {}, + "sage.combinat.fully_packed_loop": {}, + "sage.combinat.gelfand_tsetlin_patterns": {}, + "sage.combinat.graph_path": {}, + "sage.combinat.gray_codes": { + "failed": true + }, + "sage.combinat.grossman_larson_algebras": {}, + "sage.combinat.growth": { + "failed": true + }, + "sage.combinat.hall_polynomial": {}, + "sage.combinat.hillman_grassl": {}, + "sage.combinat.integer_lists": {}, + "sage.combinat.integer_lists.base": {}, + "sage.combinat.integer_lists.base.pxd": {}, + "sage.combinat.integer_lists.invlex": {}, + "sage.combinat.integer_lists.invlex.pxd": {}, + "sage.combinat.integer_lists.lists": {}, + "sage.combinat.integer_lists.nn": {}, + "sage.combinat.integer_matrices": {}, + "sage.combinat.integer_vector": {}, + "sage.combinat.integer_vector_weighted": {}, + "sage.combinat.integer_vectors_mod_permgroup": {}, + "sage.combinat.interval_posets": {}, + "sage.combinat.k_tableau": {}, + "sage.combinat.kazhdan_lusztig": { + "failed": true + }, + "sage.combinat.key_polynomial": { + "failed": true + }, + "sage.combinat.knutson_tao_puzzles": {}, + "sage.combinat.lr_tableau": {}, + "sage.combinat.matrices.all": {}, + "sage.combinat.matrices.all__sagemath_categories": {}, + "sage.combinat.matrices.dancing_links": {}, + "sage.combinat.matrices.dlxcpp": {}, + "sage.combinat.matrices.hadamard_matrix": {}, + "sage.combinat.matrices.latin": {}, + "sage.combinat.misc": {}, + "sage.combinat.multiset_partition_into_sets_ordered": { + "failed": true + }, + "sage.combinat.ncsf_qsym.all": {}, + "sage.combinat.ncsf_qsym.combinatorics": { + "failed": true + }, + "sage.combinat.ncsf_qsym.generic_basis_code": {}, + "sage.combinat.ncsf_qsym.ncsf": {}, + "sage.combinat.ncsf_qsym.qsym": {}, + "sage.combinat.ncsf_qsym.tutorial": { + "failed": true + }, + "sage.combinat.ncsym.all": {}, + "sage.combinat.ncsym.bases": {}, + "sage.combinat.ncsym.dual": {}, + "sage.combinat.ncsym.ncsym": {}, + "sage.combinat.necklace": {}, + "sage.combinat.non_decreasing_parking_function": {}, + "sage.combinat.nu_dyck_word": {}, + "sage.combinat.nu_tamari_lattice": {}, + "sage.combinat.ordered_tree": {}, + "sage.combinat.output": {}, + "sage.combinat.parallelogram_polyomino": { + "failed": true + }, + "sage.combinat.parking_functions": {}, + "sage.combinat.partition": {}, + "sage.combinat.partition_algebra": { + "failed": true + }, + "sage.combinat.partition_kleshchev": {}, + "sage.combinat.partition_shifting_algebras": {}, + "sage.combinat.partition_tuple": {}, + "sage.combinat.partitions": {}, + "sage.combinat.path_tableaux.all": {}, + "sage.combinat.path_tableaux.catalog": {}, + "sage.combinat.path_tableaux.dyck_path": {}, + "sage.combinat.path_tableaux.frieze": { + "failed": true + }, + "sage.combinat.path_tableaux.path_tableau": {}, + "sage.combinat.path_tableaux.semistandard": {}, + "sage.combinat.perfect_matching": {}, + "sage.combinat.permutation": {}, + "sage.combinat.permutation_cython": {}, + "sage.combinat.permutation_cython.pxd": {}, + "sage.combinat.plane_partition": {}, + "sage.combinat.posets.all": {}, + "sage.combinat.posets.cartesian_product": {}, + "sage.combinat.posets.d_complete": {}, + "sage.combinat.posets.elements": {}, + "sage.combinat.posets.forest": {}, + "sage.combinat.posets.hasse_cython": {}, + "sage.combinat.posets.hasse_cython_flint": {}, + "sage.combinat.posets.hasse_diagram": {}, + "sage.combinat.posets.incidence_algebras": {}, + "sage.combinat.posets.lattices": {}, + "sage.combinat.posets.linear_extension_iterator": {}, + "sage.combinat.posets.linear_extensions": {}, + "sage.combinat.posets.mobile": {}, + "sage.combinat.posets.moebius_algebra": {}, + "sage.combinat.posets.poset_examples": {}, + "sage.combinat.posets.posets": {}, + "sage.combinat.q_analogues": {}, + "sage.combinat.q_bernoulli": {}, + "sage.combinat.quickref": {}, + "sage.combinat.ranker": {}, + "sage.combinat.recognizable_series": {}, + "sage.combinat.regular_sequence": {}, + "sage.combinat.restricted_growth": {}, + "sage.combinat.ribbon": {}, + "sage.combinat.ribbon_shaped_tableau": {}, + "sage.combinat.ribbon_tableau": {}, + "sage.combinat.rigged_configurations.all": {}, + "sage.combinat.rigged_configurations.bij_abstract_class": {}, + "sage.combinat.rigged_configurations.bij_infinity": {}, + "sage.combinat.rigged_configurations.bij_type_A": {}, + "sage.combinat.rigged_configurations.bij_type_A2_dual": {}, + "sage.combinat.rigged_configurations.bij_type_A2_even": {}, + "sage.combinat.rigged_configurations.bij_type_A2_odd": {}, + "sage.combinat.rigged_configurations.bij_type_B": {}, + "sage.combinat.rigged_configurations.bij_type_C": {}, + "sage.combinat.rigged_configurations.bij_type_D": {}, + "sage.combinat.rigged_configurations.bij_type_D_tri": {}, + "sage.combinat.rigged_configurations.bij_type_D_twisted": {}, + "sage.combinat.rigged_configurations.bij_type_E67": {}, + "sage.combinat.rigged_configurations.bijection": {}, + "sage.combinat.rigged_configurations.kleber_tree": {}, + "sage.combinat.rigged_configurations.kr_tableaux": {}, + "sage.combinat.rigged_configurations.rc_crystal": {}, + "sage.combinat.rigged_configurations.rc_infinity": {}, + "sage.combinat.rigged_configurations.rigged_configuration_element": {}, + "sage.combinat.rigged_configurations.rigged_configurations": {}, + "sage.combinat.rigged_configurations.rigged_partition": {}, + "sage.combinat.rigged_configurations.rigged_partition.pxd": {}, + "sage.combinat.rigged_configurations.tensor_product_kr_tableaux": {}, + "sage.combinat.rigged_configurations.tensor_product_kr_tableaux_element": {}, + "sage.combinat.root_system.all": {}, + "sage.combinat.root_system.all__sagemath_gap": {}, + "sage.combinat.root_system.ambient_space": {}, + "sage.combinat.root_system.associahedron": {}, + "sage.combinat.root_system.braid_move_calculator": {}, + "sage.combinat.root_system.braid_orbit": {}, + "sage.combinat.root_system.branching_rules": {}, + "sage.combinat.root_system.cartan_matrix": {}, + "sage.combinat.root_system.cartan_type": {}, + "sage.combinat.root_system.coxeter_group": { + "failed": true + }, + "sage.combinat.root_system.coxeter_matrix": {}, + "sage.combinat.root_system.coxeter_type": {}, + "sage.combinat.root_system.dynkin_diagram": {}, + "sage.combinat.root_system.extended_affine_weyl_group": {}, + "sage.combinat.root_system.fundamental_group": {}, + "sage.combinat.root_system.hecke_algebra_representation": {}, + "sage.combinat.root_system.integrable_representations": {}, + "sage.combinat.root_system.non_symmetric_macdonald_polynomials": {}, + "sage.combinat.root_system.pieri_factors": {}, + "sage.combinat.root_system.plot": {}, + "sage.combinat.root_system.reflection_group_c": {}, + "sage.combinat.root_system.reflection_group_complex": {}, + "sage.combinat.root_system.reflection_group_element": {}, + "sage.combinat.root_system.reflection_group_element.pxd": {}, + "sage.combinat.root_system.reflection_group_real": {}, + "sage.combinat.root_system.root_lattice_realization_algebras": {}, + "sage.combinat.root_system.root_lattice_realizations": {}, + "sage.combinat.root_system.root_space": {}, + "sage.combinat.root_system.root_system": {}, + "sage.combinat.root_system.type_A": {}, + "sage.combinat.root_system.type_A_affine": {}, + "sage.combinat.root_system.type_A_infinity": {}, + "sage.combinat.root_system.type_B": {}, + "sage.combinat.root_system.type_BC_affine": {}, + "sage.combinat.root_system.type_B_affine": {}, + "sage.combinat.root_system.type_C": {}, + "sage.combinat.root_system.type_C_affine": {}, + "sage.combinat.root_system.type_D": {}, + "sage.combinat.root_system.type_D_affine": {}, + "sage.combinat.root_system.type_E": {}, + "sage.combinat.root_system.type_E_affine": {}, + "sage.combinat.root_system.type_F": {}, + "sage.combinat.root_system.type_F_affine": {}, + "sage.combinat.root_system.type_G": {}, + "sage.combinat.root_system.type_G_affine": {}, + "sage.combinat.root_system.type_H": {}, + "sage.combinat.root_system.type_I": {}, + "sage.combinat.root_system.type_Q": {}, + "sage.combinat.root_system.type_affine": {}, + "sage.combinat.root_system.type_dual": {}, + "sage.combinat.root_system.type_folded": {}, + "sage.combinat.root_system.type_marked": {}, + "sage.combinat.root_system.type_reducible": {}, + "sage.combinat.root_system.type_relabel": {}, + "sage.combinat.root_system.type_super_A": {}, + "sage.combinat.root_system.weight_lattice_realizations": {}, + "sage.combinat.root_system.weight_space": {}, + "sage.combinat.root_system.weyl_characters": {}, + "sage.combinat.root_system.weyl_group": {}, + "sage.combinat.rooted_tree": {}, + "sage.combinat.rsk": {}, + "sage.combinat.schubert_polynomial": {}, + "sage.combinat.set_partition": {}, + "sage.combinat.set_partition_iterator": {}, + "sage.combinat.set_partition_ordered": {}, + "sage.combinat.sf.all": {}, + "sage.combinat.sf.character": {}, + "sage.combinat.sf.classical": {}, + "sage.combinat.sf.dual": {}, + "sage.combinat.sf.elementary": {}, + "sage.combinat.sf.hall_littlewood": {}, + "sage.combinat.sf.hecke": {}, + "sage.combinat.sf.homogeneous": {}, + "sage.combinat.sf.jack": {}, + "sage.combinat.sf.k_dual": {}, + "sage.combinat.sf.kfpoly": {}, + "sage.combinat.sf.llt": { + "failed": true + }, + "sage.combinat.sf.macdonald": {}, + "sage.combinat.sf.monomial": {}, + "sage.combinat.sf.multiplicative": {}, + "sage.combinat.sf.new_kschur": {}, + "sage.combinat.sf.ns_macdonald": {}, + "sage.combinat.sf.orthogonal": {}, + "sage.combinat.sf.orthotriang": {}, + "sage.combinat.sf.powersum": {}, + "sage.combinat.sf.schur": {}, + "sage.combinat.sf.sf": { + "failed": true + }, + "sage.combinat.sf.sfa": {}, + "sage.combinat.sf.symplectic": {}, + "sage.combinat.sf.witt": {}, + "sage.combinat.shard_order": {}, + "sage.combinat.shifted_primed_tableau": {}, + "sage.combinat.shuffle": { + "failed": true + }, + "sage.combinat.sidon_sets": {}, + "sage.combinat.similarity_class_type": {}, + "sage.combinat.sine_gordon": {}, + "sage.combinat.six_vertex_model": {}, + "sage.combinat.skew_partition": {}, + "sage.combinat.skew_tableau": {}, + "sage.combinat.sloane_functions": { + "failed": true + }, + "sage.combinat.specht_module": {}, + "sage.combinat.species.all": {}, + "sage.combinat.species.characteristic_species": {}, + "sage.combinat.species.composition_species": {}, + "sage.combinat.species.cycle_species": {}, + "sage.combinat.species.empty_species": {}, + "sage.combinat.species.functorial_composition_species": {}, + "sage.combinat.species.generating_series": {}, + "sage.combinat.species.library": {}, + "sage.combinat.species.linear_order_species": {}, + "sage.combinat.species.misc": {}, + "sage.combinat.species.partition_species": {}, + "sage.combinat.species.permutation_species": {}, + "sage.combinat.species.product_species": {}, + "sage.combinat.species.recursive_species": {}, + "sage.combinat.species.set_species": {}, + "sage.combinat.species.species": {}, + "sage.combinat.species.structure": {}, + "sage.combinat.species.subset_species": {}, + "sage.combinat.species.sum_species": {}, + "sage.combinat.subset": {}, + "sage.combinat.subsets_hereditary": {}, + "sage.combinat.subsets_pairwise": {}, + "sage.combinat.subword": {}, + "sage.combinat.subword_complex": { + "failed": true + }, + "sage.combinat.subword_complex_c": { + "failed": true + }, + "sage.combinat.super_tableau": {}, + "sage.combinat.superpartition": {}, + "sage.combinat.symmetric_group_algebra": {}, + "sage.combinat.symmetric_group_representations": {}, + "sage.combinat.t_sequences": {}, + "sage.combinat.tableau": {}, + "sage.combinat.tableau_residues": {}, + "sage.combinat.tableau_tuple": {}, + "sage.combinat.tamari_lattices": {}, + "sage.combinat.tiling": { + "failed": true + }, + "sage.combinat.tools": {}, + "sage.combinat.triangles_FHM": {}, + "sage.combinat.tuple": {}, + "sage.combinat.tutorial": { + "failed": true + }, + "sage.combinat.vector_partition": {}, + "sage.combinat.words.abstract_word": {}, + "sage.combinat.words.all": {}, + "sage.combinat.words.alphabet": {}, + "sage.combinat.words.finite_word": {}, + "sage.combinat.words.infinite_word": {}, + "sage.combinat.words.lyndon_word": {}, + "sage.combinat.words.morphic": {}, + "sage.combinat.words.morphism": {}, + "sage.combinat.words.paths": {}, + "sage.combinat.words.shuffle_product": {}, + "sage.combinat.words.suffix_trees": {}, + "sage.combinat.words.word": {}, + "sage.combinat.words.word_char": {}, + "sage.combinat.words.word_datatypes": {}, + "sage.combinat.words.word_datatypes.pxd": {}, + "sage.combinat.words.word_generators": {}, + "sage.combinat.words.word_infinite_datatypes": {}, + "sage.combinat.words.word_options": {}, + "sage.combinat.words.words": {}, + "sage.combinat.yang_baxter_graph": {}, + "sage.cpython": {}, + "sage.cpython._py2_random": {}, + "sage.cpython.all": {}, + "sage.cpython.atexit": {}, + "sage.cpython.builtin_types": {}, + "sage.cpython.cython_metaclass": {}, + "sage.cpython.cython_metaclass.pxd": {}, + "sage.cpython.debug": {}, + "sage.cpython.dict_del_by_value": {}, + "sage.cpython.dict_del_by_value.pxd": {}, + "sage.cpython.getattr": {}, + "sage.cpython.getattr.pxd": {}, + "sage.cpython.python_debug.pxd": {}, + "sage.cpython.string": {}, + "sage.cpython.string.pxd": {}, + "sage.cpython.type": {}, + "sage.cpython.type.pxd": {}, + "sage.cpython.wrapperdescr": {}, + "sage.cpython.wrapperdescr.pxd": {}, + "sage.crypto": {}, + "sage.crypto.all": {}, + "sage.crypto.block_cipher.all": {}, + "sage.crypto.block_cipher.des": {}, + "sage.crypto.block_cipher.miniaes": {}, + "sage.crypto.block_cipher.present": {}, + "sage.crypto.block_cipher.sdes": {}, + "sage.crypto.boolean_function": {}, + "sage.crypto.boolean_function.pxd": {}, + "sage.crypto.cipher": {}, + "sage.crypto.classical": {}, + "sage.crypto.classical_cipher": {}, + "sage.crypto.cryptosystem": {}, + "sage.crypto.lattice": {}, + "sage.crypto.lfsr": {}, + "sage.crypto.lwe": {}, + "sage.crypto.mq": {}, + "sage.crypto.mq.mpolynomialsystemgenerator": {}, + "sage.crypto.mq.rijndael_gf": {}, + "sage.crypto.mq.sbox": {}, + "sage.crypto.mq.sr": {}, + "sage.crypto.public_key.all": {}, + "sage.crypto.public_key.blum_goldwasser": {}, + "sage.crypto.sbox": {}, + "sage.crypto.sboxes": {}, + "sage.crypto.stream": {}, + "sage.crypto.stream_cipher": {}, + "sage.crypto.util": {}, + "sage.data_structures.all": {}, + "sage.data_structures.all__sagemath_categories": {}, + "sage.data_structures.all__sagemath_combinat": {}, + "sage.data_structures.binary_matrix.pxd": {}, + "sage.data_structures.binary_search": {}, + "sage.data_structures.binary_search.pxd": {}, + "sage.data_structures.bitset": {}, + "sage.data_structures.bitset.pxd": {}, + "sage.data_structures.bitset_base": {}, + "sage.data_structures.bitset_base.pxd": {}, + "sage.data_structures.blas_dict": {}, + "sage.data_structures.blas_dict.pxd": {}, + "sage.data_structures.bounded_integer_sequences": {}, + "sage.data_structures.bounded_integer_sequences.pxd": {}, + "sage.data_structures.list_of_pairs": {}, + "sage.data_structures.list_of_pairs.pxd": {}, + "sage.data_structures.mutable_poset": {}, + "sage.data_structures.sparse_bitset.pxd": {}, + "sage.data_structures.stream": {}, + "sage.databases.all": {}, + "sage.databases.conway": {}, + "sage.databases.cremona": {}, + "sage.databases.cubic_hecke_db": {}, + "sage.databases.cunningham_tables": {}, + "sage.databases.db_class_polynomials": {}, + "sage.databases.db_modular_polynomials": {}, + "sage.databases.findstat": {}, + "sage.databases.jones": {}, + "sage.databases.knotinfo_db": {}, + "sage.databases.odlyzko": {}, + "sage.databases.oeis": {}, + "sage.databases.sloane": {}, + "sage.databases.sql_db": {}, + "sage.databases.stein_watkins": {}, + "sage.databases.symbolic_data": {}, + "sage.docs": {}, + "sage.docs.conf": {}, + "sage.docs.instancedoc": {}, + "sage.doctest": {}, + "sage.doctest.all": {}, + "sage.doctest.control": {}, + "sage.doctest.external": {}, + "sage.doctest.fixtures": {}, + "sage.doctest.forker": { + "failed": true + }, + "sage.doctest.parsing": {}, + "sage.doctest.reporting": {}, + "sage.doctest.sources": {}, + "sage.doctest.test": {}, + "sage.doctest.util": {}, + "sage.dynamics.all": {}, + "sage.dynamics.all__sagemath_schemes": {}, + "sage.dynamics.arithmetic_dynamics.affine_ds": {}, + "sage.dynamics.arithmetic_dynamics.all": {}, + "sage.dynamics.arithmetic_dynamics.berkovich_ds": {}, + "sage.dynamics.arithmetic_dynamics.dynamical_semigroup": {}, + "sage.dynamics.arithmetic_dynamics.endPN_automorphism_group": {}, + "sage.dynamics.arithmetic_dynamics.endPN_minimal_model": { + "failed": true + }, + "sage.dynamics.arithmetic_dynamics.generic_ds": {}, + "sage.dynamics.arithmetic_dynamics.product_projective_ds": {}, + "sage.dynamics.arithmetic_dynamics.projective_ds": { + "failed": true + }, + "sage.dynamics.arithmetic_dynamics.projective_ds_helper": {}, + "sage.dynamics.arithmetic_dynamics.wehlerK3": { + "failed": true + }, + "sage.dynamics.cellular_automata.all": {}, + "sage.dynamics.cellular_automata.catalog": {}, + "sage.dynamics.cellular_automata.elementary": {}, + "sage.dynamics.cellular_automata.glca": {}, + "sage.dynamics.cellular_automata.solitons": {}, + "sage.dynamics.complex_dynamics.all": {}, + "sage.dynamics.finite_dynamical_system": {}, + "sage.dynamics.finite_dynamical_system_catalog": {}, + "sage.dynamics.surface_dynamics_deprecation": {}, + "sage.env": {}, + "sage.ext.all__sagemath_categories": {}, + "sage.ext.all__sagemath_modules": {}, + "sage.ext.all__sagemath_objects": {}, + "sage.ext.all__sagemath_pari": {}, + "sage.ext.cplusplus.pxd": {}, + "sage.ext.fast_callable": { + "failed": true + }, + "sage.ext.fast_callable.pxd": {}, + "sage.ext.fast_eval": {}, + "sage.ext.fast_eval.pxd": {}, + "sage.ext.interpreters.all__sagemath_categories": {}, + "sage.ext.interpreters.all__sagemath_modules": {}, + "sage.ext.interpreters.wrapper_cc": {}, + "sage.ext.interpreters.wrapper_cc.pxd": {}, + "sage.ext.interpreters.wrapper_cdf": {}, + "sage.ext.interpreters.wrapper_cdf.pxd": {}, + "sage.ext.interpreters.wrapper_el": {}, + "sage.ext.interpreters.wrapper_el.pxd": {}, + "sage.ext.interpreters.wrapper_py": {}, + "sage.ext.interpreters.wrapper_py.pxd": {}, + "sage.ext.interpreters.wrapper_rdf": {}, + "sage.ext.interpreters.wrapper_rdf.pxd": {}, + "sage.ext.interpreters.wrapper_rr": {}, + "sage.ext.interpreters.wrapper_rr.pxd": {}, + "sage.ext.memory": {}, + "sage.ext.mod_int.pxd": {}, + "sage.ext.stdsage.pxd": {}, + "sage.features": {}, + "sage.features.all": { + "failed": true + }, + "sage.features.bliss": {}, + "sage.features.cddlib": {}, + "sage.features.csdp": {}, + "sage.features.cython": {}, + "sage.features.databases": {}, + "sage.features.dvipng": {}, + "sage.features.ffmpeg": {}, + "sage.features.four_ti_2": {}, + "sage.features.gap": {}, + "sage.features.gfan": {}, + "sage.features.graph_generators": {}, + "sage.features.graphviz": {}, + "sage.features.igraph": {}, + "sage.features.imagemagick": {}, + "sage.features.interfaces": {}, + "sage.features.internet": {}, + "sage.features.join_feature": {}, + "sage.features.kenzo": {}, + "sage.features.latex": {}, + "sage.features.latte": {}, + "sage.features.lrs": {}, + "sage.features.mcqd": {}, + "sage.features.meataxe": {}, + "sage.features.mip_backends": {}, + "sage.features.msolve": {}, + "sage.features.nauty": {}, + "sage.features.normaliz": {}, + "sage.features.palp": {}, + "sage.features.pandoc": {}, + "sage.features.pdf2svg": {}, + "sage.features.phitigra": {}, + "sage.features.pkg_systems": {}, + "sage.features.polymake": {}, + "sage.features.poppler": {}, + "sage.features.rubiks": {}, + "sage.features.sagemath": { + "failed": true + }, + "sage.features.singular": {}, + "sage.features.sphinx": {}, + "sage.features.standard": {}, + "sage.features.tdlib": {}, + "sage.finance": {}, + "sage.finance.all": {}, + "sage.finance.easter": {}, + "sage.finance.fractal": {}, + "sage.finance.markov_multifractal": {}, + "sage.finance.markov_multifractal_cython": {}, + "sage.finance.option": {}, + "sage.finance.stock": {}, + "sage.finance.time_series": {}, + "sage.functions.airy": {}, + "sage.functions.all": {}, + "sage.functions.bessel": {}, + "sage.functions.error": { + "failed": true + }, + "sage.functions.exp_integral": { + "failed": true + }, + "sage.functions.gamma": { + "failed": true + }, + "sage.functions.generalized": {}, + "sage.functions.hyperbolic": {}, + "sage.functions.hypergeometric": { + "failed": true + }, + "sage.functions.jacobi": { + "failed": true + }, + "sage.functions.log": { + "failed": true + }, + "sage.functions.min_max": {}, + "sage.functions.orthogonal_polys": { + "failed": true + }, + "sage.functions.other": { + "failed": true + }, + "sage.functions.piecewise": {}, + "sage.functions.prime_pi": { + "failed": true + }, + "sage.functions.special": {}, + "sage.functions.spike_function": {}, + "sage.functions.transcendental": { + "failed": true + }, + "sage.functions.trig": {}, + "sage.functions.wigner": {}, + "sage.game_theory.all": {}, + "sage.game_theory.catalog": {}, + "sage.game_theory.catalog_normal_form_games": {}, + "sage.game_theory.cooperative_game": {}, + "sage.game_theory.gambit_docs": {}, + "sage.game_theory.matching_game": {}, + "sage.game_theory.normal_form_game": {}, + "sage.game_theory.parser": {}, + "sage.games.all": {}, + "sage.games.hexad": {}, + "sage.games.quantumino": {}, + "sage.games.sudoku": {}, + "sage.games.sudoku_backtrack": {}, + "sage.geometry.abc": {}, + "sage.geometry.abc.pxd": {}, + "sage.geometry.all": {}, + "sage.geometry.all__sagemath_categories": {}, + "sage.geometry.all__sagemath_modules": {}, + "sage.geometry.all__sagemath_polyhedra": {}, + "sage.geometry.cone": {}, + "sage.geometry.cone_catalog": {}, + "sage.geometry.convex_set": {}, + "sage.geometry.fan": {}, + "sage.geometry.fan_isomorphism": {}, + "sage.geometry.fan_morphism": {}, + "sage.geometry.hasse_diagram": {}, + "sage.geometry.hyperbolic_space.all": {}, + "sage.geometry.hyperplane_arrangement.affine_subspace": {}, + "sage.geometry.hyperplane_arrangement.all": {}, + "sage.geometry.hyperplane_arrangement.arrangement": {}, + "sage.geometry.hyperplane_arrangement.check_freeness": {}, + "sage.geometry.hyperplane_arrangement.hyperplane": {}, + "sage.geometry.hyperplane_arrangement.library": {}, + "sage.geometry.hyperplane_arrangement.plot": {}, + "sage.geometry.integral_points": {}, + "sage.geometry.integral_points.pxi": {}, + "sage.geometry.integral_points_generic_dense": {}, + "sage.geometry.integral_points_integer_dense": {}, + "sage.geometry.lattice_polytope": {}, + "sage.geometry.linear_expression": {}, + "sage.geometry.newton_polygon": {}, + "sage.geometry.point_collection": {}, + "sage.geometry.polyhedral_complex": { + "failed": true + }, + "sage.geometry.polyhedron.all": {}, + "sage.geometry.polyhedron.backend_cdd": {}, + "sage.geometry.polyhedron.backend_cdd_rdf": {}, + "sage.geometry.polyhedron.backend_field": {}, + "sage.geometry.polyhedron.backend_normaliz": {}, + "sage.geometry.polyhedron.backend_number_field": {}, + "sage.geometry.polyhedron.backend_polymake": {}, + "sage.geometry.polyhedron.backend_ppl": {}, + "sage.geometry.polyhedron.base": { + "failed": true + }, + "sage.geometry.polyhedron.base0": {}, + "sage.geometry.polyhedron.base1": {}, + "sage.geometry.polyhedron.base2": {}, + "sage.geometry.polyhedron.base3": {}, + "sage.geometry.polyhedron.base4": {}, + "sage.geometry.polyhedron.base5": {}, + "sage.geometry.polyhedron.base6": { + "failed": true + }, + "sage.geometry.polyhedron.base7": {}, + "sage.geometry.polyhedron.base_QQ": {}, + "sage.geometry.polyhedron.base_RDF": {}, + "sage.geometry.polyhedron.base_ZZ": {}, + "sage.geometry.polyhedron.base_mutable": { + "failed": true + }, + "sage.geometry.polyhedron.base_number_field": {}, + "sage.geometry.polyhedron.cdd_file_format": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.all": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.base": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.base.pxd": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.combinatorial_face.pxd": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.conversions": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.conversions.pxd": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.face_data_structure.pxd": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.face_iterator": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.face_iterator.pxd": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.face_list_data_structure": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.face_list_data_structure.pxd": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.list_of_faces": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.list_of_faces.pxd": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.polyhedron_face_lattice": {}, + "sage.geometry.polyhedron.combinatorial_polyhedron.polyhedron_face_lattice.pxd": {}, + "sage.geometry.polyhedron.constructor": {}, + "sage.geometry.polyhedron.double_description": {}, + "sage.geometry.polyhedron.double_description_inhomogeneous": {}, + "sage.geometry.polyhedron.face": {}, + "sage.geometry.polyhedron.generating_function": { + "failed": true + }, + "sage.geometry.polyhedron.lattice_euclidean_group_element": {}, + "sage.geometry.polyhedron.library": { + "failed": true + }, + "sage.geometry.polyhedron.misc": {}, + "sage.geometry.polyhedron.modules.all": {}, + "sage.geometry.polyhedron.modules.formal_polyhedra_module": {}, + "sage.geometry.polyhedron.palp_database": {}, + "sage.geometry.polyhedron.parent": {}, + "sage.geometry.polyhedron.plot": {}, + "sage.geometry.polyhedron.ppl_lattice_polygon": {}, + "sage.geometry.polyhedron.ppl_lattice_polytope": {}, + "sage.geometry.polyhedron.representation": {}, + "sage.geometry.pseudolines": {}, + "sage.geometry.relative_interior": {}, + "sage.geometry.ribbon_graph": {}, + "sage.geometry.riemannian_manifolds.all": {}, + "sage.geometry.toric_lattice": {}, + "sage.geometry.toric_lattice_element": {}, + "sage.geometry.toric_plotter": {}, + "sage.geometry.triangulation.all": {}, + "sage.geometry.triangulation.base": {}, + "sage.geometry.triangulation.data.pxd": {}, + "sage.geometry.triangulation.element": {}, + "sage.geometry.triangulation.functions.pxd": {}, + "sage.geometry.triangulation.point_configuration": {}, + "sage.geometry.triangulation.triangulations.pxd": {}, + "sage.geometry.voronoi_diagram": {}, + "sage.graphs.all": {}, + "sage.graphs.asteroidal_triples": {}, + "sage.graphs.base.all": {}, + "sage.graphs.base.boost_graph": {}, + "sage.graphs.base.boost_graph.pxd": {}, + "sage.graphs.base.c_graph": {}, + "sage.graphs.base.c_graph.pxd": {}, + "sage.graphs.base.dense_graph": {}, + "sage.graphs.base.dense_graph.pxd": {}, + "sage.graphs.base.graph_backends": {}, + "sage.graphs.base.graph_backends.pxd": {}, + "sage.graphs.base.overview": {}, + "sage.graphs.base.sparse_graph": {}, + "sage.graphs.base.sparse_graph.pxd": {}, + "sage.graphs.base.static_dense_graph": {}, + "sage.graphs.base.static_dense_graph.pxd": {}, + "sage.graphs.base.static_sparse_backend": {}, + "sage.graphs.base.static_sparse_backend.pxd": {}, + "sage.graphs.base.static_sparse_graph": {}, + "sage.graphs.base.static_sparse_graph.pxd": {}, + "sage.graphs.bipartite_graph": {}, + "sage.graphs.bliss": {}, + "sage.graphs.centrality": {}, + "sage.graphs.chrompoly": {}, + "sage.graphs.cliquer": {}, + "sage.graphs.cliquer.pxd": {}, + "sage.graphs.comparability": {}, + "sage.graphs.connectivity": { + "failed": true + }, + "sage.graphs.connectivity.pxd": {}, + "sage.graphs.convexity_properties": {}, + "sage.graphs.convexity_properties.pxd": {}, + "sage.graphs.digraph": {}, + "sage.graphs.digraph_generators": {}, + "sage.graphs.distances_all_pairs": {}, + "sage.graphs.distances_all_pairs.pxd": {}, + "sage.graphs.domination": {}, + "sage.graphs.dot2tex_utils": {}, + "sage.graphs.edge_connectivity": {}, + "sage.graphs.generators.all": {}, + "sage.graphs.generators.basic": {}, + "sage.graphs.generators.chessboard": {}, + "sage.graphs.generators.classical_geometries": {}, + "sage.graphs.generators.degree_sequence": {}, + "sage.graphs.generators.distance_regular": {}, + "sage.graphs.generators.families": {}, + "sage.graphs.generators.intersection": {}, + "sage.graphs.generators.platonic_solids": {}, + "sage.graphs.generators.random": {}, + "sage.graphs.generators.smallgraphs": {}, + "sage.graphs.generators.world_map": {}, + "sage.graphs.generic_graph": { + "failed": true + }, + "sage.graphs.generic_graph_pyx": {}, + "sage.graphs.generic_graph_pyx.pxd": {}, + "sage.graphs.genus": {}, + "sage.graphs.graph": {}, + "sage.graphs.graph_coloring": { + "failed": true + }, + "sage.graphs.graph_database": {}, + "sage.graphs.graph_decompositions.all": {}, + "sage.graphs.graph_decompositions.bandwidth": {}, + "sage.graphs.graph_decompositions.clique_separators": {}, + "sage.graphs.graph_decompositions.cutwidth": {}, + "sage.graphs.graph_decompositions.fast_digraph": {}, + "sage.graphs.graph_decompositions.fast_digraph.pxd": {}, + "sage.graphs.graph_decompositions.graph_products": {}, + "sage.graphs.graph_decompositions.modular_decomposition": {}, + "sage.graphs.graph_decompositions.rankwidth": {}, + "sage.graphs.graph_decompositions.rankwidth.pxd": {}, + "sage.graphs.graph_decompositions.tdlib": {}, + "sage.graphs.graph_decompositions.tree_decomposition": {}, + "sage.graphs.graph_decompositions.tree_decomposition.pxd": {}, + "sage.graphs.graph_decompositions.vertex_separation": {}, + "sage.graphs.graph_decompositions.vertex_separation.pxd": {}, + "sage.graphs.graph_editor": {}, + "sage.graphs.graph_generators": {}, + "sage.graphs.graph_generators_pyx": {}, + "sage.graphs.graph_input": {}, + "sage.graphs.graph_latex": {}, + "sage.graphs.graph_list": {}, + "sage.graphs.graph_plot": {}, + "sage.graphs.graph_plot_js": {}, + "sage.graphs.hyperbolicity": {}, + "sage.graphs.hypergraph_generators": {}, + "sage.graphs.independent_sets": {}, + "sage.graphs.independent_sets.pxd": {}, + "sage.graphs.isgci": {}, + "sage.graphs.isoperimetric_inequalities": {}, + "sage.graphs.line_graph": {}, + "sage.graphs.lovasz_theta": {}, + "sage.graphs.matchpoly": {}, + "sage.graphs.orientations": {}, + "sage.graphs.partial_cube": {}, + "sage.graphs.path_enumeration": {}, + "sage.graphs.planarity": {}, + "sage.graphs.pq_trees": {}, + "sage.graphs.print_graphs": {}, + "sage.graphs.schnyder": {}, + "sage.graphs.spanning_tree": {}, + "sage.graphs.strongly_regular_db": {}, + "sage.graphs.traversals": {}, + "sage.graphs.traversals.pxd": {}, + "sage.graphs.trees": {}, + "sage.graphs.trees.pxd": {}, + "sage.graphs.tutte_polynomial": {}, + "sage.graphs.views": {}, + "sage.graphs.weakly_chordal": {}, + "sage.groups.abelian_gps.abelian_aut": {}, + "sage.groups.abelian_gps.abelian_group": {}, + "sage.groups.abelian_gps.abelian_group_element": {}, + "sage.groups.abelian_gps.abelian_group_gap": {}, + "sage.groups.abelian_gps.abelian_group_morphism": {}, + "sage.groups.abelian_gps.all": {}, + "sage.groups.abelian_gps.all__sagemath_gap": {}, + "sage.groups.abelian_gps.all__sagemath_modules": {}, + "sage.groups.abelian_gps.dual_abelian_group": {}, + "sage.groups.abelian_gps.dual_abelian_group_element": {}, + "sage.groups.abelian_gps.element_base": {}, + "sage.groups.abelian_gps.values": {}, + "sage.groups.additive_abelian.additive_abelian_group": {}, + "sage.groups.additive_abelian.additive_abelian_wrapper": {}, + "sage.groups.additive_abelian.all": {}, + "sage.groups.additive_abelian.qmodnz": {}, + "sage.groups.additive_abelian.qmodnz_element": {}, + "sage.groups.affine_gps.affine_group": {}, + "sage.groups.affine_gps.all": {}, + "sage.groups.affine_gps.catalog": {}, + "sage.groups.affine_gps.euclidean_group": {}, + "sage.groups.affine_gps.group_element": {}, + "sage.groups.all": {}, + "sage.groups.all__sagemath_categories": {}, + "sage.groups.all__sagemath_combinat": {}, + "sage.groups.all__sagemath_gap": {}, + "sage.groups.all__sagemath_graphs": {}, + "sage.groups.all__sagemath_groups": {}, + "sage.groups.all__sagemath_modules": {}, + "sage.groups.all__sagemath_objects": {}, + "sage.groups.artin": {}, + "sage.groups.braid": { + "failed": true + }, + "sage.groups.cactus_group": {}, + "sage.groups.class_function": {}, + "sage.groups.conjugacy_classes": {}, + "sage.groups.cubic_braid": {}, + "sage.groups.finitely_presented": {}, + "sage.groups.finitely_presented_catalog": {}, + "sage.groups.finitely_presented_named": {}, + "sage.groups.fqf_orthogonal": {}, + "sage.groups.free_group": {}, + "sage.groups.galois_group": {}, + "sage.groups.generic": {}, + "sage.groups.group": {}, + "sage.groups.group.pxd": {}, + "sage.groups.group_exp": {}, + "sage.groups.group_semidirect_product": {}, + "sage.groups.groups_catalog": {}, + "sage.groups.indexed_free_group": {}, + "sage.groups.kernel_subgroup": {}, + "sage.groups.libgap_group": {}, + "sage.groups.libgap_mixin": {}, + "sage.groups.libgap_morphism": {}, + "sage.groups.libgap_wrapper": {}, + "sage.groups.libgap_wrapper.pxd": {}, + "sage.groups.lie_gps.all": {}, + "sage.groups.lie_gps.catalog": {}, + "sage.groups.lie_gps.nilpotent_lie_group": { + "failed": true + }, + "sage.groups.matrix_gps.all": {}, + "sage.groups.matrix_gps.all__sagemath_gap": {}, + "sage.groups.matrix_gps.all__sagemath_modules": {}, + "sage.groups.matrix_gps.binary_dihedral": {}, + "sage.groups.matrix_gps.catalog": {}, + "sage.groups.matrix_gps.coxeter_group": { + "failed": true + }, + "sage.groups.matrix_gps.finitely_generated": {}, + "sage.groups.matrix_gps.finitely_generated_gap": {}, + "sage.groups.matrix_gps.group_element": {}, + "sage.groups.matrix_gps.group_element.pxd": {}, + "sage.groups.matrix_gps.group_element_gap": {}, + "sage.groups.matrix_gps.group_element_gap.pxd": {}, + "sage.groups.matrix_gps.heisenberg": {}, + "sage.groups.matrix_gps.homset": {}, + "sage.groups.matrix_gps.isometries": {}, + "sage.groups.matrix_gps.linear": {}, + "sage.groups.matrix_gps.linear_gap": {}, + "sage.groups.matrix_gps.matrix_group": {}, + "sage.groups.matrix_gps.matrix_group_gap": {}, + "sage.groups.matrix_gps.morphism": {}, + "sage.groups.matrix_gps.named_group": {}, + "sage.groups.matrix_gps.named_group_gap": {}, + "sage.groups.matrix_gps.orthogonal": {}, + "sage.groups.matrix_gps.orthogonal_gap": {}, + "sage.groups.matrix_gps.pickling_overrides": {}, + "sage.groups.matrix_gps.symplectic": {}, + "sage.groups.matrix_gps.symplectic_gap": {}, + "sage.groups.matrix_gps.unitary": {}, + "sage.groups.matrix_gps.unitary_gap": {}, + "sage.groups.misc_gps.all": {}, + "sage.groups.misc_gps.argument_groups": { + "failed": true + }, + "sage.groups.misc_gps.imaginary_groups": { + "failed": true + }, + "sage.groups.misc_gps.misc_groups": {}, + "sage.groups.misc_gps.misc_groups_catalog": {}, + "sage.groups.old": {}, + "sage.groups.old.pxd": {}, + "sage.groups.pari_group": {}, + "sage.groups.perm_gps.all": {}, + "sage.groups.perm_gps.all__sagemath_categories": {}, + "sage.groups.perm_gps.all__sagemath_graphs": {}, + "sage.groups.perm_gps.all__sagemath_modules": {}, + "sage.groups.perm_gps.constructor": {}, + "sage.groups.perm_gps.cubegroup": {}, + "sage.groups.perm_gps.partn_ref.all": {}, + "sage.groups.perm_gps.partn_ref.all__sagemath_categories": {}, + "sage.groups.perm_gps.partn_ref.all__sagemath_gap": {}, + "sage.groups.perm_gps.partn_ref.all__sagemath_graphs": {}, + "sage.groups.perm_gps.partn_ref.all__sagemath_modules": {}, + "sage.groups.perm_gps.partn_ref.automorphism_group_canonical_label": {}, + "sage.groups.perm_gps.partn_ref.automorphism_group_canonical_label.pxd": {}, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": {}, + "sage.groups.perm_gps.partn_ref.canonical_augmentation.pxd": {}, + "sage.groups.perm_gps.partn_ref.data_structures": {}, + "sage.groups.perm_gps.partn_ref.data_structures.pxd": {}, + "sage.groups.perm_gps.partn_ref.double_coset": {}, + "sage.groups.perm_gps.partn_ref.double_coset.pxd": {}, + "sage.groups.perm_gps.partn_ref.refinement_binary": {}, + "sage.groups.perm_gps.partn_ref.refinement_binary.pxd": {}, + "sage.groups.perm_gps.partn_ref.refinement_graphs": {}, + "sage.groups.perm_gps.partn_ref.refinement_graphs.pxd": {}, + "sage.groups.perm_gps.partn_ref.refinement_lists": {}, + "sage.groups.perm_gps.partn_ref.refinement_lists.pxd": {}, + "sage.groups.perm_gps.partn_ref.refinement_matrices": {}, + "sage.groups.perm_gps.partn_ref.refinement_matrices.pxd": {}, + "sage.groups.perm_gps.partn_ref.refinement_python": {}, + "sage.groups.perm_gps.partn_ref.refinement_python.pxd": {}, + "sage.groups.perm_gps.partn_ref.refinement_sets": {}, + "sage.groups.perm_gps.partn_ref.refinement_sets.pxd": {}, + "sage.groups.perm_gps.partn_ref2.all": {}, + "sage.groups.perm_gps.partn_ref2.refinement_generic": {}, + "sage.groups.perm_gps.partn_ref2.refinement_generic.pxd": {}, + "sage.groups.perm_gps.permgroup": {}, + "sage.groups.perm_gps.permgroup_element": {}, + "sage.groups.perm_gps.permgroup_element.pxd": {}, + "sage.groups.perm_gps.permgroup_morphism": {}, + "sage.groups.perm_gps.permgroup_named": {}, + "sage.groups.perm_gps.permutation_groups_catalog": {}, + "sage.groups.perm_gps.symgp_conjugacy_class": {}, + "sage.groups.raag": {}, + "sage.groups.semimonomial_transformations.all": {}, + "sage.groups.semimonomial_transformations.semimonomial_transformation": {}, + "sage.groups.semimonomial_transformations.semimonomial_transformation.pxd": {}, + "sage.groups.semimonomial_transformations.semimonomial_transformation_group": {}, + "sage.homology.algebraic_topological_model": {}, + "sage.homology.all": {}, + "sage.homology.all__sagemath_modules": {}, + "sage.homology.cell_complex": {}, + "sage.homology.chain_complex": {}, + "sage.homology.chain_complex_homspace": {}, + "sage.homology.chain_complex_morphism": {}, + "sage.homology.chain_homotopy": {}, + "sage.homology.chains": {}, + "sage.homology.cubical_complex": {}, + "sage.homology.delta_complex": {}, + "sage.homology.examples": {}, + "sage.homology.free_resolution": {}, + "sage.homology.graded_resolution": {}, + "sage.homology.hochschild_complex": {}, + "sage.homology.homology_group": {}, + "sage.homology.homology_morphism": {}, + "sage.homology.homology_vector_space_with_basis": {}, + "sage.homology.koszul_complex": {}, + "sage.homology.matrix_utils": {}, + "sage.homology.simplicial_complex": {}, + "sage.homology.simplicial_complex_homset": {}, + "sage.homology.simplicial_complex_morphism": {}, + "sage.homology.simplicial_set": {}, + "sage.homology.simplicial_set_constructions": {}, + "sage.homology.simplicial_set_examples": {}, + "sage.homology.simplicial_set_morphism": {}, + "sage.homology.tests": {}, + "sage.interacts.algebra": {}, + "sage.interacts.all": {}, + "sage.interacts.calculus": {}, + "sage.interacts.fractals": {}, + "sage.interacts.geometry": {}, + "sage.interacts.library": { + "failed": true + }, + "sage.interacts.library_cython": {}, + "sage.interacts.statistics": {}, + "sage.interfaces.abc": {}, + "sage.interfaces.all": {}, + "sage.interfaces.all__sagemath_categories": {}, + "sage.interfaces.all__sagemath_gap": {}, + "sage.interfaces.all__sagemath_pari": {}, + "sage.interfaces.all__sagemath_polyhedra": {}, + "sage.interfaces.axiom": {}, + "sage.interfaces.chomp": {}, + "sage.interfaces.cleaner": {}, + "sage.interfaces.ecm": {}, + "sage.interfaces.expect": {}, + "sage.interfaces.four_ti_2": {}, + "sage.interfaces.frobby": {}, + "sage.interfaces.gap": { + "failed": true + }, + "sage.interfaces.gap3": {}, + "sage.interfaces.gap_workspace": {}, + "sage.interfaces.genus2reduction": {}, + "sage.interfaces.gfan": {}, + "sage.interfaces.gnuplot": {}, + "sage.interfaces.gp": { + "failed": true + }, + "sage.interfaces.interface": {}, + "sage.interfaces.jmoldata": {}, + "sage.interfaces.kash": {}, + "sage.interfaces.kenzo": { + "failed": true + }, + "sage.interfaces.latte": {}, + "sage.interfaces.lie": {}, + "sage.interfaces.lisp": {}, + "sage.interfaces.macaulay2": {}, + "sage.interfaces.matlab": {}, + "sage.interfaces.mupad": {}, + "sage.interfaces.mwrank": {}, + "sage.interfaces.octave": {}, + "sage.interfaces.phc": {}, + "sage.interfaces.polymake": { + "failed": true + }, + "sage.interfaces.povray": {}, + "sage.interfaces.process": {}, + "sage.interfaces.process.pxd": {}, + "sage.interfaces.psage": {}, + "sage.interfaces.qsieve": {}, + "sage.interfaces.quit": {}, + "sage.interfaces.r": {}, + "sage.interfaces.read_data": {}, + "sage.interfaces.rubik": {}, + "sage.interfaces.sage0": {}, + "sage.interfaces.sagespawn": {}, + "sage.interfaces.scilab": {}, + "sage.interfaces.singular": { + "failed": true + }, + "sage.interfaces.tab_completion": {}, + "sage.interfaces.tachyon": { + "failed": true + }, + "sage.interfaces.tests": {}, + "sage.knots.all": {}, + "sage.knots.gauss_code": {}, + "sage.knots.knot": { + "failed": true + }, + "sage.knots.knot_table": {}, + "sage.knots.knotinfo": { + "failed": true + }, + "sage.knots.link": { + "failed": true + }, + "sage.lfunctions.all": {}, + "sage.libs.all": {}, + "sage.libs.all__sagemath_combinat": {}, + "sage.libs.all__sagemath_flint": {}, + "sage.libs.all__sagemath_gap": {}, + "sage.libs.all__sagemath_glpk": {}, + "sage.libs.all__sagemath_homfly": {}, + "sage.libs.all__sagemath_modules": {}, + "sage.libs.all__sagemath_ntl": {}, + "sage.libs.all__sagemath_objects": {}, + "sage.libs.all__sagemath_pari": {}, + "sage.libs.arb": {}, + "sage.libs.arb.acb.pxd": {}, + "sage.libs.arb.acb_calc.pxd": {}, + "sage.libs.arb.acb_elliptic.pxd": {}, + "sage.libs.arb.acb_hypgeom.pxd": {}, + "sage.libs.arb.acb_mat.pxd": {}, + "sage.libs.arb.acb_modular.pxd": {}, + "sage.libs.arb.acb_poly.pxd": {}, + "sage.libs.arb.arb.pxd": {}, + "sage.libs.arb.arb_fmpz_poly.pxd": {}, + "sage.libs.arb.arb_hypgeom.pxd": {}, + "sage.libs.arb.arb_version": {}, + "sage.libs.arb.arf.pxd": {}, + "sage.libs.arb.arith": {}, + "sage.libs.arb.bernoulli.pxd": {}, + "sage.libs.arb.mag.pxd": {}, + "sage.libs.arb.types.pxd": {}, + "sage.libs.braiding": {}, + "sage.libs.cremona": {}, + "sage.libs.eclib": {}, + "sage.libs.eclib.__init__.pxd": {}, + "sage.libs.eclib.all": {}, + "sage.libs.eclib.constructor": {}, + "sage.libs.eclib.homspace": {}, + "sage.libs.eclib.homspace.pxd": {}, + "sage.libs.eclib.interface": {}, + "sage.libs.eclib.mat": {}, + "sage.libs.eclib.mat.pxd": {}, + "sage.libs.eclib.mwrank": {}, + "sage.libs.eclib.newforms": {}, + "sage.libs.eclib.newforms.pxd": {}, + "sage.libs.flint": {}, + "sage.libs.flint.arith": {}, + "sage.libs.flint.arith.pxd": {}, + "sage.libs.flint.flint": {}, + "sage.libs.flint.flint.pxd": {}, + "sage.libs.flint.fmpq.pxd": {}, + "sage.libs.flint.fmpq_mat.pxd": {}, + "sage.libs.flint.fmpq_poly.pxd": {}, + "sage.libs.flint.fmpz.pxd": {}, + "sage.libs.flint.fmpz_factor": {}, + "sage.libs.flint.fmpz_factor.pxd": {}, + "sage.libs.flint.fmpz_mat.pxd": {}, + "sage.libs.flint.fmpz_mod.pxd": {}, + "sage.libs.flint.fmpz_mod_poly.pxd": {}, + "sage.libs.flint.fmpz_poly": {}, + "sage.libs.flint.fmpz_poly.pxd": {}, + "sage.libs.flint.fmpz_poly_mat.pxd": {}, + "sage.libs.flint.fmpz_poly_q.pxd": {}, + "sage.libs.flint.fmpz_vec.pxd": {}, + "sage.libs.flint.fq.pxd": {}, + "sage.libs.flint.fq_nmod.pxd": {}, + "sage.libs.flint.nmod_poly.pxd": {}, + "sage.libs.flint.nmod_poly_linkage.pxi": {}, + "sage.libs.flint.nmod_vec.pxd": {}, + "sage.libs.flint.ntl_interface.pxd": {}, + "sage.libs.flint.padic.pxd": {}, + "sage.libs.flint.padic_poly.pxd": {}, + "sage.libs.flint.qadic.pxd": {}, + "sage.libs.flint.qsieve": {}, + "sage.libs.flint.qsieve.pxd": {}, + "sage.libs.flint.thread_pool.pxd": {}, + "sage.libs.flint.types.pxd": {}, + "sage.libs.flint.ulong_extras": {}, + "sage.libs.flint.ulong_extras.pxd": {}, + "sage.libs.gap": {}, + "sage.libs.gap.all": {}, + "sage.libs.gap.context_managers": {}, + "sage.libs.gap.element": {}, + "sage.libs.gap.element.pxd": {}, + "sage.libs.gap.gap_functions": {}, + "sage.libs.gap.gap_globals": {}, + "sage.libs.gap.gap_includes.pxd": {}, + "sage.libs.gap.libgap": { + "failed": true + }, + "sage.libs.gap.operations": {}, + "sage.libs.gap.saved_workspace": {}, + "sage.libs.gap.test": {}, + "sage.libs.gap.test_long": {}, + "sage.libs.gap.util": {}, + "sage.libs.gap.util.pxd": {}, + "sage.libs.glpk": {}, + "sage.libs.glpk.constants.pxd": {}, + "sage.libs.glpk.env.pxd": {}, + "sage.libs.glpk.error": {}, + "sage.libs.glpk.graph.pxd": {}, + "sage.libs.glpk.lp.pxd": {}, + "sage.libs.glpk.types.pxd": {}, + "sage.libs.gmp": {}, + "sage.libs.gmp.all.pxd": {}, + "sage.libs.gmp.binop.pxd": {}, + "sage.libs.gmp.misc.pxd": {}, + "sage.libs.gmp.mpf.pxd": {}, + "sage.libs.gmp.mpn.pxd": {}, + "sage.libs.gmp.mpq.pxd": {}, + "sage.libs.gmp.mpz.pxd": {}, + "sage.libs.gmp.pylong": {}, + "sage.libs.gmp.pylong.pxd": {}, + "sage.libs.gmp.random.pxd": {}, + "sage.libs.gmp.randomize.pxd": {}, + "sage.libs.gmp.types.pxd": {}, + "sage.libs.gmpxx.pxd": {}, + "sage.libs.gsl": {}, + "sage.libs.gsl.airy.pxd": {}, + "sage.libs.gsl.all.pxd": {}, + "sage.libs.gsl.array": {}, + "sage.libs.gsl.array.pxd": {}, + "sage.libs.gsl.bessel.pxd": {}, + "sage.libs.gsl.blas.pxd": {}, + "sage.libs.gsl.blas_types.pxd": {}, + "sage.libs.gsl.block.pxd": {}, + "sage.libs.gsl.chebyshev.pxd": {}, + "sage.libs.gsl.clausen.pxd": {}, + "sage.libs.gsl.combination.pxd": {}, + "sage.libs.gsl.complex.pxd": {}, + "sage.libs.gsl.coulomb.pxd": {}, + "sage.libs.gsl.coupling.pxd": {}, + "sage.libs.gsl.dawson.pxd": {}, + "sage.libs.gsl.debye.pxd": {}, + "sage.libs.gsl.dilog.pxd": {}, + "sage.libs.gsl.eigen.pxd": {}, + "sage.libs.gsl.elementary.pxd": {}, + "sage.libs.gsl.ellint.pxd": {}, + "sage.libs.gsl.elljac.pxd": {}, + "sage.libs.gsl.erf.pxd": {}, + "sage.libs.gsl.errno.pxd": {}, + "sage.libs.gsl.exp.pxd": {}, + "sage.libs.gsl.expint.pxd": {}, + "sage.libs.gsl.fermi_dirac.pxd": {}, + "sage.libs.gsl.fft.pxd": {}, + "sage.libs.gsl.fit.pxd": {}, + "sage.libs.gsl.gamma.pxd": {}, + "sage.libs.gsl.gegenbauer.pxd": {}, + "sage.libs.gsl.histogram.pxd": {}, + "sage.libs.gsl.hyperg.pxd": {}, + "sage.libs.gsl.integration.pxd": {}, + "sage.libs.gsl.interp.pxd": {}, + "sage.libs.gsl.laguerre.pxd": {}, + "sage.libs.gsl.lambert.pxd": {}, + "sage.libs.gsl.legendre.pxd": {}, + "sage.libs.gsl.linalg.pxd": {}, + "sage.libs.gsl.log.pxd": {}, + "sage.libs.gsl.math.pxd": {}, + "sage.libs.gsl.matrix.pxd": {}, + "sage.libs.gsl.matrix_complex.pxd": {}, + "sage.libs.gsl.min.pxd": {}, + "sage.libs.gsl.monte.pxd": {}, + "sage.libs.gsl.ntuple.pxd": {}, + "sage.libs.gsl.odeiv.pxd": {}, + "sage.libs.gsl.permutation.pxd": {}, + "sage.libs.gsl.poly.pxd": {}, + "sage.libs.gsl.pow_int.pxd": {}, + "sage.libs.gsl.psi.pxd": {}, + "sage.libs.gsl.qrng.pxd": {}, + "sage.libs.gsl.random.pxd": {}, + "sage.libs.gsl.rng.pxd": {}, + "sage.libs.gsl.roots.pxd": {}, + "sage.libs.gsl.sort.pxd": {}, + "sage.libs.gsl.statistics.pxd": {}, + "sage.libs.gsl.sum.pxd": {}, + "sage.libs.gsl.synchrotron.pxd": {}, + "sage.libs.gsl.transport.pxd": {}, + "sage.libs.gsl.trig.pxd": {}, + "sage.libs.gsl.types.pxd": {}, + "sage.libs.gsl.vector.pxd": {}, + "sage.libs.gsl.vector_complex.pxd": {}, + "sage.libs.gsl.wavelet.pxd": {}, + "sage.libs.gsl.zeta.pxd": {}, + "sage.libs.homfly": {}, + "sage.libs.iml.pxd": {}, + "sage.libs.lcalc": {}, + "sage.libs.lcalc.lcalc_Lfunction": {}, + "sage.libs.lcalc.lcalc_Lfunction.pxd": {}, + "sage.libs.libecm": {}, + "sage.libs.linbox": {}, + "sage.libs.linbox.conversion.pxd": {}, + "sage.libs.linbox.fflas.pxd": {}, + "sage.libs.linbox.givaro.pxd": {}, + "sage.libs.linbox.linbox.pxd": {}, + "sage.libs.linbox.linbox_flint_interface": {}, + "sage.libs.linbox.linbox_flint_interface.pxd": {}, + "sage.libs.linkages": {}, + "sage.libs.linkages.padics": {}, + "sage.libs.linkages.padics.API.pxi": {}, + "sage.libs.linkages.padics.Polynomial_ram.pxi": {}, + "sage.libs.linkages.padics.Polynomial_shared.pxi": {}, + "sage.libs.linkages.padics.fmpz_poly_unram.pxi": {}, + "sage.libs.linkages.padics.mpz.pxi": {}, + "sage.libs.linkages.padics.relaxed": {}, + "sage.libs.linkages.padics.relaxed.API.pxi": {}, + "sage.libs.linkages.padics.relaxed.flint.pxi": {}, + "sage.libs.linkages.padics.unram_shared.pxi": {}, + "sage.libs.lrcalc": {}, + "sage.libs.lrcalc.lrcalc": {}, + "sage.libs.m4ri.pxd": {}, + "sage.libs.m4rie.pxd": {}, + "sage.libs.mpc.__init__.pxd": {}, + "sage.libs.mpc.types.pxd": {}, + "sage.libs.mpfi.__init__.pxd": {}, + "sage.libs.mpfi.types.pxd": {}, + "sage.libs.mpfr.__init__.pxd": {}, + "sage.libs.mpfr.types.pxd": {}, + "sage.libs.mpmath.all": {}, + "sage.libs.mpmath.ext_impl": {}, + "sage.libs.mpmath.ext_impl.pxd": {}, + "sage.libs.mpmath.ext_libmp": {}, + "sage.libs.mpmath.ext_main": {}, + "sage.libs.mpmath.ext_main.pxd": {}, + "sage.libs.mpmath.hooks": {}, + "sage.libs.mpmath.sage_utils": {}, + "sage.libs.mpmath.sage_utils.pxd": {}, + "sage.libs.mpmath.utils": {}, + "sage.libs.mwrank": {}, + "sage.libs.ntl": {}, + "sage.libs.ntl.GF2.pxd": {}, + "sage.libs.ntl.GF2E.pxd": {}, + "sage.libs.ntl.GF2EX.pxd": {}, + "sage.libs.ntl.GF2X.pxd": {}, + "sage.libs.ntl.ZZ.pxd": {}, + "sage.libs.ntl.ZZX.pxd": {}, + "sage.libs.ntl.ZZ_p.pxd": {}, + "sage.libs.ntl.ZZ_pE.pxd": {}, + "sage.libs.ntl.ZZ_pEX.pxd": {}, + "sage.libs.ntl.ZZ_pX.pxd": {}, + "sage.libs.ntl.all": {}, + "sage.libs.ntl.conversion.pxd": {}, + "sage.libs.ntl.convert": {}, + "sage.libs.ntl.convert.pxd": {}, + "sage.libs.ntl.decl.pxi": {}, + "sage.libs.ntl.error": {}, + "sage.libs.ntl.lzz_p.pxd": {}, + "sage.libs.ntl.lzz_pX.pxd": {}, + "sage.libs.ntl.mat_GF2.pxd": {}, + "sage.libs.ntl.mat_GF2E.pxd": {}, + "sage.libs.ntl.mat_ZZ.pxd": {}, + "sage.libs.ntl.misc.pxi": {}, + "sage.libs.ntl.ntl_GF2": {}, + "sage.libs.ntl.ntl_GF2.pxd": {}, + "sage.libs.ntl.ntl_GF2E": {}, + "sage.libs.ntl.ntl_GF2E.pxd": {}, + "sage.libs.ntl.ntl_GF2EContext": {}, + "sage.libs.ntl.ntl_GF2EContext.pxd": {}, + "sage.libs.ntl.ntl_GF2EX": {}, + "sage.libs.ntl.ntl_GF2EX.pxd": {}, + "sage.libs.ntl.ntl_GF2X": {}, + "sage.libs.ntl.ntl_GF2X.pxd": {}, + "sage.libs.ntl.ntl_GF2X_linkage.pxi": {}, + "sage.libs.ntl.ntl_ZZ": {}, + "sage.libs.ntl.ntl_ZZ.pxd": {}, + "sage.libs.ntl.ntl_ZZX": {}, + "sage.libs.ntl.ntl_ZZX.pxd": {}, + "sage.libs.ntl.ntl_ZZ_p": {}, + "sage.libs.ntl.ntl_ZZ_p.pxd": {}, + "sage.libs.ntl.ntl_ZZ_pContext": {}, + "sage.libs.ntl.ntl_ZZ_pContext.pxd": {}, + "sage.libs.ntl.ntl_ZZ_pE": {}, + "sage.libs.ntl.ntl_ZZ_pE.pxd": {}, + "sage.libs.ntl.ntl_ZZ_pEContext": {}, + "sage.libs.ntl.ntl_ZZ_pEContext.pxd": {}, + "sage.libs.ntl.ntl_ZZ_pEX": {}, + "sage.libs.ntl.ntl_ZZ_pEX.pxd": {}, + "sage.libs.ntl.ntl_ZZ_pEX_linkage.pxi": { + "failed": true + }, + "sage.libs.ntl.ntl_ZZ_pX": {}, + "sage.libs.ntl.ntl_ZZ_pX.pxd": {}, + "sage.libs.ntl.ntl_lzz_p": {}, + "sage.libs.ntl.ntl_lzz_p.pxd": {}, + "sage.libs.ntl.ntl_lzz_pContext": {}, + "sage.libs.ntl.ntl_lzz_pContext.pxd": {}, + "sage.libs.ntl.ntl_lzz_pX": {}, + "sage.libs.ntl.ntl_lzz_pX.pxd": {}, + "sage.libs.ntl.ntl_mat_GF2": {}, + "sage.libs.ntl.ntl_mat_GF2.pxd": {}, + "sage.libs.ntl.ntl_mat_GF2E": {}, + "sage.libs.ntl.ntl_mat_GF2E.pxd": {}, + "sage.libs.ntl.ntl_mat_ZZ": {}, + "sage.libs.ntl.ntl_mat_ZZ.pxd": {}, + "sage.libs.ntl.ntl_tools.pxd": {}, + "sage.libs.ntl.types.pxd": {}, + "sage.libs.ntl.vec_GF2.pxd": {}, + "sage.libs.ntl.vec_GF2E.pxd": {}, + "sage.libs.pari": {}, + "sage.libs.pari.all": {}, + "sage.libs.pari.convert_flint": {}, + "sage.libs.pari.convert_flint.pxd": {}, + "sage.libs.pari.convert_gmp": {}, + "sage.libs.pari.convert_gmp.pxd": {}, + "sage.libs.pari.convert_sage": {}, + "sage.libs.pari.convert_sage.pxd": {}, + "sage.libs.pari.convert_sage_complex_double": {}, + "sage.libs.pari.convert_sage_complex_double.pxd": {}, + "sage.libs.pari.convert_sage_matrix": {}, + "sage.libs.pari.convert_sage_real_double": {}, + "sage.libs.pari.convert_sage_real_double.pxd": {}, + "sage.libs.pari.convert_sage_real_mpfr": {}, + "sage.libs.pari.convert_sage_real_mpfr.pxd": {}, + "sage.libs.pari.misc": {}, + "sage.libs.pari.misc.pxd": {}, + "sage.libs.pari.tests": { + "failed": true + }, + "sage.libs.polybori.__init__.pxd": {}, + "sage.libs.polybori.decl.pxd": {}, + "sage.libs.singular": {}, + "sage.libs.singular.decl.pxd": {}, + "sage.libs.singular.function": {}, + "sage.libs.singular.function.pxd": {}, + "sage.libs.singular.function_factory": {}, + "sage.libs.singular.groebner_strategy": {}, + "sage.libs.singular.groebner_strategy.pxd": {}, + "sage.libs.singular.option": {}, + "sage.libs.singular.polynomial": {}, + "sage.libs.singular.polynomial.pxd": {}, + "sage.libs.singular.ring": {}, + "sage.libs.singular.ring.pxd": {}, + "sage.libs.singular.singular": {}, + "sage.libs.singular.singular.pxd": {}, + "sage.libs.singular.standard_options": {}, + "sage.libs.sirocco": {}, + "sage.libs.symmetrica": {}, + "sage.libs.symmetrica.all": {}, + "sage.libs.symmetrica.kostka.pxi": {}, + "sage.libs.symmetrica.part.pxi": {}, + "sage.libs.symmetrica.plet.pxi": {}, + "sage.libs.symmetrica.sab.pxi": {}, + "sage.libs.symmetrica.sb.pxi": {}, + "sage.libs.symmetrica.sc.pxi": {}, + "sage.libs.symmetrica.schur.pxi": {}, + "sage.libs.symmetrica.symmetrica": {}, + "sage.libs.symmetrica.symmetrica.pxi": { + "failed": true + }, + "sage.logic.all": {}, + "sage.logic.booleval": {}, + "sage.logic.boolformula": {}, + "sage.logic.logic": {}, + "sage.logic.logicparser": {}, + "sage.logic.logictable": {}, + "sage.logic.propcalc": {}, + "sage.manifolds.all": {}, + "sage.manifolds.differentiable.all": {}, + "sage.manifolds.differentiable.examples.all": {}, + "sage.manifolds.subsets.all": {}, + "sage.matrix.action": {}, + "sage.matrix.action.pxd": {}, + "sage.matrix.all": {}, + "sage.matrix.all__sagemath_flint": {}, + "sage.matrix.all__sagemath_gap": {}, + "sage.matrix.args": { + "failed": true + }, + "sage.matrix.args.pxd": {}, + "sage.matrix.benchmark": {}, + "sage.matrix.berlekamp_massey": {}, + "sage.matrix.change_ring": {}, + "sage.matrix.compute_J_ideal": {}, + "sage.matrix.constructor": {}, + "sage.matrix.docs": {}, + "sage.matrix.echelon_matrix": {}, + "sage.matrix.matrix.pxd": {}, + "sage.matrix.matrix0": {}, + "sage.matrix.matrix0.pxd": {}, + "sage.matrix.matrix1": {}, + "sage.matrix.matrix1.pxd": {}, + "sage.matrix.matrix2": {}, + "sage.matrix.matrix2.pxd": {}, + "sage.matrix.matrix_cdv": {}, + "sage.matrix.matrix_cdv.pxd": {}, + "sage.matrix.matrix_complex_ball_dense": {}, + "sage.matrix.matrix_complex_ball_dense.pxd": {}, + "sage.matrix.matrix_complex_double_dense": {}, + "sage.matrix.matrix_complex_double_dense.pxd": {}, + "sage.matrix.matrix_cyclo_dense": {}, + "sage.matrix.matrix_cyclo_dense.pxd": {}, + "sage.matrix.matrix_dense": {}, + "sage.matrix.matrix_dense.pxd": {}, + "sage.matrix.matrix_domain_dense.pxd": {}, + "sage.matrix.matrix_domain_sparse.pxd": {}, + "sage.matrix.matrix_double_dense": {}, + "sage.matrix.matrix_double_dense.pxd": {}, + "sage.matrix.matrix_double_sparse": {}, + "sage.matrix.matrix_double_sparse.pxd": {}, + "sage.matrix.matrix_gap": {}, + "sage.matrix.matrix_gap.pxd": {}, + "sage.matrix.matrix_generic_dense": {}, + "sage.matrix.matrix_generic_dense.pxd": {}, + "sage.matrix.matrix_generic_sparse": {}, + "sage.matrix.matrix_generic_sparse.pxd": {}, + "sage.matrix.matrix_gf2e_dense": {}, + "sage.matrix.matrix_gf2e_dense.pxd": {}, + "sage.matrix.matrix_integer_dense": { + "failed": true + }, + "sage.matrix.matrix_integer_dense.pxd": {}, + "sage.matrix.matrix_integer_dense_hnf": {}, + "sage.matrix.matrix_integer_dense_saturation": {}, + "sage.matrix.matrix_integer_sparse": {}, + "sage.matrix.matrix_integer_sparse.pxd": {}, + "sage.matrix.matrix_misc": {}, + "sage.matrix.matrix_mod2_dense": {}, + "sage.matrix.matrix_mod2_dense.pxd": {}, + "sage.matrix.matrix_modn_dense_double": {}, + "sage.matrix.matrix_modn_dense_double.pxd": {}, + "sage.matrix.matrix_modn_dense_float": {}, + "sage.matrix.matrix_modn_dense_float.pxd": {}, + "sage.matrix.matrix_modn_dense_template.pxi": {}, + "sage.matrix.matrix_modn_dense_template_header.pxi": {}, + "sage.matrix.matrix_modn_sparse": {}, + "sage.matrix.matrix_modn_sparse.pxd": {}, + "sage.matrix.matrix_mpolynomial_dense": {}, + "sage.matrix.matrix_mpolynomial_dense.pxd": {}, + "sage.matrix.matrix_numpy_dense": {}, + "sage.matrix.matrix_numpy_dense.pxd": {}, + "sage.matrix.matrix_numpy_integer_dense": {}, + "sage.matrix.matrix_numpy_integer_dense.pxd": {}, + "sage.matrix.matrix_polynomial_dense": {}, + "sage.matrix.matrix_polynomial_dense.pxd": {}, + "sage.matrix.matrix_rational_dense": {}, + "sage.matrix.matrix_rational_dense.pxd": {}, + "sage.matrix.matrix_rational_sparse": {}, + "sage.matrix.matrix_rational_sparse.pxd": {}, + "sage.matrix.matrix_real_double_dense": {}, + "sage.matrix.matrix_real_double_dense.pxd": {}, + "sage.matrix.matrix_space": {}, + "sage.matrix.matrix_sparse": {}, + "sage.matrix.matrix_sparse.pxd": {}, + "sage.matrix.matrix_window": {}, + "sage.matrix.matrix_window.pxd": {}, + "sage.matrix.misc": {}, + "sage.matrix.misc_flint": {}, + "sage.matrix.misc_mpfr": {}, + "sage.matrix.operation_table": {}, + "sage.matrix.special": {}, + "sage.matrix.strassen": {}, + "sage.matrix.symplectic_basis": {}, + "sage.matrix.template.pxd": {}, + "sage.matrix.tests": {}, + "sage.matroids.advanced": {}, + "sage.matroids.all": {}, + "sage.matroids.basis_exchange_matroid": {}, + "sage.matroids.basis_exchange_matroid.pxd": {}, + "sage.matroids.basis_matroid": {}, + "sage.matroids.basis_matroid.pxd": {}, + "sage.matroids.catalog": {}, + "sage.matroids.circuit_closures_matroid": {}, + "sage.matroids.circuit_closures_matroid.pxd": {}, + "sage.matroids.constructor": {}, + "sage.matroids.dual_matroid": {}, + "sage.matroids.extension": {}, + "sage.matroids.extension.pxd": {}, + "sage.matroids.graphic_matroid": {}, + "sage.matroids.lean_matrix": {}, + "sage.matroids.lean_matrix.pxd": {}, + "sage.matroids.linear_matroid": {}, + "sage.matroids.linear_matroid.pxd": {}, + "sage.matroids.matroid": {}, + "sage.matroids.matroid.pxd": {}, + "sage.matroids.matroids_catalog": {}, + "sage.matroids.matroids_plot_helpers": {}, + "sage.matroids.minor_matroid": {}, + "sage.matroids.named_matroids": {}, + "sage.matroids.rank_matroid": {}, + "sage.matroids.set_system": {}, + "sage.matroids.set_system.pxd": {}, + "sage.matroids.union_matroid": {}, + "sage.matroids.union_matroid.pxd": {}, + "sage.matroids.unpickling": {}, + "sage.matroids.utilities": {}, + "sage.media": {}, + "sage.media.all": {}, + "sage.media.channels": {}, + "sage.media.wav": {}, + "sage.misc.abstract_method": {}, + "sage.misc.all": {}, + "sage.misc.all__sagemath_categories": {}, + "sage.misc.all__sagemath_environment": {}, + "sage.misc.all__sagemath_modules": {}, + "sage.misc.all__sagemath_objects": {}, + "sage.misc.all__sagemath_repl": {}, + "sage.misc.allocator": {}, + "sage.misc.allocator.pxd": {}, + "sage.misc.banner": {}, + "sage.misc.benchmark": {}, + "sage.misc.binary_tree": {}, + "sage.misc.binary_tree.pxd": {}, + "sage.misc.bindable_class": {}, + "sage.misc.c3": {}, + "sage.misc.c3_controlled": {}, + "sage.misc.c3_controlled.pxd": {}, + "sage.misc.cachefunc": {}, + "sage.misc.cachefunc.pxd": {}, + "sage.misc.call": {}, + "sage.misc.callable_dict": {}, + "sage.misc.citation": {}, + "sage.misc.classcall_metaclass": {}, + "sage.misc.classcall_metaclass.pxd": {}, + "sage.misc.classgraph": {}, + "sage.misc.compat": {}, + "sage.misc.constant_function": {}, + "sage.misc.converting_dict": {}, + "sage.misc.copying": {}, + "sage.misc.cython": {}, + "sage.misc.decorators": {}, + "sage.misc.defaults": {}, + "sage.misc.derivative": {}, + "sage.misc.dev_tools": { + "failed": true + }, + "sage.misc.dist": {}, + "sage.misc.edit_module": {}, + "sage.misc.element_with_label": {}, + "sage.misc.explain_pickle": {}, + "sage.misc.fast_methods": {}, + "sage.misc.fast_methods.pxd": {}, + "sage.misc.flatten": {}, + "sage.misc.fpickle": {}, + "sage.misc.func_persist": {}, + "sage.misc.function_mangling": {}, + "sage.misc.function_mangling.pxd": {}, + "sage.misc.functional": {}, + "sage.misc.globals": {}, + "sage.misc.gperftools": {}, + "sage.misc.html": {}, + "sage.misc.inherit_comparison": {}, + "sage.misc.inherit_comparison.pxd": {}, + "sage.misc.inline_fortran": {}, + "sage.misc.instancedoc": {}, + "sage.misc.latex": {}, + "sage.misc.latex_macros": {}, + "sage.misc.latex_standalone": {}, + "sage.misc.lazy_attribute": {}, + "sage.misc.lazy_format": {}, + "sage.misc.lazy_import": {}, + "sage.misc.lazy_import_cache": {}, + "sage.misc.lazy_list": {}, + "sage.misc.lazy_list.pxd": {}, + "sage.misc.lazy_string": {}, + "sage.misc.lazy_string.pxd": {}, + "sage.misc.map_threaded": {}, + "sage.misc.mathml": {}, + "sage.misc.messaging": {}, + "sage.misc.method_decorator": {}, + "sage.misc.misc": {}, + "sage.misc.misc_c": {}, + "sage.misc.misc_c.pxd": {}, + "sage.misc.mrange": {}, + "sage.misc.multireplace": {}, + "sage.misc.namespace_package": {}, + "sage.misc.nested_class": {}, + "sage.misc.nested_class.pxd": {}, + "sage.misc.object_multiplexer": {}, + "sage.misc.package": {}, + "sage.misc.package_dir": {}, + "sage.misc.pager": {}, + "sage.misc.parser": {}, + "sage.misc.persist": {}, + "sage.misc.pickle_old": {}, + "sage.misc.prandom": {}, + "sage.misc.profiler": {}, + "sage.misc.proof": {}, + "sage.misc.python": {}, + "sage.misc.random_testing": {}, + "sage.misc.randstate": {}, + "sage.misc.randstate.pxd": {}, + "sage.misc.remote_file": {}, + "sage.misc.replace_dot_all": { + "failed": true + }, + "sage.misc.repr": {}, + "sage.misc.reset": {}, + "sage.misc.rest_index_of_methods": {}, + "sage.misc.sage_eval": {}, + "sage.misc.sage_input": {}, + "sage.misc.sage_ostools": {}, + "sage.misc.sage_timeit": {}, + "sage.misc.sage_timeit_class": {}, + "sage.misc.sage_unittest": {}, + "sage.misc.sagedoc": { + "failed": true + }, + "sage.misc.sagedoc_conf": {}, + "sage.misc.sageinspect": { + "failed": true + }, + "sage.misc.search": {}, + "sage.misc.search.pxd": {}, + "sage.misc.session": {}, + "sage.misc.sh": {}, + "sage.misc.sphinxify": {}, + "sage.misc.stopgap": {}, + "sage.misc.superseded": {}, + "sage.misc.table": {}, + "sage.misc.temporary_file": {}, + "sage.misc.test_class_pickling": {}, + "sage.misc.test_nested_class": {}, + "sage.misc.timing": {}, + "sage.misc.trace": {}, + "sage.misc.unknown": {}, + "sage.misc.verbose": {}, + "sage.misc.viewer": {}, + "sage.misc.weak_dict": {}, + "sage.misc.weak_dict.pxd": {}, + "sage.modular.abvar.abvar": { + "failed": true + }, + "sage.modular.abvar.abvar_ambient_jacobian": {}, + "sage.modular.abvar.abvar_newform": {}, + "sage.modular.abvar.all": {}, + "sage.modular.abvar.constructor": {}, + "sage.modular.abvar.cuspidal_subgroup": {}, + "sage.modular.abvar.finite_subgroup": {}, + "sage.modular.abvar.homology": {}, + "sage.modular.abvar.homspace": {}, + "sage.modular.abvar.lseries": {}, + "sage.modular.abvar.morphism": {}, + "sage.modular.abvar.torsion_point": {}, + "sage.modular.abvar.torsion_subgroup": {}, + "sage.modular.all": {}, + "sage.modular.arithgroup.all": {}, + "sage.modular.arithgroup.arithgroup_element": { + "failed": true + }, + "sage.modular.arithgroup.arithgroup_generic": { + "failed": true + }, + "sage.modular.arithgroup.arithgroup_perm": {}, + "sage.modular.arithgroup.congroup": { + "failed": true + }, + "sage.modular.arithgroup.congroup_gamma": {}, + "sage.modular.arithgroup.congroup_gamma0": { + "failed": true + }, + "sage.modular.arithgroup.congroup_gamma1": { + "failed": true + }, + "sage.modular.arithgroup.congroup_gammaH": { + "failed": true + }, + "sage.modular.arithgroup.congroup_generic": {}, + "sage.modular.arithgroup.congroup_sl2z": {}, + "sage.modular.arithgroup.farey_symbol": {}, + "sage.modular.arithgroup.tests": {}, + "sage.modular.btquotients.all": {}, + "sage.modular.btquotients.btquotient": {}, + "sage.modular.btquotients.pautomorphicform": {}, + "sage.modular.buzzard": {}, + "sage.modular.congroup": {}, + "sage.modular.congroup_element": {}, + "sage.modular.cusps": {}, + "sage.modular.cusps_nf": {}, + "sage.modular.dims": {}, + "sage.modular.dirichlet": { + "failed": true + }, + "sage.modular.etaproducts": {}, + "sage.modular.hecke.algebra": {}, + "sage.modular.hecke.all": {}, + "sage.modular.hecke.ambient_module": {}, + "sage.modular.hecke.degenmap": {}, + "sage.modular.hecke.element": {}, + "sage.modular.hecke.hecke_operator": {}, + "sage.modular.hecke.homspace": {}, + "sage.modular.hecke.module": {}, + "sage.modular.hecke.morphism": {}, + "sage.modular.hecke.submodule": { + "failed": true + }, + "sage.modular.hypergeometric_misc": { + "failed": true + }, + "sage.modular.hypergeometric_misc.pxd": {}, + "sage.modular.hypergeometric_motive": { + "failed": true + }, + "sage.modular.local_comp.all": {}, + "sage.modular.local_comp.liftings": {}, + "sage.modular.local_comp.local_comp": {}, + "sage.modular.local_comp.smoothchar": {}, + "sage.modular.local_comp.type_space": {}, + "sage.modular.modform.all": {}, + "sage.modular.modform.ambient": {}, + "sage.modular.modform.ambient_R": {}, + "sage.modular.modform.ambient_eps": {}, + "sage.modular.modform.ambient_g0": {}, + "sage.modular.modform.ambient_g1": {}, + "sage.modular.modform.constructor": {}, + "sage.modular.modform.cuspidal_submodule": {}, + "sage.modular.modform.defaults": {}, + "sage.modular.modform.eis_series": { + "failed": true + }, + "sage.modular.modform.eis_series_cython": {}, + "sage.modular.modform.eisenstein_submodule": {}, + "sage.modular.modform.element": { + "failed": true + }, + "sage.modular.modform.find_generators": {}, + "sage.modular.modform.half_integral": {}, + "sage.modular.modform.hecke_operator_on_qexp": {}, + "sage.modular.modform.j_invariant": {}, + "sage.modular.modform.l_series_gross_zagier": { + "failed": true + }, + "sage.modular.modform.l_series_gross_zagier_coeffs": {}, + "sage.modular.modform.notes": {}, + "sage.modular.modform.numerical": {}, + "sage.modular.modform.periods": {}, + "sage.modular.modform.ring": {}, + "sage.modular.modform.space": {}, + "sage.modular.modform.submodule": {}, + "sage.modular.modform.tests": {}, + "sage.modular.modform.theta": {}, + "sage.modular.modform.vm_basis": {}, + "sage.modular.modform.weight1": {}, + "sage.modular.modform_hecketriangle.abstract_ring": { + "failed": true + }, + "sage.modular.modform_hecketriangle.abstract_space": { + "failed": true + }, + "sage.modular.modform_hecketriangle.all": {}, + "sage.modular.modform_hecketriangle.analytic_type": {}, + "sage.modular.modform_hecketriangle.constructor": {}, + "sage.modular.modform_hecketriangle.element": { + "failed": true + }, + "sage.modular.modform_hecketriangle.functors": {}, + "sage.modular.modform_hecketriangle.graded_ring": {}, + "sage.modular.modform_hecketriangle.graded_ring_element": { + "failed": true + }, + "sage.modular.modform_hecketriangle.hecke_triangle_group_element": { + "failed": true + }, + "sage.modular.modform_hecketriangle.hecke_triangle_groups": { + "failed": true + }, + "sage.modular.modform_hecketriangle.readme": { + "failed": true + }, + "sage.modular.modform_hecketriangle.series_constructor": {}, + "sage.modular.modform_hecketriangle.space": {}, + "sage.modular.modform_hecketriangle.subspace": {}, + "sage.modular.modsym.all": {}, + "sage.modular.modsym.ambient": {}, + "sage.modular.modsym.apply": {}, + "sage.modular.modsym.apply.pxd": {}, + "sage.modular.modsym.boundary": {}, + "sage.modular.modsym.element": {}, + "sage.modular.modsym.g1list": {}, + "sage.modular.modsym.ghlist": {}, + "sage.modular.modsym.hecke_operator": {}, + "sage.modular.modsym.heilbronn": {}, + "sage.modular.modsym.manin_symbol": {}, + "sage.modular.modsym.manin_symbol.pxd": {}, + "sage.modular.modsym.manin_symbol_list": {}, + "sage.modular.modsym.modsym": {}, + "sage.modular.modsym.modular_symbols": {}, + "sage.modular.modsym.p1list": {}, + "sage.modular.modsym.p1list.pxd": {}, + "sage.modular.modsym.p1list_nf": {}, + "sage.modular.modsym.relation_matrix": {}, + "sage.modular.modsym.relation_matrix_pyx": {}, + "sage.modular.modsym.space": {}, + "sage.modular.modsym.subspace": {}, + "sage.modular.modsym.tests": {}, + "sage.modular.multiple_zeta": {}, + "sage.modular.multiple_zeta_F_algebra": {}, + "sage.modular.overconvergent.all": {}, + "sage.modular.overconvergent.genus0": {}, + "sage.modular.overconvergent.hecke_series": {}, + "sage.modular.overconvergent.weightspace": {}, + "sage.modular.pollack_stevens.all": {}, + "sage.modular.pollack_stevens.dist": {}, + "sage.modular.pollack_stevens.dist.pxd": {}, + "sage.modular.pollack_stevens.distributions": {}, + "sage.modular.pollack_stevens.fund_domain": {}, + "sage.modular.pollack_stevens.manin_map": {}, + "sage.modular.pollack_stevens.modsym": {}, + "sage.modular.pollack_stevens.padic_lseries": {}, + "sage.modular.pollack_stevens.sigma0": {}, + "sage.modular.pollack_stevens.space": {}, + "sage.modular.quasimodform.all": {}, + "sage.modular.quasimodform.element": {}, + "sage.modular.quasimodform.ring": {}, + "sage.modular.quatalg.all": {}, + "sage.modular.quatalg.brandt": {}, + "sage.modular.ssmod.all": {}, + "sage.modular.ssmod.ssmod": {}, + "sage.modules.all": {}, + "sage.modules.all__sagemath_objects": {}, + "sage.modules.complex_double_vector": {}, + "sage.modules.diamond_cutting": {}, + "sage.modules.fg_pid.all": {}, + "sage.modules.fg_pid.fgp_element": {}, + "sage.modules.fg_pid.fgp_module": {}, + "sage.modules.fg_pid.fgp_morphism": {}, + "sage.modules.filtered_vector_space": {}, + "sage.modules.finite_submodule_iter": {}, + "sage.modules.finite_submodule_iter.pxd": {}, + "sage.modules.fp_graded.all": {}, + "sage.modules.fp_graded.element": {}, + "sage.modules.fp_graded.free_element": {}, + "sage.modules.fp_graded.free_homspace": {}, + "sage.modules.fp_graded.free_module": {}, + "sage.modules.fp_graded.free_morphism": {}, + "sage.modules.fp_graded.homspace": {}, + "sage.modules.fp_graded.module": {}, + "sage.modules.fp_graded.morphism": {}, + "sage.modules.fp_graded.steenrod.all": {}, + "sage.modules.fp_graded.steenrod.homspace": {}, + "sage.modules.fp_graded.steenrod.module": {}, + "sage.modules.fp_graded.steenrod.morphism": {}, + "sage.modules.fp_graded.steenrod.profile": {}, + "sage.modules.free_module": {}, + "sage.modules.free_module_element": {}, + "sage.modules.free_module_element.pxd": {}, + "sage.modules.free_module_homspace": {}, + "sage.modules.free_module_integer": { + "failed": true + }, + "sage.modules.free_module_morphism": {}, + "sage.modules.free_quadratic_module": {}, + "sage.modules.free_quadratic_module_integer_symmetric": {}, + "sage.modules.matrix_morphism": {}, + "sage.modules.misc": {}, + "sage.modules.module": {}, + "sage.modules.module.pxd": {}, + "sage.modules.module_functors": {}, + "sage.modules.multi_filtered_vector_space": {}, + "sage.modules.quotient_module": {}, + "sage.modules.real_double_vector": {}, + "sage.modules.submodule": {}, + "sage.modules.tensor_operations": {}, + "sage.modules.torsion_quadratic_module": {}, + "sage.modules.tutorial_free_modules": {}, + "sage.modules.vector_complex_double_dense": {}, + "sage.modules.vector_complex_double_dense.pxd": {}, + "sage.modules.vector_double_dense": {}, + "sage.modules.vector_double_dense.pxd": {}, + "sage.modules.vector_integer_dense": {}, + "sage.modules.vector_integer_dense.pxd": {}, + "sage.modules.vector_integer_sparse": {}, + "sage.modules.vector_integer_sparse.pxd": {}, + "sage.modules.vector_mod2_dense": {}, + "sage.modules.vector_mod2_dense.pxd": {}, + "sage.modules.vector_modn_dense": {}, + "sage.modules.vector_modn_dense.pxd": {}, + "sage.modules.vector_modn_sparse": {}, + "sage.modules.vector_modn_sparse.pxd": {}, + "sage.modules.vector_numpy_dense": {}, + "sage.modules.vector_numpy_dense.pxd": {}, + "sage.modules.vector_numpy_integer_dense": {}, + "sage.modules.vector_numpy_integer_dense.pxd": {}, + "sage.modules.vector_rational_dense": {}, + "sage.modules.vector_rational_dense.pxd": {}, + "sage.modules.vector_rational_sparse": {}, + "sage.modules.vector_rational_sparse.pxd": {}, + "sage.modules.vector_real_double_dense": {}, + "sage.modules.vector_real_double_dense.pxd": {}, + "sage.modules.vector_space_homspace": {}, + "sage.modules.vector_space_morphism": {}, + "sage.modules.with_basis.all": {}, + "sage.modules.with_basis.cell_module": {}, + "sage.modules.with_basis.indexed_element": {}, + "sage.modules.with_basis.indexed_element.pxd": {}, + "sage.modules.with_basis.invariant": {}, + "sage.modules.with_basis.morphism": {}, + "sage.modules.with_basis.representation": { + "failed": true + }, + "sage.modules.with_basis.subquotient": {}, + "sage.monoids.all": {}, + "sage.monoids.automatic_semigroup": {}, + "sage.monoids.free_abelian_monoid": {}, + "sage.monoids.free_abelian_monoid_element": {}, + "sage.monoids.free_abelian_monoid_element.pxd": {}, + "sage.monoids.free_monoid": {}, + "sage.monoids.free_monoid_element": {}, + "sage.monoids.hecke_monoid": {}, + "sage.monoids.indexed_free_monoid": {}, + "sage.monoids.monoid": {}, + "sage.monoids.string_monoid": {}, + "sage.monoids.string_monoid_element": {}, + "sage.monoids.string_ops": {}, + "sage.monoids.trace_monoid": {}, + "sage.numerical.all": {}, + "sage.numerical.all__sagemath_categories": {}, + "sage.numerical.all__sagemath_glpk": {}, + "sage.numerical.all__sagemath_modules": {}, + "sage.numerical.backends.all": {}, + "sage.numerical.backends.all__sagemath_categories": {}, + "sage.numerical.backends.all__sagemath_glpk": {}, + "sage.numerical.backends.all__sagemath_polyhedra": {}, + "sage.numerical.backends.cvxopt_backend": {}, + "sage.numerical.backends.cvxopt_backend_test": {}, + "sage.numerical.backends.cvxopt_sdp_backend": {}, + "sage.numerical.backends.cvxpy_backend": {}, + "sage.numerical.backends.cvxpy_backend.pxd": {}, + "sage.numerical.backends.cvxpy_backend_test": {}, + "sage.numerical.backends.generic_backend": {}, + "sage.numerical.backends.generic_backend.pxd": {}, + "sage.numerical.backends.generic_backend_test": {}, + "sage.numerical.backends.generic_sdp_backend": {}, + "sage.numerical.backends.generic_sdp_backend.pxd": {}, + "sage.numerical.backends.glpk_backend": {}, + "sage.numerical.backends.glpk_backend.pxd": {}, + "sage.numerical.backends.glpk_backend_test": {}, + "sage.numerical.backends.glpk_exact_backend": {}, + "sage.numerical.backends.glpk_exact_backend.pxd": {}, + "sage.numerical.backends.glpk_exact_backend_test": {}, + "sage.numerical.backends.glpk_graph_backend": {}, + "sage.numerical.backends.glpk_graph_backend.pxd": {}, + "sage.numerical.backends.interactivelp_backend": { + "failed": true + }, + "sage.numerical.backends.interactivelp_backend.pxd": {}, + "sage.numerical.backends.interactivelp_backend_test": {}, + "sage.numerical.backends.logging_backend": {}, + "sage.numerical.backends.matrix_sdp_backend": {}, + "sage.numerical.backends.matrix_sdp_backend.pxd": {}, + "sage.numerical.backends.ppl_backend": {}, + "sage.numerical.backends.ppl_backend_test": {}, + "sage.numerical.backends.scip_backend": {}, + "sage.numerical.backends.scip_backend.pxd": {}, + "sage.numerical.backends.scip_backend_test": {}, + "sage.numerical.gauss_legendre": {}, + "sage.numerical.interactive_simplex_method": { + "failed": true + }, + "sage.numerical.knapsack": {}, + "sage.numerical.linear_functions": {}, + "sage.numerical.linear_functions.pxd": {}, + "sage.numerical.linear_tensor": {}, + "sage.numerical.linear_tensor_constraints": {}, + "sage.numerical.linear_tensor_element": {}, + "sage.numerical.linear_tensor_element.pxd": {}, + "sage.numerical.mip": {}, + "sage.numerical.mip.pxd": {}, + "sage.numerical.optimize": { + "failed": true + }, + "sage.numerical.sdp": {}, + "sage.numerical.sdp.pxd": {}, + "sage.parallel.all": {}, + "sage.parallel.decorate": {}, + "sage.parallel.map_reduce": {}, + "sage.parallel.multiprocessing_sage": {}, + "sage.parallel.ncpus": {}, + "sage.parallel.parallelism": {}, + "sage.parallel.reference": {}, + "sage.parallel.use_fork": {}, + "sage.plot.all": {}, + "sage.plot.plot3d.all": {}, + "sage.probability.all": {}, + "sage.probability.probability_distribution": {}, + "sage.probability.random_variable": {}, + "sage.quadratic_forms.all": {}, + "sage.quadratic_forms.all__sagemath_modules": {}, + "sage.quadratic_forms.all__sagemath_pari": {}, + "sage.quadratic_forms.binary_qf": {}, + "sage.quadratic_forms.constructions": {}, + "sage.quadratic_forms.count_local_2": {}, + "sage.quadratic_forms.extras": {}, + "sage.quadratic_forms.genera.all": {}, + "sage.quadratic_forms.genera.genus": { + "failed": true + }, + "sage.quadratic_forms.genera.normal_form": {}, + "sage.quadratic_forms.genera.spinor_genus": {}, + "sage.quadratic_forms.qfsolve": {}, + "sage.quadratic_forms.quadratic_form": {}, + "sage.quadratic_forms.quadratic_form__automorphisms": {}, + "sage.quadratic_forms.quadratic_form__count_local_2": {}, + "sage.quadratic_forms.quadratic_form__equivalence_testing": {}, + "sage.quadratic_forms.quadratic_form__evaluate": {}, + "sage.quadratic_forms.quadratic_form__genus": {}, + "sage.quadratic_forms.quadratic_form__local_density_congruence": {}, + "sage.quadratic_forms.quadratic_form__local_density_interfaces": {}, + "sage.quadratic_forms.quadratic_form__local_field_invariants": {}, + "sage.quadratic_forms.quadratic_form__local_normal_form": {}, + "sage.quadratic_forms.quadratic_form__local_representation_conditions": {}, + "sage.quadratic_forms.quadratic_form__mass": {}, + "sage.quadratic_forms.quadratic_form__mass__Conway_Sloane_masses": {}, + "sage.quadratic_forms.quadratic_form__mass__Siegel_densities": {}, + "sage.quadratic_forms.quadratic_form__neighbors": {}, + "sage.quadratic_forms.quadratic_form__reduction_theory": {}, + "sage.quadratic_forms.quadratic_form__siegel_product": {}, + "sage.quadratic_forms.quadratic_form__split_local_covering": {}, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": {}, + "sage.quadratic_forms.quadratic_form__theta": {}, + "sage.quadratic_forms.quadratic_form__variable_substitutions": {}, + "sage.quadratic_forms.random_quadraticform": {}, + "sage.quadratic_forms.special_values": {}, + "sage.quadratic_forms.ternary": {}, + "sage.quadratic_forms.ternary_qf": {}, + "sage.quivers.algebra": {}, + "sage.quivers.algebra_elements": {}, + "sage.quivers.algebra_elements.pxd": {}, + "sage.quivers.algebra_elements.pxi": {}, + "sage.quivers.all": {}, + "sage.quivers.homspace": {}, + "sage.quivers.morphism": {}, + "sage.quivers.path_semigroup": {}, + "sage.quivers.paths": {}, + "sage.quivers.paths.pxd": {}, + "sage.quivers.representation": {}, + "sage.repl": {}, + "sage.repl.all": {}, + "sage.repl.attach": {}, + "sage.repl.configuration": {}, + "sage.repl.display": {}, + "sage.repl.display.fancy_repr": {}, + "sage.repl.display.formatter": {}, + "sage.repl.display.jsmol_iframe": {}, + "sage.repl.display.pretty_print": {}, + "sage.repl.display.util": {}, + "sage.repl.image": {}, + "sage.repl.inputhook": {}, + "sage.repl.interface_magic": {}, + "sage.repl.interpreter": {}, + "sage.repl.ipython_extension": {}, + "sage.repl.ipython_kernel": {}, + "sage.repl.ipython_kernel.__main__": {}, + "sage.repl.ipython_kernel.all_jupyter": {}, + "sage.repl.ipython_kernel.install": {}, + "sage.repl.ipython_kernel.interact": { + "failed": true + }, + "sage.repl.ipython_kernel.kernel": {}, + "sage.repl.ipython_kernel.widgets": {}, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true + }, + "sage.repl.ipython_tests": { + "failed": true + }, + "sage.repl.load": {}, + "sage.repl.preparse": {}, + "sage.repl.prompts": {}, + "sage.repl.rich_output": {}, + "sage.repl.rich_output.backend_base": {}, + "sage.repl.rich_output.backend_doctest": {}, + "sage.repl.rich_output.backend_emacs": {}, + "sage.repl.rich_output.backend_ipython": {}, + "sage.repl.rich_output.buffer": {}, + "sage.repl.rich_output.display_manager": {}, + "sage.repl.rich_output.output_basic": {}, + "sage.repl.rich_output.output_browser": {}, + "sage.repl.rich_output.output_catalog": {}, + "sage.repl.rich_output.output_graphics": {}, + "sage.repl.rich_output.output_graphics3d": {}, + "sage.repl.rich_output.output_video": {}, + "sage.repl.rich_output.preferences": {}, + "sage.repl.rich_output.pretty_print": {}, + "sage.repl.rich_output.test_backend": {}, + "sage.repl.user_globals": {}, + "sage.rings.abc": {}, + "sage.rings.abc.pxd": {}, + "sage.rings.algebraic_closure_finite_field": {}, + "sage.rings.all": {}, + "sage.rings.all__sagemath_categories": {}, + "sage.rings.all__sagemath_combinat": {}, + "sage.rings.all__sagemath_flint": {}, + "sage.rings.all__sagemath_gap": {}, + "sage.rings.all__sagemath_modules": {}, + "sage.rings.all__sagemath_ntl": {}, + "sage.rings.all__sagemath_objects": {}, + "sage.rings.all__sagemath_pari": {}, + "sage.rings.asymptotic.all": {}, + "sage.rings.bernmm": {}, + "sage.rings.bernoulli_mod_p": {}, + "sage.rings.big_oh": {}, + "sage.rings.cc": {}, + "sage.rings.cfinite_sequence": {}, + "sage.rings.cif": {}, + "sage.rings.commutative_algebra": {}, + "sage.rings.complex_arb": { + "failed": true + }, + "sage.rings.complex_arb.pxd": {}, + "sage.rings.complex_conversion": {}, + "sage.rings.complex_conversion.pxd": {}, + "sage.rings.complex_double": {}, + "sage.rings.complex_double.pxd": {}, + "sage.rings.complex_field": {}, + "sage.rings.complex_interval": {}, + "sage.rings.complex_interval.pxd": {}, + "sage.rings.complex_interval_field": {}, + "sage.rings.complex_mpc": { + "failed": true + }, + "sage.rings.complex_mpc.pxd": {}, + "sage.rings.complex_mpfr": { + "failed": true + }, + "sage.rings.complex_mpfr.pxd": {}, + "sage.rings.complex_number": {}, + "sage.rings.continued_fraction": {}, + "sage.rings.continued_fraction_gosper": {}, + "sage.rings.convert.all": {}, + "sage.rings.convert.mpfi": {}, + "sage.rings.convert.mpfi.pxd": {}, + "sage.rings.derivation": {}, + "sage.rings.factorint": {}, + "sage.rings.factorint_flint": {}, + "sage.rings.factorint_pari": {}, + "sage.rings.fast_arith": {}, + "sage.rings.fast_arith.pxd": {}, + "sage.rings.finite_rings.all": {}, + "sage.rings.finite_rings.all__sagemath_categories": {}, + "sage.rings.finite_rings.all__sagemath_modules": {}, + "sage.rings.finite_rings.all__sagemath_ntl": {}, + "sage.rings.finite_rings.all__sagemath_pari": {}, + "sage.rings.finite_rings.conway_polynomials": {}, + "sage.rings.finite_rings.element_base": {}, + "sage.rings.finite_rings.element_base.pxd": {}, + "sage.rings.finite_rings.element_givaro": {}, + "sage.rings.finite_rings.element_givaro.pxd": {}, + "sage.rings.finite_rings.element_ntl_gf2e": { + "failed": true + }, + "sage.rings.finite_rings.element_ntl_gf2e.pxd": {}, + "sage.rings.finite_rings.element_pari_ffelt": {}, + "sage.rings.finite_rings.element_pari_ffelt.pxd": {}, + "sage.rings.finite_rings.finite_field_base": { + "failed": true + }, + "sage.rings.finite_rings.finite_field_base.pxd": {}, + "sage.rings.finite_rings.finite_field_constructor": { + "failed": true + }, + "sage.rings.finite_rings.finite_field_givaro": {}, + "sage.rings.finite_rings.finite_field_ntl_gf2e": {}, + "sage.rings.finite_rings.finite_field_pari_ffelt": {}, + "sage.rings.finite_rings.finite_field_prime_modn": {}, + "sage.rings.finite_rings.galois_group": {}, + "sage.rings.finite_rings.hom_finite_field": {}, + "sage.rings.finite_rings.hom_finite_field.pxd": {}, + "sage.rings.finite_rings.hom_finite_field_givaro": {}, + "sage.rings.finite_rings.hom_finite_field_givaro.pxd": {}, + "sage.rings.finite_rings.hom_prime_finite_field": {}, + "sage.rings.finite_rings.hom_prime_finite_field.pxd": {}, + "sage.rings.finite_rings.homset": {}, + "sage.rings.finite_rings.integer_mod": {}, + "sage.rings.finite_rings.integer_mod.pxd": {}, + "sage.rings.finite_rings.integer_mod_ring": {}, + "sage.rings.finite_rings.maps_finite_field": {}, + "sage.rings.finite_rings.residue_field": {}, + "sage.rings.finite_rings.residue_field.pxd": {}, + "sage.rings.finite_rings.residue_field_givaro": {}, + "sage.rings.finite_rings.residue_field_ntl_gf2e": {}, + "sage.rings.finite_rings.residue_field_pari_ffelt": {}, + "sage.rings.finite_rings.stdint.pxd": {}, + "sage.rings.fraction_field": {}, + "sage.rings.fraction_field_FpT": {}, + "sage.rings.fraction_field_FpT.pxd": {}, + "sage.rings.fraction_field_element": {}, + "sage.rings.function_field.all": {}, + "sage.rings.function_field.all__sagemath_categories": {}, + "sage.rings.function_field.all__sagemath_modules": {}, + "sage.rings.function_field.constructor": {}, + "sage.rings.function_field.derivations": {}, + "sage.rings.function_field.derivations_polymod": {}, + "sage.rings.function_field.derivations_rational": {}, + "sage.rings.function_field.differential": {}, + "sage.rings.function_field.divisor": {}, + "sage.rings.function_field.drinfeld_modules.action": {}, + "sage.rings.function_field.drinfeld_modules.all": {}, + "sage.rings.function_field.drinfeld_modules.drinfeld_module": { + "failed": true + }, + "sage.rings.function_field.drinfeld_modules.finite_drinfeld_module": {}, + "sage.rings.function_field.drinfeld_modules.homset": {}, + "sage.rings.function_field.drinfeld_modules.morphism": { + "failed": true + }, + "sage.rings.function_field.element": {}, + "sage.rings.function_field.element.pxd": {}, + "sage.rings.function_field.element_polymod": {}, + "sage.rings.function_field.element_rational": {}, + "sage.rings.function_field.extensions": {}, + "sage.rings.function_field.function_field": {}, + "sage.rings.function_field.function_field_polymod": { + "failed": true + }, + "sage.rings.function_field.function_field_rational": {}, + "sage.rings.function_field.hermite_form_polynomial": {}, + "sage.rings.function_field.ideal": {}, + "sage.rings.function_field.ideal_polymod": {}, + "sage.rings.function_field.ideal_rational": {}, + "sage.rings.function_field.maps": {}, + "sage.rings.function_field.order": {}, + "sage.rings.function_field.order_basis": {}, + "sage.rings.function_field.order_polymod": {}, + "sage.rings.function_field.order_rational": {}, + "sage.rings.function_field.place": {}, + "sage.rings.function_field.place_polymod": {}, + "sage.rings.function_field.place_rational": {}, + "sage.rings.function_field.valuation": {}, + "sage.rings.function_field.valuation_ring": {}, + "sage.rings.generic": {}, + "sage.rings.homset": {}, + "sage.rings.ideal": {}, + "sage.rings.ideal_monoid": {}, + "sage.rings.imaginary_unit": {}, + "sage.rings.infinity": {}, + "sage.rings.integer": {}, + "sage.rings.integer.pxd": {}, + "sage.rings.integer_fake.pxd": {}, + "sage.rings.integer_ring": {}, + "sage.rings.integer_ring.pxd": {}, + "sage.rings.invariants.all": {}, + "sage.rings.invariants.invariant_theory": {}, + "sage.rings.invariants.reconstruction": {}, + "sage.rings.laurent_series_ring": {}, + "sage.rings.laurent_series_ring_element": {}, + "sage.rings.laurent_series_ring_element.pxd": {}, + "sage.rings.lazy_series": { + "failed": true + }, + "sage.rings.lazy_series_ring": { + "failed": true + }, + "sage.rings.localization": {}, + "sage.rings.monomials": {}, + "sage.rings.morphism": {}, + "sage.rings.morphism.pxd": {}, + "sage.rings.multi_power_series_ring": {}, + "sage.rings.multi_power_series_ring_element": {}, + "sage.rings.noncommutative_ideals": {}, + "sage.rings.number_field.S_unit_solver": { + "failed": true + }, + "sage.rings.number_field.all": {}, + "sage.rings.number_field.all__sagemath_categories": {}, + "sage.rings.number_field.all__sagemath_flint": {}, + "sage.rings.number_field.all__sagemath_pari": {}, + "sage.rings.number_field.bdd_height": {}, + "sage.rings.number_field.class_group": {}, + "sage.rings.number_field.galois_group": {}, + "sage.rings.number_field.homset": {}, + "sage.rings.number_field.maps": {}, + "sage.rings.number_field.morphism": {}, + "sage.rings.number_field.number_field": { + "failed": true + }, + "sage.rings.number_field.number_field_base": { + "failed": true + }, + "sage.rings.number_field.number_field_base.pxd": {}, + "sage.rings.number_field.number_field_element": { + "failed": true + }, + "sage.rings.number_field.number_field_element.pxd": {}, + "sage.rings.number_field.number_field_element_base": {}, + "sage.rings.number_field.number_field_element_base.pxd": {}, + "sage.rings.number_field.number_field_element_quadratic": {}, + "sage.rings.number_field.number_field_element_quadratic.pxd": {}, + "sage.rings.number_field.number_field_ideal": { + "failed": true + }, + "sage.rings.number_field.number_field_ideal_rel": {}, + "sage.rings.number_field.number_field_morphisms": {}, + "sage.rings.number_field.number_field_rel": {}, + "sage.rings.number_field.order": {}, + "sage.rings.number_field.selmer_group": {}, + "sage.rings.number_field.small_primes_of_degree_one": {}, + "sage.rings.number_field.splitting_field": {}, + "sage.rings.number_field.structure": {}, + "sage.rings.number_field.totallyreal": { + "failed": true + }, + "sage.rings.number_field.totallyreal_data": { + "failed": true + }, + "sage.rings.number_field.totallyreal_data.pxd": {}, + "sage.rings.number_field.totallyreal_phc": {}, + "sage.rings.number_field.totallyreal_rel": { + "failed": true + }, + "sage.rings.number_field.unit_group": {}, + "sage.rings.numbers_abc": {}, + "sage.rings.padics.CA_template.pxi": {}, + "sage.rings.padics.CA_template_header.pxi": {}, + "sage.rings.padics.CR_template.pxi": {}, + "sage.rings.padics.CR_template_header.pxi": {}, + "sage.rings.padics.FM_template.pxi": {}, + "sage.rings.padics.FM_template_header.pxi": {}, + "sage.rings.padics.FP_template.pxi": {}, + "sage.rings.padics.FP_template_header.pxi": {}, + "sage.rings.padics.all": {}, + "sage.rings.padics.all__sagemath_categories": {}, + "sage.rings.padics.all__sagemath_flint": {}, + "sage.rings.padics.all__sagemath_ntl": {}, + "sage.rings.padics.all__sagemath_pari": {}, + "sage.rings.padics.common_conversion": {}, + "sage.rings.padics.common_conversion.pxd": {}, + "sage.rings.padics.eisenstein_extension_generic": {}, + "sage.rings.padics.factory": {}, + "sage.rings.padics.generic_nodes": {}, + "sage.rings.padics.lattice_precision": {}, + "sage.rings.padics.local_generic": { + "failed": true + }, + "sage.rings.padics.local_generic_element": { + "failed": true + }, + "sage.rings.padics.local_generic_element.pxd": {}, + "sage.rings.padics.misc": {}, + "sage.rings.padics.morphism": {}, + "sage.rings.padics.morphism.pxd": {}, + "sage.rings.padics.padic_ZZ_pX_CA_element": {}, + "sage.rings.padics.padic_ZZ_pX_CA_element.pxd": {}, + "sage.rings.padics.padic_ZZ_pX_CR_element": {}, + "sage.rings.padics.padic_ZZ_pX_CR_element.pxd": {}, + "sage.rings.padics.padic_ZZ_pX_FM_element": {}, + "sage.rings.padics.padic_ZZ_pX_FM_element.pxd": {}, + "sage.rings.padics.padic_ZZ_pX_element": {}, + "sage.rings.padics.padic_ZZ_pX_element.pxd": {}, + "sage.rings.padics.padic_base_generic": {}, + "sage.rings.padics.padic_base_leaves": {}, + "sage.rings.padics.padic_capped_absolute_element": {}, + "sage.rings.padics.padic_capped_absolute_element.pxd": {}, + "sage.rings.padics.padic_capped_relative_element": {}, + "sage.rings.padics.padic_capped_relative_element.pxd": {}, + "sage.rings.padics.padic_ext_element": {}, + "sage.rings.padics.padic_ext_element.pxd": {}, + "sage.rings.padics.padic_extension_generic": {}, + "sage.rings.padics.padic_extension_leaves": {}, + "sage.rings.padics.padic_fixed_mod_element": {}, + "sage.rings.padics.padic_fixed_mod_element.pxd": {}, + "sage.rings.padics.padic_floating_point_element": {}, + "sage.rings.padics.padic_floating_point_element.pxd": {}, + "sage.rings.padics.padic_generic": {}, + "sage.rings.padics.padic_generic_element": { + "failed": true + }, + "sage.rings.padics.padic_generic_element.pxd": {}, + "sage.rings.padics.padic_lattice_element": {}, + "sage.rings.padics.padic_printing": {}, + "sage.rings.padics.padic_printing.pxd": {}, + "sage.rings.padics.padic_relaxed_element": {}, + "sage.rings.padics.padic_relaxed_element.pxd": {}, + "sage.rings.padics.padic_relaxed_errors": {}, + "sage.rings.padics.padic_relaxed_errors.pxd": {}, + "sage.rings.padics.padic_template_element.pxi": { + "failed": true + }, + "sage.rings.padics.padic_template_element_header.pxi": {}, + "sage.rings.padics.padic_valuation": {}, + "sage.rings.padics.pow_computer": {}, + "sage.rings.padics.pow_computer.pxd": {}, + "sage.rings.padics.pow_computer_ext": {}, + "sage.rings.padics.pow_computer_ext.pxd": {}, + "sage.rings.padics.pow_computer_flint": {}, + "sage.rings.padics.pow_computer_flint.pxd": {}, + "sage.rings.padics.pow_computer_relative": {}, + "sage.rings.padics.pow_computer_relative.pxd": {}, + "sage.rings.padics.precision_error": {}, + "sage.rings.padics.qadic_flint_CA": {}, + "sage.rings.padics.qadic_flint_CA.pxd": {}, + "sage.rings.padics.qadic_flint_CR": {}, + "sage.rings.padics.qadic_flint_CR.pxd": {}, + "sage.rings.padics.qadic_flint_FM": {}, + "sage.rings.padics.qadic_flint_FM.pxd": {}, + "sage.rings.padics.qadic_flint_FP": {}, + "sage.rings.padics.qadic_flint_FP.pxd": {}, + "sage.rings.padics.relative_extension_leaves": {}, + "sage.rings.padics.relative_ramified_CA": {}, + "sage.rings.padics.relative_ramified_CA.pxd": {}, + "sage.rings.padics.relative_ramified_CR": {}, + "sage.rings.padics.relative_ramified_CR.pxd": {}, + "sage.rings.padics.relative_ramified_FM": {}, + "sage.rings.padics.relative_ramified_FM.pxd": {}, + "sage.rings.padics.relative_ramified_FP": {}, + "sage.rings.padics.relative_ramified_FP.pxd": {}, + "sage.rings.padics.relaxed_template.pxi": {}, + "sage.rings.padics.relaxed_template_header.pxi": {}, + "sage.rings.padics.tests": {}, + "sage.rings.padics.tutorial": {}, + "sage.rings.padics.unramified_extension_generic": {}, + "sage.rings.pari_ring": {}, + "sage.rings.polynomial.all": {}, + "sage.rings.polynomial.all__sagemath_categories": {}, + "sage.rings.polynomial.all__sagemath_flint": {}, + "sage.rings.polynomial.all__sagemath_modules": {}, + "sage.rings.polynomial.all__sagemath_ntl": {}, + "sage.rings.polynomial.binary_form_reduce": {}, + "sage.rings.polynomial.commutative_polynomial": {}, + "sage.rings.polynomial.commutative_polynomial.pxd": {}, + "sage.rings.polynomial.complex_roots": {}, + "sage.rings.polynomial.convolution": {}, + "sage.rings.polynomial.cyclotomic": {}, + "sage.rings.polynomial.evaluation.pxd": {}, + "sage.rings.polynomial.evaluation_flint": {}, + "sage.rings.polynomial.evaluation_flint.pxd": {}, + "sage.rings.polynomial.evaluation_ntl": {}, + "sage.rings.polynomial.evaluation_ntl.pxd": {}, + "sage.rings.polynomial.flatten": {}, + "sage.rings.polynomial.groebner_fan": {}, + "sage.rings.polynomial.hilbert": {}, + "sage.rings.polynomial.ideal": {}, + "sage.rings.polynomial.infinite_polynomial_element": {}, + "sage.rings.polynomial.infinite_polynomial_ring": {}, + "sage.rings.polynomial.integer_valued_polynomials": {}, + "sage.rings.polynomial.laurent_polynomial": {}, + "sage.rings.polynomial.laurent_polynomial.pxd": {}, + "sage.rings.polynomial.laurent_polynomial_ideal": {}, + "sage.rings.polynomial.laurent_polynomial_mpair": {}, + "sage.rings.polynomial.laurent_polynomial_mpair.pxd": {}, + "sage.rings.polynomial.laurent_polynomial_ring": {}, + "sage.rings.polynomial.laurent_polynomial_ring_base": {}, + "sage.rings.polynomial.msolve": {}, + "sage.rings.polynomial.multi_polynomial": { + "failed": true + }, + "sage.rings.polynomial.multi_polynomial.pxd": {}, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true + }, + "sage.rings.polynomial.multi_polynomial_ideal": { + "failed": true + }, + "sage.rings.polynomial.multi_polynomial_ideal_libsingular": {}, + "sage.rings.polynomial.multi_polynomial_ideal_libsingular.pxd": {}, + "sage.rings.polynomial.multi_polynomial_libsingular": {}, + "sage.rings.polynomial.multi_polynomial_libsingular.pxd": {}, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true + }, + "sage.rings.polynomial.multi_polynomial_ring_base.pxd": {}, + "sage.rings.polynomial.multi_polynomial_sequence": {}, + "sage.rings.polynomial.omega": {}, + "sage.rings.polynomial.ore_function_element": {}, + "sage.rings.polynomial.ore_function_field": {}, + "sage.rings.polynomial.ore_polynomial_element": {}, + "sage.rings.polynomial.ore_polynomial_element.pxd": {}, + "sage.rings.polynomial.ore_polynomial_ring": {}, + "sage.rings.polynomial.padics.all": {}, + "sage.rings.polynomial.padics.polynomial_padic": {}, + "sage.rings.polynomial.padics.polynomial_padic_capped_relative_dense": {}, + "sage.rings.polynomial.padics.polynomial_padic_flat": {}, + "sage.rings.polynomial.pbori": {}, + "sage.rings.polynomial.pbori.PyPolyBoRi": {}, + "sage.rings.polynomial.pbori.blocks": {}, + "sage.rings.polynomial.pbori.cnf": {}, + "sage.rings.polynomial.pbori.easy_polynomials": {}, + "sage.rings.polynomial.pbori.fglm": {}, + "sage.rings.polynomial.pbori.frontend": {}, + "sage.rings.polynomial.pbori.gbcore": {}, + "sage.rings.polynomial.pbori.gbrefs": {}, + "sage.rings.polynomial.pbori.heuristics": {}, + "sage.rings.polynomial.pbori.interpolate": {}, + "sage.rings.polynomial.pbori.interred": {}, + "sage.rings.polynomial.pbori.ll": {}, + "sage.rings.polynomial.pbori.nf": {}, + "sage.rings.polynomial.pbori.parallel": {}, + "sage.rings.polynomial.pbori.pbori": {}, + "sage.rings.polynomial.pbori.pbori.pxd": {}, + "sage.rings.polynomial.pbori.randompoly": {}, + "sage.rings.polynomial.pbori.rank": {}, + "sage.rings.polynomial.pbori.specialsets": {}, + "sage.rings.polynomial.pbori.statistics": {}, + "sage.rings.polynomial.plural": {}, + "sage.rings.polynomial.plural.pxd": {}, + "sage.rings.polynomial.polydict": {}, + "sage.rings.polynomial.polydict.pxd": {}, + "sage.rings.polynomial.polynomial_compiled": {}, + "sage.rings.polynomial.polynomial_compiled.pxd": {}, + "sage.rings.polynomial.polynomial_complex_arb": {}, + "sage.rings.polynomial.polynomial_complex_arb.pxd": {}, + "sage.rings.polynomial.polynomial_element": { + "failed": true + }, + "sage.rings.polynomial.polynomial_element.pxd": {}, + "sage.rings.polynomial.polynomial_element_generic": {}, + "sage.rings.polynomial.polynomial_fateman": {}, + "sage.rings.polynomial.polynomial_gf2x": {}, + "sage.rings.polynomial.polynomial_gf2x.pxd": {}, + "sage.rings.polynomial.polynomial_integer_dense_flint": {}, + "sage.rings.polynomial.polynomial_integer_dense_flint.pxd": {}, + "sage.rings.polynomial.polynomial_integer_dense_ntl": {}, + "sage.rings.polynomial.polynomial_integer_dense_ntl.pxd": {}, + "sage.rings.polynomial.polynomial_modn_dense_ntl": {}, + "sage.rings.polynomial.polynomial_modn_dense_ntl.pxd": {}, + "sage.rings.polynomial.polynomial_number_field": {}, + "sage.rings.polynomial.polynomial_quotient_ring": {}, + "sage.rings.polynomial.polynomial_quotient_ring_element": {}, + "sage.rings.polynomial.polynomial_rational_flint": { + "failed": true + }, + "sage.rings.polynomial.polynomial_rational_flint.pxd": {}, + "sage.rings.polynomial.polynomial_real_mpfr_dense": {}, + "sage.rings.polynomial.polynomial_ring": {}, + "sage.rings.polynomial.polynomial_ring_constructor": {}, + "sage.rings.polynomial.polynomial_ring_homomorphism": {}, + "sage.rings.polynomial.polynomial_ring_homomorphism.pxd": {}, + "sage.rings.polynomial.polynomial_singular_interface": {}, + "sage.rings.polynomial.polynomial_template.pxi": {}, + "sage.rings.polynomial.polynomial_template_header.pxi": {}, + "sage.rings.polynomial.polynomial_zmod_flint": {}, + "sage.rings.polynomial.polynomial_zmod_flint.pxd": {}, + "sage.rings.polynomial.polynomial_zz_pex": {}, + "sage.rings.polynomial.polynomial_zz_pex.pxd": {}, + "sage.rings.polynomial.real_roots": {}, + "sage.rings.polynomial.real_roots.pxd": {}, + "sage.rings.polynomial.refine_root": {}, + "sage.rings.polynomial.skew_polynomial_element": {}, + "sage.rings.polynomial.skew_polynomial_element.pxd": {}, + "sage.rings.polynomial.skew_polynomial_finite_field": {}, + "sage.rings.polynomial.skew_polynomial_finite_field.pxd": {}, + "sage.rings.polynomial.skew_polynomial_finite_order": {}, + "sage.rings.polynomial.skew_polynomial_finite_order.pxd": {}, + "sage.rings.polynomial.skew_polynomial_ring": {}, + "sage.rings.polynomial.symmetric_ideal": {}, + "sage.rings.polynomial.symmetric_reduction": {}, + "sage.rings.polynomial.symmetric_reduction.pxd": {}, + "sage.rings.polynomial.term_order": {}, + "sage.rings.polynomial.toy_buchberger": {}, + "sage.rings.polynomial.toy_d_basis": {}, + "sage.rings.polynomial.toy_variety": {}, + "sage.rings.polynomial.weil.all": {}, + "sage.rings.polynomial.weil.weil_polynomials": {}, + "sage.rings.power_series_mpoly": {}, + "sage.rings.power_series_mpoly.pxd": {}, + "sage.rings.power_series_pari": {}, + "sage.rings.power_series_pari.pxd": {}, + "sage.rings.power_series_poly": {}, + "sage.rings.power_series_poly.pxd": {}, + "sage.rings.power_series_ring": {}, + "sage.rings.power_series_ring_element": {}, + "sage.rings.power_series_ring_element.pxd": {}, + "sage.rings.puiseux_series_ring": {}, + "sage.rings.puiseux_series_ring_element": {}, + "sage.rings.puiseux_series_ring_element.pxd": {}, + "sage.rings.qqbar": { + "failed": true + }, + "sage.rings.qqbar_decorators": { + "failed": true + }, + "sage.rings.quotient_ring": {}, + "sage.rings.quotient_ring_element": {}, + "sage.rings.rational": { + "failed": true + }, + "sage.rings.rational.pxd": {}, + "sage.rings.rational_field": {}, + "sage.rings.real_arb": { + "failed": true + }, + "sage.rings.real_arb.pxd": {}, + "sage.rings.real_double": { + "failed": true + }, + "sage.rings.real_double.pxd": {}, + "sage.rings.real_double_element_gsl": {}, + "sage.rings.real_double_element_gsl.pxd": {}, + "sage.rings.real_field": {}, + "sage.rings.real_interval_absolute": {}, + "sage.rings.real_interval_field": {}, + "sage.rings.real_lazy": {}, + "sage.rings.real_lazy.pxd": {}, + "sage.rings.real_mpfi": { + "failed": true + }, + "sage.rings.real_mpfi.pxd": {}, + "sage.rings.real_mpfr": { + "failed": true + }, + "sage.rings.real_mpfr.pxd": {}, + "sage.rings.ring": {}, + "sage.rings.ring.pxd": {}, + "sage.rings.ring_extension": {}, + "sage.rings.ring_extension.pxd": {}, + "sage.rings.ring_extension_conversion": {}, + "sage.rings.ring_extension_conversion.pxd": {}, + "sage.rings.ring_extension_element": {}, + "sage.rings.ring_extension_element.pxd": {}, + "sage.rings.ring_extension_homset": {}, + "sage.rings.ring_extension_morphism": {}, + "sage.rings.ring_extension_morphism.pxd": {}, + "sage.rings.semirings.all": {}, + "sage.rings.semirings.non_negative_integer_semiring": {}, + "sage.rings.semirings.tropical_semiring": {}, + "sage.rings.sum_of_squares": {}, + "sage.rings.sum_of_squares.pxd": {}, + "sage.rings.tate_algebra": {}, + "sage.rings.tate_algebra_element": {}, + "sage.rings.tate_algebra_element.pxd": {}, + "sage.rings.tate_algebra_ideal": {}, + "sage.rings.tate_algebra_ideal.pxd": {}, + "sage.rings.tests": {}, + "sage.rings.universal_cyclotomic_field": {}, + "sage.rings.valuation.all": {}, + "sage.rings.valuation.augmented_valuation": {}, + "sage.rings.valuation.developing_valuation": {}, + "sage.rings.valuation.gauss_valuation": {}, + "sage.rings.valuation.inductive_valuation": {}, + "sage.rings.valuation.limit_valuation": {}, + "sage.rings.valuation.mapped_valuation": {}, + "sage.rings.valuation.scaled_valuation": {}, + "sage.rings.valuation.trivial_valuation": {}, + "sage.rings.valuation.valuation": {}, + "sage.rings.valuation.valuation_space": {}, + "sage.rings.valuation.valuations_catalog": {}, + "sage.rings.valuation.value_group": {}, + "sage.sandpiles.all": {}, + "sage.sandpiles.examples": {}, + "sage.sandpiles.sandpile": { + "failed": true + }, + "sage.sat.all": {}, + "sage.sat.boolean_polynomials": {}, + "sage.sat.converters": {}, + "sage.sat.converters.anf2cnf": {}, + "sage.sat.converters.polybori": {}, + "sage.sat.solvers": {}, + "sage.sat.solvers.cryptominisat": {}, + "sage.sat.solvers.dimacs": {}, + "sage.sat.solvers.picosat": {}, + "sage.sat.solvers.sat_lp": {}, + "sage.sat.solvers.satsolver": {}, + "sage.sat.solvers.satsolver.pxd": {}, + "sage.schemes.affine.affine_homset": {}, + "sage.schemes.affine.affine_morphism": {}, + "sage.schemes.affine.affine_point": {}, + "sage.schemes.affine.affine_rational_point": {}, + "sage.schemes.affine.affine_space": {}, + "sage.schemes.affine.affine_subscheme": {}, + "sage.schemes.all": {}, + "sage.schemes.all__sagemath_categories": {}, + "sage.schemes.all__sagemath_polyhedra": {}, + "sage.schemes.berkovich.berkovich_cp_element": { + "failed": true + }, + "sage.schemes.berkovich.berkovich_space": { + "failed": true + }, + "sage.schemes.curves.affine_curve": { + "failed": true + }, + "sage.schemes.curves.all": {}, + "sage.schemes.curves.closed_point": {}, + "sage.schemes.curves.constructor": {}, + "sage.schemes.curves.curve": {}, + "sage.schemes.curves.point": {}, + "sage.schemes.curves.projective_curve": {}, + "sage.schemes.curves.zariski_vankampen": { + "failed": true + }, + "sage.schemes.cyclic_covers.all": {}, + "sage.schemes.cyclic_covers.charpoly_frobenius": { + "failed": true + }, + "sage.schemes.cyclic_covers.constructor": {}, + "sage.schemes.cyclic_covers.cycliccover_finite_field": { + "failed": true + }, + "sage.schemes.cyclic_covers.cycliccover_generic": {}, + "sage.schemes.elliptic_curves.BSD": { + "failed": true + }, + "sage.schemes.elliptic_curves.Qcurves": {}, + "sage.schemes.elliptic_curves.all": {}, + "sage.schemes.elliptic_curves.cardinality": {}, + "sage.schemes.elliptic_curves.cm": {}, + "sage.schemes.elliptic_curves.constructor": { + "failed": true + }, + "sage.schemes.elliptic_curves.descent_two_isogeny": {}, + "sage.schemes.elliptic_curves.ec_database": {}, + "sage.schemes.elliptic_curves.ell_curve_isogeny": {}, + "sage.schemes.elliptic_curves.ell_egros": { + "failed": true + }, + "sage.schemes.elliptic_curves.ell_field": {}, + "sage.schemes.elliptic_curves.ell_finite_field": {}, + "sage.schemes.elliptic_curves.ell_generic": {}, + "sage.schemes.elliptic_curves.ell_local_data": {}, + "sage.schemes.elliptic_curves.ell_modular_symbols": { + "failed": true + }, + "sage.schemes.elliptic_curves.ell_number_field": { + "failed": true + }, + "sage.schemes.elliptic_curves.ell_padic_field": {}, + "sage.schemes.elliptic_curves.ell_point": { + "failed": true + }, + "sage.schemes.elliptic_curves.ell_rational_field": { + "failed": true + }, + "sage.schemes.elliptic_curves.ell_tate_curve": {}, + "sage.schemes.elliptic_curves.ell_torsion": {}, + "sage.schemes.elliptic_curves.ell_wp": {}, + "sage.schemes.elliptic_curves.formal_group": {}, + "sage.schemes.elliptic_curves.gal_reps": {}, + "sage.schemes.elliptic_curves.gal_reps_number_field": {}, + "sage.schemes.elliptic_curves.gp_simon": {}, + "sage.schemes.elliptic_curves.heegner": { + "failed": true + }, + "sage.schemes.elliptic_curves.height": { + "failed": true + }, + "sage.schemes.elliptic_curves.hom": { + "failed": true + }, + "sage.schemes.elliptic_curves.hom_composite": { + "failed": true + }, + "sage.schemes.elliptic_curves.hom_frobenius": { + "failed": true + }, + "sage.schemes.elliptic_curves.hom_scalar": {}, + "sage.schemes.elliptic_curves.hom_velusqrt": { + "failed": true + }, + "sage.schemes.elliptic_curves.isogeny_class": { + "failed": true + }, + "sage.schemes.elliptic_curves.isogeny_small_degree": { + "failed": true + }, + "sage.schemes.elliptic_curves.jacobian": {}, + "sage.schemes.elliptic_curves.kodaira_symbol": {}, + "sage.schemes.elliptic_curves.kraus": {}, + "sage.schemes.elliptic_curves.lseries_ell": { + "failed": true + }, + "sage.schemes.elliptic_curves.mod5family": {}, + "sage.schemes.elliptic_curves.mod_sym_num": {}, + "sage.schemes.elliptic_curves.modular_parametrization": {}, + "sage.schemes.elliptic_curves.padic_lseries": { + "failed": true + }, + "sage.schemes.elliptic_curves.padics": { + "failed": true + }, + "sage.schemes.elliptic_curves.period_lattice": {}, + "sage.schemes.elliptic_curves.period_lattice_region": {}, + "sage.schemes.elliptic_curves.saturation": { + "failed": true + }, + "sage.schemes.elliptic_curves.sha_tate": { + "failed": true + }, + "sage.schemes.elliptic_curves.weierstrass_morphism": {}, + "sage.schemes.elliptic_curves.weierstrass_transform": {}, + "sage.schemes.generic.algebraic_scheme": { + "failed": true + }, + "sage.schemes.generic.all": {}, + "sage.schemes.generic.ambient_space": {}, + "sage.schemes.generic.divisor": {}, + "sage.schemes.generic.divisor_group": {}, + "sage.schemes.generic.glue": {}, + "sage.schemes.generic.homset": {}, + "sage.schemes.generic.hypersurface": {}, + "sage.schemes.generic.morphism": {}, + "sage.schemes.generic.point": {}, + "sage.schemes.generic.scheme": {}, + "sage.schemes.generic.spec": {}, + "sage.schemes.hyperelliptic_curves.all": {}, + "sage.schemes.hyperelliptic_curves.constructor": {}, + "sage.schemes.hyperelliptic_curves.hypellfrob": {}, + "sage.schemes.hyperelliptic_curves.hyperelliptic_finite_field": {}, + "sage.schemes.hyperelliptic_curves.hyperelliptic_g2": {}, + "sage.schemes.hyperelliptic_curves.hyperelliptic_generic": { + "failed": true + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_padic_field": { + "failed": true + }, + "sage.schemes.hyperelliptic_curves.hyperelliptic_rational_field": { + "failed": true + }, + "sage.schemes.hyperelliptic_curves.invariants": {}, + "sage.schemes.hyperelliptic_curves.jacobian_endomorphism_utils": {}, + "sage.schemes.hyperelliptic_curves.jacobian_g2": {}, + "sage.schemes.hyperelliptic_curves.jacobian_generic": {}, + "sage.schemes.hyperelliptic_curves.jacobian_homset": {}, + "sage.schemes.hyperelliptic_curves.jacobian_morphism": {}, + "sage.schemes.hyperelliptic_curves.kummer_surface": {}, + "sage.schemes.hyperelliptic_curves.mestre": {}, + "sage.schemes.hyperelliptic_curves.monsky_washnitzer": { + "failed": true + }, + "sage.schemes.jacobians.abstract_jacobian": {}, + "sage.schemes.jacobians.all": {}, + "sage.schemes.overview": {}, + "sage.schemes.plane_conics.all": {}, + "sage.schemes.plane_conics.con_field": {}, + "sage.schemes.plane_conics.con_finite_field": {}, + "sage.schemes.plane_conics.con_number_field": { + "failed": true + }, + "sage.schemes.plane_conics.con_rational_field": {}, + "sage.schemes.plane_conics.con_rational_function_field": {}, + "sage.schemes.plane_conics.constructor": {}, + "sage.schemes.plane_quartics.all": {}, + "sage.schemes.plane_quartics.quartic_constructor": {}, + "sage.schemes.plane_quartics.quartic_generic": {}, + "sage.schemes.product_projective.all": {}, + "sage.schemes.product_projective.homset": {}, + "sage.schemes.product_projective.morphism": {}, + "sage.schemes.product_projective.point": {}, + "sage.schemes.product_projective.rational_point": { + "failed": true + }, + "sage.schemes.product_projective.space": {}, + "sage.schemes.product_projective.subscheme": {}, + "sage.schemes.projective.proj_bdd_height": {}, + "sage.schemes.projective.projective_homset": {}, + "sage.schemes.projective.projective_morphism": { + "failed": true + }, + "sage.schemes.projective.projective_point": { + "failed": true + }, + "sage.schemes.projective.projective_rational_point": { + "failed": true + }, + "sage.schemes.projective.projective_space": {}, + "sage.schemes.projective.projective_subscheme": {}, + "sage.schemes.riemann_surfaces.all": {}, + "sage.schemes.riemann_surfaces.riemann_surface": {}, + "sage.schemes.toric.all": {}, + "sage.schemes.toric.chow_group": {}, + "sage.schemes.toric.divisor": {}, + "sage.schemes.toric.divisor_class": {}, + "sage.schemes.toric.fano_variety": {}, + "sage.schemes.toric.homset": {}, + "sage.schemes.toric.ideal": {}, + "sage.schemes.toric.library": {}, + "sage.schemes.toric.morphism": {}, + "sage.schemes.toric.points": {}, + "sage.schemes.toric.sheaf.all": {}, + "sage.schemes.toric.sheaf.constructor": {}, + "sage.schemes.toric.sheaf.klyachko": {}, + "sage.schemes.toric.toric_subscheme": {}, + "sage.schemes.toric.variety": {}, + "sage.schemes.toric.weierstrass": {}, + "sage.schemes.toric.weierstrass_covering": {}, + "sage.schemes.toric.weierstrass_higher": {}, + "sage.sets.all": {}, + "sage.sets.all__sagemath_objects": {}, + "sage.sets.cartesian_product": {}, + "sage.sets.condition_set": {}, + "sage.sets.disjoint_set": {}, + "sage.sets.disjoint_set.pxd": {}, + "sage.sets.disjoint_union_enumerated_sets": {}, + "sage.sets.family": {}, + "sage.sets.finite_enumerated_set": {}, + "sage.sets.finite_set_map_cy": {}, + "sage.sets.finite_set_map_cy.pxd": {}, + "sage.sets.finite_set_maps": {}, + "sage.sets.image_set": {}, + "sage.sets.integer_range": {}, + "sage.sets.non_negative_integers": {}, + "sage.sets.positive_integers": {}, + "sage.sets.primes": {}, + "sage.sets.pythonclass": {}, + "sage.sets.pythonclass.pxd": {}, + "sage.sets.real_set": {}, + "sage.sets.recursively_enumerated_set": {}, + "sage.sets.recursively_enumerated_set.pxd": {}, + "sage.sets.set": {}, + "sage.sets.set_from_iterator": {}, + "sage.sets.totally_ordered_finite_set": {}, + "sage.stats.all": {}, + "sage.stats.basic_stats": { + "failed": true + }, + "sage.stats.distributions.all": {}, + "sage.stats.distributions.dgs.pxd": {}, + "sage.stats.distributions.discrete_gaussian_integer": {}, + "sage.stats.distributions.discrete_gaussian_integer.pxd": {}, + "sage.stats.distributions.discrete_gaussian_lattice": {}, + "sage.stats.distributions.discrete_gaussian_polynomial": {}, + "sage.stats.hmm.all": {}, + "sage.stats.hmm.chmm": {}, + "sage.stats.hmm.distributions": {}, + "sage.stats.hmm.distributions.pxd": {}, + "sage.stats.hmm.hmm": {}, + "sage.stats.hmm.hmm.pxd": {}, + "sage.stats.hmm.util": {}, + "sage.stats.hmm.util.pxd": {}, + "sage.stats.intlist": {}, + "sage.stats.intlist.pxd": {}, + "sage.stats.r": {}, + "sage.stats.time_series": {}, + "sage.stats.time_series.pxd": {}, + "sage.structure": {}, + "sage.structure.all": {}, + "sage.structure.category_object": {}, + "sage.structure.category_object.pxd": {}, + "sage.structure.coerce": {}, + "sage.structure.coerce.pxd": {}, + "sage.structure.coerce_actions": {}, + "sage.structure.coerce_actions.pxd": {}, + "sage.structure.coerce_dict": {}, + "sage.structure.coerce_dict.pxd": {}, + "sage.structure.coerce_exceptions": {}, + "sage.structure.coerce_maps": {}, + "sage.structure.coerce_maps.pxd": {}, + "sage.structure.debug_options": {}, + "sage.structure.debug_options.pxd": {}, + "sage.structure.dynamic_class": {}, + "sage.structure.element": {}, + "sage.structure.element.pxd": {}, + "sage.structure.element_wrapper": {}, + "sage.structure.element_wrapper.pxd": {}, + "sage.structure.factorization": {}, + "sage.structure.factorization_integer": {}, + "sage.structure.factory": {}, + "sage.structure.formal_sum": {}, + "sage.structure.gens_py": {}, + "sage.structure.global_options": {}, + "sage.structure.graphics_file": {}, + "sage.structure.indexed_generators": {}, + "sage.structure.list_clone": {}, + "sage.structure.list_clone.pxd": {}, + "sage.structure.list_clone_demo": {}, + "sage.structure.list_clone_timings": {}, + "sage.structure.list_clone_timings_cy": {}, + "sage.structure.mutability": {}, + "sage.structure.mutability.pxd": {}, + "sage.structure.nonexact": {}, + "sage.structure.parent": { + "failed": true + }, + "sage.structure.parent.pxd": {}, + "sage.structure.parent_base": {}, + "sage.structure.parent_base.pxd": {}, + "sage.structure.parent_gens": {}, + "sage.structure.parent_gens.pxd": {}, + "sage.structure.parent_old": {}, + "sage.structure.parent_old.pxd": {}, + "sage.structure.proof": {}, + "sage.structure.proof.all": {}, + "sage.structure.proof.proof": {}, + "sage.structure.richcmp": {}, + "sage.structure.richcmp.pxd": {}, + "sage.structure.sage_object": {}, + "sage.structure.sage_object.pxd": {}, + "sage.structure.sage_object_test": {}, + "sage.structure.sequence": {}, + "sage.structure.set_factories": {}, + "sage.structure.set_factories_example": {}, + "sage.structure.support_view": {}, + "sage.structure.test_factory": {}, + "sage.structure.unique_representation": {}, + "sage.symbolic.all": {}, + "sage.symbolic.all__sagemath_categories": {}, + "sage.symbolic.all__sagemath_standard_no_symbolics": {}, + "sage.symbolic.function": { + "failed": true + }, + "sage.symbolic.function.pxd": {}, + "sage.symbolic.integration.all": {}, + "sage.symbolic.symbols": {}, + "sage.tensor.all": {}, + "sage.tensor.modules.all": {}, + "sage.tensor.modules.alternating_contr_tensor": {}, + "sage.tensor.modules.comp": {}, + "sage.tensor.modules.ext_pow_free_module": {}, + "sage.tensor.modules.finite_rank_free_module": {}, + "sage.tensor.modules.format_utilities": {}, + "sage.tensor.modules.free_module_alt_form": {}, + "sage.tensor.modules.free_module_automorphism": {}, + "sage.tensor.modules.free_module_basis": {}, + "sage.tensor.modules.free_module_element": {}, + "sage.tensor.modules.free_module_homset": {}, + "sage.tensor.modules.free_module_linear_group": {}, + "sage.tensor.modules.free_module_morphism": {}, + "sage.tensor.modules.free_module_tensor": {}, + "sage.tensor.modules.reflexive_module": {}, + "sage.tensor.modules.tensor_free_module": {}, + "sage.tensor.modules.tensor_free_submodule": {}, + "sage.tensor.modules.tensor_free_submodule_basis": {}, + "sage.tensor.modules.tensor_with_indices": {}, + "sage.tests": {}, + "sage.tests.all": {}, + "sage.tests.article_heuberger_krenn_kropf_fsm-in-sage": {}, + "sage.tests.arxiv_0812_2725": {}, + "sage.tests.benchmark": {}, + "sage.tests.book_schilling_zabrocki_kschur_primer": {}, + "sage.tests.book_stein_ent": { + "failed": true + }, + "sage.tests.book_stein_modform": {}, + "sage.tests.cmdline": {}, + "sage.tests.combinatorial_hopf_algebras": {}, + "sage.tests.cython": { + "failed": true + }, + "sage.tests.finite_poset": {}, + "sage.tests.functools_partial_src": {}, + "sage.tests.gap_packages": {}, + "sage.tests.gosper-sum": {}, + "sage.tests.lazy_imports": { + "failed": true + }, + "sage.tests.memcheck": {}, + "sage.tests.memcheck.run_tests": {}, + "sage.tests.memcheck.run_tests_in_valgrind": {}, + "sage.tests.memcheck.symbolic_expression": {}, + "sage.tests.memcheck.verify_no_leak": {}, + "sage.tests.modular_group_cohomology": {}, + "sage.tests.numpy": {}, + "sage.tests.parigp": {}, + "sage.tests.startup": {}, + "sage.tests.stl_vector": { + "failed": true + }, + "sage.tests.symbolic-series": {}, + "sage.tests.sympy": {}, + "sage.tests.test_deprecation": {}, + "sage.topology.all": {}, + "sage.topology.cell_complex": {}, + "sage.topology.cubical_complex": {}, + "sage.topology.delta_complex": {}, + "sage.topology.filtered_simplicial_complex": {}, + "sage.topology.simplicial_complex": {}, + "sage.topology.simplicial_complex_catalog": {}, + "sage.topology.simplicial_complex_examples": {}, + "sage.topology.simplicial_complex_homset": {}, + "sage.topology.simplicial_complex_morphism": { + "failed": true + }, + "sage.topology.simplicial_set": {}, + "sage.topology.simplicial_set_catalog": {}, + "sage.topology.simplicial_set_constructions": {}, + "sage.topology.simplicial_set_examples": {}, + "sage.topology.simplicial_set_morphism": {}, + "sage.typeset.all": {}, + "sage.typeset.ascii_art": {}, + "sage.typeset.character_art": {}, + "sage.typeset.character_art_factory": {}, + "sage.typeset.symbols": {}, + "sage.typeset.unicode_art": {}, + "sage.typeset.unicode_characters": {}, + "sage.version": {}, + "sage_conf.rst": {}, + "sage_docbuild.rst": {}, + "sage_documentation": {}, + "sage_flatsurf.rst": {}, + "sage_gymnasium.rst": { + "failed": true + }, + "sage_manuals.rst": {}, + "sage_numerical_backends_coin.rst": {}, + "sage_numerical_backends_cplex.rst": {}, + "sage_numerical_backends_gurobi.rst": {}, + "sage_setup.rst": {}, + "sage_sws2rst.rst": {}, + "sage_tutorial": {}, + "sagemath_categories.rst": {}, + "sagemath_doc_html.rst": {}, + "sagemath_doc_pdf.rst": {}, + "sagemath_environment.rst": {}, + "sagemath_objects.rst": {}, + "sagemath_repl.rst": {}, + "sagenb_export.rst": {}, + "sagetex.rst": {}, + "sandpile.rst": { + "failed": true + }, + "sat": {}, + "scalarfield.rst": {}, + "schemes": {}, + "scip.rst": {}, + "scip_sdp.rst": {}, + "scipy.rst": { + "failed": true + }, + "scs.rst": {}, + "semirings": {}, + "send2trash.rst": {}, + "sets": {}, + "setuptools.rst": {}, + "setuptools_scm.rst": {}, + "setuptools_scm_git_archive.rst": {}, + "setuptools_wheel.rst": {}, + "simplegeneric.rst": {}, + "singular.rst": {}, + "singular_jupyter.rst": {}, + "sirocco.rst": {}, + "six.rst": {}, + "slabbe.rst": {}, + "snappy.rst": {}, + "snowballstemmer.rst": {}, + "soplex.rst": {}, + "soupsieve.rst": {}, + "source.rst": {}, + "sphinx.rst": {}, + "sphinx_basic_ng.rst": {}, + "sphinx_copybutton.rst": {}, + "sphinxcontrib_applehelp.rst": {}, + "sphinxcontrib_devhelp.rst": {}, + "sphinxcontrib_htmlhelp.rst": {}, + "sphinxcontrib_jsmath.rst": {}, + "sphinxcontrib_qthelp.rst": {}, + "sphinxcontrib_serializinghtml.rst": {}, + "sphinxcontrib_websupport.rst": {}, + "spkg": {}, + "sqlalchemy.rst": {}, + "sqlite.rst": {}, + "stack_data.rst": {}, + "startup.rst": {}, + "stats": {}, + "steenrod_algebra_modules.rst": {}, + "structure": {}, + "structures_in_coding_theory.rst": {}, + "suitesparse.rst": {}, + "surf.rst": {}, + "surface_dynamics.rst": {}, + "sws2rst.rst": {}, + "symengine.rst": {}, + "symengine_py.rst": {}, + "symmetrica.rst": {}, + "sympow.rst": {}, + "sympy.rst": {}, + "tachyon.rst": {}, + "tangent_space.rst": {}, + "tdlib.rst": {}, + "tensor_free_modules": {}, + "tensorfield.rst": {}, + "tensors.rst": {}, + "terminado.rst": {}, + "texlive.rst": {}, + "texttable.rst": {}, + "thematic_tutorials": {}, + "threejs.rst": {}, + "tides.rst": {}, + "tinycss2.rst": {}, + "tips.rst": {}, + "toctree.rst": {}, + "toml.rst": {}, + "tomli.rst": {}, + "tomlkit.rst": {}, + "topcom.rst": {}, + "topology": {}, + "tornado.rst": {}, + "tour.rst": {}, + "tour_advanced.rst": { + "failed": true + }, + "tour_algebra.rst": { + "failed": true + }, + "tour_assignment.rst": { + "failed": true + }, + "tour_coercion.rst": {}, + "tour_functions.rst": { + "failed": true + }, + "tour_groups.rst": {}, + "tour_help.rst": { + "failed": true + }, + "tour_linalg.rst": {}, + "tour_numtheory.rst": { + "failed": true + }, + "tour_plotting.rst": { + "failed": true + }, + "tour_polynomial.rst": {}, + "tour_rings.rst": { + "failed": true + }, + "tox.rst": {}, + "traitlets.rst": {}, + "troubles.rst": {}, + "tsetlin_library.rst": { + "failed": true + }, + "tutorial-comprehensions.rst": { + "failed": true + }, + "tutorial-fr": {}, + "tutorial-implementing-algebraic-structures.rst": {}, + "tutorial-it": {}, + "tutorial-jp": {}, + "tutorial-objects-and-classes.rst": { + "failed": true + }, + "tutorial-programming-python.rst": {}, + "tutorial-pt": {}, + "typing_extensions.rst": {}, + "tzdata.rst": {}, + "tzlocal.rst": {}, + "urllib3.rst": {}, + "using_compiled_code_iteractively.rst": {}, + "valgrind.rst": {}, + "valuations": {}, + "vcversioner.rst": {}, + "vector_bundle.rst": {}, + "vector_calc_advanced.rst": { + "failed": true + }, + "vector_calc_cartesian.rst": { + "failed": true + }, + "vector_calc_change.rst": { + "failed": true + }, + "vector_calc_curvilinear.rst": { + "failed": true + }, + "vector_calc_plane.rst": { + "failed": true + }, + "vector_calculus.rst": {}, + "vectorfield.rst": {}, + "virtualenv.rst": {}, + "visualization.rst": { + "failed": true + }, + "walks.rst": { + "failed": true + }, + "walkthrough.rst": {}, + "wcwidth.rst": {}, + "webencodings.rst": {}, + "weyl_character_ring.rst": {}, + "weyl_groups.rst": { + "failed": true + }, + "wheel.rst": {}, + "widgetsnbextension.rst": {}, + "workflows.rst": {}, + "workspace.rst": {}, + "xz.rst": {}, + "zeromq.rst": {}, + "zipp.rst": {}, + "zlib.rst": {} +} \ No newline at end of file diff --git a/pkgs/sagemath-standard-no-symbolics/meson.build b/pkgs/sagemath-standard-no-symbolics/meson.build new file mode 100644 index 00000000000..60d078f840b --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-standard-no-symbolics', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_standard_no_symbolics', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-standard-no-symbolics/pyproject.toml.m4 b/pkgs/sagemath-standard-no-symbolics/pyproject.toml.m4 new file mode 100644 index 00000000000..def5b2cb774 --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/pyproject.toml.m4 @@ -0,0 +1,133 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + # Some version of sage-conf is required. + # Note that PEP517/518 have no notion of optional sage_spkg dependencies: + # https://github.com/pypa/pip/issues/6144 + SPKG_INSTALL_REQUIRES_sage_conf + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_jinja2 + SPKG_INSTALL_REQUIRES_jupyter_core + SPKG_INSTALL_REQUIRES_numpy + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_pplpy + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_polyhedra + SPKG_INSTALL_REQUIRES_sagemath_graphs + SPKG_INSTALL_REQUIRES_sagemath_combinat + SPKG_INSTALL_REQUIRES_sagemath_ntl + SPKG_INSTALL_REQUIRES_sagemath_pari + SPKG_INSTALL_REQUIRES_sagemath_repl + SPKG_INSTALL_REQUIRES_sagemath_schemes + SPKG_INSTALL_REQUIRES_sagemath_singular +] +build-backend = "mesonpy" + +[project] +name = "sagemath-standard-no-symbolics" +description = "Sage: Open Source Mathematics Software: Sage library without the symbolics subsystem" +dependencies = [ + SPKG_INSTALL_REQUIRES_sage_conf + SPKG_INSTALL_REQUIRES_six + SPKG_INSTALL_REQUIRES_sagemath_brial + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_combinat + SPKG_INSTALL_REQUIRES_sagemath_eclib + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_flint + SPKG_INSTALL_REQUIRES_sagemath_gap + SPKG_INSTALL_REQUIRES_sagemath_glpk + SPKG_INSTALL_REQUIRES_sagemath_graphs + SPKG_INSTALL_REQUIRES_sagemath_groups + SPKG_INSTALL_REQUIRES_sagemath_homfly + SPKG_INSTALL_REQUIRES_sagemath_lcalc + SPKG_INSTALL_REQUIRES_sagemath_libbraiding + SPKG_INSTALL_REQUIRES_sagemath_libecm + SPKG_INSTALL_REQUIRES_sagemath_linbox + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_mpmath + SPKG_INSTALL_REQUIRES_sagemath_ntl + SPKG_INSTALL_REQUIRES_sagemath_objects + SPKG_INSTALL_REQUIRES_sagemath_pari + SPKG_INSTALL_REQUIRES_sagemath_polyhedra + SPKG_INSTALL_REQUIRES_sagemath_repl + SPKG_INSTALL_REQUIRES_sagemath_schemes + SPKG_INSTALL_REQUIRES_sagemath_singular +dnl From build/pkgs/sagelib/dependencies + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_jupyter_core + SPKG_INSTALL_REQUIRES_lrcalc_python + SPKG_INSTALL_REQUIRES_memory_allocator + SPKG_INSTALL_REQUIRES_numpy + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_pplpy + SPKG_INSTALL_REQUIRES_primecountpy + SPKG_INSTALL_REQUIRES_requests +dnl From Makefile.in: SAGERUNTIME + SPKG_INSTALL_REQUIRES_ipython + SPKG_INSTALL_REQUIRES_pexpect +dnl From Makefile.in: DOC_DEPENDENCIES + SPKG_INSTALL_REQUIRES_sphinx + SPKG_INSTALL_REQUIRES_networkx + SPKG_INSTALL_REQUIRES_scipy + SPKG_INSTALL_REQUIRES_matplotlib + SPKG_INSTALL_REQUIRES_pillow + SPKG_INSTALL_REQUIRES_mpmath + SPKG_INSTALL_REQUIRES_ipykernel + SPKG_INSTALL_REQUIRES_jupyter_client + SPKG_INSTALL_REQUIRES_ipywidgets + SPKG_INSTALL_REQUIRES_fpylll +dnl pycryptosat # Sage distribution installs it as part of cryptominisat. According to its README on https://pypi.org/project/pycryptosat/: "The pycryptosat python package compiles while compiling CryptoMiniSat. It cannot be compiled on its own, it must be compiled at the same time as CryptoMiniSat." +dnl Packages with important upper version bounds + SPKG_INSTALL_REQUIRES_ptyprocess +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[tool.setuptools] +script-files = [ + "bin/sage-cython", + # Only makes sense in sage-the-distribution. TODO: Move to another installation script. + "bin/sage-list-packages", + # Uncategorized scripts in alphabetical order + "bin/sage-grep", + "bin/sage-grepdoc", + "bin/sage-update-version", +] +include-package-data = false + +[tool.setuptools.package-data] +sage = [ + "ext_data/*", + "ext_data/kenzo/*", + "ext_data/images/*", + "ext_data/doctest/*", + "ext_data/doctest/invalid/*", + "ext_data/gap/*", + "ext_data/gap/joyner/*", + "ext_data/mwrank/*", + "ext_data/notebook-ipython/*", + "ext_data/nbconvert/*", + "ext_data/graphs/*", + "ext_data/valgrind/*", +] + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} diff --git a/pkgs/sagemath-standard-no-symbolics/requirements-editable.txt.m4 b/pkgs/sagemath-standard-no-symbolics/requirements-editable.txt.m4 new file mode 100644 index 00000000000..87c714d7069 --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/requirements-editable.txt.m4 @@ -0,0 +1,32 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires (+ their install-requires) +dnl FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_ipython +SPKG_INSTALL_REQUIRES_ipywidgets +# -e ../sagemath-brial +# -e ../sagemath-categories +# -e ../sagemath-combinat +# -e ../sagemath-eclib +# -e ../sagemath-environment +# -e ../sagemath-flint +# -e ../sagemath-gap +# -e ../sagemath-glpk +# -e ../sagemath-graphs +# -e ../sagemath-groups +# -e ../sagemath-homfly +# -e ../sagemath-lcalc +# -e ../sagemath-libbraiding +# -e ../sagemath-libecm +# -e ../sagemath-linbox +# -e ../sagemath-modules +# -e ../sagemath-mpmath +# -e ../sagemath-ntl +# -e ../sagemath-objects +# -e ../sagemath-pari +# -e ../sagemath-polyhedra +# -e ../sagemath-repl +# -e ../sagemath-schemes +# -e ../sagemath-singular diff --git a/pkgs/sagemath-standard-no-symbolics/requirements.txt.m4 b/pkgs/sagemath-standard-no-symbolics/requirements.txt.m4 new file mode 120000 index 00000000000..625ede57362 --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/requirements.txt.m4 @@ -0,0 +1 @@ +../sagemath-standard/requirements.txt.m4 \ No newline at end of file diff --git a/pkgs/sagemath-standard-no-symbolics/sage b/pkgs/sagemath-standard-no-symbolics/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-standard-no-symbolics/sage-cython-native-file.ini b/pkgs/sagemath-standard-no-symbolics/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-standard-no-symbolics/setup.py b/pkgs/sagemath-standard-no-symbolics/setup.py new file mode 100644 index 00000000000..b31e3a0a73f --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup('') diff --git a/pkgs/sagemath-standard-no-symbolics/tox.ini b/pkgs/sagemath-standard-no-symbolics/tox.ini new file mode 100644 index 00000000000..6e20beeb819 --- /dev/null +++ b/pkgs/sagemath-standard-no-symbolics/tox.ini @@ -0,0 +1,195 @@ +# All tests require an installation of the non-Python components of the Sage distribution +# in SAGE_LOCAL. +# +# See envlist below for different environments. +# +# To build and test in the tox environment using the concrete Python dependencies specified +# by requirements.txt, using the wheels built and stored by the Sage distribution: +# (Using 'sage -sh' in combination with 'sagepython-...' tox environments +# ensures that we use the same Python as the one that we built the wheels +# for. This can also be done ensured manually by using the tox environment py38-sagewheels etc.) +# +# Afterwards, to test interactively: +# +# pkgs/sagemath-standard/.tox/ENVIRONMENT/bin/python +# pkgs/sagemath-standard/.tox/ENVIRONMENT/bin/sage +# +[tox] +envlist = + # Build and test without using the concrete dependencies specified by requirements.txt, + # using the dependencies declared in pyproject.toml and setup.cfg (install-requires) only: + # Still use ONLY the wheels built and stored by the Sage distribution (no PyPI). + # + # ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' + # + sagepython-sagewheels-nopypi-norequirements + # + # OTHER SUPPORTED ENVIRONMENTS: + # + # Build dependencies according to requirements.txt (all versions fixed). + # Use ONLY the wheels built and stored by the Sage distribution (no PyPI): + # + # ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels-nopypi)' + # + # EXPERIMENTAL ENVIRONMENTS: + # + # Build dependencies according to requirements.txt (all versions fixed). + # Use the wheels built and stored by the Sage distribution, + # and additionally allow packages from PyPI. + # Because all versions are fixed, we "should" end up using the prebuilt wheels. + # + # ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels)' + # + # Likewise, but using pipenv using Pipfile-dist (= SAGE_ROOT/Pipfile). + # This also fixes the concrete dependencies (at least for some packages). + # + # ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels-pipenv-dist)' + # + # Build using the dependencies declared in pyproject.toml and setup.cfg (install-requires) only. + # Use the wheels built and stored by the Sage distribution, + # and additionally allow packages from PyPI. + # + # Because the version ranges will allow for packages to come in from PyPI (in source or wheel form), + # this is likely to fail because we do not have control over the configuration of these packages. + # + # ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels-norequirements)' + # + # Likewise, but using pipenv + # + # ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels-pipenv)' + # + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + # No build isolation for PEP 517 packages - use what is already in the environment + # Note that this pip env "NO" variable uses inverted logic: + # PIP_NO_BUILD_ISOLATION=False means don't use build isolation. + # See https://github.com/conda/conda-build/blob/8f1b3517fd0c816ec78b6dadf4a912b849ecd58a/conda_build/build.py#L2574 + nobuildisolation: PIP_NO_BUILD_ISOLATION=false + # Do not write or use Pipfile.lock -- we cannot seem to set its location, + # so we cannot isolate it in the tox environment. + pipenv: PIPENV_SKIP_LOCK=true + +[testenv] +deps = + pipenv: pipenv + !pipenv-!norequirements: -rrequirements.txt + ## Needed for fpylll + norequirements: Cython + norequirements: cysignals + +sitepackages = + sitepackages: True + !sitepackages: False + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + +allowlist_externals = + bash + +# Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. +# So we change to another directory when running commands. +change_dir = {env_tmp_dir} + +commands = + python -c 'import sage.all; print(sage.all.__file__)' + + # We check that the "sage" script invokes the correct Python. + sage -c 'import sys; print("sys.path =", sys.path); import sage.all; print(sage.all.__file__)' + + sage -t -p --force-lib --initial --installed + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-pipenv-dist] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-pipenv] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-standard/MANIFEST.in b/pkgs/sagemath-standard/MANIFEST.in deleted file mode 120000 index 00f2f3dd9e9..00000000000 --- a/pkgs/sagemath-standard/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -../../src/MANIFEST.in \ No newline at end of file diff --git a/pkgs/sagemath-standard/meson.build b/pkgs/sagemath-standard/meson.build new file mode 100644 index 00000000000..243f048a530 --- /dev/null +++ b/pkgs/sagemath-standard/meson.build @@ -0,0 +1,50 @@ +project( + 'sagemath-standard', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +# same list in setup.py +set_variable('distribution_', true) # catch-all +set_variable('distribution_sagemath_objects', true) +set_variable('distribution_sagemath_brial', true) +set_variable('distribution_sagemath_categories', true) +set_variable('distribution_sagemath_combinat', true) +set_variable('distribution_sagemath_eclib', true) +set_variable('distribution_sagemath_environment', true) +set_variable('distribution_sagemath_flint', true) +set_variable('distribution_sagemath_gap', true) +set_variable('distribution_sagemath_giac', true) +set_variable('distribution_sagemath_glpk', true) +set_variable('distribution_sagemath_graphs', true) +set_variable('distribution_sagemath_groups', true) +set_variable('distribution_sagemath_homfly', true) +set_variable('distribution_sagemath_lcalc', true) +set_variable('distribution_sagemath_libbraiding', true) +set_variable('distribution_sagemath_libecm', true) +set_variable('distribution_sagemath_linbox', true) +set_variable('distribution_sagemath_modules', true) +set_variable('distribution_sagemath_mpmath', true) +set_variable('distribution_sagemath_ntl', true) +set_variable('distribution_sagemath_objects', true) +set_variable('distribution_sagemath_pari', true) +set_variable('distribution_sagemath_plot', true) +set_variable('distribution_sagemath_polyhedra', true) +set_variable('distribution_sagemath_repl', true) +set_variable('distribution_sagemath_schemes', true) +set_variable('distribution_sagemath_singular', true) +set_variable('distribution_sagemath_symbolics', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-standard/pyproject.toml b/pkgs/sagemath-standard/pyproject-monolithic.toml similarity index 100% rename from pkgs/sagemath-standard/pyproject.toml rename to pkgs/sagemath-standard/pyproject-monolithic.toml diff --git a/pkgs/sagemath-standard/pyproject-monolithic.toml.m4 b/pkgs/sagemath-standard/pyproject-monolithic.toml.m4 new file mode 120000 index 00000000000..25dbae84866 --- /dev/null +++ b/pkgs/sagemath-standard/pyproject-monolithic.toml.m4 @@ -0,0 +1 @@ +../../src/pyproject.toml.m4 \ No newline at end of file diff --git a/pkgs/sagemath-standard/pyproject.toml.m4 b/pkgs/sagemath-standard/pyproject.toml.m4 new file mode 100644 index 00000000000..4e5bf841745 --- /dev/null +++ b/pkgs/sagemath-standard/pyproject.toml.m4 @@ -0,0 +1,31 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_setuptools +] +build-backend = "setuptools.build_meta" + +[project] +name = "sagemath-standard" +description = "Sage: Open Source Mathematics Software: Standard Python Library" +dependencies = [ + SPKG_INSTALL_REQUIRES_sagemath_standard_no_symbolics + SPKG_INSTALL_REQUIRES_sagemath_symbolics +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +r = [SPKG_INSTALL_REQUIRES_rpy2] + +[tool.setuptools] +license-files = ["LICENSE.txt"] +include-package-data = false + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} diff --git a/pkgs/sagemath-standard/sage-cython-native-file.ini b/pkgs/sagemath-standard/sage-cython-native-file.ini new file mode 120000 index 00000000000..e9a14ce871a --- /dev/null +++ b/pkgs/sagemath-standard/sage-cython-native-file.ini @@ -0,0 +1 @@ +../sagemath-objects/sage-cython-native-file.ini \ No newline at end of file diff --git a/pkgs/sagemath-standard/setup.cfg b/pkgs/sagemath-standard/setup.cfg deleted file mode 120000 index ba9b315730a..00000000000 --- a/pkgs/sagemath-standard/setup.cfg +++ /dev/null @@ -1 +0,0 @@ -../../src/setup.cfg \ No newline at end of file diff --git a/pkgs/sagemath-standard/setup.cfg.m4 b/pkgs/sagemath-standard/setup.cfg.m4 deleted file mode 120000 index 8934d7b5955..00000000000 --- a/pkgs/sagemath-standard/setup.cfg.m4 +++ /dev/null @@ -1 +0,0 @@ -../../src/setup.cfg.m4 \ No newline at end of file diff --git a/pkgs/sagemath-standard/setup.py b/pkgs/sagemath-standard/setup.py deleted file mode 100755 index 95c1609cf1c..00000000000 --- a/pkgs/sagemath-standard/setup.py +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env python - -import os -import sys -import time -# Import setuptools before importing distutils, so that setuptools -# can replace distutils by its own vendored copy. -import setuptools -from distutils import log -from setuptools import setup - -# Work around a Cython problem in Python 3.8.x on macOS -# https://github.com/cython/cython/issues/3262 -if os.uname().sysname == 'Darwin': - import multiprocessing - multiprocessing.set_start_method('fork', force=True) - -# If build isolation is not in use and setuptools_scm is installed, -# then its file_finders entry point is invoked, which we don't need. -# Workaround from ​https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286 -try: - import setuptools_scm.integration - setuptools_scm.integration.find_files = lambda _: [] -except ImportError: - pass - -# Different workaround: disable `walk_revctrl` in setuptools -# This is needed for setuptools_scm >= 8, should work for any version -import setuptools.command.egg_info -setuptools.command.egg_info.walk_revctrl = lambda: () - -######################################################### -### Set source directory -######################################################### - -# PEP 517 builds do not have . in sys.path -sys.path.insert(0, os.path.dirname(__file__)) - -import sage.env -sage.env.SAGE_SRC = os.getcwd() -from sage.env import * - -######################################################### -### Configuration -######################################################### - -from sage_setup.excepthook import excepthook -sys.excepthook = excepthook - -from sage_setup.setenv import setenv -setenv() - -from sage_setup.command.sage_build_cython import sage_build_cython -from sage_setup.command.sage_build_ext import sage_build_ext -from sage_setup.command.sage_install import sage_develop, sage_install - -cmdclass = dict(build_cython=sage_build_cython, - build_ext=sage_build_ext, - develop=sage_develop, - install=sage_install) - -######################################################### -### Discovering Sources -######################################################### - -if any(x in sys.argv - for x in ['build', 'build_ext', 'bdist_wheel', 'install']): - log.info("Generating auto-generated sources") - from sage_setup.autogen import autogen_all - autogen_all() - -# TODO: This should be quiet by default -print("Discovering Python/Cython source code....") -t = time.time() -distributions = ['sagemath-categories', - 'sagemath-environment', - 'sagemath-objects', - 'sagemath-repl', - ''] -log.warn('distributions = {0}'.format(distributions)) -from sage_setup.find import find_python_sources -python_packages, python_modules, cython_modules = find_python_sources( - SAGE_SRC, ['sage'], distributions=distributions) - -log.debug('python_packages = {0}'.format(python_packages)) -log.debug('python_modules = {0}'.format(python_modules)) -log.debug('cython_modules = {0}'.format(cython_modules)) - -print("Discovered Python/Cython sources, time: %.2f seconds." % (time.time() - t)) - -######################################################### -### Distutils -######################################################### - -code = setup( - packages=python_packages, - cmdclass=cmdclass, - ext_modules=cython_modules, -) diff --git a/pkgs/sagemath-standard/tox.ini b/pkgs/sagemath-standard/tox.ini index 0ac97f8a021..cc8763ef725 100644 --- a/pkgs/sagemath-standard/tox.ini +++ b/pkgs/sagemath-standard/tox.ini @@ -17,7 +17,7 @@ [tox] envlist = # Build and test without using the concrete dependencies specified by requirements.txt, - # using the dependencies declared in pyproject.toml and setup.cfg (install-requires) only: + # using the dependencies declared in pyproject.toml (build-system requires, dependencies) only: # Still use ONLY the wheels built and stored by the Sage distribution (no PyPI). # # ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' @@ -58,7 +58,7 @@ envlist = # # ./sage -sh -c '(cd pkgs/sagemath-standard && tox -v -v -v -e sagepython-sagewheels-pipenv-dist)' # - # Build using the dependencies declared in pyproject.toml and setup.cfg (install-requires) only. + # Build using the dependencies declared in pyproject.toml (build-system requires, dependencies) only: # Use the wheels built and stored by the Sage distribution, # and additionally allow packages from PyPI. # @@ -132,6 +132,8 @@ passenv = {[pkgenv]passenv} setenv = {[pkgenv]setenv} # Sage scripts such as sage-runtests like to use $HOME/.sage HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist allowlist_externals = bash @@ -146,7 +148,7 @@ commands = # We check that the "sage" script invokes the correct Python. sage -c 'import sys; print("sys.path =", sys.path); import sage.all; print(sage.all.__file__)' - sage -t -p --all + sage -t -p --force-lib --initial --installed [testenv:.tox] # Allow access to PyPI for auto-provisioning a suitable tox version diff --git a/pkgs/sagemath-symbolics/MANIFEST.in.m4 b/pkgs/sagemath-symbolics/MANIFEST.in.m4 new file mode 100644 index 00000000000..735aa1973a1 --- /dev/null +++ b/pkgs/sagemath-symbolics/MANIFEST.in.m4 @@ -0,0 +1,62 @@ +dnl MANIFEST.in is generated from this file by SAGE_ROOT/bootstrap via m4. +prune sage + +include VERSION.txt + +prune .tox +exclude *.m4 +include requirements.txt + +graft sage/symbolic +# exclude what is included in sagemath-categories +exclude sage/symbolic/symbols.p* +exclude sage/symbolic/function.p* + +include sage/calculus/all.p* +include sage/calculus/calculus.p* +include sage/calculus/desolvers.p* +include sage/calculus/predefined.p* +include sage/calculus/tests.p* +include sage/calculus/var.p* + +graft sage/manifolds + +graft sage/geometry/riemannian_manifolds +graft sage/geometry/hyperbolic_space +graft sage/dynamics/complex_dynamics + +include sage/modules/vector_*symbol*.p* +include sage/matrix/matrix_symbolic_*.p* + +#graft sage/libs/giac +graft sage/libs/pynac +include sage/libs/ecl.p* +include sage/libs/eclsig.h + +include sage/interfaces/fricas.p* +include sage/interfaces/giac.p* +include sage/interfaces/magma*.p* +include sage/interfaces/maple*.p* +include sage/interfaces/mathematica.p* +include sage/interfaces/mathics.p* +include sage/interfaces/maxima*.p* +include sage/interfaces/qepcad.p* +include sage/interfaces/sympy*.p* +include sage/interfaces/tides.p* + +include sage/interfaces/sage-maxima.lisp + +graft sage/ext_data/kenzo +graft sage/ext_data/magma + +global-exclude all__sagemath_*.py +global-include all__sagemath_symbolics.py + +global-exclude __pycache__ +global-exclude *.py[co] +global-exclude *.bak +global-exclude *.so +global-exclude *~ +prune .tox +prune build +prune dist diff --git a/pkgs/sagemath-symbolics/README.rst b/pkgs/sagemath-symbolics/README.rst new file mode 100644 index 00000000000..13560430035 --- /dev/null +++ b/pkgs/sagemath-symbolics/README.rst @@ -0,0 +1,57 @@ +=========================================================== + Sage: Open Source Mathematics Software: Symbolic calculus +=========================================================== + +About SageMath +-------------- + + "Creating a Viable Open Source Alternative to + Magma, Maple, Mathematica, and MATLAB" + + Copyright (C) 2005-2023 The Sage Development Team + + https://www.sagemath.org + +SageMath fully supports all major Linux distributions, recent versions of macOS, and Windows (using Cygwin or Windows Subsystem for Linux). + +The traditional and recommended way to install SageMath is from source via Sage-the-distribution (https://www.sagemath.org/download-source.html). Sage-the-distribution first builds a large number of open source packages from source (unless it finds suitable versions installed in the system) and then installs the Sage Library (sagelib, implemented in Python and Cython). + + +About this experimental pip-installable source distribution +----------------------------------------------------------- + +This pip-installable source distribution `sagemath-symbolics` is an experimental distribution of a part of the Sage Library. Use at your own risk. It provides a small subset of the modules of the Sage library ("sagelib", `sagemath-standard`). + + +What is included +---------------- + +* `Symbolic Calculus `_ + +* `Pynac `_ (fork of GiNaC) + +* `Maxima `_, running on `ECL `_ + +* Arithmetic Functions, `Elementary and Special Functions `_ + (via `sagemath-categories `_) + +* `Asymptotic Expansions `_ + +* `Topological, Differentiable, Pseudo-Riemannian, Poisson Manifolds `_ + +* `Hyperbolic Geometry `_ + + + +Available as extras, from other distributions +--------------------------------------------- + +`pip install "sagemath-symbolics[giac]"` + Computer algebra system `GIAC `_, via `sagemath-giac `_ + +`pip install "sagemath-symbolics[primecount]"` + `Prime counting function `_ + implementation `primecount `_, via `primecountpy `_ + +`pip install "sagemath-symbolics[sympy]"` + Python library for symbolic mathematics / computer algebra system `SymPy `_ diff --git a/pkgs/sagemath-symbolics/VERSION.txt b/pkgs/sagemath-symbolics/VERSION.txt new file mode 120000 index 00000000000..43f4773d7de --- /dev/null +++ b/pkgs/sagemath-symbolics/VERSION.txt @@ -0,0 +1 @@ +../../src/VERSION.txt \ No newline at end of file diff --git a/pkgs/sagemath-symbolics/known-test-failures.json b/pkgs/sagemath-symbolics/known-test-failures.json new file mode 100644 index 00000000000..becfad6a7db --- /dev/null +++ b/pkgs/sagemath-symbolics/known-test-failures.json @@ -0,0 +1,3995 @@ +{ + "sage.algebras.clifford_algebra": { + "failed": true, + "ntests": 589 + }, + "sage.algebras.clifford_algebra_element": { + "ntests": 148 + }, + "sage.algebras.exterior_algebra_groebner": { + "ntests": 61 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra": { + "ntests": 159 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_element": { + "ntests": 98 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_ideal": { + "ntests": 36 + }, + "sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra_morphism": { + "ntests": 56 + }, + "sage.algebras.octonion_algebra": { + "ntests": 222 + }, + "sage.algebras.orlik_solomon": { + "ntests": 66 + }, + "sage.algebras.orlik_terao": { + "ntests": 78 + }, + "sage.all__sagemath_flint": { + "failed": true, + "ntests": 5 + }, + "sage.all__sagemath_modules": { + "ntests": 4 + }, + "sage.all__sagemath_pari": { + "ntests": 3 + }, + "sage.arith.functions": { + "ntests": 40 + }, + "sage.arith.misc": { + "failed": true, + "ntests": 1045 + }, + "sage.arith.numerical_approx": { + "ntests": 4 + }, + "sage.arith.numerical_approx.pxd": { + "ntests": 5 + }, + "sage.arith.power": { + "ntests": 16 + }, + "sage.arith.rational_reconstruction": { + "ntests": 1 + }, + "sage.arith.srange": { + "ntests": 77 + }, + "sage.calculus.all": { + "failed": true, + "ntests": 45 + }, + "sage.calculus.calculus": { + "failed": true, + "ntests": 460 + }, + "sage.calculus.desolvers": { + "failed": true, + "ntests": 222 + }, + "sage.calculus.functional": { + "failed": true, + "ntests": 119 + }, + "sage.calculus.functions": { + "failed": true, + "ntests": 15 + }, + "sage.calculus.integration": { + "ntests": 55 + }, + "sage.calculus.interpolation": { + "ntests": 66 + }, + "sage.calculus.interpolators": { + "failed": true, + "ntests": 53 + }, + "sage.calculus.ode": { + "ntests": 34 + }, + "sage.calculus.riemann": { + "failed": true, + "ntests": 145 + }, + "sage.calculus.test_sympy": { + "ntests": 78 + }, + "sage.calculus.tests": { + "failed": true, + "ntests": 78 + }, + "sage.calculus.transforms.dft": { + "failed": true, + "ntests": 103 + }, + "sage.calculus.transforms.dwt": { + "ntests": 14 + }, + "sage.calculus.transforms.fft": { + "ntests": 57 + }, + "sage.calculus.var": { + "failed": true, + "ntests": 98 + }, + "sage.calculus.wester": { + "failed": true, + "ntests": 202 + }, + "sage.categories.action": { + "ntests": 91 + }, + "sage.categories.additive_groups": { + "ntests": 9 + }, + "sage.categories.additive_magmas": { + "failed": true, + "ntests": 160 + }, + "sage.categories.additive_monoids": { + "ntests": 16 + }, + "sage.categories.additive_semigroups": { + "ntests": 28 + }, + "sage.categories.affine_weyl_groups": { + "ntests": 6 + }, + "sage.categories.algebra_ideals": { + "ntests": 6 + }, + "sage.categories.algebra_modules": { + "ntests": 8 + }, + "sage.categories.algebras": { + "ntests": 20 + }, + "sage.categories.algebras_with_basis": { + "ntests": 10 + }, + "sage.categories.aperiodic_semigroups": { + "ntests": 1 + }, + "sage.categories.associative_algebras": { + "ntests": 5 + }, + "sage.categories.bialgebras_with_basis": { + "ntests": 8 + }, + "sage.categories.bimodules": { + "ntests": 15 + }, + "sage.categories.cartesian_product": { + "ntests": 42 + }, + "sage.categories.category": { + "ntests": 417 + }, + "sage.categories.category_cy_helper": { + "ntests": 27 + }, + "sage.categories.category_singleton": { + "ntests": 59 + }, + "sage.categories.category_types": { + "ntests": 80 + }, + "sage.categories.category_with_axiom": { + "ntests": 328 + }, + "sage.categories.chain_complexes": { + "failed": true, + "ntests": 33 + }, + "sage.categories.coalgebras_with_basis": { + "ntests": 5 + }, + "sage.categories.coercion_methods": { + "ntests": 6 + }, + "sage.categories.commutative_additive_groups": { + "ntests": 21 + }, + "sage.categories.commutative_additive_monoids": { + "ntests": 5 + }, + "sage.categories.commutative_additive_semigroups": { + "ntests": 6 + }, + "sage.categories.commutative_algebra_ideals": { + "ntests": 8 + }, + "sage.categories.commutative_algebras": { + "ntests": 10 + }, + "sage.categories.commutative_ring_ideals": { + "ntests": 6 + }, + "sage.categories.commutative_rings": { + "failed": true, + "ntests": 56 + }, + "sage.categories.complete_discrete_valuation": { + "ntests": 8 + }, + "sage.categories.complex_reflection_groups": { + "ntests": 12 + }, + "sage.categories.covariant_functorial_construction": { + "failed": true, + "ntests": 65 + }, + "sage.categories.coxeter_groups": { + "ntests": 184 + }, + "sage.categories.cw_complexes": { + "ntests": 36 + }, + "sage.categories.discrete_valuation": { + "ntests": 31 + }, + "sage.categories.distributive_magmas_and_additive_magmas": { + "failed": true, + "ntests": 13 + }, + "sage.categories.division_rings": { + "ntests": 11 + }, + "sage.categories.domains": { + "ntests": 6 + }, + "sage.categories.drinfeld_modules": { + "failed": true, + "ntests": 226 + }, + "sage.categories.dual": { + "ntests": 1 + }, + "sage.categories.enumerated_sets": { + "ntests": 132 + }, + "sage.categories.euclidean_domains": { + "ntests": 22 + }, + "sage.categories.examples.commutative_additive_monoids": { + "ntests": 14 + }, + "sage.categories.examples.commutative_additive_semigroups": { + "ntests": 28 + }, + "sage.categories.examples.cw_complexes": { + "ntests": 33 + }, + "sage.categories.examples.facade_sets": { + "ntests": 21 + }, + "sage.categories.examples.filtered_algebras_with_basis": { + "failed": true, + "ntests": 25 + }, + "sage.categories.examples.finite_dimensional_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.examples.finite_dimensional_lie_algebras_with_basis": { + "ntests": 78 + }, + "sage.categories.examples.finite_enumerated_sets": { + "ntests": 29 + }, + "sage.categories.examples.finite_monoids": { + "ntests": 15 + }, + "sage.categories.examples.finite_semigroups": { + "ntests": 25 + }, + "sage.categories.examples.finite_weyl_groups": { + "ntests": 24 + }, + "sage.categories.examples.graded_connected_hopf_algebras_with_basis": { + "ntests": 14 + }, + "sage.categories.examples.graphs": { + "ntests": 24 + }, + "sage.categories.examples.infinite_enumerated_sets": { + "ntests": 35 + }, + "sage.categories.examples.lie_algebras": { + "ntests": 14 + }, + "sage.categories.examples.magmas": { + "ntests": 20 + }, + "sage.categories.examples.manifolds": { + "ntests": 15 + }, + "sage.categories.examples.monoids": { + "ntests": 16 + }, + "sage.categories.examples.posets": { + "ntests": 29 + }, + "sage.categories.examples.semigroups": { + "ntests": 83 + }, + "sage.categories.examples.semigroups_cython": { + "ntests": 47 + }, + "sage.categories.examples.sets_cat": { + "ntests": 155 + }, + "sage.categories.examples.sets_with_grading": { + "ntests": 14 + }, + "sage.categories.facade_sets": { + "ntests": 27 + }, + "sage.categories.fields": { + "ntests": 120 + }, + "sage.categories.filtered_algebras": { + "failed": true, + "ntests": 5 + }, + "sage.categories.filtered_algebras_with_basis": { + "failed": true, + "ntests": 63 + }, + "sage.categories.filtered_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.filtered_modules": { + "ntests": 18 + }, + "sage.categories.filtered_modules_with_basis": { + "failed": true, + "ntests": 80 + }, + "sage.categories.finite_complex_reflection_groups": { + "ntests": 22 + }, + "sage.categories.finite_dimensional_algebras_with_basis": { + "ntests": 38 + }, + "sage.categories.finite_dimensional_bialgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_coalgebras_with_basis": { + "ntests": 4 + }, + "sage.categories.finite_dimensional_graded_lie_algebras_with_basis": { + "ntests": 16 + }, + "sage.categories.finite_dimensional_hopf_algebras_with_basis": { + "ntests": 3 + }, + "sage.categories.finite_dimensional_lie_algebras_with_basis": { + "ntests": 25 + }, + "sage.categories.finite_dimensional_modules_with_basis": { + "failed": true, + "ntests": 87 + }, + "sage.categories.finite_dimensional_nilpotent_lie_algebras_with_basis": { + "ntests": 12 + }, + "sage.categories.finite_dimensional_semisimple_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.finite_enumerated_sets": { + "ntests": 115 + }, + "sage.categories.finite_fields": { + "ntests": 14 + }, + "sage.categories.finite_lattice_posets": { + "ntests": 7 + }, + "sage.categories.finite_monoids": { + "ntests": 18 + }, + "sage.categories.finite_semigroups": { + "ntests": 11 + }, + "sage.categories.finite_sets": { + "ntests": 14 + }, + "sage.categories.finite_weyl_groups": { + "ntests": 6 + }, + "sage.categories.finitely_generated_lambda_bracket_algebras": { + "ntests": 1 + }, + "sage.categories.finitely_generated_magmas": { + "ntests": 6 + }, + "sage.categories.finitely_generated_semigroups": { + "ntests": 27 + }, + "sage.categories.function_fields": { + "ntests": 8 + }, + "sage.categories.functor": { + "failed": true, + "ntests": 137 + }, + "sage.categories.gcd_domains": { + "ntests": 5 + }, + "sage.categories.generalized_coxeter_groups": { + "ntests": 12 + }, + "sage.categories.graded_algebras": { + "ntests": 6 + }, + "sage.categories.graded_algebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_bialgebras": { + "ntests": 3 + }, + "sage.categories.graded_bialgebras_with_basis": { + "ntests": 3 + }, + "sage.categories.graded_coalgebras": { + "ntests": 6 + }, + "sage.categories.graded_coalgebras_with_basis": { + "ntests": 6 + }, + "sage.categories.graded_hopf_algebras": { + "ntests": 3 + }, + "sage.categories.graded_hopf_algebras_with_basis": { + "ntests": 17 + }, + "sage.categories.graded_lie_algebras": { + "ntests": 12 + }, + "sage.categories.graded_lie_algebras_with_basis": { + "ntests": 5 + }, + "sage.categories.graded_lie_conformal_algebras": { + "ntests": 2 + }, + "sage.categories.graded_modules": { + "ntests": 16 + }, + "sage.categories.graded_modules_with_basis": { + "ntests": 13 + }, + "sage.categories.graphs": { + "ntests": 25 + }, + "sage.categories.group_algebras": { + "ntests": 8 + }, + "sage.categories.groups": { + "ntests": 21 + }, + "sage.categories.h_trivial_semigroups": { + "ntests": 4 + }, + "sage.categories.hecke_modules": { + "ntests": 14 + }, + "sage.categories.homset": { + "ntests": 200 + }, + "sage.categories.homsets": { + "ntests": 56 + }, + "sage.categories.hopf_algebras": { + "ntests": 11 + }, + "sage.categories.hopf_algebras_with_basis": { + "ntests": 7 + }, + "sage.categories.infinite_enumerated_sets": { + "ntests": 13 + }, + "sage.categories.integral_domains": { + "ntests": 19 + }, + "sage.categories.isomorphic_objects": { + "ntests": 2 + }, + "sage.categories.j_trivial_semigroups": { + "ntests": 1 + }, + "sage.categories.kac_moody_algebras": { + "ntests": 3 + }, + "sage.categories.l_trivial_semigroups": { + "ntests": 5 + }, + "sage.categories.lambda_bracket_algebras": { + "ntests": 7 + }, + "sage.categories.lattice_posets": { + "ntests": 6 + }, + "sage.categories.left_modules": { + "ntests": 4 + }, + "sage.categories.lie_algebras": { + "ntests": 51 + }, + "sage.categories.lie_algebras_with_basis": { + "ntests": 7 + }, + "sage.categories.lie_conformal_algebras": { + "ntests": 9 + }, + "sage.categories.lie_groups": { + "ntests": 9 + }, + "sage.categories.magmas": { + "ntests": 136 + }, + "sage.categories.magmas_and_additive_magmas": { + "ntests": 21 + }, + "sage.categories.magmatic_algebras": { + "ntests": 12 + }, + "sage.categories.manifolds": { + "ntests": 55 + }, + "sage.categories.map": { + "ntests": 362 + }, + "sage.categories.matrix_algebras": { + "ntests": 3 + }, + "sage.categories.metric_spaces": { + "failed": true, + "ntests": 68 + }, + "sage.categories.modular_abelian_varieties": { + "ntests": 8 + }, + "sage.categories.modules": { + "ntests": 133 + }, + "sage.categories.modules_with_basis": { + "failed": true, + "ntests": 405 + }, + "sage.categories.monoid_algebras": { + "ntests": 4 + }, + "sage.categories.monoids": { + "ntests": 56 + }, + "sage.categories.morphism": { + "ntests": 99 + }, + "sage.categories.number_fields": { + "failed": true, + "ntests": 18 + }, + "sage.categories.objects": { + "ntests": 12 + }, + "sage.categories.partially_ordered_monoids": { + "ntests": 4 + }, + "sage.categories.permutation_groups": { + "ntests": 6 + }, + "sage.categories.pointed_sets": { + "ntests": 3 + }, + "sage.categories.polyhedra": { + "ntests": 3 + }, + "sage.categories.poor_man_map": { + "ntests": 59 + }, + "sage.categories.primer": { + "ntests": 146 + }, + "sage.categories.principal_ideal_domains": { + "ntests": 10 + }, + "sage.categories.pushout": { + "failed": true, + "ntests": 731 + }, + "sage.categories.quantum_group_representations": { + "ntests": 10 + }, + "sage.categories.quotient_fields": { + "failed": true, + "ntests": 110 + }, + "sage.categories.quotients": { + "ntests": 2 + }, + "sage.categories.r_trivial_semigroups": { + "ntests": 3 + }, + "sage.categories.realizations": { + "ntests": 16 + }, + "sage.categories.right_modules": { + "ntests": 4 + }, + "sage.categories.ring_ideals": { + "ntests": 9 + }, + "sage.categories.rings": { + "failed": true, + "ntests": 146 + }, + "sage.categories.rngs": { + "ntests": 6 + }, + "sage.categories.schemes": { + "ntests": 23 + }, + "sage.categories.semigroups": { + "ntests": 70 + }, + "sage.categories.semirings": { + "ntests": 6 + }, + "sage.categories.semisimple_algebras": { + "ntests": 9 + }, + "sage.categories.sets_cat": { + "ntests": 403 + }, + "sage.categories.sets_with_grading": { + "ntests": 20 + }, + "sage.categories.sets_with_partial_maps": { + "ntests": 4 + }, + "sage.categories.shephard_groups": { + "ntests": 5 + }, + "sage.categories.signed_tensor": { + "ntests": 10 + }, + "sage.categories.simplicial_complexes": { + "ntests": 11 + }, + "sage.categories.simplicial_sets": { + "ntests": 8 + }, + "sage.categories.subobjects": { + "ntests": 2 + }, + "sage.categories.super_algebras": { + "ntests": 7 + }, + "sage.categories.super_algebras_with_basis": { + "ntests": 22 + }, + "sage.categories.super_hopf_algebras_with_basis": { + "ntests": 6 + }, + "sage.categories.super_lie_conformal_algebras": { + "ntests": 3 + }, + "sage.categories.super_modules": { + "ntests": 18 + }, + "sage.categories.super_modules_with_basis": { + "ntests": 38 + }, + "sage.categories.supercommutative_algebras": { + "ntests": 8 + }, + "sage.categories.tensor": { + "ntests": 9 + }, + "sage.categories.topological_spaces": { + "ntests": 27 + }, + "sage.categories.triangular_kac_moody_algebras": { + "ntests": 2 + }, + "sage.categories.tutorial": { + "ntests": 4 + }, + "sage.categories.unique_factorization_domains": { + "ntests": 39 + }, + "sage.categories.unital_algebras": { + "ntests": 24 + }, + "sage.categories.vector_bundles": { + "ntests": 28 + }, + "sage.categories.vector_spaces": { + "ntests": 42 + }, + "sage.categories.with_realizations": { + "failed": true, + "ntests": 32 + }, + "sage.coding.abstract_code": { + "ntests": 136 + }, + "sage.coding.bch_code": { + "failed": true, + "ntests": 82 + }, + "sage.coding.binary_code": { + "ntests": 336 + }, + "sage.coding.bounds_catalog": { + "ntests": 1 + }, + "sage.coding.channel": { + "ntests": 116 + }, + "sage.coding.channels_catalog": { + "ntests": 1 + }, + "sage.coding.code_bounds": { + "ntests": 43 + }, + "sage.coding.code_constructions": { + "failed": true, + "ntests": 118 + }, + "sage.coding.codes_catalog": { + "ntests": 1 + }, + "sage.coding.cyclic_code": { + "failed": true, + "ntests": 274 + }, + "sage.coding.databases": { + "ntests": 1 + }, + "sage.coding.decoder": { + "ntests": 62 + }, + "sage.coding.decoders_catalog": { + "ntests": 1 + }, + "sage.coding.encoder": { + "ntests": 72 + }, + "sage.coding.encoders_catalog": { + "ntests": 1 + }, + "sage.coding.extended_code": { + "ntests": 90 + }, + "sage.coding.gabidulin_code": { + "failed": true, + "ntests": 235 + }, + "sage.coding.golay_code": { + "ntests": 46 + }, + "sage.coding.goppa_code": { + "failed": true, + "ntests": 114 + }, + "sage.coding.grs_code": { + "failed": true, + "ntests": 530 + }, + "sage.coding.guruswami_sudan.gs_decoder": { + "ntests": 138 + }, + "sage.coding.guruswami_sudan.interpolation": { + "failed": true, + "ntests": 47 + }, + "sage.coding.guruswami_sudan.utils": { + "ntests": 19 + }, + "sage.coding.hamming_code": { + "ntests": 18 + }, + "sage.coding.information_set_decoder": { + "ntests": 172 + }, + "sage.coding.kasami_codes": { + "failed": true, + "ntests": 43 + }, + "sage.coding.linear_code": { + "failed": true, + "ntests": 318 + }, + "sage.coding.linear_code_no_metric": { + "ntests": 230 + }, + "sage.coding.linear_rank_metric": { + "ntests": 138 + }, + "sage.coding.parity_check_code": { + "ntests": 48 + }, + "sage.coding.punctured_code": { + "failed": true, + "ntests": 111 + }, + "sage.coding.reed_muller_code": { + "ntests": 168 + }, + "sage.coding.source_coding.huffman": { + "ntests": 59 + }, + "sage.coding.subfield_subcode": { + "failed": true, + "ntests": 65 + }, + "sage.combinat.backtrack": { + "ntests": 27 + }, + "sage.combinat.cartesian_product": { + "ntests": 65 + }, + "sage.combinat.combinat": { + "failed": true, + "ntests": 369 + }, + "sage.combinat.combinat_cython": { + "ntests": 21 + }, + "sage.combinat.combination": { + "ntests": 91 + }, + "sage.combinat.combinatorial_map": { + "ntests": 73 + }, + "sage.combinat.composition": { + "ntests": 268 + }, + "sage.combinat.dlx": { + "ntests": 65 + }, + "sage.combinat.free_module": { + "ntests": 365 + }, + "sage.combinat.integer_lists.base": { + "ntests": 116 + }, + "sage.combinat.integer_lists.invlex": { + "ntests": 303 + }, + "sage.combinat.integer_lists.lists": { + "ntests": 56 + }, + "sage.combinat.integer_lists.nn": { + "ntests": 5 + }, + "sage.combinat.integer_vector": { + "ntests": 227 + }, + "sage.combinat.matrices.dancing_links": { + "ntests": 238 + }, + "sage.combinat.matrices.dlxcpp": { + "ntests": 13 + }, + "sage.combinat.permutation": { + "failed": true, + "ntests": 1017 + }, + "sage.combinat.permutation_cython": { + "ntests": 39 + }, + "sage.combinat.ranker": { + "ntests": 48 + }, + "sage.combinat.root_system.ambient_space": { + "ntests": 78 + }, + "sage.combinat.root_system.braid_orbit": { + "ntests": 11 + }, + "sage.combinat.root_system.cartan_matrix": { + "ntests": 19 + }, + "sage.combinat.root_system.cartan_type": { + "failed": true, + "ntests": 326 + }, + "sage.combinat.root_system.coxeter_type": { + "ntests": 75 + }, + "sage.combinat.root_system.root_lattice_realization_algebras": { + "failed": true, + "ntests": 246 + }, + "sage.combinat.root_system.root_lattice_realizations": { + "ntests": 286 + }, + "sage.combinat.root_system.root_space": { + "ntests": 48 + }, + "sage.combinat.root_system.root_system": { + "ntests": 94 + }, + "sage.combinat.root_system.type_A": { + "ntests": 51 + }, + "sage.combinat.root_system.type_A_affine": { + "ntests": 25 + }, + "sage.combinat.root_system.type_A_infinity": { + "ntests": 37 + }, + "sage.combinat.root_system.type_B": { + "ntests": 35 + }, + "sage.combinat.root_system.type_BC_affine": { + "ntests": 28 + }, + "sage.combinat.root_system.type_B_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_C": { + "ntests": 35 + }, + "sage.combinat.root_system.type_C_affine": { + "ntests": 20 + }, + "sage.combinat.root_system.type_D": { + "ntests": 33 + }, + "sage.combinat.root_system.type_D_affine": { + "ntests": 16 + }, + "sage.combinat.root_system.type_E": { + "ntests": 46 + }, + "sage.combinat.root_system.type_E_affine": { + "ntests": 17 + }, + "sage.combinat.root_system.type_F": { + "ntests": 34 + }, + "sage.combinat.root_system.type_F_affine": { + "ntests": 16 + }, + "sage.combinat.root_system.type_G": { + "ntests": 38 + }, + "sage.combinat.root_system.type_G_affine": { + "ntests": 16 + }, + "sage.combinat.root_system.type_H": { + "ntests": 15 + }, + "sage.combinat.root_system.type_I": { + "ntests": 17 + }, + "sage.combinat.root_system.type_Q": { + "ntests": 25 + }, + "sage.combinat.root_system.type_affine": { + "ntests": 59 + }, + "sage.combinat.root_system.type_dual": { + "ntests": 123 + }, + "sage.combinat.root_system.type_folded": { + "ntests": 29 + }, + "sage.combinat.root_system.type_marked": { + "ntests": 97 + }, + "sage.combinat.root_system.type_reducible": { + "ntests": 70 + }, + "sage.combinat.root_system.type_relabel": { + "ntests": 107 + }, + "sage.combinat.root_system.type_super_A": { + "ntests": 113 + }, + "sage.combinat.root_system.weight_lattice_realizations": { + "ntests": 88 + }, + "sage.combinat.root_system.weight_space": { + "ntests": 64 + }, + "sage.combinat.subset": { + "ntests": 278 + }, + "sage.combinat.subsets_hereditary": { + "ntests": 10 + }, + "sage.combinat.subsets_pairwise": { + "ntests": 32 + }, + "sage.combinat.tools": { + "ntests": 2 + }, + "sage.combinat.tuple": { + "ntests": 33 + }, + "sage.cpython.atexit": { + "ntests": 19 + }, + "sage.cpython.debug": { + "ntests": 14 + }, + "sage.cpython.dict_del_by_value": { + "ntests": 21 + }, + "sage.cpython.getattr": { + "ntests": 65 + }, + "sage.cpython.string.pxd": { + "ntests": 8 + }, + "sage.cpython.type": { + "ntests": 7 + }, + "sage.cpython.wrapperdescr": { + "ntests": 11 + }, + "sage.crypto.block_cipher.des": { + "ntests": 156 + }, + "sage.crypto.block_cipher.present": { + "ntests": 138 + }, + "sage.crypto.boolean_function": { + "failed": true, + "ntests": 189 + }, + "sage.crypto.lattice": { + "failed": true, + "ntests": 17 + }, + "sage.crypto.lfsr": { + "ntests": 29 + }, + "sage.crypto.mq.mpolynomialsystemgenerator": { + "ntests": 29 + }, + "sage.crypto.mq.rijndael_gf": { + "failed": true, + "ntests": 326 + }, + "sage.crypto.mq.sr": { + "failed": true, + "ntests": 331 + }, + "sage.crypto.sbox": { + "failed": true, + "ntests": 256 + }, + "sage.crypto.sboxes": { + "failed": true, + "ntests": 27 + }, + "sage.data_structures.bitset": { + "ntests": 431 + }, + "sage.data_structures.blas_dict": { + "ntests": 61 + }, + "sage.data_structures.list_of_pairs": { + "ntests": 14 + }, + "sage.data_structures.mutable_poset": { + "ntests": 441 + }, + "sage.doctest.external": { + "ntests": 40 + }, + "sage.doctest.fixtures": { + "ntests": 59 + }, + "sage.doctest.forker": { + "failed": true, + "ntests": 0 + }, + "sage.doctest.parsing": { + "failed": true, + "ntests": 322 + }, + "sage.doctest.reporting": { + "failed": true, + "ntests": 124 + }, + "sage.doctest.sources": { + "ntests": 378 + }, + "sage.doctest.test": { + "ntests": 23 + }, + "sage.doctest.util": { + "ntests": 138 + }, + "sage.dynamics.complex_dynamics.mandel_julia": { + "failed": true, + "ntests": 45 + }, + "sage.env": { + "ntests": 35 + }, + "sage.ext.fast_callable": { + "failed": true, + "ntests": 622 + }, + "sage.ext.fast_eval": { + "ntests": 8 + }, + "sage.ext.memory": { + "ntests": 3 + }, + "sage.features": { + "ntests": 134 + }, + "sage.features.all": { + "failed": true, + "ntests": 14 + }, + "sage.features.bliss": { + "ntests": 6 + }, + "sage.features.cddlib": { + "ntests": 4 + }, + "sage.features.csdp": { + "ntests": 4 + }, + "sage.features.cython": { + "ntests": 3 + }, + "sage.features.databases": { + "ntests": 21 + }, + "sage.features.dvipng": { + "ntests": 4 + }, + "sage.features.ffmpeg": { + "ntests": 4 + }, + "sage.features.four_ti_2": { + "ntests": 5 + }, + "sage.features.gap": { + "ntests": 5 + }, + "sage.features.gfan": { + "ntests": 2 + }, + "sage.features.graph_generators": { + "ntests": 12 + }, + "sage.features.graphviz": { + "ntests": 16 + }, + "sage.features.igraph": { + "ntests": 3 + }, + "sage.features.imagemagick": { + "ntests": 10 + }, + "sage.features.interfaces": { + "ntests": 33 + }, + "sage.features.internet": { + "ntests": 5 + }, + "sage.features.join_feature": { + "ntests": 21 + }, + "sage.features.kenzo": { + "ntests": 4 + }, + "sage.features.latex": { + "ntests": 30 + }, + "sage.features.latte": { + "ntests": 7 + }, + "sage.features.lrs": { + "ntests": 11 + }, + "sage.features.mcqd": { + "ntests": 3 + }, + "sage.features.meataxe": { + "ntests": 3 + }, + "sage.features.mip_backends": { + "ntests": 5 + }, + "sage.features.msolve": { + "ntests": 4 + }, + "sage.features.nauty": { + "ntests": 8 + }, + "sage.features.normaliz": { + "ntests": 3 + }, + "sage.features.palp": { + "ntests": 4 + }, + "sage.features.pandoc": { + "ntests": 4 + }, + "sage.features.pdf2svg": { + "ntests": 4 + }, + "sage.features.phitigra": { + "ntests": 3 + }, + "sage.features.pkg_systems": { + "ntests": 23 + }, + "sage.features.polymake": { + "ntests": 3 + }, + "sage.features.poppler": { + "ntests": 4 + }, + "sage.features.rubiks": { + "ntests": 21 + }, + "sage.features.sagemath": { + "ntests": 127 + }, + "sage.features.singular": { + "ntests": 4 + }, + "sage.features.sphinx": { + "ntests": 3 + }, + "sage.features.tdlib": { + "ntests": 2 + }, + "sage.functions.airy": { + "failed": true, + "ntests": 117 + }, + "sage.functions.bessel": { + "failed": true, + "ntests": 323 + }, + "sage.functions.error": { + "failed": true, + "ntests": 119 + }, + "sage.functions.exp_integral": { + "failed": true, + "ntests": 263 + }, + "sage.functions.gamma": { + "failed": true, + "ntests": 212 + }, + "sage.functions.generalized": { + "ntests": 111 + }, + "sage.functions.hyperbolic": { + "failed": true, + "ntests": 183 + }, + "sage.functions.hypergeometric": { + "failed": true, + "ntests": 177 + }, + "sage.functions.jacobi": { + "failed": true, + "ntests": 187 + }, + "sage.functions.log": { + "failed": true, + "ntests": 268 + }, + "sage.functions.min_max": { + "failed": true, + "ntests": 68 + }, + "sage.functions.orthogonal_polys": { + "failed": true, + "ntests": 480 + }, + "sage.functions.other": { + "failed": true, + "ntests": 472 + }, + "sage.functions.piecewise": { + "failed": true, + "ntests": 232 + }, + "sage.functions.special": { + "failed": true, + "ntests": 159 + }, + "sage.functions.spike_function": { + "ntests": 26 + }, + "sage.functions.transcendental": { + "failed": true, + "ntests": 102 + }, + "sage.functions.trig": { + "failed": true, + "ntests": 261 + }, + "sage.functions.wigner": { + "ntests": 50 + }, + "sage.geometry.abc": { + "ntests": 10 + }, + "sage.geometry.hyperbolic_space.hyperbolic_coercion": { + "failed": true, + "ntests": 133 + }, + "sage.geometry.hyperbolic_space.hyperbolic_geodesic": { + "failed": true, + "ntests": 424 + }, + "sage.geometry.hyperbolic_space.hyperbolic_interface": { + "failed": true, + "ntests": 25 + }, + "sage.geometry.hyperbolic_space.hyperbolic_model": { + "failed": true, + "ntests": 219 + }, + "sage.geometry.hyperbolic_space.hyperbolic_point": { + "failed": true, + "ntests": 106 + }, + "sage.geometry.riemannian_manifolds.parametrized_surface3d": { + "failed": true, + "ntests": 288 + }, + "sage.geometry.riemannian_manifolds.surface3d_generators": { + "ntests": 15 + }, + "sage.geometry.toric_lattice": { + "failed": true, + "ntests": 299 + }, + "sage.geometry.toric_lattice_element": { + "ntests": 79 + }, + "sage.groups.abelian_gps.abelian_group": { + "failed": true, + "ntests": 225 + }, + "sage.groups.abelian_gps.abelian_group_element": { + "ntests": 19 + }, + "sage.groups.abelian_gps.element_base": { + "ntests": 43 + }, + "sage.groups.abelian_gps.values": { + "failed": true, + "ntests": 74 + }, + "sage.groups.additive_abelian.additive_abelian_group": { + "failed": true, + "ntests": 75 + }, + "sage.groups.additive_abelian.additive_abelian_wrapper": { + "ntests": 69 + }, + "sage.groups.additive_abelian.qmodnz": { + "ntests": 37 + }, + "sage.groups.additive_abelian.qmodnz_element": { + "ntests": 73 + }, + "sage.groups.affine_gps.affine_group": { + "ntests": 57 + }, + "sage.groups.affine_gps.euclidean_group": { + "ntests": 33 + }, + "sage.groups.affine_gps.group_element": { + "ntests": 90 + }, + "sage.groups.generic": { + "failed": true, + "ntests": 137 + }, + "sage.groups.group": { + "ntests": 41 + }, + "sage.groups.matrix_gps.finitely_generated": { + "ntests": 63 + }, + "sage.groups.matrix_gps.group_element": { + "ntests": 19 + }, + "sage.groups.matrix_gps.linear": { + "ntests": 23 + }, + "sage.groups.matrix_gps.matrix_group": { + "failed": true, + "ntests": 41 + }, + "sage.groups.matrix_gps.named_group": { + "ntests": 18 + }, + "sage.groups.matrix_gps.orthogonal": { + "ntests": 40 + }, + "sage.groups.matrix_gps.symplectic": { + "ntests": 24 + }, + "sage.groups.matrix_gps.unitary": { + "ntests": 26 + }, + "sage.groups.old": { + "ntests": 33 + }, + "sage.groups.pari_group": { + "failed": true, + "ntests": 45 + }, + "sage.groups.perm_gps.partn_ref.canonical_augmentation": { + "ntests": 1 + }, + "sage.groups.perm_gps.partn_ref.data_structures": { + "ntests": 4 + }, + "sage.groups.perm_gps.partn_ref.refinement_binary": { + "ntests": 75 + }, + "sage.groups.perm_gps.partn_ref.refinement_lists": { + "ntests": 3 + }, + "sage.groups.perm_gps.partn_ref.refinement_matrices": { + "ntests": 24 + }, + "sage.groups.perm_gps.partn_ref.refinement_python": { + "ntests": 101 + }, + "sage.groups.perm_gps.partn_ref.refinement_sets": { + "ntests": 156 + }, + "sage.homology.chain_complex": { + "failed": true, + "ntests": 245 + }, + "sage.homology.chain_complex_morphism": { + "ntests": 37 + }, + "sage.homology.chain_homotopy": { + "ntests": 78 + }, + "sage.homology.homology_group": { + "ntests": 18 + }, + "sage.homology.koszul_complex": { + "ntests": 23 + }, + "sage.homology.matrix_utils": { + "ntests": 5 + }, + "sage.interfaces.abc": { + "ntests": 8 + }, + "sage.interfaces.fricas": { + "ntests": 46 + }, + "sage.interfaces.giac": { + "failed": true, + "ntests": 182 + }, + "sage.interfaces.gp": { + "failed": true, + "ntests": 154 + }, + "sage.interfaces.magma": { + "failed": true, + "ntests": 91 + }, + "sage.interfaces.maple": { + "ntests": 20 + }, + "sage.interfaces.mathematica": { + "failed": true, + "ntests": 25 + }, + "sage.interfaces.mathics": { + "failed": true, + "ntests": 30 + }, + "sage.interfaces.maxima": { + "failed": true, + "ntests": 191 + }, + "sage.interfaces.maxima_abstract": { + "failed": true, + "ntests": 237 + }, + "sage.interfaces.maxima_lib": { + "failed": true, + "ntests": 225 + }, + "sage.interfaces.process": { + "ntests": 39 + }, + "sage.interfaces.qepcad": { + "failed": true, + "ntests": 154 + }, + "sage.interfaces.quit": { + "ntests": 21 + }, + "sage.interfaces.sagespawn": { + "ntests": 34 + }, + "sage.interfaces.sympy": { + "failed": true, + "ntests": 319 + }, + "sage.interfaces.sympy_wrapper": { + "ntests": 28 + }, + "sage.interfaces.tab_completion": { + "ntests": 13 + }, + "sage.interfaces.tides": { + "ntests": 120 + }, + "sage.libs.arb.arb_version": { + "ntests": 2 + }, + "sage.libs.arb.arith": { + "ntests": 8 + }, + "sage.libs.ecl": { + "ntests": 204 + }, + "sage.libs.flint.arith": { + "ntests": 44 + }, + "sage.libs.flint.flint": { + "ntests": 6 + }, + "sage.libs.flint.fmpz_poly": { + "ntests": 84 + }, + "sage.libs.flint.nmod_poly_linkage.pxi": { + "ntests": 196 + }, + "sage.libs.flint.qsieve": { + "failed": true, + "ntests": 4 + }, + "sage.libs.flint.ulong_extras": { + "ntests": 3 + }, + "sage.libs.gsl.array": { + "ntests": 22 + }, + "sage.libs.mpmath.ext_impl": { + "ntests": 13 + }, + "sage.libs.mpmath.ext_libmp": { + "ntests": 33 + }, + "sage.libs.mpmath.ext_main": { + "ntests": 381 + }, + "sage.libs.mpmath.sage_utils": { + "failed": true, + "ntests": 57 + }, + "sage.libs.mpmath.utils": { + "ntests": 19 + }, + "sage.libs.ntl.error": { + "ntests": 4 + }, + "sage.libs.ntl.ntl_GF2": { + "ntests": 50 + }, + "sage.libs.ntl.ntl_GF2E": { + "failed": true, + "ntests": 70 + }, + "sage.libs.ntl.ntl_GF2EContext": { + "failed": true, + "ntests": 20 + }, + "sage.libs.ntl.ntl_GF2EX": { + "failed": true, + "ntests": 31 + }, + "sage.libs.ntl.ntl_GF2X": { + "failed": true, + "ntests": 112 + }, + "sage.libs.ntl.ntl_GF2X_linkage.pxi": { + "ntests": 86 + }, + "sage.libs.ntl.ntl_ZZ": { + "ntests": 76 + }, + "sage.libs.ntl.ntl_ZZX": { + "ntests": 223 + }, + "sage.libs.ntl.ntl_ZZ_p": { + "ntests": 68 + }, + "sage.libs.ntl.ntl_ZZ_pContext": { + "ntests": 34 + }, + "sage.libs.ntl.ntl_ZZ_pE": { + "ntests": 27 + }, + "sage.libs.ntl.ntl_ZZ_pEContext": { + "ntests": 29 + }, + "sage.libs.ntl.ntl_ZZ_pEX": { + "ntests": 304 + }, + "sage.libs.ntl.ntl_ZZ_pEX_linkage.pxi": { + "ntests": 80 + }, + "sage.libs.ntl.ntl_ZZ_pX": { + "ntests": 264 + }, + "sage.libs.ntl.ntl_lzz_p": { + "ntests": 48 + }, + "sage.libs.ntl.ntl_lzz_pContext": { + "ntests": 21 + }, + "sage.libs.ntl.ntl_lzz_pX": { + "ntests": 142 + }, + "sage.libs.ntl.ntl_mat_GF2": { + "ntests": 107 + }, + "sage.libs.ntl.ntl_mat_GF2E": { + "failed": true, + "ntests": 132 + }, + "sage.libs.ntl.ntl_mat_ZZ": { + "failed": true, + "ntests": 119 + }, + "sage.libs.pari": { + "ntests": 41 + }, + "sage.libs.pari.convert_flint": { + "ntests": 2 + }, + "sage.libs.pari.convert_gmp": { + "ntests": 16 + }, + "sage.libs.pari.convert_sage": { + "ntests": 85 + }, + "sage.libs.pari.convert_sage_complex_double": { + "ntests": 22 + }, + "sage.libs.pari.convert_sage_matrix": { + "ntests": 19 + }, + "sage.libs.pari.convert_sage_real_double": { + "ntests": 2 + }, + "sage.libs.pari.convert_sage_real_mpfr": { + "ntests": 7 + }, + "sage.libs.pari.tests": { + "failed": true, + "ntests": 699 + }, + "sage.manifolds.calculus_method": { + "ntests": 86 + }, + "sage.manifolds.catalog": { + "failed": true, + "ntests": 58 + }, + "sage.manifolds.chart": { + "failed": true, + "ntests": 542 + }, + "sage.manifolds.chart_func": { + "failed": true, + "ntests": 838 + }, + "sage.manifolds.continuous_map": { + "failed": true, + "ntests": 411 + }, + "sage.manifolds.continuous_map_image": { + "ntests": 33 + }, + "sage.manifolds.differentiable.affine_connection": { + "failed": true, + "ntests": 486 + }, + "sage.manifolds.differentiable.automorphismfield": { + "failed": true, + "ntests": 318 + }, + "sage.manifolds.differentiable.automorphismfield_group": { + "failed": true, + "ntests": 136 + }, + "sage.manifolds.differentiable.bundle_connection": { + "ntests": 285 + }, + "sage.manifolds.differentiable.characteristic_cohomology_class": { + "failed": true, + "ntests": 262 + }, + "sage.manifolds.differentiable.chart": { + "failed": true, + "ntests": 216 + }, + "sage.manifolds.differentiable.curve": { + "failed": true, + "ntests": 184 + }, + "sage.manifolds.differentiable.de_rham_cohomology": { + "failed": true, + "ntests": 139 + }, + "sage.manifolds.differentiable.degenerate": { + "ntests": 120 + }, + "sage.manifolds.differentiable.degenerate_submanifold": { + "failed": true, + "ntests": 339 + }, + "sage.manifolds.differentiable.diff_form": { + "failed": true, + "ntests": 377 + }, + "sage.manifolds.differentiable.diff_form_module": { + "ntests": 224 + }, + "sage.manifolds.differentiable.diff_map": { + "failed": true, + "ntests": 200 + }, + "sage.manifolds.differentiable.differentiable_submanifold": { + "ntests": 37 + }, + "sage.manifolds.differentiable.examples.euclidean": { + "failed": true, + "ntests": 384 + }, + "sage.manifolds.differentiable.examples.real_line": { + "ntests": 183 + }, + "sage.manifolds.differentiable.examples.sphere": { + "failed": true, + "ntests": 135 + }, + "sage.manifolds.differentiable.examples.symplectic_space": { + "ntests": 11 + }, + "sage.manifolds.differentiable.integrated_curve": { + "failed": true, + "ntests": 343 + }, + "sage.manifolds.differentiable.levi_civita_connection": { + "failed": true, + "ntests": 115 + }, + "sage.manifolds.differentiable.manifold": { + "failed": true, + "ntests": 607 + }, + "sage.manifolds.differentiable.manifold_homset": { + "failed": true, + "ntests": 344 + }, + "sage.manifolds.differentiable.metric": { + "failed": true, + "ntests": 566 + }, + "sage.manifolds.differentiable.mixed_form": { + "failed": true, + "ntests": 402 + }, + "sage.manifolds.differentiable.mixed_form_algebra": { + "failed": true, + "ntests": 89 + }, + "sage.manifolds.differentiable.multivector_module": { + "ntests": 160 + }, + "sage.manifolds.differentiable.multivectorfield": { + "failed": true, + "ntests": 289 + }, + "sage.manifolds.differentiable.poisson_tensor": { + "ntests": 40 + }, + "sage.manifolds.differentiable.pseudo_riemannian": { + "ntests": 140 + }, + "sage.manifolds.differentiable.pseudo_riemannian_submanifold": { + "failed": true, + "ntests": 335 + }, + "sage.manifolds.differentiable.scalarfield": { + "failed": true, + "ntests": 262 + }, + "sage.manifolds.differentiable.scalarfield_algebra": { + "failed": true, + "ntests": 101 + }, + "sage.manifolds.differentiable.symplectic_form": { + "ntests": 107 + }, + "sage.manifolds.differentiable.tangent_space": { + "ntests": 89 + }, + "sage.manifolds.differentiable.tangent_vector": { + "failed": true, + "ntests": 78 + }, + "sage.manifolds.differentiable.tensorfield": { + "failed": true, + "ntests": 1019 + }, + "sage.manifolds.differentiable.tensorfield_module": { + "ntests": 157 + }, + "sage.manifolds.differentiable.tensorfield_paral": { + "failed": true, + "ntests": 449 + }, + "sage.manifolds.differentiable.vector_bundle": { + "failed": true, + "ntests": 294 + }, + "sage.manifolds.differentiable.vectorfield": { + "failed": true, + "ntests": 265 + }, + "sage.manifolds.differentiable.vectorfield_module": { + "failed": true, + "ntests": 330 + }, + "sage.manifolds.differentiable.vectorframe": { + "failed": true, + "ntests": 341 + }, + "sage.manifolds.family": { + "ntests": 63 + }, + "sage.manifolds.local_frame": { + "ntests": 294 + }, + "sage.manifolds.manifold": { + "failed": true, + "ntests": 495 + }, + "sage.manifolds.manifold_homset": { + "failed": true, + "ntests": 92 + }, + "sage.manifolds.operators": { + "ntests": 36 + }, + "sage.manifolds.point": { + "failed": true, + "ntests": 164 + }, + "sage.manifolds.scalarfield": { + "failed": true, + "ntests": 820 + }, + "sage.manifolds.scalarfield_algebra": { + "failed": true, + "ntests": 129 + }, + "sage.manifolds.section": { + "failed": true, + "ntests": 867 + }, + "sage.manifolds.section_module": { + "ntests": 180 + }, + "sage.manifolds.structure": { + "ntests": 24 + }, + "sage.manifolds.subset": { + "ntests": 462 + }, + "sage.manifolds.subsets.closure": { + "ntests": 29 + }, + "sage.manifolds.subsets.pullback": { + "ntests": 118 + }, + "sage.manifolds.topological_submanifold": { + "failed": true, + "ntests": 151 + }, + "sage.manifolds.trivialization": { + "ntests": 204 + }, + "sage.manifolds.utilities": { + "failed": true, + "ntests": 258 + }, + "sage.manifolds.vector_bundle": { + "ntests": 271 + }, + "sage.manifolds.vector_bundle_fiber": { + "ntests": 73 + }, + "sage.manifolds.vector_bundle_fiber_element": { + "ntests": 28 + }, + "sage.matrix.action": { + "ntests": 109 + }, + "sage.matrix.args": { + "failed": true, + "ntests": 151 + }, + "sage.matrix.berlekamp_massey": { + "ntests": 7 + }, + "sage.matrix.compute_J_ideal": { + "failed": true, + "ntests": 99 + }, + "sage.matrix.constructor": { + "ntests": 149 + }, + "sage.matrix.docs": { + "ntests": 55 + }, + "sage.matrix.echelon_matrix": { + "ntests": 12 + }, + "sage.matrix.matrix0": { + "failed": true, + "ntests": 779 + }, + "sage.matrix.matrix1": { + "failed": true, + "ntests": 426 + }, + "sage.matrix.matrix2": { + "failed": true, + "ntests": 2010 + }, + "sage.matrix.matrix_cdv": { + "ntests": 3 + }, + "sage.matrix.matrix_complex_ball_dense": { + "failed": true, + "ntests": 118 + }, + "sage.matrix.matrix_complex_double_dense": { + "failed": true, + "ntests": 13 + }, + "sage.matrix.matrix_dense": { + "ntests": 39 + }, + "sage.matrix.matrix_double_dense": { + "failed": true, + "ntests": 580 + }, + "sage.matrix.matrix_double_sparse": { + "failed": true, + "ntests": 34 + }, + "sage.matrix.matrix_generic_dense": { + "ntests": 51 + }, + "sage.matrix.matrix_generic_sparse": { + "ntests": 91 + }, + "sage.matrix.matrix_misc": { + "ntests": 22 + }, + "sage.matrix.matrix_modn_dense_template.pxi": { + "failed": true, + "ntests": 560 + }, + "sage.matrix.matrix_numpy_dense": { + "failed": true, + "ntests": 64 + }, + "sage.matrix.matrix_numpy_integer_dense": { + "ntests": 8 + }, + "sage.matrix.matrix_polynomial_dense": { + "ntests": 436 + }, + "sage.matrix.matrix_real_double_dense": { + "ntests": 10 + }, + "sage.matrix.matrix_space": { + "failed": true, + "ntests": 401 + }, + "sage.matrix.matrix_sparse": { + "ntests": 164 + }, + "sage.matrix.matrix_symbolic_dense": { + "failed": true, + "ntests": 222 + }, + "sage.matrix.matrix_symbolic_sparse": { + "failed": true, + "ntests": 226 + }, + "sage.matrix.misc_flint": { + "failed": true, + "ntests": 5 + }, + "sage.matrix.misc_mpfr": { + "ntests": 7 + }, + "sage.matrix.operation_table": { + "ntests": 60 + }, + "sage.matrix.special": { + "failed": true, + "ntests": 469 + }, + "sage.matrix.strassen": { + "failed": true, + "ntests": 69 + }, + "sage.matrix.symplectic_basis": { + "ntests": 46 + }, + "sage.matrix.tests": { + "failed": true, + "ntests": 18 + }, + "sage.matroids.advanced": { + "ntests": 1 + }, + "sage.matroids.basis_exchange_matroid": { + "ntests": 184 + }, + "sage.matroids.basis_matroid": { + "ntests": 149 + }, + "sage.matroids.catalog": { + "ntests": 164 + }, + "sage.matroids.circuit_closures_matroid": { + "ntests": 79 + }, + "sage.matroids.constructor": { + "ntests": 95 + }, + "sage.matroids.dual_matroid": { + "ntests": 83 + }, + "sage.matroids.extension": { + "ntests": 48 + }, + "sage.matroids.lean_matrix": { + "ntests": 288 + }, + "sage.matroids.linear_matroid": { + "failed": true, + "ntests": 603 + }, + "sage.matroids.matroid": { + "failed": true, + "ntests": 770 + }, + "sage.matroids.minor_matroid": { + "ntests": 83 + }, + "sage.matroids.rank_matroid": { + "ntests": 59 + }, + "sage.matroids.set_system": { + "ntests": 78 + }, + "sage.matroids.union_matroid": { + "ntests": 40 + }, + "sage.matroids.unpickling": { + "ntests": 62 + }, + "sage.matroids.utilities": { + "ntests": 42 + }, + "sage.misc.abstract_method": { + "ntests": 33 + }, + "sage.misc.banner": { + "ntests": 12 + }, + "sage.misc.binary_tree": { + "ntests": 61 + }, + "sage.misc.bindable_class": { + "ntests": 47 + }, + "sage.misc.c3": { + "ntests": 40 + }, + "sage.misc.c3_controlled": { + "ntests": 114 + }, + "sage.misc.cachefunc": { + "failed": true, + "ntests": 641 + }, + "sage.misc.call": { + "ntests": 26 + }, + "sage.misc.callable_dict": { + "ntests": 12 + }, + "sage.misc.classcall_metaclass": { + "ntests": 75 + }, + "sage.misc.compat": { + "ntests": 1 + }, + "sage.misc.constant_function": { + "ntests": 21 + }, + "sage.misc.converting_dict": { + "ntests": 53 + }, + "sage.misc.decorators": { + "ntests": 129 + }, + "sage.misc.defaults": { + "ntests": 14 + }, + "sage.misc.derivative": { + "ntests": 29 + }, + "sage.misc.dev_tools": { + "failed": true, + "ntests": 60 + }, + "sage.misc.edit_module": { + "ntests": 16 + }, + "sage.misc.element_with_label": { + "ntests": 39 + }, + "sage.misc.explain_pickle": { + "failed": true, + "ntests": 350 + }, + "sage.misc.fast_methods": { + "ntests": 80 + }, + "sage.misc.flatten": { + "ntests": 15 + }, + "sage.misc.fpickle": { + "ntests": 13 + }, + "sage.misc.function_mangling": { + "ntests": 31 + }, + "sage.misc.functional": { + "failed": true, + "ntests": 388 + }, + "sage.misc.globals": { + "ntests": 39 + }, + "sage.misc.html": { + "ntests": 64 + }, + "sage.misc.inherit_comparison": { + "ntests": 2 + }, + "sage.misc.inline_fortran": { + "failed": true, + "ntests": 18 + }, + "sage.misc.instancedoc": { + "ntests": 63 + }, + "sage.misc.latex": { + "failed": true, + "ntests": 246 + }, + "sage.misc.latex_macros": { + "ntests": 11 + }, + "sage.misc.latex_standalone": { + "ntests": 196 + }, + "sage.misc.lazy_attribute": { + "ntests": 97 + }, + "sage.misc.lazy_format": { + "ntests": 23 + }, + "sage.misc.lazy_import": { + "failed": true, + "ntests": 281 + }, + "sage.misc.lazy_import_cache": { + "ntests": 8 + }, + "sage.misc.lazy_list": { + "ntests": 237 + }, + "sage.misc.lazy_string": { + "ntests": 137 + }, + "sage.misc.map_threaded": { + "ntests": 5 + }, + "sage.misc.method_decorator": { + "ntests": 13 + }, + "sage.misc.misc": { + "ntests": 138 + }, + "sage.misc.misc_c": { + "ntests": 121 + }, + "sage.misc.mrange": { + "ntests": 96 + }, + "sage.misc.multireplace": { + "ntests": 4 + }, + "sage.misc.namespace_package": { + "ntests": 7 + }, + "sage.misc.nested_class": { + "ntests": 66 + }, + "sage.misc.object_multiplexer": { + "ntests": 15 + }, + "sage.misc.package": { + "ntests": 59 + }, + "sage.misc.package_dir": { + "ntests": 35 + }, + "sage.misc.parser": { + "ntests": 186 + }, + "sage.misc.persist": { + "failed": true, + "ntests": 136 + }, + "sage.misc.prandom": { + "ntests": 74 + }, + "sage.misc.random_testing": { + "ntests": 18 + }, + "sage.misc.replace_dot_all": { + "failed": true, + "ntests": 17 + }, + "sage.misc.repr": { + "ntests": 32 + }, + "sage.misc.reset": { + "failed": true, + "ntests": 34 + }, + "sage.misc.rest_index_of_methods": { + "ntests": 11 + }, + "sage.misc.sage_eval": { + "failed": true, + "ntests": 35 + }, + "sage.misc.sage_input": { + "failed": true, + "ntests": 737 + }, + "sage.misc.sage_ostools": { + "ntests": 41 + }, + "sage.misc.sage_timeit": { + "ntests": 43 + }, + "sage.misc.sage_timeit_class": { + "ntests": 6 + }, + "sage.misc.sage_unittest": { + "ntests": 88 + }, + "sage.misc.sagedoc": { + "failed": true, + "ntests": 91 + }, + "sage.misc.sageinspect": { + "failed": true, + "ntests": 298 + }, + "sage.misc.search": { + "ntests": 4 + }, + "sage.misc.session": { + "failed": true, + "ntests": 58 + }, + "sage.misc.stopgap": { + "ntests": 11 + }, + "sage.misc.superseded": { + "ntests": 51 + }, + "sage.misc.table": { + "ntests": 70 + }, + "sage.misc.temporary_file": { + "ntests": 80 + }, + "sage.misc.test_class_pickling": { + "ntests": 14 + }, + "sage.misc.test_nested_class": { + "ntests": 18 + }, + "sage.misc.timing": { + "ntests": 29 + }, + "sage.misc.trace": { + "ntests": 4 + }, + "sage.misc.unknown": { + "ntests": 22 + }, + "sage.misc.verbose": { + "ntests": 22 + }, + "sage.misc.viewer": { + "ntests": 49 + }, + "sage.misc.weak_dict": { + "ntests": 281 + }, + "sage.modules.complex_double_vector": { + "ntests": 2 + }, + "sage.modules.fg_pid.fgp_element": { + "failed": true, + "ntests": 119 + }, + "sage.modules.fg_pid.fgp_module": { + "failed": true, + "ntests": 0 + }, + "sage.modules.fg_pid.fgp_morphism": { + "failed": true, + "ntests": 117 + }, + "sage.modules.filtered_vector_space": { + "ntests": 160 + }, + "sage.modules.finite_submodule_iter": { + "failed": true, + "ntests": 95 + }, + "sage.modules.free_module": { + "failed": true, + "ntests": 1462 + }, + "sage.modules.free_module_element": { + "failed": true, + "ntests": 1042 + }, + "sage.modules.free_module_homspace": { + "ntests": 60 + }, + "sage.modules.free_module_integer": { + "failed": true, + "ntests": 85 + }, + "sage.modules.free_module_morphism": { + "failed": true, + "ntests": 160 + }, + "sage.modules.free_quadratic_module": { + "failed": true, + "ntests": 306 + }, + "sage.modules.free_quadratic_module_integer_symmetric": { + "failed": true, + "ntests": 0 + }, + "sage.modules.matrix_morphism": { + "failed": true, + "ntests": 405 + }, + "sage.modules.misc": { + "ntests": 20 + }, + "sage.modules.module": { + "ntests": 41 + }, + "sage.modules.module_functors": { + "ntests": 57 + }, + "sage.modules.multi_filtered_vector_space": { + "ntests": 122 + }, + "sage.modules.quotient_module": { + "failed": true, + "ntests": 124 + }, + "sage.modules.real_double_vector": { + "ntests": 2 + }, + "sage.modules.submodule": { + "ntests": 45 + }, + "sage.modules.tensor_operations": { + "ntests": 75 + }, + "sage.modules.torsion_quadratic_module": { + "failed": true, + "ntests": 148 + }, + "sage.modules.tutorial_free_modules": { + "ntests": 42 + }, + "sage.modules.vector_callable_symbolic_dense": { + "ntests": 20 + }, + "sage.modules.vector_complex_double_dense": { + "ntests": 19 + }, + "sage.modules.vector_double_dense": { + "failed": true, + "ntests": 82 + }, + "sage.modules.vector_integer_dense": { + "ntests": 43 + }, + "sage.modules.vector_modn_dense": { + "ntests": 69 + }, + "sage.modules.vector_numpy_dense": { + "failed": true, + "ntests": 45 + }, + "sage.modules.vector_numpy_integer_dense": { + "ntests": 5 + }, + "sage.modules.vector_rational_dense": { + "ntests": 45 + }, + "sage.modules.vector_real_double_dense": { + "ntests": 17 + }, + "sage.modules.vector_space_homspace": { + "ntests": 78 + }, + "sage.modules.vector_space_morphism": { + "failed": true, + "ntests": 172 + }, + "sage.modules.vector_symbolic_dense": { + "failed": true, + "ntests": 28 + }, + "sage.modules.vector_symbolic_sparse": { + "failed": true, + "ntests": 28 + }, + "sage.modules.with_basis.indexed_element": { + "ntests": 142 + }, + "sage.modules.with_basis.morphism": { + "ntests": 353 + }, + "sage.modules.with_basis.subquotient": { + "failed": true, + "ntests": 70 + }, + "sage.numerical.gauss_legendre": { + "ntests": 60 + }, + "sage.parallel.decorate": { + "ntests": 88 + }, + "sage.parallel.map_reduce": { + "ntests": 289 + }, + "sage.parallel.multiprocessing_sage": { + "ntests": 9 + }, + "sage.parallel.ncpus": { + "ntests": 1 + }, + "sage.parallel.parallelism": { + "ntests": 53 + }, + "sage.parallel.reference": { + "ntests": 5 + }, + "sage.parallel.use_fork": { + "ntests": 28 + }, + "sage.probability.probability_distribution": { + "ntests": 239 + }, + "sage.probability.random_variable": { + "ntests": 19 + }, + "sage.quadratic_forms.binary_qf": { + "ntests": 324 + }, + "sage.quadratic_forms.constructions": { + "ntests": 4 + }, + "sage.quadratic_forms.count_local_2": { + "ntests": 16 + }, + "sage.quadratic_forms.extras": { + "failed": true, + "ntests": 17 + }, + "sage.quadratic_forms.genera.genus": { + "failed": true, + "ntests": 529 + }, + "sage.quadratic_forms.qfsolve": { + "ntests": 38 + }, + "sage.quadratic_forms.quadratic_form": { + "ntests": 190 + }, + "sage.quadratic_forms.quadratic_form__automorphisms": { + "ntests": 46 + }, + "sage.quadratic_forms.quadratic_form__count_local_2": { + "ntests": 19 + }, + "sage.quadratic_forms.quadratic_form__equivalence_testing": { + "ntests": 72 + }, + "sage.quadratic_forms.quadratic_form__evaluate": { + "ntests": 9 + }, + "sage.quadratic_forms.quadratic_form__genus": { + "ntests": 10 + }, + "sage.quadratic_forms.quadratic_form__local_density_congruence": { + "ntests": 133 + }, + "sage.quadratic_forms.quadratic_form__local_density_interfaces": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__local_field_invariants": { + "ntests": 137 + }, + "sage.quadratic_forms.quadratic_form__local_normal_form": { + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__mass": { + "ntests": 4 + }, + "sage.quadratic_forms.quadratic_form__mass__Conway_Sloane_masses": { + "ntests": 59 + }, + "sage.quadratic_forms.quadratic_form__mass__Siegel_densities": { + "ntests": 14 + }, + "sage.quadratic_forms.quadratic_form__neighbors": { + "failed": true, + "ntests": 30 + }, + "sage.quadratic_forms.quadratic_form__reduction_theory": { + "ntests": 21 + }, + "sage.quadratic_forms.quadratic_form__siegel_product": { + "ntests": 13 + }, + "sage.quadratic_forms.quadratic_form__split_local_covering": { + "failed": true, + "ntests": 18 + }, + "sage.quadratic_forms.quadratic_form__ternary_Tornaria": { + "failed": true, + "ntests": 99 + }, + "sage.quadratic_forms.quadratic_form__theta": { + "ntests": 23 + }, + "sage.quadratic_forms.quadratic_form__variable_substitutions": { + "ntests": 23 + }, + "sage.quadratic_forms.random_quadraticform": { + "ntests": 13 + }, + "sage.quadratic_forms.special_values": { + "failed": true, + "ntests": 29 + }, + "sage.quadratic_forms.ternary": { + "ntests": 105 + }, + "sage.quadratic_forms.ternary_qf": { + "ntests": 306 + }, + "sage.repl.attach": { + "ntests": 128 + }, + "sage.repl.configuration": { + "ntests": 22 + }, + "sage.repl.display.fancy_repr": { + "ntests": 32 + }, + "sage.repl.display.formatter": { + "failed": true, + "ntests": 57 + }, + "sage.repl.display.jsmol_iframe": { + "ntests": 24 + }, + "sage.repl.display.pretty_print": { + "ntests": 21 + }, + "sage.repl.display.util": { + "ntests": 7 + }, + "sage.repl.inputhook": { + "ntests": 7 + }, + "sage.repl.interface_magic": { + "ntests": 12 + }, + "sage.repl.interpreter": { + "failed": true, + "ntests": 131 + }, + "sage.repl.ipython_extension": { + "failed": true, + "ntests": 83 + }, + "sage.repl.ipython_kernel.install": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.interact": { + "failed": true, + "ntests": 40 + }, + "sage.repl.ipython_kernel.kernel": { + "ntests": 12 + }, + "sage.repl.ipython_kernel.widgets": { + "ntests": 97 + }, + "sage.repl.ipython_kernel.widgets_sagenb": { + "failed": true, + "ntests": 77 + }, + "sage.repl.ipython_tests": { + "failed": true, + "ntests": 20 + }, + "sage.repl.load": { + "failed": true, + "ntests": 41 + }, + "sage.repl.preparse": { + "ntests": 352 + }, + "sage.repl.rich_output.backend_base": { + "ntests": 100 + }, + "sage.repl.rich_output.backend_doctest": { + "ntests": 50 + }, + "sage.repl.rich_output.backend_emacs": { + "ntests": 15 + }, + "sage.repl.rich_output.backend_ipython": { + "ntests": 75 + }, + "sage.repl.rich_output.buffer": { + "ntests": 49 + }, + "sage.repl.rich_output.display_manager": { + "ntests": 85 + }, + "sage.repl.rich_output.output_basic": { + "ntests": 47 + }, + "sage.repl.rich_output.output_browser": { + "ntests": 12 + }, + "sage.repl.rich_output.output_graphics": { + "ntests": 38 + }, + "sage.repl.rich_output.output_graphics3d": { + "ntests": 46 + }, + "sage.repl.rich_output.output_video": { + "ntests": 25 + }, + "sage.repl.rich_output.preferences": { + "ntests": 68 + }, + "sage.repl.rich_output.pretty_print": { + "ntests": 26 + }, + "sage.repl.rich_output.test_backend": { + "ntests": 37 + }, + "sage.repl.user_globals": { + "ntests": 36 + }, + "sage.rings.abc": { + "ntests": 64 + }, + "sage.rings.algebraic_closure_finite_field": { + "failed": true, + "ntests": 213 + }, + "sage.rings.bernmm": { + "ntests": 25 + }, + "sage.rings.bernoulli_mod_p": { + "ntests": 26 + }, + "sage.rings.big_oh": { + "failed": true, + "ntests": 17 + }, + "sage.rings.complex_arb": { + "failed": true, + "ntests": 662 + }, + "sage.rings.complex_conversion": { + "ntests": 4 + }, + "sage.rings.complex_double": { + "failed": true, + "ntests": 340 + }, + "sage.rings.complex_field": { + "ntests": 2 + }, + "sage.rings.complex_interval": { + "failed": true, + "ntests": 269 + }, + "sage.rings.complex_interval_field": { + "failed": true, + "ntests": 133 + }, + "sage.rings.complex_mpc": { + "failed": true, + "ntests": 406 + }, + "sage.rings.complex_mpfr": { + "failed": true, + "ntests": 529 + }, + "sage.rings.continued_fraction": { + "failed": true, + "ntests": 276 + }, + "sage.rings.continued_fraction_gosper": { + "ntests": 35 + }, + "sage.rings.derivation": { + "ntests": 402 + }, + "sage.rings.factorint": { + "ntests": 24 + }, + "sage.rings.factorint_flint": { + "ntests": 10 + }, + "sage.rings.factorint_pari": { + "ntests": 3 + }, + "sage.rings.fast_arith": { + "ntests": 20 + }, + "sage.rings.finite_rings.conway_polynomials": { + "failed": true, + "ntests": 57 + }, + "sage.rings.finite_rings.element_base": { + "failed": true, + "ntests": 228 + }, + "sage.rings.finite_rings.element_ntl_gf2e": { + "failed": true, + "ntests": 174 + }, + "sage.rings.finite_rings.element_pari_ffelt": { + "failed": true, + "ntests": 272 + }, + "sage.rings.finite_rings.finite_field_base": { + "failed": true, + "ntests": 314 + }, + "sage.rings.finite_rings.finite_field_constructor": { + "failed": true, + "ntests": 114 + }, + "sage.rings.finite_rings.finite_field_ntl_gf2e": { + "failed": true, + "ntests": 61 + }, + "sage.rings.finite_rings.finite_field_pari_ffelt": { + "failed": true, + "ntests": 41 + }, + "sage.rings.finite_rings.finite_field_prime_modn": { + "ntests": 37 + }, + "sage.rings.finite_rings.hom_finite_field": { + "failed": true, + "ntests": 192 + }, + "sage.rings.finite_rings.hom_prime_finite_field": { + "ntests": 21 + }, + "sage.rings.finite_rings.homset": { + "failed": true, + "ntests": 67 + }, + "sage.rings.finite_rings.integer_mod": { + "ntests": 569 + }, + "sage.rings.finite_rings.integer_mod_ring": { + "ntests": 233 + }, + "sage.rings.finite_rings.maps_finite_field": { + "ntests": 31 + }, + "sage.rings.finite_rings.residue_field": { + "failed": true, + "ntests": 117 + }, + "sage.rings.finite_rings.residue_field_ntl_gf2e": { + "ntests": 10 + }, + "sage.rings.finite_rings.residue_field_pari_ffelt": { + "ntests": 8 + }, + "sage.rings.fraction_field": { + "failed": true, + "ntests": 246 + }, + "sage.rings.fraction_field_FpT": { + "ntests": 369 + }, + "sage.rings.fraction_field_element": { + "failed": true, + "ntests": 264 + }, + "sage.rings.function_field.constructor": { + "ntests": 26 + }, + "sage.rings.function_field.derivations": { + "ntests": 14 + }, + "sage.rings.function_field.derivations_rational": { + "ntests": 19 + }, + "sage.rings.function_field.differential": { + "ntests": 67 + }, + "sage.rings.function_field.element": { + "ntests": 93 + }, + "sage.rings.function_field.element_rational": { + "ntests": 83 + }, + "sage.rings.function_field.extensions": { + "ntests": 3 + }, + "sage.rings.function_field.function_field": { + "ntests": 84 + }, + "sage.rings.function_field.function_field_rational": { + "failed": true, + "ntests": 127 + }, + "sage.rings.function_field.hermite_form_polynomial": { + "ntests": 21 + }, + "sage.rings.function_field.ideal": { + "ntests": 113 + }, + "sage.rings.function_field.ideal_rational": { + "ntests": 150 + }, + "sage.rings.function_field.maps": { + "ntests": 59 + }, + "sage.rings.function_field.order": { + "ntests": 27 + }, + "sage.rings.function_field.order_basis": { + "ntests": 35 + }, + "sage.rings.function_field.order_rational": { + "failed": true, + "ntests": 103 + }, + "sage.rings.function_field.place": { + "ntests": 18 + }, + "sage.rings.function_field.place_rational": { + "failed": true, + "ntests": 23 + }, + "sage.rings.function_field.valuation": { + "failed": true, + "ntests": 227 + }, + "sage.rings.homset": { + "ntests": 38 + }, + "sage.rings.ideal": { + "ntests": 330 + }, + "sage.rings.ideal_monoid": { + "ntests": 16 + }, + "sage.rings.infinity": { + "ntests": 302 + }, + "sage.rings.integer": { + "failed": true, + "ntests": 1170 + }, + "sage.rings.integer_ring": { + "ntests": 215 + }, + "sage.rings.invariants.invariant_theory": { + "failed": true, + "ntests": 883 + }, + "sage.rings.invariants.reconstruction": { + "ntests": 59 + }, + "sage.rings.laurent_series_ring": { + "ntests": 153 + }, + "sage.rings.laurent_series_ring_element": { + "ntests": 391 + }, + "sage.rings.localization": { + "failed": true, + "ntests": 167 + }, + "sage.rings.monomials": { + "ntests": 5 + }, + "sage.rings.morphism": { + "failed": true, + "ntests": 457 + }, + "sage.rings.multi_power_series_ring": { + "failed": true, + "ntests": 237 + }, + "sage.rings.multi_power_series_ring_element": { + "failed": true, + "ntests": 426 + }, + "sage.rings.noncommutative_ideals": { + "ntests": 23 + }, + "sage.rings.number_field.class_group": { + "ntests": 239 + }, + "sage.rings.number_field.homset": { + "ntests": 131 + }, + "sage.rings.number_field.maps": { + "ntests": 196 + }, + "sage.rings.number_field.morphism": { + "ntests": 42 + }, + "sage.rings.number_field.number_field_element_base": { + "ntests": 2 + }, + "sage.rings.number_field.number_field_ideal_rel": { + "failed": true, + "ntests": 259 + }, + "sage.rings.number_field.number_field_rel": { + "failed": true, + "ntests": 593 + }, + "sage.rings.number_field.selmer_group": { + "ntests": 93 + }, + "sage.rings.number_field.small_primes_of_degree_one": { + "ntests": 41 + }, + "sage.rings.number_field.splitting_field": { + "ntests": 73 + }, + "sage.rings.number_field.unit_group": { + "ntests": 172 + }, + "sage.rings.padics.CA_template.pxi": { + "failed": true, + "ntests": 309 + }, + "sage.rings.padics.CR_template.pxi": { + "failed": true, + "ntests": 431 + }, + "sage.rings.padics.FM_template.pxi": { + "failed": true, + "ntests": 277 + }, + "sage.rings.padics.FP_template.pxi": { + "failed": true, + "ntests": 340 + }, + "sage.rings.padics.eisenstein_extension_generic": { + "ntests": 40 + }, + "sage.rings.padics.factory": { + "failed": true, + "ntests": 557 + }, + "sage.rings.padics.generic_nodes": { + "ntests": 251 + }, + "sage.rings.padics.lattice_precision": { + "failed": true, + "ntests": 427 + }, + "sage.rings.padics.misc": { + "ntests": 24 + }, + "sage.rings.padics.morphism": { + "ntests": 66 + }, + "sage.rings.padics.padic_base_generic": { + "ntests": 41 + }, + "sage.rings.padics.padic_base_leaves": { + "ntests": 181 + }, + "sage.rings.padics.padic_extension_generic": { + "failed": true, + "ntests": 208 + }, + "sage.rings.padics.padic_extension_leaves": { + "failed": true, + "ntests": 65 + }, + "sage.rings.padics.padic_generic_element": { + "failed": true, + "ntests": 807 + }, + "sage.rings.padics.padic_lattice_element": { + "ntests": 269 + }, + "sage.rings.padics.padic_printing": { + "failed": true, + "ntests": 108 + }, + "sage.rings.padics.padic_relaxed_errors": { + "ntests": 5 + }, + "sage.rings.padics.padic_template_element.pxi": { + "ntests": 138 + }, + "sage.rings.padics.padic_valuation": { + "ntests": 119 + }, + "sage.rings.padics.pow_computer": { + "ntests": 88 + }, + "sage.rings.padics.pow_computer_flint": { + "ntests": 76 + }, + "sage.rings.padics.pow_computer_relative": { + "failed": true, + "ntests": 97 + }, + "sage.rings.padics.qadic_flint_CA": { + "failed": true, + "ntests": 19 + }, + "sage.rings.padics.qadic_flint_CR": { + "failed": true, + "ntests": 23 + }, + "sage.rings.padics.qadic_flint_FM": { + "failed": true, + "ntests": 17 + }, + "sage.rings.padics.qadic_flint_FP": { + "failed": true, + "ntests": 22 + }, + "sage.rings.padics.relative_extension_leaves": { + "failed": true, + "ntests": 87 + }, + "sage.rings.padics.relative_ramified_CA": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_CR": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FM": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relative_ramified_FP": { + "failed": true, + "ntests": 9 + }, + "sage.rings.padics.relaxed_template.pxi": { + "ntests": 509 + }, + "sage.rings.padics.tests": { + "ntests": 8 + }, + "sage.rings.padics.tutorial": { + "failed": true, + "ntests": 44 + }, + "sage.rings.padics.unramified_extension_generic": { + "failed": true, + "ntests": 33 + }, + "sage.rings.pari_ring": { + "ntests": 46 + }, + "sage.rings.polynomial.commutative_polynomial": { + "ntests": 7 + }, + "sage.rings.polynomial.complex_roots": { + "ntests": 42 + }, + "sage.rings.polynomial.cyclotomic": { + "failed": true, + "ntests": 33 + }, + "sage.rings.polynomial.flatten": { + "failed": true, + "ntests": 131 + }, + "sage.rings.polynomial.hilbert": { + "failed": true, + "ntests": 7 + }, + "sage.rings.polynomial.ideal": { + "ntests": 10 + }, + "sage.rings.polynomial.infinite_polynomial_element": { + "failed": true, + "ntests": 277 + }, + "sage.rings.polynomial.infinite_polynomial_ring": { + "ntests": 273 + }, + "sage.rings.polynomial.laurent_polynomial": { + "failed": true, + "ntests": 413 + }, + "sage.rings.polynomial.laurent_polynomial_mpair": { + "failed": true, + "ntests": 332 + }, + "sage.rings.polynomial.laurent_polynomial_ring": { + "failed": true, + "ntests": 156 + }, + "sage.rings.polynomial.laurent_polynomial_ring_base": { + "ntests": 82 + }, + "sage.rings.polynomial.multi_polynomial": { + "failed": true, + "ntests": 493 + }, + "sage.rings.polynomial.multi_polynomial_element": { + "failed": true, + "ntests": 194 + }, + "sage.rings.polynomial.multi_polynomial_ring": { + "failed": true, + "ntests": 159 + }, + "sage.rings.polynomial.multi_polynomial_ring_base": { + "failed": true, + "ntests": 224 + }, + "sage.rings.polynomial.multi_polynomial_sequence": { + "failed": true, + "ntests": 69 + }, + "sage.rings.polynomial.padics.polynomial_padic": { + "ntests": 64 + }, + "sage.rings.polynomial.padics.polynomial_padic_capped_relative_dense": { + "ntests": 143 + }, + "sage.rings.polynomial.padics.polynomial_padic_flat": { + "ntests": 3 + }, + "sage.rings.polynomial.polydict": { + "ntests": 384 + }, + "sage.rings.polynomial.polynomial_complex_arb": { + "failed": true, + "ntests": 149 + }, + "sage.rings.polynomial.polynomial_element": { + "failed": true, + "ntests": 2238 + }, + "sage.rings.polynomial.polynomial_element_generic": { + "ntests": 206 + }, + "sage.rings.polynomial.polynomial_integer_dense_flint": { + "failed": true, + "ntests": 303 + }, + "sage.rings.polynomial.polynomial_integer_dense_ntl": { + "ntests": 185 + }, + "sage.rings.polynomial.polynomial_modn_dense_ntl": { + "failed": true, + "ntests": 331 + }, + "sage.rings.polynomial.polynomial_number_field": { + "failed": true, + "ntests": 99 + }, + "sage.rings.polynomial.polynomial_quotient_ring": { + "failed": true, + "ntests": 331 + }, + "sage.rings.polynomial.polynomial_quotient_ring_element": { + "failed": true, + "ntests": 126 + }, + "sage.rings.polynomial.polynomial_rational_flint": { + "failed": true, + "ntests": 395 + }, + "sage.rings.polynomial.polynomial_real_mpfr_dense": { + "ntests": 144 + }, + "sage.rings.polynomial.polynomial_ring": { + "failed": true, + "ntests": 487 + }, + "sage.rings.polynomial.polynomial_ring_constructor": { + "failed": true, + "ntests": 130 + }, + "sage.rings.polynomial.polynomial_ring_homomorphism": { + "ntests": 30 + }, + "sage.rings.polynomial.polynomial_singular_interface": { + "ntests": 32 + }, + "sage.rings.polynomial.polynomial_template.pxi": { + "failed": true, + "ntests": 121 + }, + "sage.rings.polynomial.polynomial_zmod_flint": { + "failed": true, + "ntests": 147 + }, + "sage.rings.polynomial.polynomial_zz_pex": { + "failed": true, + "ntests": 125 + }, + "sage.rings.polynomial.refine_root": { + "ntests": 9 + }, + "sage.rings.polynomial.term_order": { + "ntests": 243 + }, + "sage.rings.polynomial.toy_buchberger": { + "ntests": 25 + }, + "sage.rings.polynomial.toy_d_basis": { + "failed": true, + "ntests": 46 + }, + "sage.rings.polynomial.toy_variety": { + "ntests": 40 + }, + "sage.rings.polynomial.weil.weil_polynomials": { + "failed": true, + "ntests": 92 + }, + "sage.rings.power_series_mpoly": { + "ntests": 4 + }, + "sage.rings.power_series_pari": { + "ntests": 176 + }, + "sage.rings.power_series_poly": { + "ntests": 275 + }, + "sage.rings.power_series_ring": { + "ntests": 248 + }, + "sage.rings.power_series_ring_element": { + "failed": true, + "ntests": 488 + }, + "sage.rings.puiseux_series_ring": { + "ntests": 57 + }, + "sage.rings.puiseux_series_ring_element": { + "ntests": 192 + }, + "sage.rings.quotient_ring": { + "ntests": 171 + }, + "sage.rings.quotient_ring_element": { + "ntests": 26 + }, + "sage.rings.rational": { + "failed": true, + "ntests": 558 + }, + "sage.rings.rational_field": { + "failed": true, + "ntests": 178 + }, + "sage.rings.real_arb": { + "failed": true, + "ntests": 571 + }, + "sage.rings.real_double": { + "failed": true, + "ntests": 373 + }, + "sage.rings.real_double_element_gsl": { + "ntests": 128 + }, + "sage.rings.real_field": { + "ntests": 5 + }, + "sage.rings.real_interval_absolute": { + "ntests": 241 + }, + "sage.rings.real_interval_field": { + "ntests": 11 + }, + "sage.rings.real_lazy": { + "failed": true, + "ntests": 277 + }, + "sage.rings.real_mpfi": { + "failed": true, + "ntests": 942 + }, + "sage.rings.real_mpfr": { + "failed": true, + "ntests": 1048 + }, + "sage.rings.ring": { + "failed": true, + "ntests": 294 + }, + "sage.rings.ring_extension": { + "failed": true, + "ntests": 349 + }, + "sage.rings.ring_extension_conversion": { + "failed": true, + "ntests": 75 + }, + "sage.rings.ring_extension_element": { + "failed": true, + "ntests": 242 + }, + "sage.rings.ring_extension_homset": { + "failed": true, + "ntests": 9 + }, + "sage.rings.ring_extension_morphism": { + "failed": true, + "ntests": 131 + }, + "sage.rings.semirings.non_negative_integer_semiring": { + "ntests": 12 + }, + "sage.rings.semirings.tropical_semiring": { + "ntests": 132 + }, + "sage.rings.sum_of_squares": { + "ntests": 35 + }, + "sage.rings.tests": { + "ntests": 37 + }, + "sage.rings.valuation.augmented_valuation": { + "failed": true, + "ntests": 417 + }, + "sage.rings.valuation.developing_valuation": { + "ntests": 59 + }, + "sage.rings.valuation.gauss_valuation": { + "ntests": 138 + }, + "sage.rings.valuation.inductive_valuation": { + "ntests": 262 + }, + "sage.rings.valuation.limit_valuation": { + "ntests": 14 + }, + "sage.rings.valuation.mapped_valuation": { + "ntests": 9 + }, + "sage.rings.valuation.scaled_valuation": { + "ntests": 40 + }, + "sage.rings.valuation.trivial_valuation": { + "ntests": 53 + }, + "sage.rings.valuation.valuation": { + "failed": true, + "ntests": 172 + }, + "sage.rings.valuation.valuation_space": { + "ntests": 198 + }, + "sage.rings.valuation.value_group": { + "ntests": 100 + }, + "sage.schemes.affine.affine_homset": { + "ntests": 42 + }, + "sage.schemes.affine.affine_morphism": { + "failed": true, + "ntests": 284 + }, + "sage.schemes.affine.affine_point": { + "failed": true, + "ntests": 60 + }, + "sage.schemes.affine.affine_rational_point": { + "ntests": 25 + }, + "sage.schemes.affine.affine_space": { + "failed": true, + "ntests": 151 + }, + "sage.schemes.affine.affine_subscheme": { + "ntests": 60 + }, + "sage.schemes.generic.algebraic_scheme": { + "failed": true, + "ntests": 276 + }, + "sage.schemes.generic.ambient_space": { + "ntests": 60 + }, + "sage.schemes.generic.divisor_group": { + "ntests": 36 + }, + "sage.schemes.generic.homset": { + "ntests": 111 + }, + "sage.schemes.generic.morphism": { + "failed": true, + "ntests": 390 + }, + "sage.schemes.generic.point": { + "ntests": 35 + }, + "sage.schemes.generic.scheme": { + "ntests": 164 + }, + "sage.schemes.generic.spec": { + "ntests": 31 + }, + "sage.schemes.product_projective.homset": { + "ntests": 17 + }, + "sage.schemes.product_projective.morphism": { + "ntests": 93 + }, + "sage.schemes.product_projective.point": { + "failed": true, + "ntests": 108 + }, + "sage.schemes.product_projective.rational_point": { + "ntests": 24 + }, + "sage.schemes.product_projective.space": { + "ntests": 144 + }, + "sage.schemes.product_projective.subscheme": { + "ntests": 49 + }, + "sage.schemes.projective.proj_bdd_height": { + "ntests": 21 + }, + "sage.schemes.projective.projective_homset": { + "ntests": 37 + }, + "sage.schemes.projective.projective_morphism": { + "failed": true, + "ntests": 438 + }, + "sage.schemes.projective.projective_point": { + "ntests": 254 + }, + "sage.schemes.projective.projective_rational_point": { + "ntests": 29 + }, + "sage.schemes.projective.projective_space": { + "failed": true, + "ntests": 343 + }, + "sage.schemes.projective.projective_subscheme": { + "ntests": 182 + }, + "sage.sets.cartesian_product": { + "ntests": 54 + }, + "sage.sets.condition_set": { + "ntests": 86 + }, + "sage.sets.disjoint_set": { + "ntests": 235 + }, + "sage.sets.disjoint_union_enumerated_sets": { + "ntests": 47 + }, + "sage.sets.family": { + "ntests": 375 + }, + "sage.sets.finite_enumerated_set": { + "ntests": 84 + }, + "sage.sets.finite_set_map_cy": { + "ntests": 111 + }, + "sage.sets.finite_set_maps": { + "ntests": 86 + }, + "sage.sets.image_set": { + "ntests": 65 + }, + "sage.sets.integer_range": { + "ntests": 166 + }, + "sage.sets.non_negative_integers": { + "ntests": 46 + }, + "sage.sets.positive_integers": { + "ntests": 14 + }, + "sage.sets.primes": { + "ntests": 39 + }, + "sage.sets.pythonclass": { + "ntests": 55 + }, + "sage.sets.real_set": { + "failed": true, + "ntests": 433 + }, + "sage.sets.recursively_enumerated_set": { + "failed": true, + "ntests": 367 + }, + "sage.sets.set": { + "failed": true, + "ntests": 395 + }, + "sage.sets.set_from_iterator": { + "ntests": 140 + }, + "sage.sets.totally_ordered_finite_set": { + "ntests": 69 + }, + "sage.stats.basic_stats": { + "failed": true, + "ntests": 62 + }, + "sage.stats.distributions.discrete_gaussian_integer": { + "ntests": 111 + }, + "sage.stats.distributions.discrete_gaussian_lattice": { + "ntests": 80 + }, + "sage.stats.distributions.discrete_gaussian_polynomial": { + "ntests": 24 + }, + "sage.stats.hmm.chmm": { + "ntests": 120 + }, + "sage.stats.hmm.distributions": { + "ntests": 69 + }, + "sage.stats.hmm.hmm": { + "ntests": 121 + }, + "sage.stats.hmm.util": { + "ntests": 16 + }, + "sage.stats.intlist": { + "ntests": 65 + }, + "sage.stats.time_series": { + "failed": true, + "ntests": 337 + }, + "sage.structure.category_object": { + "failed": true, + "ntests": 151 + }, + "sage.structure.coerce": { + "failed": true, + "ntests": 343 + }, + "sage.structure.coerce_actions": { + "failed": true, + "ntests": 125 + }, + "sage.structure.coerce_dict": { + "ntests": 289 + }, + "sage.structure.coerce_maps": { + "ntests": 114 + }, + "sage.structure.debug_options": { + "ntests": 5 + }, + "sage.structure.dynamic_class": { + "ntests": 83 + }, + "sage.structure.element": { + "failed": true, + "ntests": 655 + }, + "sage.structure.element.pxd": { + "ntests": 20 + }, + "sage.structure.element_wrapper": { + "ntests": 160 + }, + "sage.structure.factorization": { + "ntests": 201 + }, + "sage.structure.factorization_integer": { + "ntests": 6 + }, + "sage.structure.factory": { + "ntests": 104 + }, + "sage.structure.formal_sum": { + "ntests": 70 + }, + "sage.structure.global_options": { + "ntests": 121 + }, + "sage.structure.graphics_file": { + "ntests": 8 + }, + "sage.structure.indexed_generators": { + "ntests": 112 + }, + "sage.structure.list_clone": { + "ntests": 380 + }, + "sage.structure.list_clone_demo": { + "ntests": 43 + }, + "sage.structure.list_clone_timings": { + "ntests": 18 + }, + "sage.structure.list_clone_timings_cy": { + "ntests": 12 + }, + "sage.structure.mutability": { + "ntests": 68 + }, + "sage.structure.nonexact": { + "ntests": 11 + }, + "sage.structure.parent": { + "failed": true, + "ntests": 300 + }, + "sage.structure.parent_gens": { + "failed": true, + "ntests": 41 + }, + "sage.structure.parent_old": { + "failed": true, + "ntests": 9 + }, + "sage.structure.proof.all": { + "ntests": 31 + }, + "sage.structure.proof.proof": { + "ntests": 50 + }, + "sage.structure.richcmp": { + "ntests": 56 + }, + "sage.structure.richcmp.pxd": { + "ntests": 24 + }, + "sage.structure.sage_object": { + "failed": true, + "ntests": 83 + }, + "sage.structure.sequence": { + "ntests": 183 + }, + "sage.structure.set_factories": { + "ntests": 225 + }, + "sage.structure.set_factories_example": { + "ntests": 81 + }, + "sage.structure.support_view": { + "ntests": 38 + }, + "sage.structure.test_factory": { + "ntests": 6 + }, + "sage.structure.unique_representation": { + "ntests": 214 + }, + "sage.symbolic.assumptions": { + "failed": true, + "ntests": 257 + }, + "sage.symbolic.benchmark": { + "failed": true, + "ntests": 27 + }, + "sage.symbolic.callable": { + "ntests": 99 + }, + "sage.symbolic.comparison_impl.pxi": { + "ntests": 41 + }, + "sage.symbolic.complexity_measures": { + "ntests": 3 + }, + "sage.symbolic.constants": { + "failed": true, + "ntests": 241 + }, + "sage.symbolic.constants_c_impl.pxi": { + "failed": true, + "ntests": 39 + }, + "sage.symbolic.expression": { + "failed": true, + "ntests": 3037 + }, + "sage.symbolic.expression_conversion_algebraic": { + "failed": true, + "ntests": 57 + }, + "sage.symbolic.expression_conversion_sympy": { + "failed": true, + "ntests": 72 + }, + "sage.symbolic.expression_conversions": { + "failed": true, + "ntests": 405 + }, + "sage.symbolic.function": { + "failed": true, + "ntests": 244 + }, + "sage.symbolic.function_factory": { + "ntests": 96 + }, + "sage.symbolic.getitem_impl.pxi": { + "ntests": 30 + }, + "sage.symbolic.integration.external": { + "failed": true, + "ntests": 32 + }, + "sage.symbolic.integration.integral": { + "failed": true, + "ntests": 236 + }, + "sage.symbolic.maxima_wrapper": { + "ntests": 33 + }, + "sage.symbolic.operators": { + "ntests": 50 + }, + "sage.symbolic.pynac_constant_impl.pxi": { + "ntests": 18 + }, + "sage.symbolic.pynac_function_impl.pxi": { + "ntests": 18 + }, + "sage.symbolic.pynac_impl.pxi": { + "failed": true, + "ntests": 330 + }, + "sage.symbolic.random_tests": { + "ntests": 47 + }, + "sage.symbolic.relation": { + "failed": true, + "ntests": 395 + }, + "sage.symbolic.ring": { + "failed": true, + "ntests": 264 + }, + "sage.symbolic.series_impl.pxi": { + "ntests": 55 + }, + "sage.symbolic.subring": { + "failed": true, + "ntests": 177 + }, + "sage.symbolic.substitution_map_impl.pxi": { + "ntests": 9 + }, + "sage.symbolic.symbols": { + "ntests": 3 + }, + "sage.symbolic.tests": { + "ntests": 2 + }, + "sage.symbolic.units": { + "failed": true, + "ntests": 89 + }, + "sage.tensor.modules.alternating_contr_tensor": { + "ntests": 150 + }, + "sage.tensor.modules.comp": { + "ntests": 1009 + }, + "sage.tensor.modules.ext_pow_free_module": { + "ntests": 174 + }, + "sage.tensor.modules.finite_rank_free_module": { + "ntests": 671 + }, + "sage.tensor.modules.format_utilities": { + "ntests": 64 + }, + "sage.tensor.modules.free_module_alt_form": { + "ntests": 175 + }, + "sage.tensor.modules.free_module_automorphism": { + "ntests": 243 + }, + "sage.tensor.modules.free_module_basis": { + "ntests": 187 + }, + "sage.tensor.modules.free_module_element": { + "ntests": 62 + }, + "sage.tensor.modules.free_module_homset": { + "ntests": 97 + }, + "sage.tensor.modules.free_module_linear_group": { + "ntests": 112 + }, + "sage.tensor.modules.free_module_morphism": { + "failed": true, + "ntests": 251 + }, + "sage.tensor.modules.free_module_tensor": { + "ntests": 642 + }, + "sage.tensor.modules.reflexive_module": { + "ntests": 71 + }, + "sage.tensor.modules.tensor_free_module": { + "ntests": 142 + }, + "sage.tensor.modules.tensor_free_submodule": { + "ntests": 104 + }, + "sage.tensor.modules.tensor_free_submodule_basis": { + "ntests": 31 + }, + "sage.tests.benchmark": { + "failed": true, + "ntests": 217 + }, + "sage.tests.book_stein_ent": { + "failed": true, + "ntests": 240 + }, + "sage.tests.cmdline": { + "ntests": 149 + }, + "sage.tests.functools_partial_src": { + "ntests": 3 + }, + "sage.tests.gosper-sum": { + "failed": true, + "ntests": 97 + }, + "sage.tests.numpy": { + "ntests": 6 + }, + "sage.tests.parigp": { + "ntests": 7 + }, + "sage.tests.startup": { + "ntests": 6 + }, + "sage.tests.symbolic-series": { + "ntests": 54 + }, + "sage.tests.sympy": { + "ntests": 5 + }, + "sage.tests.test_deprecation": { + "ntests": 4 + }, + "sage.typeset.ascii_art": { + "failed": true, + "ntests": 24 + }, + "sage.typeset.character_art": { + "failed": true, + "ntests": 108 + }, + "sage.typeset.character_art_factory": { + "failed": true, + "ntests": 41 + }, + "sage.typeset.symbols": { + "ntests": 28 + }, + "sage.typeset.unicode_art": { + "failed": true, + "ntests": 16 + }, + "sage.typeset.unicode_characters": { + "ntests": 27 + } +} \ No newline at end of file diff --git a/pkgs/sagemath-symbolics/meson.build b/pkgs/sagemath-symbolics/meson.build new file mode 100644 index 00000000000..b8dbe6ca7b1 --- /dev/null +++ b/pkgs/sagemath-symbolics/meson.build @@ -0,0 +1,21 @@ +project( + 'sagemath-symbolics', + ['c', 'cpp', 'cython'], + version: files('VERSION.txt'), + meson_version: '>= 1.2.0', +) + +set_variable('distribution_sagemath_symbolics', true) + +# Python module +# https://mesonbuild.com/Python-module.html +py_module = import('python') +py = py_module.find_installation(pure: false) +py_dep = py.dependency() + +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +subdir('sage') diff --git a/pkgs/sagemath-symbolics/pyproject.toml.m4 b/pkgs/sagemath-symbolics/pyproject.toml.m4 new file mode 100644 index 00000000000..501cf0843b0 --- /dev/null +++ b/pkgs/sagemath-symbolics/pyproject.toml.m4 @@ -0,0 +1,98 @@ +include(`sage_spkg_versions_toml.m4')dnl' -*- conf-toml -*- +[build-system] +# Minimum requirements for the build system to execute. +requires = [ + SPKG_INSTALL_REQUIRES_meson_python + SPKG_INSTALL_REQUIRES_sage_setup + SPKG_INSTALL_REQUIRES_sage_conf + SPKG_INSTALL_REQUIRES_pkgconfig + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_cython + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_numpy + SPKG_INSTALL_REQUIRES_mpmath + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals +] +build-backend = "mesonpy" + +[project] +name = "sagemath-symbolics" +description = "Sage: Open Source Mathematics Software: Symbolic calculus" +dependencies = [ + SPKG_INSTALL_REQUIRES_gmpy2 + SPKG_INSTALL_REQUIRES_cypari + SPKG_INSTALL_REQUIRES_cysignals + SPKG_INSTALL_REQUIRES_numpy + SPKG_INSTALL_REQUIRES_sagemath_categories + SPKG_INSTALL_REQUIRES_sagemath_environment + SPKG_INSTALL_REQUIRES_sagemath_flint + SPKG_INSTALL_REQUIRES_sagemath_modules + SPKG_INSTALL_REQUIRES_sagemath_mpmath + SPKG_INSTALL_REQUIRES_sagemath_ntl + SPKG_INSTALL_REQUIRES_sage_conf + SPKG_INSTALL_REQUIRES_sympy +] +dynamic = ["version"] +include(`pyproject_toml_metadata.m4')dnl' + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + +[project.optional-dependencies] +test = [SPKG_INSTALL_REQUIRES_sagemath_repl] + +# extras by libraries +axiom = [] # FIXME +giac = [SPKG_INSTALL_REQUIRES_sagemath_giac] +ginac = [] # no extra needed, same as pynac +maxima = [] # no extra needed +ntl = [] # no extra needed +primecount = [SPKG_INSTALL_REQUIRES_primecountpy] +pynac = [] # no extra needed +singular = [] # no extra needed +sympy = [] # no extra needed + +# extras by other features +plot = [SPKG_INSTALL_REQUIRES_sagemath_plot] + +[tool.setuptools] +include-package-data = false + +[tool.setuptools.package-data] +"sage.interfaces" = ["sage-maxima.lisp"] +sage = [ + "ext_data/*", + "ext_data/kenzo/*", + "ext_data/singular/*", + "ext_data/singular/function_field/*", + "ext_data/magma/*", + "ext_data/magma/latex/*", + "ext_data/magma/sage/*", +] + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + +[external] +# External dependencies in the format proposed by https://peps.python.org/pep-0725 +build-requires = [ + "virtual:compiler/c", + "virtual:compiler/cpp", + "pkg:generic/pkg-config", +] + +host-requires = [ + "pkg:generic/ecl", + "pkg:generic/gmp", + "pkg:generic/maxima", + "pkg:generic/mpc", + "pkg:generic/mpfr", + "pkg:generic/singular", +] + +dependencies = [ +] diff --git a/pkgs/sagemath-symbolics/requirements-editable.txt.m4 b/pkgs/sagemath-symbolics/requirements-editable.txt.m4 new file mode 100644 index 00000000000..4bca70b65ff --- /dev/null +++ b/pkgs/sagemath-symbolics/requirements-editable.txt.m4 @@ -0,0 +1,14 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_gmpy2 +SPKG_INSTALL_REQUIRES_cysignals +SPKG_INSTALL_REQUIRES_memory_allocator +SPKG_INSTALL_REQUIRES_numpy +SPKG_INSTALL_REQUIRES_sympy +-e ../sagemath-objects +-e ../sagemath-categories +-e ../sagemath-environment +-e ../sagemath-modules +-e ../sagemath-mpmath +-e ../sagemath-repl +-e ../sage-conf diff --git a/pkgs/sagemath-symbolics/requirements.txt.m4 b/pkgs/sagemath-symbolics/requirements.txt.m4 new file mode 100644 index 00000000000..d145756dfd1 --- /dev/null +++ b/pkgs/sagemath-symbolics/requirements.txt.m4 @@ -0,0 +1,3 @@ +dnl Include all from sagemath-categories (via m4 include) +include(`../sagemath_categories/src/requirements.txt.m4') +pplpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)') diff --git a/pkgs/sagemath-symbolics/sage b/pkgs/sagemath-symbolics/sage new file mode 120000 index 00000000000..e0da5daa6f2 --- /dev/null +++ b/pkgs/sagemath-symbolics/sage @@ -0,0 +1 @@ +../../src/sage \ No newline at end of file diff --git a/pkgs/sagemath-symbolics/sage-cython-native-file.ini b/pkgs/sagemath-symbolics/sage-cython-native-file.ini new file mode 100644 index 00000000000..3abc0954517 --- /dev/null +++ b/pkgs/sagemath-symbolics/sage-cython-native-file.ini @@ -0,0 +1,2 @@ +[binaries] +cython = 'sage-cython' diff --git a/pkgs/sagemath-symbolics/setup.py b/pkgs/sagemath-symbolics/setup.py new file mode 100644 index 00000000000..4dd24a57a06 --- /dev/null +++ b/pkgs/sagemath-symbolics/setup.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +from sage_setup import sage_setup + +sage_setup('sagemath-symbolics', + required_modules=('gsl', 'Singular', 'ecl')) diff --git a/pkgs/sagemath-symbolics/tox.ini b/pkgs/sagemath-symbolics/tox.ini new file mode 100644 index 00000000000..ccceecf675a --- /dev/null +++ b/pkgs/sagemath-symbolics/tox.ini @@ -0,0 +1,118 @@ +# To build and test in the tox environment: +# +# make SAGE_WHEELS=yes sagemath_polyhedra-build-deps && ./sage -sh -c '(cd pkgs/sagemath-polyhedra && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)' +# +# After this, to test interactively: +# +# pkgs/sagemath-symbolics/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage +# +[tox] +envlist = + sagepython-sagewheels-nopypi-norequirements + +requires = + # Auto-provision a modern tox. + # [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance + tox>=4.2 + +[pkgenv] +# Environment in which to build the sdist. +# https://tox.wiki/en/latest/upgrading.html#packaging-environments +passenv = + # Variables set by .homebrew-build-env + CPATH + LIBRARY_PATH + PKG_CONFIG_PATH + # Parallel build + SAGE_NUM_THREADS + SAGE_NUM_THREADS_PARALLEL + # SAGE_VENV only for referring to the basepython or finding the wheels + sagepython, sagewheels: SAGE_VENV + # Location of the wheels + sagewheels: SAGE_SPKG_WHEELS + +setenv = + # We supply pip options by environment variables so that they + # apply both to the installation of the dependencies and of the package + sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + nopypi: PIP_NO_INDEX=true + +[testenv] +deps = + !norequirements: -rrequirements.txt + +extras = test + +passenv = {[pkgenv]passenv} + +setenv = {[pkgenv]setenv} + # Sage scripts such as sage-runtests like to use $HOME/.sage + HOME={envdir} + # Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL + SAGE_DOC=/doesnotexist + KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json + +allowlist_externals = + bash + +commands = + # Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package. + python -c 'import sys; "" in sys.path and sys.path.remove(""); import sage.all__sagemath_symbolics' + + bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \ + && sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_symbolics --baseline-stats-path=$KNOWN_TEST_FAILURES --installed' + +[testenv:.tox] +# Allow access to PyPI for auto-provisioning a suitable tox version +passenv = +setenv = PIP_NO_INDEX=false + +[testenv:.pkg-sagepython] +# Environment in which to build the sdist. +# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi] +passenv = {[pkgenv]passenv} + SAGE_VENV + SAGE_SPKG_WHEELS + +setenv = {[pkgenv]setenv} + PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels} + PIP_NO_INDEX=true + +basepython = {env:SAGE_VENV}/bin/python3 + +[testenv:.pkg-sagepython-sagewheels-nopypi-editable] +config_settings_build_editable = + editable_mode = strict + + +[testenv:sagepython] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + +[testenv:sagepython-sagewheels-nopypi] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels] +basepython = {env:SAGE_VENV}/bin/python +package_env = .pkg-sagepython + +[testenv:sagepython-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython + + +[testenv:sagepython-sagewheels-nopypi-norequirements] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi + +[testenv:sagepython-sagewheels-nopypi-editable] +basepython = {env:SAGE_VENV}/bin/python3 +package_env = .pkg-sagepython-sagewheels-nopypi-editable +package = editable +deps = -r requirements-editable.txt +config_settings_build_editable = + editable_mode = strict diff --git a/pkgs/sagemath-tdlib/VERSION.txt~brial_experimental b/pkgs/sagemath-tdlib/VERSION.txt~brial_experimental new file mode 100644 index 00000000000..7786f0e63e4 --- /dev/null +++ b/pkgs/sagemath-tdlib/VERSION.txt~brial_experimental @@ -0,0 +1 @@ +10.2.beta5 diff --git a/pkgs/sagemath-tdlib/requirements-editable.txt.m4 b/pkgs/sagemath-tdlib/requirements-editable.txt.m4 new file mode 100644 index 00000000000..1d909c00118 --- /dev/null +++ b/pkgs/sagemath-tdlib/requirements-editable.txt.m4 @@ -0,0 +1,3 @@ +include(`sage_spkg_versions.m4')dnl +dnl Same as setup.cfg.m4 install_requires; FIXME: should pin to built wheels. +SPKG_INSTALL_REQUIRES_cysignals diff --git a/pkgs/sagemath-tdlib/setup.py b/pkgs/sagemath-tdlib/setup.py index 0d6e1c1db28..265f6c26c7d 100644 --- a/pkgs/sagemath-tdlib/setup.py +++ b/pkgs/sagemath-tdlib/setup.py @@ -1,65 +1,5 @@ #!/usr/bin/env python -from distutils import log -from setuptools import setup +from sage_setup import sage_setup -# Work around a Cython problem in Python 3.8.x on macOS -# https://github.com/cython/cython/issues/3262 -import os -if os.uname().sysname == 'Darwin': - import multiprocessing - multiprocessing.set_start_method('fork', force=True) - -# If build isolation is not in use and setuptools_scm is installed, -# then its file_finders entry point is invoked, which we don't need. -# Workaround from ​https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286 -try: - import setuptools_scm.integration - setuptools_scm.integration.find_files = lambda _: [] -except ImportError: - pass - -# PEP 517 builds do not have . in sys.path -import sys -sys.path.insert(0, os.path.dirname(__file__)) - -if len(sys.argv) > 1 and (sys.argv[1] == "sdist" or sys.argv[1] == "egg_info"): - sdist = True -else: - sdist = False - -if sdist: - cmdclass = {} -else: - from sage_setup.excepthook import excepthook - sys.excepthook = excepthook - - from sage_setup.setenv import setenv - setenv() - - import sage.env - sage.env.default_required_modules = sage.env.default_optional_modules = () - - from sage_setup.command.sage_build_cython import sage_build_cython - from sage_setup.command.sage_build_ext import sage_build_ext - from sage_setup.command.sage_build_py import sage_build_py - sage_build_cython.built_distributions = ['sagemath-tdlib'] - - cmdclass = dict(build_cython=sage_build_cython, - build_ext=sage_build_ext, - build_py=sage_build_py) - -from sage_setup.find import find_python_sources -python_packages, python_modules, cython_modules = find_python_sources( - '.', ['sage'], distributions=['sagemath-tdlib']) - -log.warn('python_packages = {0}'.format(python_packages)) -log.warn('python_modules = {0}'.format(python_modules)) -log.warn('cython_modules = {0}'.format(cython_modules)) - -setup( - cmdclass = cmdclass, - packages = python_packages, - py_modules = python_modules, - ext_modules = cython_modules, -) +sage_setup(['sagemath-tdlib']) diff --git a/src/.relint.yml b/src/.relint.yml index 80dcb8600c5..a526e2bd867 100644 --- a/src/.relint.yml +++ b/src/.relint.yml @@ -68,4 +68,4 @@ magic doctest comments should appear on the "sage:" line, not "....:" lines # see optional_regex in src/sage/doctest/parsing.py # "indirect doctest" is from src/bin/sage-coverage - pattern: '^[ ]*[.][.][.][.]:.*#.*(py2|py3|long time|not implemented|not tested|known bug|optional|indirect doctest)' + pattern: '^[ ]*[.][.][.][.]:.*#.*(py2|py3|long time|not implemented|not tested|known bug|optional|needs|indirect doctest)' diff --git a/src/MANIFEST.in b/src/MANIFEST.in index f6231401294..7b1b4920f7f 100644 --- a/src/MANIFEST.in +++ b/src/MANIFEST.in @@ -2,6 +2,7 @@ include VERSION.txt recursive-include sage *.pxi *.pxd *.h *.hpp +graft sage prune sage/ext/interpreters # In particular, __init__.py must not be present in the distribution; or sage_setup.autogen.interpreters.rebuild will not generate the code prune sage_docbuild prune doc diff --git a/src/Pipfile.m4 b/src/Pipfile.m4 index feca57f7de9..d03a2a12814 100644 --- a/src/Pipfile.m4 +++ b/src/Pipfile.m4 @@ -6,8 +6,8 @@ url = "https://pypi.org/simple" verify_ssl = true [dev-packages] -## We do not list packages that are already declared as install_requires -## in setup.cfg +## We do not list packages that are already declared as dependencies (install_requires) +## in pyproject.toml pycodestyle = "*" tox = "*" pytest = "*" @@ -15,8 +15,8 @@ rope = "*" six = "*" [packages] -## We do not list packages that are already declared as install_requires -## in setup.cfg +## We do not list packages that are already declared as dependencies (install_requires) +## in pyproject.toml [packages.e1839a8] path = "." diff --git a/src/bin/sage-cython b/src/bin/sage-cython index a52a729dd02..a189e44ce1d 100755 --- a/src/bin/sage-cython +++ b/src/bin/sage-cython @@ -1,39 +1,26 @@ -#!/usr/bin/env sage-python +#!/usr/bin/env python -# This script is a deprecated wrapper around the "cython" program. -# It is deprecated since Issue #27041 (Sage 8.7) because one should +# This script is a wrapper around the "cython" program. +# It was deprecated in Issue #27041 (Sage 8.7) because one should # simply use "cython" directly. We display deprecation messages whenever # "sage-cython" does something different from plain "cython". # # A stronger deprecation warning was added in #29923 (Sage 9.2). +# +# In Sage 10.3, the deprecated functionality is removed permanently. +# However, the script is un-deprecated and re-purposed as a temporary workaround +# for defects in Cython 3.0.x support for PEP 420 implicit namespace packages, +# see https://github.com/sagemath/sage/pull/36228 +# +# This script can be used as a replacement for "cython". +# For example, to have meson use it, set the environment variable +# CYTHON to sage-cython./ +# https://github.com/mesonbuild/meson/blob/e4bbc630b67ef97ad842badd00855e64cff12e13/mesonbuild/envconfig.py#L91 -import os -import sys -args = sys.argv[1:] - -sys.stderr.write("WARNING: the script sage-cython is deprecated; use cython instead.\n") - -from sage.env import SAGE_SRC - -# args can have length 0, in case we're printing a usage message (see trac 12207) -pyx_file = os.path.abspath(args[-1]) if len(args) else None -include_sage_flags = False - -if pyx_file and pyx_file.startswith(SAGE_SRC): - sys.stderr.write("WARNING: in the future, sage --cython will not add special flags for files in Sage sources.\n") - include_sage_flags = True - -if '-sage' in args: - sys.stderr.write("WARNING: sage --cython -sage is deprecated.\n") - include_sage_flags = True - args.remove('-sage') -elif '-no-sage' in args: - sys.stderr.write("WARNING: sage --cython -no-sage is deprecated, remove the -no-sage flag.\n") - include_sage_flags = False - args.remove('-no-sage') +from sage.misc.package_dir import cython_namespace_package_support -if include_sage_flags: - args = ['--embed-positions', '-I%s' % SAGE_SRC] + args +# console scripts declared in https://github.com/cython/cython/blob/master/setup.py#L68 +from Cython.Compiler.Main import setuptools_main -args.insert(0, 'sage-cython') -os.execlp('cython', *args) +with cython_namespace_package_support(): + setuptools_main() diff --git a/src/bin/sage-eval b/src/bin/sage-eval index 875c98a785b..664e1051742 100755 --- a/src/bin/sage-eval +++ b/src/bin/sage-eval @@ -2,7 +2,10 @@ import sys from sage.all import * -from sage.calculus.predefined import x +try: + from sage.calculus.predefined import x +except ImportError: + pass from sage.repl.preparse import preparse if len(sys.argv) > 1: diff --git a/src/bin/sage-fixdoctests b/src/bin/sage-fixdoctests index 9877af91cc8..8c8fe0434a6 100755 --- a/src/bin/sage-fixdoctests +++ b/src/bin/sage-fixdoctests @@ -588,9 +588,24 @@ if __name__ == "__main__": if args.distribution == ['all']: args.distribution = ['sagemath-categories', + 'sagemath-modules', + 'sagemath-pari', + 'sagemath-graphs', 'sagemath-graphs[modules]', 'sagemath-graphs[modules,pari]', + 'sagemath-groups', + 'sagemath-combinat', 'sagemath-combinat[graphs]', 'sagemath-combinat[modules]', + 'sagemath-polyhedra', 'sagemath-polyhedra[standard]', + 'sagemath-schemes', 'sagemath-schemes[ntl]', 'sagemath-schemes[pari]', + 'sagemath-symbolics', ''] # monolithic distribution args.update_failures_distribution = args.distribution + ['sagemath-repl', # not included above because it knows too little and complains too much - ] + 'sagemath-bliss', + 'sagemath-coxeter3', + 'sagemath-flint', + 'sagemath-glpk', + 'sagemath-linbox', + 'sagemath-mpmath', + 'sagemath-plot', + 'sagemath-standard-no-symbolics'] args.ignore_bad_distributions = True diff --git a/src/doc/en/developer/coding_basics.rst b/src/doc/en/developer/coding_basics.rst index 5e15c4b2455..32193f83e57 100644 --- a/src/doc/en/developer/coding_basics.rst +++ b/src/doc/en/developer/coding_basics.rst @@ -193,8 +193,8 @@ included in one of the following places: This practice is deprecated, see :issue:`33037`. In all cases, the files must be listed (explicitly or via wildcards) in -the section ``options.package_data`` of the file -:sage_root:`pkgs/sagemath-standard/setup.cfg.m4` (or the corresponding +the section ``[tool.setuptools.package-data]`` of the file +:sage_root:`SAGE_ROOT/pkgs/sagemath-standard/pyproject.toml` (or the corresponding file of another distribution). Large data files should not be added to the Sage source tree. Instead, it diff --git a/src/doc/en/developer/coding_in_python.rst b/src/doc/en/developer/coding_in_python.rst index bb08408777b..9430884fe07 100644 --- a/src/doc/en/developer/coding_in_python.rst +++ b/src/doc/en/developer/coding_in_python.rst @@ -14,8 +14,10 @@ Python language standard Sage library code needs to be compatible with all versions of Python that Sage supports. The information regarding the supported versions -can be found in the files ``build/pkgs/python3/spkg-configure.m4`` and -``src/setup.cfg.m4``. +can be found in the files ``build/pkgs/python3/spkg-configure.m4`` +(for the Sage distribution), ``src/pyproject.toml`` (for the Sage +library), and ``m4/pyproject_toml_metadata.m4`` (for most other +distribution packages in ``pkgs/``). Python 3.9 is the oldest supported version. Hence, all language and library features that are available in Python 3.9 can @@ -44,7 +46,7 @@ using one of two mechanisms: (to be used in place of ``typing``). The Sage library declares these packages as dependencies and ensures that - versions that provide features of Python 3.11 are available. + versions that provide features of Python 3.12 are available. Meta :issue:`29756` keeps track of newer Python features and serves as a starting point for discussions on how to make use of them in the diff --git a/src/doc/en/developer/doctesting.rst b/src/doc/en/developer/doctesting.rst index 75cc659934f..f83f88b0f22 100644 --- a/src/doc/en/developer/doctesting.rst +++ b/src/doc/en/developer/doctesting.rst @@ -1666,7 +1666,7 @@ that uses the more specific options ``--venv`` and ``--environment``:: [mkoeppe@localhost sage]$ ./sage --fixdoctests --overwrite \ --venv pkgs/sagemath-categories/.tox/sagepython-... \ - --environment sage.all__sagemath_categories + --environment sage.all__sagemath_categories \ src/sage/geometry/schemes/generic/*.py Either way, the options ``--keep-both``, ``--full-tracebacks``, and diff --git a/src/doc/en/developer/packaging_sage_library.rst b/src/doc/en/developer/packaging_sage_library.rst index 9fbb4271727..a88e33b93ca 100644 --- a/src/doc/en/developer/packaging_sage_library.rst +++ b/src/doc/en/developer/packaging_sage_library.rst @@ -174,8 +174,7 @@ The source directory of a distribution package, such as $ ./sage --fixdistributions --set all --from-egg-info -- `pyproject.toml `_, - `setup.cfg `_, +- `pyproject.toml `_ and `requirements.txt `_ -- standard Python packaging metadata, declaring the distribution name, dependencies, etc. @@ -288,8 +287,9 @@ modules must be part of the distribution, or provided by another distribution -- which then must be declared as a run-time dependency. *Declaring run-time dependencies:* These dependencies are declared in -``setup.cfg`` (generated from ``setup.cfg.m4``) as -`install_requires `_. +``pyproject.toml`` (generated from ``pyproject.toml.m4``) as +`[project] dependencies `_ (in the older terminology of ``setup.cfg`` and ``setup.py``, +these dependencies were known as ``install_requires``). *Reducing module-level run-time dependencies:* @@ -467,14 +467,17 @@ features, which will only be working if the user also has installed **sagemath-symbolics**. *Declaring optional run-time dependencies:* It is possible to declare -such optional dependencies as `extras_require `_ in ``setup.cfg`` -(generated from ``setup.cfg.m4``). This is a very limited mechanism +such dependencies as `[project.optional-dependencies] `_ in ``pyproject.toml`` +(generated from ``pyproject.toml.m4``). +(In the older terminology of ``setup.cfg`` and ``setup.py``, +these optional dependencies were known as ``extras_require``.) +This is a very limited mechanism -- in particular it does not affect the build phase of the distribution in any way. It basically only provides a way to give a nickname to a distribution that can be installed as an add-on. -In our example, we could declare an ``extras_require`` so that users -could use ``pip install sagemath-coding[symbolics]``. +In our example, we could declare an optional dependency so that users +could use ``pip install "sagemath-coding[symbolics]"``. Doctest-only dependencies @@ -516,7 +519,7 @@ The version information for dependencies comes from the files ``build/pkgs/*/package-version.txt``. We use the `m4 `_ macro processor to insert the version information in the generated files -``pyproject.toml``, ``setup.cfg``, ``requirements.txt``. +``pyproject.toml`` and ``requirements.txt``. Hierarchy of distribution packages @@ -546,8 +549,8 @@ Hierarchy of distribution packages sphinx_plot(g, figsize=(8, 4), axes=False) -Solid arrows indicate ``install_requires``, i.e., a declared runtime dependency. -Dashed arrows indicate ``extras_require``, i.e., a declared optional runtime dependency. +Solid arrows indicate declared runtime dependencies (``install_requires``). +Dashed arrows indicate declared optional runtime dependencies (``extras_require``). Not shown in the diagram are build dependencies and optional dependencies for testing. - `sage_conf `_ is a configuration diff --git a/src/doc/en/reference/libs/index.rst b/src/doc/en/reference/libs/index.rst index b7b8fc0abe0..2ec7aad9c25 100644 --- a/src/doc/en/reference/libs/index.rst +++ b/src/doc/en/reference/libs/index.rst @@ -122,7 +122,7 @@ mpmath .. toctree:: :maxdepth: 1 - sage/libs/mpmath/utils + sage/libs/mpmath/sage_utils NTL --- diff --git a/src/doc/en/reference/misc/index.rst b/src/doc/en/reference/misc/index.rst index bdc30927a55..f9c63ac7b1c 100644 --- a/src/doc/en/reference/misc/index.rst +++ b/src/doc/en/reference/misc/index.rst @@ -84,8 +84,10 @@ Miscellaneous Useful Functions .. toctree:: :maxdepth: 1 + sage/misc/globals sage/misc/misc sage/misc/misc_c + sage/misc/timing sage/misc/verbose Laziness diff --git a/src/pyproject.toml b/src/pyproject.toml index 4b70dc133d1..c68463accdb 100644 --- a/src/pyproject.toml +++ b/src/pyproject.toml @@ -18,11 +18,192 @@ requires = [ ] build-backend = "setuptools.build_meta" +[project] +name = "sagemath-standard" +description = "Sage: Open Source Mathematics Software: Standard Python Library" +dependencies = [ + 'six >=1.15.0', + # From build/pkgs/sagelib/dependencies + 'conway-polynomials >=0.8', + 'cypari2 >=2.1.1', + 'cysignals >=1.10.2', + 'cython >=3.0, != 3.0.3, <4.0', + 'gmpy2 ~=2.1.b999', + # According to https://pypi.org/project/importlib-metadata/, + # 4.13 provides the features of Python 3.11 importlib.metadata + 'importlib_metadata >=4.13; python_version<"3.11"', + # According to https://pypi.org/project/importlib-resources/, + # version 5.7 provides the features of Python 3.11 importlib.resources + 'importlib_resources >= 5.7; python_version<"3.11"', + 'lrcalc ~=2.1', + 'memory_allocator', + 'numpy >=1.19', + 'pkgconfig', + # Issue #30922: pplpy 0.8.4 and earlier do not declare dependencies correctly + 'pplpy >=0.8.6', + 'primecountpy', + 'requests >=2.13.0', + # According to https://github.com/python/typing_extensions/blob/main/CHANGELOG.md, + # version 4.4.0 adds another Python 3.11 typing backport + 'typing_extensions >= 4.4.0; python_version<"3.11"', + # From Makefile.in: SAGERUNTIME + 'ipython >=7.13.0', + 'pexpect >=4.8.0', + # From Makefile.in: DOC_DEPENDENCIES + 'sphinx >=5.2, <8', + 'networkx >=2.4', + # 1.8 is known good version. + # Per https://docs.scipy.org/doc/scipy/dev/core-dev/index.html#version-numbering + # and https://docs.scipy.org/doc/scipy/dev/core-dev/index.html#deprecations, + # deprecations cannot be introduced in micro releases. + # SciPy devs wait "at least 6 months", "in practice two (minor) releases" + # from deprecation to removal of a feature. + 'scipy >=1.5', + 'sympy >=1.6, <2.0', + # Issue #33642: Set lower bound for use of matplotlib color maps introduced in #33491, + # and to suppress deprecation warnings (https://github.com/matplotlib/matplotlib/pull/21073) + 'matplotlib >=3.5.1', + 'pillow >=7.2.0', + 'mpmath >=1.1.0', + 'ipykernel >=5.2.1', + 'jupyter-client', + 'ipywidgets >=7.5.1', + 'fpylll >=0.5.9', + 'ptyprocess > 0.5', +] +dynamic = ["version"] +# duplicated from m4/pyproject_toml_metadata.m4 +license = {text = "GNU General Public License (GPL) v2 or later"} +authors = [{name = "The Sage Developers", email = "sage-support@googlegroups.com"}] +classifiers = [ + "Development Status :: 6 - Mature", + "Intended Audience :: Education", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", + "Operating System :: POSIX", + "Operating System :: MacOS :: MacOS X", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: Implementation :: CPython", + "Topic :: Scientific/Engineering :: Mathematics", +] +urls = {Homepage = "https://www.sagemath.org"} +requires-python = ">=3.9, <3.13" + +[project.optional-dependencies] +R = [ + 'rpy2 >=3.3', +] +bliss = [ + 'sagemath-bliss', +] +coxeter3 = [ + 'sagemath-coxeter3', +] +mcqd = [ + 'sagemath-mcqd', +] +meataxe = [ + 'sagemath-meataxe', +] +sirocco = [ + 'sagemath-sirocco', +] +tdlib = [ + 'sagemath-tdlib', +] + +[project.readme] +file = "README.rst" +content-type = "text/x-rst" + [tool.conda-lock] platforms = [ 'osx-64', 'linux-64', 'linux-aarch64', 'osx-arm64' ] +[tool.setuptools] +script-files = [ + # The sage script + "bin/sage", + # Other scripts that should be in the path also for OS packaging of sage: + "bin/sage-eval", + # Included because it is useful for doctesting/coverage testing user scripts too: + "bin/sage-runtests", + "bin/sage-fixdoctests", + "bin/sage-coverage", + # The following is deprecated but might still be used in user package install scripts + "bin/sage-cython", + # Helper scripts invoked by sage script + # (they would actually belong to something like libexec) + "bin/sage-cachegrind", + "bin/sage-callgrind", + "bin/sage-massif", + "bin/sage-omega", + "bin/sage-valgrind", + "bin/sage-venv-config", + "bin/sage-version.sh", + "bin/sage-cleaner", + # Only makes sense in sage-the-distribution. TODO: Move to another installation script. + "bin/sage-list-packages", + # Uncategorized scripts in alphabetical order + "bin/math-readline", + "bin/sage-env", + # sage-env-config -- installed by sage_conf + # sage-env-config.in -- not to be installed + "bin/sage-grep", + "bin/sage-grepdoc", + "bin/sage-inline-fortran", + "bin/sage-ipynb2rst", + "bin/sage-ipython", + "bin/sage-notebook", + "bin/sage-num-threads.py", + "bin/sage-preparse", + "bin/sage-python", + "bin/sage-run", + "bin/sage-run-cython", + "bin/sage-startuptime.py", + "bin/sage-update-version", +] +license-files = ["LICENSE.txt"] +include-package-data = false + +[tool.setuptools.package-data] +"sage.libs.gap" = ["sage.gaprc"] +"sage.interfaces" = ["sage-maxima.lisp"] +"sage.doctest" = ["tests/*"] +"sage.repl.rich_output" = ["example*"] +sage = [ + "ext_data/*", + "ext_data/kenzo/*", + "ext_data/singular/*", + "ext_data/singular/function_field/*", + "ext_data/images/*", + "ext_data/doctest/*", + "ext_data/doctest/invalid/*", + "ext_data/gap/*", + "ext_data/gap/joyner/*", + "ext_data/mwrank/*", + "ext_data/notebook-ipython/*", + "ext_data/nbconvert/*", + "ext_data/graphs/*", + "ext_data/pari/*", + "ext_data/pari/dokchitser/*", + "ext_data/pari/buzzard/*", + "ext_data/pari/simon/*", + "ext_data/magma/*", + "ext_data/magma/latex/*", + "ext_data/magma/sage/*", + "ext_data/valgrind/*", + "ext_data/threejs/*", +] + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} + [external] # External dependencies in the format proposed by https://peps.python.org/pep-0725 # In the future, sage-the-distribution can read this information diff --git a/src/sage/algebras/affine_nil_temperley_lieb.py b/src/sage/algebras/affine_nil_temperley_lieb.py index 958171992d4..c7985c2953f 100644 --- a/src/sage/algebras/affine_nil_temperley_lieb.py +++ b/src/sage/algebras/affine_nil_temperley_lieb.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Affine nilTemperley Lieb Algebra of type A diff --git a/src/sage/algebras/algebra.py b/src/sage/algebras/algebra.py index 8d9395a3176..7195b8607d8 100644 --- a/src/sage/algebras/algebra.py +++ b/src/sage/algebras/algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.modules """ Abstract base class for algebras diff --git a/src/sage/algebras/all.py b/src/sage/algebras/all.py index 0e995a677ec..2fc072c5aaf 100644 --- a/src/sage/algebras/all.py +++ b/src/sage/algebras/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Algebras """ @@ -14,56 +15,12 @@ # The full text of the GPL is available at: # # https://www.gnu.org/licenses/ -# **************************************************************************** -from sage.misc.lazy_import import lazy_import - -# old-style class for associative algebras, use Parent instead -from sage.rings.ring import Algebra +# ***************************************************************************** -import sage.algebras.catalog as algebras +from sage.algebras.all__sagemath_modules import * +from sage.algebras.all__sagemath_combinat import * from sage.algebras.quatalg.all import * -from sage.algebras.steenrod.all import * from sage.algebras.fusion_rings.all import * from sage.algebras.lie_algebras.all import * -from sage.algebras.quantum_groups.all import * from sage.algebras.lie_conformal_algebras.all import * - -# Algebra base classes -from sage.algebras.free_algebra import FreeAlgebra -from sage.algebras.free_algebra_quotient import FreeAlgebraQuotient - -from sage.algebras.finite_dimensional_algebras.all import FiniteDimensionalAlgebra - -lazy_import('sage.algebras.group_algebra', 'GroupAlgebra') - -lazy_import('sage.algebras.iwahori_hecke_algebra', 'IwahoriHeckeAlgebra') -lazy_import('sage.algebras.affine_nil_temperley_lieb', - 'AffineNilTemperleyLiebTypeA') -lazy_import('sage.algebras.nil_coxeter_algebra', 'NilCoxeterAlgebra') -lazy_import('sage.algebras.schur_algebra', ['SchurAlgebra', - 'SchurTensorModule']) - -lazy_import('sage.algebras.hall_algebra', 'HallAlgebra') - -lazy_import('sage.algebras.jordan_algebra', 'JordanAlgebra') - -lazy_import('sage.algebras.octonion_algebra', 'OctonionAlgebra') - -lazy_import('sage.algebras.shuffle_algebra', 'ShuffleAlgebra') - -from sage.algebras.clifford_algebra import CliffordAlgebra, ExteriorAlgebra -from sage.algebras.weyl_algebra import DifferentialWeylAlgebra - -lazy_import('sage.algebras.commutative_dga', 'GradedCommutativeAlgebra') - -lazy_import('sage.algebras.rational_cherednik_algebra', - 'RationalCherednikAlgebra') - -lazy_import('sage.algebras.tensor_algebra', 'TensorAlgebra') - -lazy_import('sage.algebras.q_system', 'QSystem') - -lazy_import('sage.algebras.cluster_algebra', 'ClusterAlgebra') - -lazy_import('sage.algebras.yangian', 'Yangian') diff --git a/src/sage/algebras/all__sagemath_combinat.py b/src/sage/algebras/all__sagemath_combinat.py new file mode 100644 index 00000000000..78732b161bf --- /dev/null +++ b/src/sage/algebras/all__sagemath_combinat.py @@ -0,0 +1,37 @@ +# sage_setup: distribution = sagemath-combinat +from sage.misc.lazy_import import lazy_import + +# Algebra base classes +lazy_import('sage.algebras.free_algebra', 'FreeAlgebra') +lazy_import('sage.algebras.free_algebra_quotient', 'FreeAlgebraQuotient') + +from sage.algebras.steenrod.all import * +from sage.algebras.quantum_groups.all import * + +lazy_import('sage.algebras.iwahori_hecke_algebra', 'IwahoriHeckeAlgebra') +lazy_import('sage.algebras.affine_nil_temperley_lieb', + 'AffineNilTemperleyLiebTypeA') +lazy_import('sage.algebras.nil_coxeter_algebra', 'NilCoxeterAlgebra') +lazy_import('sage.algebras.schur_algebra', ['SchurAlgebra', + 'SchurTensorModule']) + +lazy_import('sage.algebras.hall_algebra', 'HallAlgebra') + +lazy_import('sage.algebras.jordan_algebra', 'JordanAlgebra') + +lazy_import('sage.algebras.shuffle_algebra', 'ShuffleAlgebra') + +lazy_import('sage.algebras.commutative_dga', 'GradedCommutativeAlgebra') + +lazy_import('sage.algebras.rational_cherednik_algebra', + 'RationalCherednikAlgebra') + +lazy_import('sage.algebras.tensor_algebra', 'TensorAlgebra') + +lazy_import('sage.algebras.q_system', 'QSystem') + +lazy_import('sage.algebras.cluster_algebra', 'ClusterAlgebra') + +lazy_import('sage.algebras.yangian', 'Yangian') + +del lazy_import diff --git a/src/sage/algebras/all__sagemath_modules.py b/src/sage/algebras/all__sagemath_modules.py new file mode 100644 index 00000000000..7a504b8aff7 --- /dev/null +++ b/src/sage/algebras/all__sagemath_modules.py @@ -0,0 +1,15 @@ +# sage_setup: distribution = sagemath-modules +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.algebras.group_algebra', 'GroupAlgebra') + +# old-style class for associative algebras, use Parent instead +from sage.rings.ring import Algebra + +from sage.algebras.finite_dimensional_algebras.all import FiniteDimensionalAlgebra +from sage.algebras.clifford_algebra import CliffordAlgebra, ExteriorAlgebra +from sage.algebras.weyl_algebra import DifferentialWeylAlgebra +lazy_import('sage.algebras.octonion_algebra', 'OctonionAlgebra') + +import sage.algebras.catalog as algebras +del lazy_import diff --git a/src/sage/algebras/all__sagemath_singular.py b/src/sage/algebras/all__sagemath_singular.py new file mode 100644 index 00000000000..84ec2b51067 --- /dev/null +++ b/src/sage/algebras/all__sagemath_singular.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-singular diff --git a/src/sage/algebras/askey_wilson.py b/src/sage/algebras/askey_wilson.py index f8fc56f5f46..9d2f4c495a1 100644 --- a/src/sage/algebras/askey_wilson.py +++ b/src/sage/algebras/askey_wilson.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Askey-Wilson Algebras diff --git a/src/sage/algebras/associated_graded.py b/src/sage/algebras/associated_graded.py index 8806a1281ff..afd7f270063 100644 --- a/src/sage/algebras/associated_graded.py +++ b/src/sage/algebras/associated_graded.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.modules r""" Associated Graded Algebras To Filtered Algebras diff --git a/src/sage/algebras/catalog.py b/src/sage/algebras/catalog.py index afa5db12e8e..51490d1378c 100644 --- a/src/sage/algebras/catalog.py +++ b/src/sage/algebras/catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Catalog of Algebras diff --git a/src/sage/algebras/cellular_basis.py b/src/sage/algebras/cellular_basis.py index 8c474420378..5d82b9e280d 100644 --- a/src/sage/algebras/cellular_basis.py +++ b/src/sage/algebras/cellular_basis.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Cellular Basis diff --git a/src/sage/algebras/clifford_algebra.py b/src/sage/algebras/clifford_algebra.py index 92ad6c34d64..ff404894672 100644 --- a/src/sage/algebras/clifford_algebra.py +++ b/src/sage/algebras/clifford_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules r""" Clifford Algebras diff --git a/src/sage/algebras/clifford_algebra_element.pxd b/src/sage/algebras/clifford_algebra_element.pxd index 14d5a7a625c..1f298519605 100644 --- a/src/sage/algebras/clifford_algebra_element.pxd +++ b/src/sage/algebras/clifford_algebra_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Clifford algebra elements """ diff --git a/src/sage/algebras/clifford_algebra_element.pyx b/src/sage/algebras/clifford_algebra_element.pyx index 47a5e8026a2..54220787498 100644 --- a/src/sage/algebras/clifford_algebra_element.pyx +++ b/src/sage/algebras/clifford_algebra_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules """ Clifford algebra elements diff --git a/src/sage/algebras/cluster_algebra.py b/src/sage/algebras/cluster_algebra.py index 6772673cbcb..4ca6751e906 100644 --- a/src/sage/algebras/cluster_algebra.py +++ b/src/sage/algebras/cluster_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.graphs sage.modules r""" Cluster algebras diff --git a/src/sage/algebras/commutative_dga.py b/src/sage/algebras/commutative_dga.py index fdcaeedaad8..0df29478875 100644 --- a/src/sage/algebras/commutative_dga.py +++ b/src/sage/algebras/commutative_dga.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Commutative Differential Graded Algebras diff --git a/src/sage/algebras/down_up_algebra.py b/src/sage/algebras/down_up_algebra.py index 1bb35730014..fba640a4ac0 100644 --- a/src/sage/algebras/down_up_algebra.py +++ b/src/sage/algebras/down_up_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.modules r""" Down-Up Algebras diff --git a/src/sage/algebras/exterior_algebra_groebner.pxd b/src/sage/algebras/exterior_algebra_groebner.pxd index 2f2a0ff5cd8..517fd43c65e 100644 --- a/src/sage/algebras/exterior_algebra_groebner.pxd +++ b/src/sage/algebras/exterior_algebra_groebner.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Exterior algebras Gröbner bases """ diff --git a/src/sage/algebras/exterior_algebra_groebner.pyx b/src/sage/algebras/exterior_algebra_groebner.pyx index 9704bcbbfb0..5de888e0536 100644 --- a/src/sage/algebras/exterior_algebra_groebner.pyx +++ b/src/sage/algebras/exterior_algebra_groebner.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules r""" Exterior algebras Gröbner bases diff --git a/src/sage/algebras/finite_dimensional_algebras/all.py b/src/sage/algebras/finite_dimensional_algebras/all.py index acf12b5758a..ff747bdec4d 100644 --- a/src/sage/algebras/finite_dimensional_algebras/all.py +++ b/src/sage/algebras/finite_dimensional_algebras/all.py @@ -1 +1,2 @@ +# sage_setup: distribution = sagemath-modules from sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra import FiniteDimensionalAlgebra diff --git a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py index 3ba4bc658cb..9d5463b2560 100644 --- a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py +++ b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Finite-Dimensional Algebras """ diff --git a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd index c13b8dbab07..77a504b0258 100644 --- a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd +++ b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport AlgebraElement, Element, Vector from sage.matrix.matrix cimport Matrix diff --git a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx index cd101fb4e12..c3cc53887d2 100644 --- a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx +++ b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Elements of Finite Algebras """ diff --git a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py index bba15b91366..62060bbde39 100644 --- a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py +++ b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_ideal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.finite_rings (because all doctests use GF) """ Ideals of Finite Dimensional Algebras diff --git a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py index 90c3ae45573..5a27fa13e1c 100644 --- a/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py +++ b/src/sage/algebras/finite_dimensional_algebras/finite_dimensional_algebra_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Morphisms Between Finite Algebras """ diff --git a/src/sage/algebras/finite_gca.py b/src/sage/algebras/finite_gca.py index 0caf51c8ec5..62cbc4e9328 100644 --- a/src/sage/algebras/finite_gca.py +++ b/src/sage/algebras/finite_gca.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.modules r""" Finite dimensional graded commutative algebras diff --git a/src/sage/algebras/free_algebra.py b/src/sage/algebras/free_algebra.py index 8b73482e7bf..e49f7743c89 100644 --- a/src/sage/algebras/free_algebra.py +++ b/src/sage/algebras/free_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Free algebras diff --git a/src/sage/algebras/free_algebra_element.py b/src/sage/algebras/free_algebra_element.py index db8880eb262..26285eee5d2 100644 --- a/src/sage/algebras/free_algebra_element.py +++ b/src/sage/algebras/free_algebra_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Free algebra elements diff --git a/src/sage/algebras/free_algebra_quotient.py b/src/sage/algebras/free_algebra_quotient.py index 2d54b35a8e1..392bdd4ea1f 100644 --- a/src/sage/algebras/free_algebra_quotient.py +++ b/src/sage/algebras/free_algebra_quotient.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Finite dimensional free algebra quotients diff --git a/src/sage/algebras/free_algebra_quotient_element.py b/src/sage/algebras/free_algebra_quotient_element.py index b594cc65dec..d1e0a643941 100644 --- a/src/sage/algebras/free_algebra_quotient_element.py +++ b/src/sage/algebras/free_algebra_quotient_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Free algebra quotient elements @@ -36,8 +37,9 @@ def is_FreeAlgebraQuotientElement(x): """ EXAMPLES:: + sage: from sage.algebras.free_algebra_quotient_element import is_FreeAlgebraQuotientElement sage: H, (i,j,k) = sage.algebras.free_algebra_quotient.hamilton_quatalg(QQ) - sage: sage.algebras.free_algebra_quotient_element.is_FreeAlgebraQuotientElement(i) + sage: is_FreeAlgebraQuotientElement(i) doctest:warning... DeprecationWarning: The function is_FreeAlgebraQuotientElement is deprecated; use 'isinstance(..., FreeAlgebraQuotientElement)' instead. @@ -46,9 +48,9 @@ def is_FreeAlgebraQuotientElement(x): Of course this is testing the data type:: - sage: sage.algebras.free_algebra_quotient_element.is_FreeAlgebraQuotientElement(1) + sage: is_FreeAlgebraQuotientElement(1) False - sage: sage.algebras.free_algebra_quotient_element.is_FreeAlgebraQuotientElement(H(1)) + sage: is_FreeAlgebraQuotientElement(H(1)) True """ from sage.misc.superseded import deprecation @@ -65,10 +67,11 @@ def __init__(self, A, x): EXAMPLES:: + sage: from sage.algebras.free_algebra_quotient import FreeAlgebraQuotientElement sage: H, (i,j,k) = sage.algebras.free_algebra_quotient.hamilton_quatalg(ZZ) - sage: sage.algebras.free_algebra_quotient.FreeAlgebraQuotientElement(H, i) + sage: FreeAlgebraQuotientElement(H, i) i - sage: a = sage.algebras.free_algebra_quotient.FreeAlgebraQuotientElement(H, 1); a + sage: a = FreeAlgebraQuotientElement(H, 1); a 1 sage: a in H True diff --git a/src/sage/algebras/free_zinbiel_algebra.py b/src/sage/algebras/free_zinbiel_algebra.py index 875fde1fba9..fad0effaf2e 100644 --- a/src/sage/algebras/free_zinbiel_algebra.py +++ b/src/sage/algebras/free_zinbiel_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Free Zinbiel Algebras diff --git a/src/sage/algebras/fusion_rings/all.py b/src/sage/algebras/fusion_rings/all.py index 44484309add..78410e74818 100644 --- a/src/sage/algebras/fusion_rings/all.py +++ b/src/sage/algebras/fusion_rings/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Fusion Rings """ diff --git a/src/sage/algebras/fusion_rings/f_matrix.py b/src/sage/algebras/fusion_rings/f_matrix.py index b832a520fec..7f0d6d101da 100644 --- a/src/sage/algebras/fusion_rings/f_matrix.py +++ b/src/sage/algebras/fusion_rings/f_matrix.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular r""" The F-Matrix of a Fusion Ring """ @@ -34,7 +35,7 @@ from sage.algebras.fusion_rings.shm_managers import KSHandler, FvarsHandler from sage.graphs.graph import Graph from sage.matrix.constructor import matrix -from sage.misc.misc import get_main_globals +from sage.misc.globals import get_main_globals from sage.rings.ideal import Ideal from sage.structure.sage_object import SageObject from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing diff --git a/src/sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd b/src/sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd index e0908ab5884..65a159a3e54 100644 --- a/src/sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +++ b/src/sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular cdef _fmat(fvars, Nk_ij, one, a, b, c, d, x, y) cpdef _backward_subs(factory, bint flatten=*) cpdef executor(tuple params) diff --git a/src/sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx b/src/sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx index ba2a626c9f0..57a4272c9a4 100644 --- a/src/sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +++ b/src/sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Fast F-Matrix Methods """ diff --git a/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd b/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd index a992f0339a4..8a32ad1bc2e 100644 --- a/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +++ b/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd @@ -1,2 +1,4 @@ +# sage_setup: distribution = sagemath-singular + cpdef _unflatten_entries(factory, list entries) cpdef executor(tuple params) diff --git a/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx b/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx index deaa4517406..fd7d5577394 100644 --- a/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +++ b/src/sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Fast Fusion Ring Methods for Computing Braid Group Representations """ diff --git a/src/sage/algebras/fusion_rings/fusion_double.py b/src/sage/algebras/fusion_rings/fusion_double.py index 71277561331..e822b9aacd4 100644 --- a/src/sage/algebras/fusion_rings/fusion_double.py +++ b/src/sage/algebras/fusion_rings/fusion_double.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ The Fusion Ring of the Drinfeld Double of a Finite Group """ diff --git a/src/sage/algebras/fusion_rings/fusion_ring.py b/src/sage/algebras/fusion_rings/fusion_ring.py index 56045d2dce6..afb133179c2 100644 --- a/src/sage/algebras/fusion_rings/fusion_ring.py +++ b/src/sage/algebras/fusion_rings/fusion_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Fusion Rings """ @@ -26,7 +27,7 @@ from sage.matrix.constructor import matrix from sage.matrix.special import diagonal_matrix from sage.misc.cachefunc import cached_method -from sage.misc.misc import inject_variable +from sage.misc.globals import inject_variable from sage.rings.integer_ring import ZZ from sage.rings.number_field.number_field import CyclotomicField from sage.rings.qqbar import QQbar diff --git a/src/sage/algebras/fusion_rings/poly_tup_engine.pxd b/src/sage/algebras/fusion_rings/poly_tup_engine.pxd index 50493691f29..88048320646 100644 --- a/src/sage/algebras/fusion_rings/poly_tup_engine.pxd +++ b/src/sage/algebras/fusion_rings/poly_tup_engine.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular from sage.algebras.fusion_rings.shm_managers cimport KSHandler from sage.rings.number_field.number_field_element cimport NumberFieldElement_absolute from sage.rings.polynomial.multi_polynomial_libsingular cimport MPolynomial_libsingular, MPolynomialRing_libsingular diff --git a/src/sage/algebras/fusion_rings/poly_tup_engine.pyx b/src/sage/algebras/fusion_rings/poly_tup_engine.pyx index 8d6869bd484..51b10468143 100644 --- a/src/sage/algebras/fusion_rings/poly_tup_engine.pyx +++ b/src/sage/algebras/fusion_rings/poly_tup_engine.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Arithmetic Engine for Polynomials as Tuples """ diff --git a/src/sage/algebras/fusion_rings/shm_managers.pxd b/src/sage/algebras/fusion_rings/shm_managers.pxd index 5b1576bb677..0ef39036de0 100644 --- a/src/sage/algebras/fusion_rings/shm_managers.pxd +++ b/src/sage/algebras/fusion_rings/shm_managers.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular cimport numpy as np from sage.rings.number_field.number_field_base cimport NumberField from sage.rings.number_field.number_field_element cimport NumberFieldElement_absolute diff --git a/src/sage/algebras/fusion_rings/shm_managers.pyx b/src/sage/algebras/fusion_rings/shm_managers.pyx index d5acb513219..7356b2c342d 100644 --- a/src/sage/algebras/fusion_rings/shm_managers.pyx +++ b/src/sage/algebras/fusion_rings/shm_managers.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular r""" Shared Memory Managers for F-Symbol Attributes diff --git a/src/sage/algebras/group_algebra.py b/src/sage/algebras/group_algebra.py index 8dc952f23b9..c576fcb8d57 100644 --- a/src/sage/algebras/group_algebra.py +++ b/src/sage/algebras/group_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.groups sage.modules r""" Group algebras @@ -6,7 +7,7 @@ TESTS: -Check that unpicking old group algebra classes works:: +Check that unpickling old group algebra classes works:: sage: G = loads(b"x\x9cM\xceM\n\xc20\x10\x86a\xac\xff\xf1$n\xb2\xf1\x04\x82" ....: b"\xe8>\xe0:\xc4fL\x83i\xda\x99$K\xc1M\xf5\xdaj\x1a\xc1\xdd<" diff --git a/src/sage/algebras/hall_algebra.py b/src/sage/algebras/hall_algebra.py index bac7fa4f2fa..6991ddf0513 100644 --- a/src/sage/algebras/hall_algebra.py +++ b/src/sage/algebras/hall_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Hall Algebras diff --git a/src/sage/algebras/hecke_algebras/all.py b/src/sage/algebras/hecke_algebras/all.py index 052c816e1e5..cade22cbaea 100644 --- a/src/sage/algebras/hecke_algebras/all.py +++ b/src/sage/algebras/hecke_algebras/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Hecke Algebras """ diff --git a/src/sage/algebras/hecke_algebras/ariki_koike_algebra.py b/src/sage/algebras/hecke_algebras/ariki_koike_algebra.py index 8d674d0aaf1..2a5744c55cd 100644 --- a/src/sage/algebras/hecke_algebras/ariki_koike_algebra.py +++ b/src/sage/algebras/hecke_algebras/ariki_koike_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Ariki-Koike Algebras diff --git a/src/sage/algebras/hecke_algebras/cubic_hecke_algebra.py b/src/sage/algebras/hecke_algebras/cubic_hecke_algebra.py index 9aa6fa63ff2..f03a1468085 100644 --- a/src/sage/algebras/hecke_algebras/cubic_hecke_algebra.py +++ b/src/sage/algebras/hecke_algebras/cubic_hecke_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.groups sage.modules r""" Cubic Hecke Algebras diff --git a/src/sage/algebras/hecke_algebras/cubic_hecke_base_ring.py b/src/sage/algebras/hecke_algebras/cubic_hecke_base_ring.py index b980e2fa80c..1f8364f66d1 100644 --- a/src/sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +++ b/src/sage/algebras/hecke_algebras/cubic_hecke_base_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.libs.pari (for factorization) r""" Cubic Hecke Base Rings diff --git a/src/sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py b/src/sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py index 59b0767fb48..d47b5b57d1c 100644 --- a/src/sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +++ b/src/sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.modules r""" Cubic Hecke matrix representations diff --git a/src/sage/algebras/iwahori_hecke_algebra.py b/src/sage/algebras/iwahori_hecke_algebra.py index 01390f1a5a4..bd01638f460 100644 --- a/src/sage/algebras/iwahori_hecke_algebra.py +++ b/src/sage/algebras/iwahori_hecke_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.graphs sage.modules r""" Iwahori-Hecke Algebras diff --git a/src/sage/algebras/jordan_algebra.py b/src/sage/algebras/jordan_algebra.py index 0b6fc0111bf..f12b6a486d1 100644 --- a/src/sage/algebras/jordan_algebra.py +++ b/src/sage/algebras/jordan_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Jordan Algebras diff --git a/src/sage/algebras/letterplace/all.py b/src/sage/algebras/letterplace/all.py index e69de29bb2d..84ec2b51067 100644 --- a/src/sage/algebras/letterplace/all.py +++ b/src/sage/algebras/letterplace/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-singular diff --git a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pxd b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pxd index d22fe4e9a40..d10eeec0317 100644 --- a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pxd +++ b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular ############################################################################### # # Copyright (C) 2011 Simon King diff --git a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx index 2a977b1a513..faf659c0a4d 100644 --- a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx +++ b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Weighted homogeneous elements of free algebras, in letterplace implementation diff --git a/src/sage/algebras/letterplace/free_algebra_letterplace.pxd b/src/sage/algebras/letterplace/free_algebra_letterplace.pxd index 4df86da530e..d21fe27a10a 100644 --- a/src/sage/algebras/letterplace/free_algebra_letterplace.pxd +++ b/src/sage/algebras/letterplace/free_algebra_letterplace.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular ############################################################################### # # Copyright (C) 2011 Simon King diff --git a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx index 7a57922d24a..0a8a7eef702 100644 --- a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx +++ b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular ############################################################################### # # Copyright (C) 2011 Simon King diff --git a/src/sage/algebras/letterplace/letterplace_ideal.pyx b/src/sage/algebras/letterplace/letterplace_ideal.pyx index 77d0107ba07..8ccdae902cc 100644 --- a/src/sage/algebras/letterplace/letterplace_ideal.pyx +++ b/src/sage/algebras/letterplace/letterplace_ideal.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Homogeneous ideals of free algebras diff --git a/src/sage/algebras/lie_algebras/all__sagemath_modules.py b/src/sage/algebras/lie_algebras/all__sagemath_modules.py new file mode 100644 index 00000000000..6f6ab52d0f2 --- /dev/null +++ b/src/sage/algebras/lie_algebras/all__sagemath_modules.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/algebras/lie_algebras/lie_algebra_element.pxd b/src/sage/algebras/lie_algebras/lie_algebra_element.pxd index 2d874bd8dca..f5d3b9cf061 100644 --- a/src/sage/algebras/lie_algebras/lie_algebra_element.pxd +++ b/src/sage/algebras/lie_algebras/lie_algebra_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport Element from sage.structure.element_wrapper cimport ElementWrapper from sage.structure.sage_object cimport SageObject diff --git a/src/sage/algebras/lie_algebras/lie_algebra_element.pyx b/src/sage/algebras/lie_algebras/lie_algebra_element.pyx index b24e931b5e8..78f15b6a208 100644 --- a/src/sage/algebras/lie_algebras/lie_algebra_element.pyx +++ b/src/sage/algebras/lie_algebras/lie_algebra_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat """ Lie Algebra Elements diff --git a/src/sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py index 6027dee4a95..81e8fafe6f5 100644 --- a/src/sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Abelian Lie Conformal Algebra diff --git a/src/sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py index e9f697e8257..3bc241b5b36 100644 --- a/src/sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Affine Lie Conformal Algebra diff --git a/src/sage/algebras/lie_conformal_algebras/all.py b/src/sage/algebras/lie_conformal_algebras/all.py index 17a13f01371..24a6e4efeee 100644 --- a/src/sage/algebras/lie_conformal_algebras/all.py +++ b/src/sage/algebras/lie_conformal_algebras/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # ****************************************************************************** # Copyright (C) 2020 Reimundo Heluani # diff --git a/src/sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py index 2e689ee4c60..e1558e6a6bd 100644 --- a/src/sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bosonic Ghosts Lie Conformal Algebra diff --git a/src/sage/algebras/lie_conformal_algebras/examples.py b/src/sage/algebras/lie_conformal_algebras/examples.py index 1db194445be..4fb891ed9bc 100644 --- a/src/sage/algebras/lie_conformal_algebras/examples.py +++ b/src/sage/algebras/lie_conformal_algebras/examples.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Examples of Lie Conformal Algebras diff --git a/src/sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py index 004718d4a5f..723fbe18006 100644 --- a/src/sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Fermionic Ghosts Super Lie Conformal Algebra diff --git a/src/sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py b/src/sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py index be9afefd29a..2aaf69e291a 100644 --- a/src/sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +++ b/src/sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Finitely and Freely Generated Lie Conformal Algebras. diff --git a/src/sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py index e66489d49ca..d4d6f386ca7 100644 --- a/src/sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Free Bosons Lie Conformal Algebra diff --git a/src/sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py index 40810602ac4..ef99ccfe8df 100644 --- a/src/sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Free Fermions Super Lie Conformal Algebra. diff --git a/src/sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py index 0b77dd91854..f63b401067b 100644 --- a/src/sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Freely Generated Lie Conformal Algebras diff --git a/src/sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py index 2004f54485c..22d858b10a3 100644 --- a/src/sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Graded Lie Conformal Algebras diff --git a/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py index 528a587d795..24780bbf2eb 100644 --- a/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Lie Conformal Algebra diff --git a/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py b/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py index 27796941d2b..740de48b06d 100644 --- a/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +++ b/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Lie Conformal Algebra Element diff --git a/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py b/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py index 254eeac64e6..bbc83649ebd 100644 --- a/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +++ b/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Lie Conformal Algebras With Basis diff --git a/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py b/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py index 3cb8f645cd5..94fb227b6d4 100644 --- a/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +++ b/src/sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Lie Conformal Algebras With Structure Coefficients diff --git a/src/sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py index 1abce4b5c76..0ea9dc56655 100644 --- a/src/sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules sage.rings.number_field r""" N=2 Super Lie Conformal Algebra diff --git a/src/sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py index 323c08ee958..e4e38c59fe6 100644 --- a/src/sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Neveu-Schwarz Super Lie Conformal Algebra diff --git a/src/sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py index edaf039be55..e0567f5b8bd 100644 --- a/src/sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Virasoro Lie Conformal Algebra diff --git a/src/sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py b/src/sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py index 82e0c326547..6f8c5f5576d 100644 --- a/src/sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +++ b/src/sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Weyl Lie Conformal Algebra diff --git a/src/sage/algebras/nil_coxeter_algebra.py b/src/sage/algebras/nil_coxeter_algebra.py index 8b47e6fd49b..23eed1964fc 100644 --- a/src/sage/algebras/nil_coxeter_algebra.py +++ b/src/sage/algebras/nil_coxeter_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Nil-Coxeter Algebra diff --git a/src/sage/algebras/octonion_algebra.pxd b/src/sage/algebras/octonion_algebra.pxd index 78500729bdc..cf790a0b99f 100644 --- a/src/sage/algebras/octonion_algebra.pxd +++ b/src/sage/algebras/octonion_algebra.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Octonions """ diff --git a/src/sage/algebras/octonion_algebra.pyx b/src/sage/algebras/octonion_algebra.pyx index c38250b0be7..51d97a5d6ea 100644 --- a/src/sage/algebras/octonion_algebra.pyx +++ b/src/sage/algebras/octonion_algebra.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules """ Octonion Algebras diff --git a/src/sage/algebras/orlik_solomon.py b/src/sage/algebras/orlik_solomon.py index 113bb29418f..9a3cb000d96 100644 --- a/src/sage/algebras/orlik_solomon.py +++ b/src/sage/algebras/orlik_solomon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules r""" Orlik-Solomon Algebras diff --git a/src/sage/algebras/orlik_terao.py b/src/sage/algebras/orlik_terao.py index 60c3c60e6db..67e9b1c735c 100644 --- a/src/sage/algebras/orlik_terao.py +++ b/src/sage/algebras/orlik_terao.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules r""" Orlik-Terao Algebras diff --git a/src/sage/algebras/q_commuting_polynomials.py b/src/sage/algebras/q_commuting_polynomials.py index f19eaa042e4..8213a382598 100644 --- a/src/sage/algebras/q_commuting_polynomials.py +++ b/src/sage/algebras/q_commuting_polynomials.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.groups sage.modules r""" `q`-Commuting Polynomials diff --git a/src/sage/algebras/q_system.py b/src/sage/algebras/q_system.py index a8342434847..a243f2fa964 100644 --- a/src/sage/algebras/q_system.py +++ b/src/sage/algebras/q_system.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.graphs sage.modules r""" Q-Systems diff --git a/src/sage/algebras/quantum_clifford.py b/src/sage/algebras/quantum_clifford.py index 99c0c1e226f..b4431327b09 100644 --- a/src/sage/algebras/quantum_clifford.py +++ b/src/sage/algebras/quantum_clifford.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.modules r""" Quantum Clifford Algebras diff --git a/src/sage/algebras/quantum_groups/ace_quantum_onsager.py b/src/sage/algebras/quantum_groups/ace_quantum_onsager.py index 9d983529c73..3eae5a80ce3 100644 --- a/src/sage/algebras/quantum_groups/ace_quantum_onsager.py +++ b/src/sage/algebras/quantum_groups/ace_quantum_onsager.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Alternating Central Extension Quantum Onsager Algebra diff --git a/src/sage/algebras/quantum_groups/all.py b/src/sage/algebras/quantum_groups/all.py index 33ff442e7b4..d9003faed40 100644 --- a/src/sage/algebras/quantum_groups/all.py +++ b/src/sage/algebras/quantum_groups/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Quantum Groups """ diff --git a/src/sage/algebras/quantum_groups/fock_space.py b/src/sage/algebras/quantum_groups/fock_space.py index d1d98d3c184..7af9d4c1dd0 100644 --- a/src/sage/algebras/quantum_groups/fock_space.py +++ b/src/sage/algebras/quantum_groups/fock_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Fock Space @@ -464,7 +465,7 @@ def inject_shorthands(self, verbose=True): of Univariate Polynomial Ring in q over Integer Ring in the lower global crystal basis """ - from sage.misc.misc import inject_variable + from sage.misc.globals import inject_variable for shorthand in ['A', 'F', 'G']: realization = getattr(self, shorthand)() if verbose: diff --git a/src/sage/algebras/quantum_groups/q_numbers.py b/src/sage/algebras/quantum_groups/q_numbers.py index 19ee17df5ca..7bbd73da87d 100644 --- a/src/sage/algebras/quantum_groups/q_numbers.py +++ b/src/sage/algebras/quantum_groups/q_numbers.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" `q`-Numbers diff --git a/src/sage/algebras/quantum_groups/quantum_group_gap.py b/src/sage/algebras/quantum_groups/quantum_group_gap.py index 931ee211ff1..004ce2b4d5b 100644 --- a/src/sage/algebras/quantum_groups/quantum_group_gap.py +++ b/src/sage/algebras/quantum_groups/quantum_group_gap.py @@ -1,4 +1,5 @@ -# sage.doctest: optional - gap_package_quagroup sage.combinat sage.libs.gap sage.modules +# sage_setup: distribution = sagemath-combinat +# sage.doctest: optional - gap_package_quagroup, needs sage.combinat sage.libs.gap sage.modules """ Quantum Groups Using GAP's QuaGroup Package diff --git a/src/sage/algebras/quantum_groups/representations.py b/src/sage/algebras/quantum_groups/representations.py index 7d42aa78787..39be9583e8e 100644 --- a/src/sage/algebras/quantum_groups/representations.py +++ b/src/sage/algebras/quantum_groups/representations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.graphs sage.modules r""" Quantum Group Representations diff --git a/src/sage/algebras/quantum_matrix_coordinate_algebra.py b/src/sage/algebras/quantum_matrix_coordinate_algebra.py index 9ddde4376c8..ae50eeb19fa 100644 --- a/src/sage/algebras/quantum_matrix_coordinate_algebra.py +++ b/src/sage/algebras/quantum_matrix_coordinate_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Quantum Matrix Coordinate Algebras diff --git a/src/sage/algebras/quatalg/all.py b/src/sage/algebras/quatalg/all.py index 23bd4edac89..8e90f44fe2a 100644 --- a/src/sage/algebras/quatalg/all.py +++ b/src/sage/algebras/quatalg/all.py @@ -1 +1,2 @@ +# sage_setup: distribution = sagemath-singular from sage.algebras.quatalg.quaternion_algebra import QuaternionAlgebra diff --git a/src/sage/algebras/quatalg/quaternion_algebra.py b/src/sage/algebras/quatalg/quaternion_algebra.py index f85f282c0bb..1e44cd13b06 100644 --- a/src/sage/algebras/quatalg/quaternion_algebra.py +++ b/src/sage/algebras/quatalg/quaternion_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Quaternion Algebras diff --git a/src/sage/algebras/quatalg/quaternion_algebra_cython.pyx b/src/sage/algebras/quatalg/quaternion_algebra_cython.pyx index 2b9b230242c..3c729ab4fad 100644 --- a/src/sage/algebras/quatalg/quaternion_algebra_cython.pyx +++ b/src/sage/algebras/quatalg/quaternion_algebra_cython.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular # distutils: language = c++ # distutils: libraries = gmp m NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS diff --git a/src/sage/algebras/quatalg/quaternion_algebra_element.pxd b/src/sage/algebras/quatalg/quaternion_algebra_element.pxd index 93c98b3e045..53f5802bf91 100644 --- a/src/sage/algebras/quatalg/quaternion_algebra_element.pxd +++ b/src/sage/algebras/quatalg/quaternion_algebra_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular from sage.libs.gmp.types cimport mpz_t from sage.libs.flint.types cimport fmpz_poly_t diff --git a/src/sage/algebras/quatalg/quaternion_algebra_element.pyx b/src/sage/algebras/quatalg/quaternion_algebra_element.pyx index c7faef1a27f..c4e32f9e54f 100644 --- a/src/sage/algebras/quatalg/quaternion_algebra_element.pyx +++ b/src/sage/algebras/quatalg/quaternion_algebra_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular # distutils: language = c++ # distutils: libraries = gmp m NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS diff --git a/src/sage/algebras/quaternion_algebra.py b/src/sage/algebras/quaternion_algebra.py index a9fd6aff827..41b48c4eb7e 100644 --- a/src/sage/algebras/quaternion_algebra.py +++ b/src/sage/algebras/quaternion_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.modules ############################################################ diff --git a/src/sage/algebras/quaternion_algebra_element.py b/src/sage/algebras/quaternion_algebra_element.py index c1a7c7f9ec8..012c881d848 100644 --- a/src/sage/algebras/quaternion_algebra_element.py +++ b/src/sage/algebras/quaternion_algebra_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.modules ####################################################################### diff --git a/src/sage/algebras/rational_cherednik_algebra.py b/src/sage/algebras/rational_cherednik_algebra.py index 1ded26a1112..5e5cf462eab 100644 --- a/src/sage/algebras/rational_cherednik_algebra.py +++ b/src/sage/algebras/rational_cherednik_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Rational Cherednik Algebras diff --git a/src/sage/algebras/schur_algebra.py b/src/sage/algebras/schur_algebra.py index b967064e565..715471f7364 100644 --- a/src/sage/algebras/schur_algebra.py +++ b/src/sage/algebras/schur_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.groups sage.modules r""" Schur algebras for `GL_n` diff --git a/src/sage/algebras/shuffle_algebra.py b/src/sage/algebras/shuffle_algebra.py index adee056035c..2c0f8a4871f 100644 --- a/src/sage/algebras/shuffle_algebra.py +++ b/src/sage/algebras/shuffle_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Shuffle algebras diff --git a/src/sage/algebras/splitting_algebra.py b/src/sage/algebras/splitting_algebra.py index 43d72ed7470..9c39c50a66d 100644 --- a/src/sage/algebras/splitting_algebra.py +++ b/src/sage/algebras/splitting_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.libs.pari sage.modules r""" Splitting Algebras @@ -40,6 +41,7 @@ from sage.misc.cachefunc import cached_method from sage.rings.polynomial.polynomial_quotient_ring import PolynomialQuotientRing_domain from sage.rings.polynomial.polynomial_quotient_ring_element import PolynomialQuotientRingElement +from sage.rings.rational_field import QQ # ------------------------------------------------------------------------------------------------------------------ @@ -710,8 +712,8 @@ def create_roots(monic_polynomial, warning=True): # as coercion # ------------------------------------------------------------------------------------- reset_coercion = False - from sage.rings.number_field.number_field import NumberField_generic - if isinstance(base_ring, NumberField_generic): + from sage.rings.number_field.number_field_base import NumberField + if base_ring is not QQ and isinstance(base_ring, NumberField): reset_coercion = True elif base_ring.is_finite() and not base_ring.is_prime_field(): reset_coercion = True diff --git a/src/sage/algebras/steenrod/steenrod_algebra.py b/src/sage/algebras/steenrod/steenrod_algebra.py index 7e4c3dc014f..d10ce7ef96a 100644 --- a/src/sage/algebras/steenrod/steenrod_algebra.py +++ b/src/sage/algebras/steenrod/steenrod_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" The Steenrod algebra diff --git a/src/sage/algebras/steenrod/steenrod_algebra_bases.py b/src/sage/algebras/steenrod/steenrod_algebra_bases.py index 06f9a5b87ad..c178358c362 100644 --- a/src/sage/algebras/steenrod/steenrod_algebra_bases.py +++ b/src/sage/algebras/steenrod/steenrod_algebra_bases.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Steenrod algebra bases diff --git a/src/sage/algebras/steenrod/steenrod_algebra_misc.py b/src/sage/algebras/steenrod/steenrod_algebra_misc.py index 1bf8e278502..2beb973a177 100644 --- a/src/sage/algebras/steenrod/steenrod_algebra_misc.py +++ b/src/sage/algebras/steenrod/steenrod_algebra_misc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Miscellaneous functions for the Steenrod algebra and its elements diff --git a/src/sage/algebras/steenrod/steenrod_algebra_mult.py b/src/sage/algebras/steenrod/steenrod_algebra_mult.py index 053290bc5ed..7196347a8b1 100644 --- a/src/sage/algebras/steenrod/steenrod_algebra_mult.py +++ b/src/sage/algebras/steenrod/steenrod_algebra_mult.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.rings.finite_rings r""" Multiplication for elements of the Steenrod algebra diff --git a/src/sage/algebras/tensor_algebra.py b/src/sage/algebras/tensor_algebra.py index 3a5f8d9c033..090f48779da 100644 --- a/src/sage/algebras/tensor_algebra.py +++ b/src/sage/algebras/tensor_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Tensor Algebras diff --git a/src/sage/algebras/weyl_algebra.py b/src/sage/algebras/weyl_algebra.py index 8eae4797c7d..8b3f87891e8 100644 --- a/src/sage/algebras/weyl_algebra.py +++ b/src/sage/algebras/weyl_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.modules r""" Weyl Algebras diff --git a/src/sage/algebras/yangian.py b/src/sage/algebras/yangian.py index 748586a30b9..826020770a5 100644 --- a/src/sage/algebras/yangian.py +++ b/src/sage/algebras/yangian.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Yangians diff --git a/src/sage/algebras/yokonuma_hecke_algebra.py b/src/sage/algebras/yokonuma_hecke_algebra.py index 7de8ff07798..5d57d095c0e 100644 --- a/src/sage/algebras/yokonuma_hecke_algebra.py +++ b/src/sage/algebras/yokonuma_hecke_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.modules """ Yokonuma-Hecke Algebras diff --git a/src/sage/all.py b/src/sage/all.py index 7c505cd3242..41552744bbe 100644 --- a/src/sage/all.py +++ b/src/sage/all.py @@ -60,113 +60,65 @@ # ############### end setup warnings ############################### +# includes .all__sagemath_objects, .all__sagemath_environment from sage.all__sagemath_repl import * -# this includes .all__sagemath_objects, .all__sagemath_environment +from sage.all__sagemath_modules import * # ################################################################## -# This import also sets up the interrupt handler -from cysignals.signals import (AlarmInterrupt, SignalError, - sig_on_reset as sig_on_count) - -from time import sleep -from functools import reduce # in order to keep reduce in python3 - import sage.misc.lazy_import -from sage.misc.all import * # takes a while -from sage.typeset.all import * +from sage.misc.all import * # takes a while from sage.misc.sh import sh from sage.libs.all import * from sage.data_structures.all import * -from sage.structure.all import * -from sage.rings.all import * -from sage.arith.all import * -from sage.matrix.all import * - -from sage.symbolic.all import * -from sage.modules.all import * -from sage.monoids.all import * -from sage.algebras.all import * -from sage.modular.all import * -from sage.sat.all import * -from sage.schemes.all import * -from sage.graphs.all import * -from sage.groups.all import * -from sage.arith.power import generic_power as power -from sage.databases.all import * -from sage.categories.all import * -from sage.sets.all import * -from sage.probability.all import * -from sage.interfaces.all import * +from sage.rings.all import * -from sage.functions.all import * -from sage.calculus.all import * +from sage.algebras.all import * -from sage.cpython.all import * +from sage.all__sagemath_schemes import * +from sage.all__sagemath_combinat import * +from sage.all__sagemath_graphs import * +from sage.all__sagemath_groups import * +from sage.all__sagemath_polyhedra import * -from sage.crypto.all import * -import sage.crypto.mq as mq - -from sage.plot.all import * -from sage.plot.plot3d.all import * +from sage.databases.all import * +from sage.sets.all import * +from sage.interfaces.all import * -from sage.coding.all import * -from sage.combinat.all import * -from sage.lfunctions.all import * +from sage.combinat.all import * -from sage.geometry.all import * -from sage.geometry.triangulation.all import * -from sage.geometry.riemannian_manifolds.all import * +from sage.geometry.all import * +from sage.geometry.triangulation.all import * from sage.dynamics.all import * from sage.homology.all import * -from sage.topology.all import * - from sage.quadratic_forms.all import * -from sage.games.all import * - -from sage.logic.all import * +from sage.logic.all import * from sage.numerical.all import * -from sage.stats.all import * -import sage.stats.all as stats - -from sage.parallel.all import * - -from sage.ext.fast_callable import fast_callable -from sage.ext.fast_eval import fast_float - -from sage.sandpiles.all import * - -from sage.tensor.all import * - -from sage.matroids.all import * - -from sage.game_theory.all import * - -from sage.knots.all import * - -from sage.manifolds.all import * - from cysignals.alarm import alarm, cancel_alarm # Lazily import interacts (#15335) lazy_import('sage.interacts', 'all', 'interacts') -from copy import copy, deepcopy +try: + from .all__sagemath_plot import * + from .all__sagemath_symbolics import * + from sage.lfunctions.all import * +except ImportError: + pass + +from sage.combinat.all import Posets # so that sage.combinat.all.Posets wins over sage.categories.all.Posets -# The code executed here uses a large amount of Sage components -from sage.rings.qqbar import _init_qqbar -_init_qqbar() ########################################################### # WARNING: @@ -176,14 +128,6 @@ # when they are first needed. ########################################################### -CC = ComplexField() -QQ = RationalField() -RR = RealField() # default real field -ZZ = IntegerRing() - -true = True -false = False -oo = infinity from sage.rings.imaginary_unit import I i = I diff --git a/src/sage/all__sagemath_brial.py b/src/sage/all__sagemath_brial.py new file mode 100644 index 00000000000..6395af675fe --- /dev/null +++ b/src/sage/all__sagemath_brial.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-brial + +from .all__sagemath_categories import * diff --git a/src/sage/all__sagemath_categories.py b/src/sage/all__sagemath_categories.py index cb37b0baf2f..93f6532dea8 100644 --- a/src/sage/all__sagemath_categories.py +++ b/src/sage/all__sagemath_categories.py @@ -1,6 +1,26 @@ # sage_setup: distribution = sagemath-categories from sage.all__sagemath_objects import * -from sage.categories.all import * +try: + # For doctesting + from sage.all__sagemath_repl import * +except ImportError: + pass +from sage.categories.all import * from sage.rings.all__sagemath_categories import * +from sage.sets.all import * +from sage.combinat.all__sagemath_categories import * +from sage.arith.all import * +from sage.data_structures.all import * +from sage.ext.all__sagemath_categories import * +from sage.groups.all__sagemath_categories import * +from sage.interfaces.all import * +from sage.misc.all__sagemath_categories import * +from sage.typeset.all import * +from sage.schemes.all__sagemath_categories import * + +from sage.calculus.all__sagemath_categories import * +from sage.functions.all import * + +from sage.parallel.all import * diff --git a/src/sage/all__sagemath_combinat.py b/src/sage/all__sagemath_combinat.py new file mode 100644 index 00000000000..8758722f63a --- /dev/null +++ b/src/sage/all__sagemath_combinat.py @@ -0,0 +1,32 @@ +# sage_setup: distribution = sagemath-combinat +r""" +Top level of the distribution package sagemath-combinat + +This distribution makes the following features available:: + + sage: from sage.features.sagemath import * + sage: sage__combinat().is_present() + FeatureTestResult('sage.combinat', True) + sage: sage__sat().is_present() + FeatureTestResult('sage.sat', True) +""" + +try: # extra + from sage.all__sagemath_modules import * +except ImportError: + pass + +from .all__sagemath_categories import * + +try: # extra + from sage.all__sagemath_graphs import * +except ImportError: + pass + +from sage.algebras.all__sagemath_combinat import * +from sage.combinat.all__sagemath_combinat import * +from sage.libs.all__sagemath_combinat import * +from sage.rings.all__sagemath_combinat import * +from sage.monoids.all import * +from sage.games.all import * +from sage.sat.all import * diff --git a/src/sage/all__sagemath_eclib.py b/src/sage/all__sagemath_eclib.py new file mode 100644 index 00000000000..95995325cb0 --- /dev/null +++ b/src/sage/all__sagemath_eclib.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-eclib diff --git a/src/sage/all__sagemath_flint.py b/src/sage/all__sagemath_flint.py new file mode 100644 index 00000000000..769b7a7dfd3 --- /dev/null +++ b/src/sage/all__sagemath_flint.py @@ -0,0 +1,25 @@ +# sage_setup: distribution = sagemath-flint +r""" +Top level of the distribution package sagemath-flint + +This distribution makes the following features available:: + + sage: from sage.features.sagemath import * + sage: sage__libs__flint().is_present() + FeatureTestResult('sage.libs.flint', True) + sage: sage__rings__complex_interval_field().is_present() + FeatureTestResult('sage.rings.complex_interval_field', True) + sage: sage__rings__number_field().is_present() + FeatureTestResult('sage.rings.number_field', True) + sage: sage__rings__real_interval_field().is_present() + FeatureTestResult('sage.rings.real_interval_field', True) +""" + +from .all__sagemath_ntl import * + +from .libs.all__sagemath_flint import * + +from .rings.all__sagemath_flint import * + +from sage.rings.qqbar import _init_qqbar +_init_qqbar() diff --git a/src/sage/all__sagemath_gap.py b/src/sage/all__sagemath_gap.py new file mode 100644 index 00000000000..68febeb2d4f --- /dev/null +++ b/src/sage/all__sagemath_gap.py @@ -0,0 +1,18 @@ +# sage_setup: distribution = sagemath-gap +r""" +Top level of the distribution package sagemath-gap + +This distribution makes the following feature available:: + + sage: from sage.features.sagemath import * + sage: sage__libs__gap().is_present() + FeatureTestResult('sage.libs.gap', True) +""" + +from sage.geometry.all__sagemath_gap import * + +import sage.libs.gap.element + +from sage.libs.gap.libgap import libgap + +from sage.rings.all__sagemath_gap import * diff --git a/src/sage/all__sagemath_giac.py b/src/sage/all__sagemath_giac.py new file mode 100644 index 00000000000..43f71d83e8b --- /dev/null +++ b/src/sage/all__sagemath_giac.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-giac diff --git a/src/sage/all__sagemath_glpk.py b/src/sage/all__sagemath_glpk.py new file mode 100644 index 00000000000..b555a29542b --- /dev/null +++ b/src/sage/all__sagemath_glpk.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-glpk diff --git a/src/sage/all__sagemath_graphs.py b/src/sage/all__sagemath_graphs.py new file mode 100644 index 00000000000..dc165c3c409 --- /dev/null +++ b/src/sage/all__sagemath_graphs.py @@ -0,0 +1,32 @@ +# sage_setup: distribution = sagemath-graphs +r""" +Top level of the distribution package sagemath-graphs + +This distribution makes the following feature available:: + + sage: from sage.features.sagemath import * + sage: sage__graphs().is_present() + FeatureTestResult('sage.graphs', True) +""" + +from .all__sagemath_categories import * + +try: # extra + from sage.all__sagemath_modules import * +except ImportError: + pass + +try: # extra + from sage.all__sagemath_polyhedra import * +except ImportError: + pass + +from sage.graphs.all import * + +from sage.topology.all import * + +from sage.combinat.all__sagemath_graphs import * + +from sage.sandpiles.all import * + +from sage.knots.all import * diff --git a/src/sage/all__sagemath_groups.py b/src/sage/all__sagemath_groups.py new file mode 100644 index 00000000000..10b6c11f6c0 --- /dev/null +++ b/src/sage/all__sagemath_groups.py @@ -0,0 +1,20 @@ +# sage_setup: distribution = sagemath-groups +r""" +Top level of the distribution package sagemath-groups + +This distribution makes the following feature available:: + + sage: from sage.features.sagemath import * + sage: sage__groups().is_present() + FeatureTestResult('sage.groups', True) +""" + +from .all__sagemath_modules import * +from .all__sagemath_gap import * + +try: # extra + from sage.all__sagemath_combinat import * +except ImportError: + pass + +from sage.groups.all__sagemath_groups import * diff --git a/src/sage/all__sagemath_homfly.py b/src/sage/all__sagemath_homfly.py new file mode 100644 index 00000000000..8a8d066959a --- /dev/null +++ b/src/sage/all__sagemath_homfly.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-homfly diff --git a/src/sage/all__sagemath_lcalc.py b/src/sage/all__sagemath_lcalc.py new file mode 100644 index 00000000000..35fac988d13 --- /dev/null +++ b/src/sage/all__sagemath_lcalc.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-lcalc diff --git a/src/sage/all__sagemath_libbraiding.py b/src/sage/all__sagemath_libbraiding.py new file mode 100644 index 00000000000..50a02932e7a --- /dev/null +++ b/src/sage/all__sagemath_libbraiding.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-libbraiding diff --git a/src/sage/all__sagemath_libecm.py b/src/sage/all__sagemath_libecm.py new file mode 100644 index 00000000000..4a8953a3163 --- /dev/null +++ b/src/sage/all__sagemath_libecm.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-libecm diff --git a/src/sage/all__sagemath_linbox.py b/src/sage/all__sagemath_linbox.py new file mode 100644 index 00000000000..d3fe8dc3de9 --- /dev/null +++ b/src/sage/all__sagemath_linbox.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-linbox diff --git a/src/sage/all__sagemath_modules.py b/src/sage/all__sagemath_modules.py new file mode 100644 index 00000000000..bca3906abf0 --- /dev/null +++ b/src/sage/all__sagemath_modules.py @@ -0,0 +1,51 @@ +# sage_setup: distribution = sagemath-modules +r""" +Top level of the distribution package sagemath-modules + +This distribution makes the following features available:: + + sage: from sage.features.sagemath import * + sage: sage__modules().is_present() + FeatureTestResult('sage.modules', True) + sage: sage__rings__real_mpfr().is_present() + FeatureTestResult('sage.rings.real_mpfr', True) + sage: sage__rings__complex_double().is_present() + FeatureTestResult('sage.rings.complex_double', True) +""" + +from .all__sagemath_categories import * + +try: # extra + from sage.all__sagemath_flint import * +except ImportError: + pass + +try: # extra + from sage.all__sagemath_pari import * +except ImportError: + pass + +from sage.misc.all__sagemath_modules import * +from sage.rings.all__sagemath_modules import * +from sage.combinat.all__sagemath_modules import * +from sage.algebras.all__sagemath_modules import * +from sage.modules.all import * +from sage.matrix.all import * +from sage.groups.all__sagemath_modules import * +from sage.geometry.all__sagemath_modules import * +from sage.homology.all__sagemath_modules import * +from sage.tensor.all import * +from sage.matroids.all import * +from sage.quadratic_forms.all__sagemath_modules import * +from sage.coding.all import * +from sage.crypto.all import * +from sage.stats.all import * +from sage.probability.all import * +from sage.calculus.all__sagemath_modules import * +from sage.numerical.all__sagemath_modules import * + +import sage.crypto.mq as mq +import sage.stats.all as stats + +true = True +false = False diff --git a/src/sage/all__sagemath_mpmath.py b/src/sage/all__sagemath_mpmath.py new file mode 100644 index 00000000000..5cfb921f187 --- /dev/null +++ b/src/sage/all__sagemath_mpmath.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-mpmath diff --git a/src/sage/all__sagemath_ntl.py b/src/sage/all__sagemath_ntl.py new file mode 100644 index 00000000000..d7c3b34bc90 --- /dev/null +++ b/src/sage/all__sagemath_ntl.py @@ -0,0 +1,5 @@ +# sage_setup: distribution = sagemath-ntl + +from .all__sagemath_pari import * + +from sage.libs.all__sagemath_ntl import * diff --git a/src/sage/all__sagemath_objects.py b/src/sage/all__sagemath_objects.py index e5861c865a4..669a1017f5f 100644 --- a/src/sage/all__sagemath_objects.py +++ b/src/sage/all__sagemath_objects.py @@ -3,32 +3,32 @@ import sys import operator import math - import warnings +from copy import copy, deepcopy +from functools import reduce # in order to keep reduce in python3 +from time import sleep + # TODO: More to be moved from all.py # This import also sets up the interrupt handler from cysignals.signals import (AlarmInterrupt, SignalError, sig_on_reset as sig_on_count) -from time import sleep - -from sage.misc.all__sagemath_objects import * -from sage.structure.all import * -from sage.arith.power import generic_power as power -from sage.categories.all__sagemath_objects import * +from cysignals.alarm import alarm, cancel_alarm +# Full and final from sage.cpython.all import * +from sage.structure.all import * -from cysignals.alarm import alarm, cancel_alarm - -from copy import copy, deepcopy +# Partial +from sage.arith.all__sagemath_objects import * +from sage.categories.all__sagemath_objects import * +from sage.misc.all__sagemath_objects import * true = True false = False - # For doctesting. These are overwritten later Integer = int diff --git a/src/sage/all__sagemath_pari.py b/src/sage/all__sagemath_pari.py new file mode 100644 index 00000000000..c89c1b31f6f --- /dev/null +++ b/src/sage/all__sagemath_pari.py @@ -0,0 +1,24 @@ +# sage_setup: distribution = sagemath-pari +r""" +Top level of the distribution package sagemath-pari + +This distribution makes the following features available:: + + sage: from sage.features.sagemath import * + sage: sage__libs__pari().is_present() + FeatureTestResult('sage.libs.pari', True) + sage: sage__rings__finite_rings().is_present() + FeatureTestResult('sage.rings.finite_rings', True) +""" + +from .all__sagemath_categories import * + +from sage.groups.all__sagemath_pari import * +from sage.libs.all__sagemath_pari import * +from sage.quadratic_forms.all__sagemath_pari import * +from sage.rings.all__sagemath_pari import * + +# Relink imported lazy_import objects to point to the appropriate namespace +from sage.misc.lazy_import import clean_namespace +clean_namespace() +del clean_namespace diff --git a/src/sage/all__sagemath_plot.py b/src/sage/all__sagemath_plot.py new file mode 100644 index 00000000000..af0619d0316 --- /dev/null +++ b/src/sage/all__sagemath_plot.py @@ -0,0 +1,14 @@ +# sage_setup: distribution = sagemath-plot +r""" +Top level of the distribution package sagemath-plot + +This distribution makes the following feature available:: + + sage: from sage.features.sagemath import * + sage: sage__plot().is_present() + FeatureTestResult('sage.plot', True) +""" +from .all__sagemath_modules import * + +from sage.plot.all import * +from sage.plot.plot3d.all import * diff --git a/src/sage/all__sagemath_polyhedra.py b/src/sage/all__sagemath_polyhedra.py new file mode 100644 index 00000000000..d563a318dc1 --- /dev/null +++ b/src/sage/all__sagemath_polyhedra.py @@ -0,0 +1,45 @@ +# sage_setup: distribution = sagemath-polyhedra +r""" +Top level of the distribution package sagemath-polyhedra + +This distribution makes the following features available:: + + sage: from sage.features.sagemath import * + sage: sage__geometry__polyhedron().is_present() + FeatureTestResult('sage.geometry.polyhedron', True) + sage: sage__numerical__mip().is_present() + FeatureTestResult('sage.numerical.mip', True) +""" + +from .all__sagemath_modules import * + +try: # extra + from sage.all__sagemath_combinat import * +except ImportError: + pass + +try: # extra + from sage.all__sagemath_graphs import * +except ImportError: + pass + +try: # extra + from sage.all__sagemath_groups import * +except ImportError: + pass + +try: # extra + from sage.all__sagemath_flint import * +except ImportError: + pass + +try: # extra + from sage.all__sagemath_plot import * +except ImportError: + pass + +from sage.geometry.all__sagemath_polyhedra import * +from sage.geometry.triangulation.all import * +from sage.numerical.all import * +from sage.game_theory.all import * +from sage.schemes.all__sagemath_polyhedra import * diff --git a/src/sage/all__sagemath_schemes.py b/src/sage/all__sagemath_schemes.py new file mode 100644 index 00000000000..01360031ffd --- /dev/null +++ b/src/sage/all__sagemath_schemes.py @@ -0,0 +1,20 @@ +# sage_setup: distribution = sagemath-schemes +r""" +Top level of the distribution package sagemath-schemes + +This distribution makes the following features available:: + + sage: from sage.features.sagemath import * + sage: sage__schemes().is_present() + FeatureTestResult('sage.schemes', True) + sage: sage__modular().is_present() + FeatureTestResult('sage.modular', True) +""" + +from .all__sagemath_modules import * + +from .all__sagemath_singular import * + +from sage.modular.all import * +from sage.schemes.all import * +from sage.dynamics.all__sagemath_schemes import * diff --git a/src/sage/all__sagemath_singular.py b/src/sage/all__sagemath_singular.py new file mode 100644 index 00000000000..bac30dab693 --- /dev/null +++ b/src/sage/all__sagemath_singular.py @@ -0,0 +1,6 @@ +# sage_setup: distribution = sagemath-singular + +from .algebras.all__sagemath_singular import * +from .libs.all__sagemath_singular import * +from .matrix.all__sagemath_singular import * +from .rings.all__sagemath_singular import * diff --git a/src/sage/all__sagemath_symbolics.py b/src/sage/all__sagemath_symbolics.py new file mode 100644 index 00000000000..2e1398d615e --- /dev/null +++ b/src/sage/all__sagemath_symbolics.py @@ -0,0 +1,15 @@ +# sage_setup: distribution = sagemath-symbolics +from .all__sagemath_modules import * + +from sage.dynamics.complex_dynamics import * +from sage.interfaces.all import * +from sage.libs.all__sagemath_symbolics import * +from sage.manifolds.all import * +from sage.matrix.all__sagemath_symbolics import * +from sage.rings.all__sagemath_symbolics import * +from sage.symbolic.all import * +from sage.calculus.all import * +from sage.dynamics.all__sagemath_symbolics import * +from sage.geometry.all__sagemath_symbolics import * + +from sage.calculus.predefined import x diff --git a/src/sage/all_cmdline.py b/src/sage/all_cmdline.py index 33d0712c996..41b8f9df928 100644 --- a/src/sage/all_cmdline.py +++ b/src/sage/all_cmdline.py @@ -15,7 +15,11 @@ sage_mode = 'cmdline' from sage.all import * -from sage.calculus.predefined import x + +try: + from sage.calculus.predefined import x +except ImportError: + pass from sage.misc.lazy_import import lazy_import diff --git a/src/sage/arith/all.py b/src/sage/arith/all.py index f1fc716071c..6012ab484f1 100644 --- a/src/sage/arith/all.py +++ b/src/sage/arith/all.py @@ -1,3 +1,7 @@ +# sage_setup: distribution = sagemath-categories + +from sage.arith.all__sagemath_objects import * + from sage.misc.lazy_import import lazy_import from sage.arith.misc import (algdep, bernoulli, is_prime, is_prime_power, @@ -24,6 +28,10 @@ dedekind_sum, prime_factors, prime_range, valuation) +# These will be overridden by sage.functions.all +from .misc import (integer_ceil as ceil, + integer_floor as floor) + from sage.arith.functions import lcm LCM = lcm diff --git a/src/sage/arith/all__sagemath_objects.py b/src/sage/arith/all__sagemath_objects.py index 40da49fdd73..31d80d17daa 100644 --- a/src/sage/arith/all__sagemath_objects.py +++ b/src/sage/arith/all__sagemath_objects.py @@ -1,3 +1,5 @@ # sage_setup: distribution = sagemath-objects # The presence of this file ensures that sage_setup for sagemath-objects # considers this directory as a namespace package + +from sage.arith.power import generic_power as power diff --git a/src/sage/arith/constants.pxd b/src/sage/arith/constants.pxd index 371960ec3bc..b588791fd66 100644 --- a/src/sage/arith/constants.pxd +++ b/src/sage/arith/constants.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # # Various mathematical constants, represented as double precision hex # float. We use these instead of decimal constants like 3.1415... diff --git a/src/sage/arith/functions.pxd b/src/sage/arith/functions.pxd index 9ddfc38b38b..af3c4e6afc3 100644 --- a/src/sage/arith/functions.pxd +++ b/src/sage/arith/functions.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-categories + cpdef LCM_list(v) cdef LCM_generic(itr, ret) diff --git a/src/sage/arith/functions.pyx b/src/sage/arith/functions.pyx index c87dc1e67c7..ab68e03967f 100644 --- a/src/sage/arith/functions.pyx +++ b/src/sage/arith/functions.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Fast Arithmetic Functions """ diff --git a/src/sage/arith/misc.py b/src/sage/arith/misc.py index 745d5fcbbe7..a0423bcbfa2 100644 --- a/src/sage/arith/misc.py +++ b/src/sage/arith/misc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Miscellaneous arithmetic functions @@ -6271,7 +6272,7 @@ def gauss_sum(char_value, finite_field): EXAMPLES:: - sage: # needs sage.libs.pari sage.rings.number_field + sage: # needs sage.libs.gap sage.libs.pari sage: from sage.arith.misc import gauss_sum sage: F = GF(5); q = 5 sage: zq = UniversalCyclotomicField().zeta(q - 1) @@ -6284,7 +6285,7 @@ def gauss_sum(char_value, finite_field): sage: [g*g.conjugate() for g in L] [1, 5, 5, 5, 1] - sage: # needs sage.libs.pari sage.rings.number_field + sage: # needs sage.libs.gap sage.rings.finite_rings sage: F = GF(11**2); q = 11**2 sage: zq = UniversalCyclotomicField().zeta(q - 1) sage: g = gauss_sum(zq**4, F) @@ -6293,8 +6294,9 @@ def gauss_sum(char_value, finite_field): TESTS:: - sage: # needs sage.libs.pari sage.rings.number_field sage: F = GF(11); q = 11 + + sage: # needs sage.libs.gap sage.libs.pari sage: zq = UniversalCyclotomicField().zeta(q - 1) sage: gauss_sum(zq**2, F).n(60) 2.6361055643248352 + 2.0126965627574471*I diff --git a/src/sage/arith/multi_modular.pxd b/src/sage/arith/multi_modular.pxd index 300bbf29008..3409268b33f 100644 --- a/src/sage/arith/multi_modular.pxd +++ b/src/sage/arith/multi_modular.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.ext.mod_int cimport * from sage.libs.gmp.types cimport mpz_t diff --git a/src/sage/arith/multi_modular.pyx b/src/sage/arith/multi_modular.pyx index 1d5e9a46221..9d80a6b50e4 100644 --- a/src/sage/arith/multi_modular.pyx +++ b/src/sage/arith/multi_modular.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: optional - primecountpy """ Utility classes for multi-modular algorithms diff --git a/src/sage/arith/rational_reconstruction.pxd b/src/sage/arith/rational_reconstruction.pxd index 6bbd246c2df..cf1182c58a2 100644 --- a/src/sage/arith/rational_reconstruction.pxd +++ b/src/sage/arith/rational_reconstruction.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.libs.gmp.types cimport mpz_t, mpq_t cdef int mpq_rational_reconstruction(mpq_t answer, mpz_t a, mpz_t m) except -1 diff --git a/src/sage/arith/rational_reconstruction.pyx b/src/sage/arith/rational_reconstruction.pyx index 6806cda3a00..10c27488ba5 100644 --- a/src/sage/arith/rational_reconstruction.pyx +++ b/src/sage/arith/rational_reconstruction.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Rational reconstruction diff --git a/src/sage/arith/srange.pyx b/src/sage/arith/srange.pyx index 63a109c4b58..9e7309ed9bf 100644 --- a/src/sage/arith/srange.pyx +++ b/src/sage/arith/srange.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Ranges and the ``[1,2,..,n]`` notation diff --git a/src/sage/calculus/all.py b/src/sage/calculus/all.py index fc7f54a6758..90a2f2f8d7a 100644 --- a/src/sage/calculus/all.py +++ b/src/sage/calculus/all.py @@ -1,34 +1,15 @@ +# sage_setup: distribution = sagemath-symbolics -from .calculus import maxima as maxima_calculus -from .calculus import (laplace, inverse_laplace, - limit, lim) +from sage.calculus.all__sagemath_modules import * -from .integration import numerical_integral, monte_carlo_integral -integral_numerical = numerical_integral - -from .interpolation import spline, Spline - -from .functional import (diff, derivative, - expand, - taylor, simplify) - -from .functions import (wronskian, jacobian) - -from .ode import ode_solver, ode_system - -from .desolvers import (desolve, desolve_laplace, desolve_system, - eulers_method, eulers_method_2x2, - eulers_method_2x2_plot, desolve_rk4, desolve_system_rk4, - desolve_odeint, desolve_mintides, desolve_tides_mpfr) +from sage.calculus import desolvers +from sage.calculus.calculus import maxima as maxima_calculus +from sage.calculus.calculus import (laplace, inverse_laplace, + limit, lim) +from sage.calculus.desolvers import (desolve, desolve_laplace, desolve_system, + eulers_method, eulers_method_2x2, + eulers_method_2x2_plot, desolve_rk4, desolve_system_rk4, + desolve_odeint, desolve_mintides, desolve_tides_mpfr) from sage.calculus.expr import symbolic_expression from sage.calculus.var import (var, function, clear_vars) - -from .transforms.all import * - -# We lazy_import the following modules since they import numpy which slows down sage startup -from sage.misc.lazy_import import lazy_import -lazy_import("sage.calculus.riemann", ["Riemann_Map"]) -lazy_import("sage.calculus.interpolators", ["polygon_spline", "complex_cubic_spline"]) - -from . import desolvers diff --git a/src/sage/calculus/all__sagemath_categories.py b/src/sage/calculus/all__sagemath_categories.py new file mode 100644 index 00000000000..d9b2c197596 --- /dev/null +++ b/src/sage/calculus/all__sagemath_categories.py @@ -0,0 +1,2 @@ +# sage_setup: distribution = sagemath-categories +from sage.calculus.functional import diff, derivative, expand, simplify, taylor diff --git a/src/sage/calculus/all__sagemath_modules.py b/src/sage/calculus/all__sagemath_modules.py new file mode 100644 index 00000000000..d9df3fa2cfb --- /dev/null +++ b/src/sage/calculus/all__sagemath_modules.py @@ -0,0 +1,19 @@ +# sage_setup: distribution = sagemath-modules +from sage.calculus.all__sagemath_categories import * + +from sage.calculus.integration import numerical_integral, monte_carlo_integral +integral_numerical = numerical_integral + +from sage.calculus.interpolation import spline, Spline + +from sage.calculus.functions import wronskian, jacobian + +from sage.calculus.ode import ode_solver, ode_system + +# We lazy_import the following modules since they import numpy which slows down sage startup +from sage.misc.lazy_import import lazy_import +lazy_import("sage.calculus.riemann", ["Riemann_Map"]) +lazy_import("sage.calculus.interpolators", ["polygon_spline", "complex_cubic_spline"]) + +from sage.calculus.transforms.all import * +del lazy_import diff --git a/src/sage/calculus/calculus.py b/src/sage/calculus/calculus.py index 65a075a2e1f..80bea338390 100644 --- a/src/sage/calculus/calculus.py +++ b/src/sage/calculus/calculus.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Symbolic Computation diff --git a/src/sage/calculus/desolvers.py b/src/sage/calculus/desolvers.py index d17f5a14e90..07f9ba71218 100644 --- a/src/sage/calculus/desolvers.py +++ b/src/sage/calculus/desolvers.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Solving ordinary differential equations diff --git a/src/sage/calculus/expr.py b/src/sage/calculus/expr.py index f36d56b6c40..8e53eba6c64 100644 --- a/src/sage/calculus/expr.py +++ b/src/sage/calculus/expr.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Constructor for symbolic expressions """ diff --git a/src/sage/calculus/functional.py b/src/sage/calculus/functional.py index 8747e1df790..a97837ff49a 100644 --- a/src/sage/calculus/functional.py +++ b/src/sage/calculus/functional.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.symbolic """ Functional notation support for common calculus methods diff --git a/src/sage/calculus/functions.py b/src/sage/calculus/functions.py index c044cc0a968..7c0314d4c9a 100644 --- a/src/sage/calculus/functions.py +++ b/src/sage/calculus/functions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.symbolic r""" Calculus functions diff --git a/src/sage/calculus/integration.pyx b/src/sage/calculus/integration.pyx index f746f8aa04a..2ee3ba2bf7a 100644 --- a/src/sage/calculus/integration.pyx +++ b/src/sage/calculus/integration.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.symbolic """ Numerical Integration diff --git a/src/sage/calculus/interpolation.pxd b/src/sage/calculus/interpolation.pxd index 9d60459a03b..d5d5b0c983a 100644 --- a/src/sage/calculus/interpolation.pxd +++ b/src/sage/calculus/interpolation.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.libs.gsl.interp cimport * cdef class Spline: diff --git a/src/sage/calculus/interpolation.pyx b/src/sage/calculus/interpolation.pyx index 230bedda658..c514c40bd82 100644 --- a/src/sage/calculus/interpolation.pyx +++ b/src/sage/calculus/interpolation.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Real Interpolation using GSL """ diff --git a/src/sage/calculus/interpolators.pyx b/src/sage/calculus/interpolators.pyx index c13fcff8f93..9976793e411 100644 --- a/src/sage/calculus/interpolators.pyx +++ b/src/sage/calculus/interpolators.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs numpy """ Complex Interpolation diff --git a/src/sage/calculus/ode.pxd b/src/sage/calculus/ode.pxd index 2de37b91764..6be7660f5f7 100644 --- a/src/sage/calculus/ode.pxd +++ b/src/sage/calculus/ode.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules cdef class ode_system: cdef int c_j(self,double , double *, double *,double *) noexcept diff --git a/src/sage/calculus/ode.pyx b/src/sage/calculus/ode.pyx index 646b937e2e4..ddbfdc3efb5 100644 --- a/src/sage/calculus/ode.pyx +++ b/src/sage/calculus/ode.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Solving ODE numerically by GSL diff --git a/src/sage/calculus/predefined.py b/src/sage/calculus/predefined.py index 8e7f499b1ae..fcfb0b17208 100644 --- a/src/sage/calculus/predefined.py +++ b/src/sage/calculus/predefined.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics from sage.symbolic.ring import var as _var a = _var('a') diff --git a/src/sage/calculus/riemann.pyx b/src/sage/calculus/riemann.pyx index 385aa7a09f8..67f8423e1c1 100644 --- a/src/sage/calculus/riemann.pyx +++ b/src/sage/calculus/riemann.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs numpy sage.symbolic """ Riemann Mapping diff --git a/src/sage/calculus/test_sympy.py b/src/sage/calculus/test_sympy.py index aa084799a10..5154a2c7351 100644 --- a/src/sage/calculus/test_sympy.py +++ b/src/sage/calculus/test_sympy.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.symbolic r""" A Sample Session using SymPy diff --git a/src/sage/calculus/tests.py b/src/sage/calculus/tests.py index ac76b5e4f70..32b13c0dd3f 100644 --- a/src/sage/calculus/tests.py +++ b/src/sage/calculus/tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Calculus Tests and Examples diff --git a/src/sage/calculus/transforms/all.py b/src/sage/calculus/transforms/all.py index c42ae401653..6ade15d66c0 100644 --- a/src/sage/calculus/transforms/all.py +++ b/src/sage/calculus/transforms/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import lazy_import("sage.calculus.transforms.fft", ["FastFourierTransform", "FFT"]) diff --git a/src/sage/calculus/transforms/dft.py b/src/sage/calculus/transforms/dft.py index bccfbcb8017..22bfd6589ba 100644 --- a/src/sage/calculus/transforms/dft.py +++ b/src/sage/calculus/transforms/dft.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Discrete Fourier Transforms diff --git a/src/sage/calculus/transforms/dwt.pxd b/src/sage/calculus/transforms/dwt.pxd index c4087a7f7e0..eaa49e2d9d5 100644 --- a/src/sage/calculus/transforms/dwt.pxd +++ b/src/sage/calculus/transforms/dwt.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.libs.gsl.wavelet cimport * from sage.libs.gsl.array cimport GSLDoubleArray diff --git a/src/sage/calculus/transforms/dwt.pyx b/src/sage/calculus/transforms/dwt.pyx index fdb68153a8b..cca3b6a21b8 100644 --- a/src/sage/calculus/transforms/dwt.pyx +++ b/src/sage/calculus/transforms/dwt.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Discrete Wavelet Transform diff --git a/src/sage/calculus/transforms/fft.pxd b/src/sage/calculus/transforms/fft.pxd index 780483318f1..67d416159dd 100644 --- a/src/sage/calculus/transforms/fft.pxd +++ b/src/sage/calculus/transforms/fft.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.libs.gsl.fft cimport * cdef class FastFourierTransform_base: diff --git a/src/sage/calculus/transforms/fft.pyx b/src/sage/calculus/transforms/fft.pyx index 1f190f00685..2b282cae057 100644 --- a/src/sage/calculus/transforms/fft.pyx +++ b/src/sage/calculus/transforms/fft.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Fast Fourier Transforms Using GSL diff --git a/src/sage/calculus/var.pyx b/src/sage/calculus/var.pyx index 4967bb9bd9a..aca79dca450 100644 --- a/src/sage/calculus/var.pyx +++ b/src/sage/calculus/var.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # cython: old_style_globals=True """ Symbolic variables diff --git a/src/sage/calculus/wester.py b/src/sage/calculus/wester.py index e33409a49ac..95b35e0bb0b 100644 --- a/src/sage/calculus/wester.py +++ b/src/sage/calculus/wester.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.symbolic r""" Further examples from Wester's paper diff --git a/src/sage/categories/group_algebras.py b/src/sage/categories/group_algebras.py index e83de9263d3..d93c87cbfff 100644 --- a/src/sage/categories/group_algebras.py +++ b/src/sage/categories/group_algebras.py @@ -78,7 +78,7 @@ class GroupAlgebras(AlgebrasCategory): [0 0 1] sage: A = SymmetricGroupAlgebra(QQ, 4) # needs sage.combinat sage: x = Permutation([4,3,2,1]) - sage: A.product_on_basis(x, x) # needs sage.combinat + sage: A.product_on_basis(x, x) [1, 2, 3, 4] sage: C = GroupAlgebras(ZZ) diff --git a/src/sage/coding/abstract_code.py b/src/sage/coding/abstract_code.py index d94eb1ca309..5f2c21c680b 100644 --- a/src/sage/coding/abstract_code.py +++ b/src/sage/coding/abstract_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Codes diff --git a/src/sage/coding/ag_code.py b/src/sage/coding/ag_code.py index 5f77b346fa4..e26002a1e8f 100644 --- a/src/sage/coding/ag_code.py +++ b/src/sage/coding/ag_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.finite_rings sage.schemes """ AG codes diff --git a/src/sage/coding/ag_code_decoders.pyx b/src/sage/coding/ag_code_decoders.pyx index df59bad740d..d8397b5e900 100644 --- a/src/sage/coding/ag_code_decoders.pyx +++ b/src/sage/coding/ag_code_decoders.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.finite_rings sage.schemes r""" Decoders for AG codes diff --git a/src/sage/coding/all.py b/src/sage/coding/all.py index 3d7b19900c1..ea26cb7ecaf 100644 --- a/src/sage/coding/all.py +++ b/src/sage/coding/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import diff --git a/src/sage/coding/all__sagemath_gap.py b/src/sage/coding/all__sagemath_gap.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/coding/all__sagemath_gap.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/coding/bch_code.py b/src/sage/coding/bch_code.py index ebd9d7bc3b4..e652630f5e8 100644 --- a/src/sage/coding/bch_code.py +++ b/src/sage/coding/bch_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" BCH code diff --git a/src/sage/coding/binary_code.pxd b/src/sage/coding/binary_code.pxd index 38be220c731..1a1f0f95220 100644 --- a/src/sage/coding/binary_code.pxd +++ b/src/sage/coding/binary_code.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules cdef int *hamming_weights() noexcept ctypedef unsigned int codeword diff --git a/src/sage/coding/binary_code.pyx b/src/sage/coding/binary_code.pyx index 3c73e0f7176..f31a59ccbfe 100644 --- a/src/sage/coding/binary_code.pyx +++ b/src/sage/coding/binary_code.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Optimized low-level binary code representation diff --git a/src/sage/coding/bounds_catalog.py b/src/sage/coding/bounds_catalog.py index aa4c2dd9996..ef354485820 100644 --- a/src/sage/coding/bounds_catalog.py +++ b/src/sage/coding/bounds_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Index of bounds on the parameters of codes diff --git a/src/sage/coding/channel.py b/src/sage/coding/channel.py index e297a6fe68e..db1826b74c3 100644 --- a/src/sage/coding/channel.py +++ b/src/sage/coding/channel.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Channels diff --git a/src/sage/coding/channels_catalog.py b/src/sage/coding/channels_catalog.py index 6d4750f1bed..735538f5a11 100644 --- a/src/sage/coding/channels_catalog.py +++ b/src/sage/coding/channels_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Index of channels diff --git a/src/sage/coding/code_bounds.py b/src/sage/coding/code_bounds.py index 99400522265..b717f319535 100644 --- a/src/sage/coding/code_bounds.py +++ b/src/sage/coding/code_bounds.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Bounds for parameters of codes diff --git a/src/sage/coding/code_constructions.py b/src/sage/coding/code_constructions.py index be1c087c280..1de296083c6 100644 --- a/src/sage/coding/code_constructions.py +++ b/src/sage/coding/code_constructions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Linear code constructors that do not preserve the structural information @@ -99,7 +100,7 @@ def _is_a_splitting(S1, S2, n, return_automorphism=False): sage: _is_a_splitting([1,3,4],[2,5,6],7) False - sage: for P in SetPartitions(6,[3,3]): + sage: for P in SetPartitions(6,[3,3]): # needs sage.combiant ....: res,aut= _is_a_splitting(P[0],P[1],7,return_automorphism=True) ....: if res: ....: print((aut, P)) diff --git a/src/sage/coding/codecan/all.py b/src/sage/coding/codecan/all.py index e69de29bb2d..dd59a6da735 100644 --- a/src/sage/coding/codecan/all.py +++ b/src/sage/coding/codecan/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/coding/codecan/all__sagemath_gap.py b/src/sage/coding/codecan/all__sagemath_gap.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/coding/codecan/all__sagemath_gap.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/coding/codecan/autgroup_can_label.pyx b/src/sage/coding/codecan/autgroup_can_label.pyx index e54e64a20a9..bc184e03d1d 100644 --- a/src/sage/coding/codecan/autgroup_can_label.pyx +++ b/src/sage/coding/codecan/autgroup_can_label.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: needs sage.libs.pari r""" Canonical forms and automorphisms for linear codes over finite fields diff --git a/src/sage/coding/codecan/codecan.pxd b/src/sage/coding/codecan/codecan.pxd index 279688d2333..fc6d8e0844b 100644 --- a/src/sage/coding/codecan/codecan.pxd +++ b/src/sage/coding/codecan/codecan.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap from sage.groups.perm_gps.permgroup_element cimport PermutationGroupElement from sage.groups.semimonomial_transformations.semimonomial_transformation cimport SemimonomialTransformation from sage.modules.free_module_element cimport FreeModuleElement diff --git a/src/sage/coding/codecan/codecan.pyx b/src/sage/coding/codecan/codecan.pyx index 47311e16260..5448b52f540 100644 --- a/src/sage/coding/codecan/codecan.pyx +++ b/src/sage/coding/codecan/codecan.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: needs sage.libs.pari r""" Canonical forms and automorphism group computation for linear codes over finite fields diff --git a/src/sage/coding/codes_catalog.py b/src/sage/coding/codes_catalog.py index a842e19c2c6..91062e6f0d8 100644 --- a/src/sage/coding/codes_catalog.py +++ b/src/sage/coding/codes_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Index of code constructions diff --git a/src/sage/coding/cyclic_code.py b/src/sage/coding/cyclic_code.py index 80e8d68ef30..76f3d106ec2 100644 --- a/src/sage/coding/cyclic_code.py +++ b/src/sage/coding/cyclic_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Cyclic code diff --git a/src/sage/coding/databases.py b/src/sage/coding/databases.py index c3e76a206f1..9ec22911cb3 100644 --- a/src/sage/coding/databases.py +++ b/src/sage/coding/databases.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Access functions to online databases for coding theory @@ -9,6 +10,11 @@ # - codes.databases.self_dual_binary_codes (which functions as a catalog). lazy_import('sage.coding.self_dual_codes', 'self_dual_binary_codes') +# Import the following function so that it is available as +# sage.codes.databases.self_dual_binary_codes sage.codes.databases functions +# somewhat like a catalog in this respect. +lazy_import('sage.coding.self_dual_codes', 'self_dual_binary_codes') + del lazy_import # Do not put any global imports here since this module is accessible as diff --git a/src/sage/coding/decoder.py b/src/sage/coding/decoder.py index 05089583389..f23274268cd 100644 --- a/src/sage/coding/decoder.py +++ b/src/sage/coding/decoder.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Decoders diff --git a/src/sage/coding/decoders_catalog.py b/src/sage/coding/decoders_catalog.py index a9f2417880e..0db103c8b09 100644 --- a/src/sage/coding/decoders_catalog.py +++ b/src/sage/coding/decoders_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Index of decoders diff --git a/src/sage/coding/delsarte_bounds.py b/src/sage/coding/delsarte_bounds.py index a7cc35e058d..738b0815a69 100644 --- a/src/sage/coding/delsarte_bounds.py +++ b/src/sage/coding/delsarte_bounds.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.numerical.mip r""" Delsarte (or linear programming) bounds diff --git a/src/sage/coding/encoder.py b/src/sage/coding/encoder.py index 459d6c82ebc..8faf2814782 100644 --- a/src/sage/coding/encoder.py +++ b/src/sage/coding/encoder.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Encoders diff --git a/src/sage/coding/encoders_catalog.py b/src/sage/coding/encoders_catalog.py index e6ac68267fd..a22a897c8da 100644 --- a/src/sage/coding/encoders_catalog.py +++ b/src/sage/coding/encoders_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Index of encoders diff --git a/src/sage/coding/extended_code.py b/src/sage/coding/extended_code.py index 46335b19bdc..3d695857110 100644 --- a/src/sage/coding/extended_code.py +++ b/src/sage/coding/extended_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Extended code diff --git a/src/sage/coding/gabidulin_code.py b/src/sage/coding/gabidulin_code.py index 3db66e4af7b..3f5a78c9bc7 100644 --- a/src/sage/coding/gabidulin_code.py +++ b/src/sage/coding/gabidulin_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Gabidulin Code diff --git a/src/sage/coding/golay_code.py b/src/sage/coding/golay_code.py index 233c754df97..6ba82f5ca01 100644 --- a/src/sage/coding/golay_code.py +++ b/src/sage/coding/golay_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Golay code diff --git a/src/sage/coding/goppa_code.py b/src/sage/coding/goppa_code.py index aede3782597..9d6726125b4 100644 --- a/src/sage/coding/goppa_code.py +++ b/src/sage/coding/goppa_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Goppa code diff --git a/src/sage/coding/grs_code.py b/src/sage/coding/grs_code.py index 2fada75c4a9..990e0f57b9a 100644 --- a/src/sage/coding/grs_code.py +++ b/src/sage/coding/grs_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Reed-Solomon codes and Generalized Reed-Solomon codes diff --git a/src/sage/coding/guava.py b/src/sage/coding/guava.py index 8a375af4bef..e6d706837f1 100644 --- a/src/sage/coding/guava.py +++ b/src/sage/coding/guava.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.gap sage.modules sage.rings.finite_rings r""" Constructions of generator matrices using the GUAVA package for GAP diff --git a/src/sage/coding/guruswami_sudan/all.py b/src/sage/coding/guruswami_sudan/all.py index e69de29bb2d..6f6ab52d0f2 100644 --- a/src/sage/coding/guruswami_sudan/all.py +++ b/src/sage/coding/guruswami_sudan/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/coding/guruswami_sudan/gs_decoder.py b/src/sage/coding/guruswami_sudan/gs_decoder.py index 54a624375bd..c708c2486cb 100644 --- a/src/sage/coding/guruswami_sudan/gs_decoder.py +++ b/src/sage/coding/guruswami_sudan/gs_decoder.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings sage.symbolic r""" Guruswami-Sudan decoder for (Generalized) Reed-Solomon codes @@ -33,7 +34,7 @@ from sage.coding.guruswami_sudan.utils import (johnson_radius, gilt, solve_degree2_to_integer_range) -from sage.functions.other import floor +from sage.misc.lazy_import import lazy_import from sage.misc.functional import sqrt diff --git a/src/sage/coding/guruswami_sudan/interpolation.py b/src/sage/coding/guruswami_sudan/interpolation.py index b1334307e79..c165ceb0983 100644 --- a/src/sage/coding/guruswami_sudan/interpolation.py +++ b/src/sage/coding/guruswami_sudan/interpolation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings """ Interpolation algorithms for the Guruswami-Sudan decoder diff --git a/src/sage/coding/guruswami_sudan/utils.py b/src/sage/coding/guruswami_sudan/utils.py index 31bfdf85e64..770b0409a0c 100644 --- a/src/sage/coding/guruswami_sudan/utils.py +++ b/src/sage/coding/guruswami_sudan/utils.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Guruswami-Sudan utility methods diff --git a/src/sage/coding/hamming_code.py b/src/sage/coding/hamming_code.py index 431e660fae7..fe79317fa9c 100644 --- a/src/sage/coding/hamming_code.py +++ b/src/sage/coding/hamming_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Hamming codes diff --git a/src/sage/coding/information_set_decoder.py b/src/sage/coding/information_set_decoder.py index c059b185816..6e513b91542 100644 --- a/src/sage/coding/information_set_decoder.py +++ b/src/sage/coding/information_set_decoder.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Information-set decoding for linear codes diff --git a/src/sage/coding/kasami_codes.pyx b/src/sage/coding/kasami_codes.pyx index 835806fd808..aaf84cfafa8 100644 --- a/src/sage/coding/kasami_codes.pyx +++ b/src/sage/coding/kasami_codes.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Kasami code diff --git a/src/sage/coding/linear_code.py b/src/sage/coding/linear_code.py index a9e3813b474..f2b152f8ae2 100644 --- a/src/sage/coding/linear_code.py +++ b/src/sage/coding/linear_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Generic structures for linear codes over the Hamming metric diff --git a/src/sage/coding/linear_code_no_metric.py b/src/sage/coding/linear_code_no_metric.py index 49c30a415c8..2aff16b5a56 100644 --- a/src/sage/coding/linear_code_no_metric.py +++ b/src/sage/coding/linear_code_no_metric.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Generic structures for linear codes of any metric diff --git a/src/sage/coding/linear_rank_metric.py b/src/sage/coding/linear_rank_metric.py index 97a37e96c9b..2406e14a926 100644 --- a/src/sage/coding/linear_rank_metric.py +++ b/src/sage/coding/linear_rank_metric.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Generic structures for linear codes over the rank metric diff --git a/src/sage/coding/parity_check_code.py b/src/sage/coding/parity_check_code.py index 589c1c6f391..426e0633550 100644 --- a/src/sage/coding/parity_check_code.py +++ b/src/sage/coding/parity_check_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Parity-check code diff --git a/src/sage/coding/punctured_code.py b/src/sage/coding/punctured_code.py index c8be67993f8..c5383d4ef55 100644 --- a/src/sage/coding/punctured_code.py +++ b/src/sage/coding/punctured_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Punctured code diff --git a/src/sage/coding/reed_muller_code.py b/src/sage/coding/reed_muller_code.py index 64258f48927..691bc13ee33 100644 --- a/src/sage/coding/reed_muller_code.py +++ b/src/sage/coding/reed_muller_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Reed-Muller code diff --git a/src/sage/coding/self_dual_codes.py b/src/sage/coding/self_dual_codes.py index 10565d9e1a0..85f7a00f589 100644 --- a/src/sage/coding/self_dual_codes.py +++ b/src/sage/coding/self_dual_codes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.groups sage.modules r""" Enumerating binary self-dual codes diff --git a/src/sage/coding/source_coding/all.py b/src/sage/coding/source_coding/all.py index 119db02385e..756fb6c6df0 100644 --- a/src/sage/coding/source_coding/all.py +++ b/src/sage/coding/source_coding/all.py @@ -1 +1,3 @@ +# sage_setup: distribution = sagemath-modules + from sage.coding.source_coding.huffman import Huffman diff --git a/src/sage/coding/source_coding/huffman.py b/src/sage/coding/source_coding/huffman.py index df4e0b96eff..1886638390a 100644 --- a/src/sage/coding/source_coding/huffman.py +++ b/src/sage/coding/source_coding/huffman.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Huffman encoding diff --git a/src/sage/coding/subfield_subcode.py b/src/sage/coding/subfield_subcode.py index 970221ec24e..2cc0245ee73 100644 --- a/src/sage/coding/subfield_subcode.py +++ b/src/sage/coding/subfield_subcode.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Subfield subcode diff --git a/src/sage/coding/two_weight_db.py b/src/sage/coding/two_weight_db.py index 8b546714bd2..a79b96b7aa4 100644 --- a/src/sage/coding/two_weight_db.py +++ b/src/sage/coding/two_weight_db.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.gap sage.modules sage.rings.finite_rings r""" Database of two-weight codes diff --git a/src/sage/combinat/abstract_tree.py b/src/sage/combinat/abstract_tree.py index 8ea604428f1..68cbd4d3805 100644 --- a/src/sage/combinat/abstract_tree.py +++ b/src/sage/combinat/abstract_tree.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Abstract Recursive Trees diff --git a/src/sage/combinat/affine_permutation.py b/src/sage/combinat/affine_permutation.py index 74113055d13..4cd1c2ad678 100644 --- a/src/sage/combinat/affine_permutation.py +++ b/src/sage/combinat/affine_permutation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.groups r""" Affine Permutations diff --git a/src/sage/combinat/algebraic_combinatorics.py b/src/sage/combinat/algebraic_combinatorics.py index 3dd16bf7799..16cbd1de52a 100644 --- a/src/sage/combinat/algebraic_combinatorics.py +++ b/src/sage/combinat/algebraic_combinatorics.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Algebraic combinatorics diff --git a/src/sage/combinat/all.py b/src/sage/combinat/all.py index 901bca30fd2..ae09cfa6982 100644 --- a/src/sage/combinat/all.py +++ b/src/sage/combinat/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Combinatorics @@ -53,245 +54,11 @@ install_dict(__package__, {'quickref': quickref, 'tutorial': tutorial}) del quickref, tutorial -from sage.misc.lazy_import import lazy_import +from sage.combinat.all__sagemath_categories import * -from sage.combinat.combinat import (CombinatorialObject, - bell_number, bell_polynomial, bernoulli_polynomial, - catalan_number, euler_number, - fibonacci, fibonacci_sequence, fibonacci_xrange, - lucas_number1, lucas_number2, - number_of_tuples, number_of_unordered_tuples, - polygonal_number, stirling_number1, stirling_number2, - tuples, unordered_tuples) - -from sage.combinat.expnums import expnums - -from sage.combinat.chas.all import * -from sage.combinat.crystals.all import * -from sage.combinat.rigged_configurations.all import * - -from sage.combinat.dlx import DLXMatrix, AllExactCovers, OneExactCover - -# block designs, etc. -from sage.combinat.designs.all import * - -# Free modules and friends -from sage.combinat.free_module import CombinatorialFreeModule -from sage.combinat.debruijn_sequence import DeBruijnSequences - -from sage.combinat.schubert_polynomial import SchubertPolynomialRing -lazy_import('sage.combinat.key_polynomial', 'KeyPolynomialBasis', as_='KeyPolynomials') -from sage.combinat.symmetric_group_algebra import SymmetricGroupAlgebra, HeckeAlgebraSymmetricGroupT -from sage.combinat.symmetric_group_representations import SymmetricGroupRepresentation, SymmetricGroupRepresentations -from sage.combinat.yang_baxter_graph import YangBaxterGraph - -# Permutations -from sage.combinat.permutation import Permutation, Permutations, Arrangements, CyclicPermutations, CyclicPermutationsOfPartition -from sage.combinat.affine_permutation import AffinePermutationGroup -lazy_import('sage.combinat.colored_permutations', ['ColoredPermutations', - 'SignedPermutation', - 'SignedPermutations']) -from sage.combinat.derangements import Derangements -lazy_import('sage.combinat.baxter_permutations', ['BaxterPermutations']) - -# RSK -from sage.combinat.rsk import RSK, RSK_inverse, robinson_schensted_knuth, robinson_schensted_knuth_inverse, InsertionRules - -# HillmanGrassl -lazy_import("sage.combinat.hillman_grassl", ["WeakReversePlanePartition", "WeakReversePlanePartitions"]) - -# PerfectMatchings -from sage.combinat.perfect_matching import PerfectMatching, PerfectMatchings - -# Integer lists -from sage.combinat.integer_lists import IntegerListsLex - -# Compositions -from sage.combinat.composition import Composition, Compositions -from sage.combinat.composition_signed import SignedCompositions - -# Partitions -from sage.combinat.partition import (Partition, Partitions, PartitionsInBox, - OrderedPartitions, PartitionsGreatestLE, - PartitionsGreatestEQ, number_of_partitions) - -lazy_import('sage.combinat.partition_tuple', ['PartitionTuple', 'PartitionTuples']) -lazy_import('sage.combinat.partition_kleshchev', ['KleshchevPartitions']) -lazy_import('sage.combinat.skew_partition', ['SkewPartition', 'SkewPartitions']) - -# Partition algebra -from sage.combinat.partition_algebra import SetPartitionsAk, SetPartitionsPk, SetPartitionsTk, SetPartitionsIk, SetPartitionsBk, SetPartitionsSk, SetPartitionsRk, SetPartitionsPRk - -# Raising operators -lazy_import('sage.combinat.partition_shifting_algebras', 'ShiftingOperatorAlgebra') - -# Diagram algebra -from sage.combinat.diagram_algebras import PartitionAlgebra, BrauerAlgebra, TemperleyLiebAlgebra, PlanarAlgebra, PropagatingIdeal - -# Descent algebra -lazy_import('sage.combinat.descent_algebra', 'DescentAlgebra') - -# Vector Partitions -lazy_import('sage.combinat.vector_partition', - ['VectorPartition', 'VectorPartitions']) - -# Similarity class types -from sage.combinat.similarity_class_type import PrimarySimilarityClassType, PrimarySimilarityClassTypes, SimilarityClassType, SimilarityClassTypes - -# Cores -from sage.combinat.core import Core, Cores - -# Tableaux -lazy_import('sage.combinat.tableau', - ["Tableau", "SemistandardTableau", "StandardTableau", "RowStandardTableau", "IncreasingTableau", - "Tableaux", "SemistandardTableaux", "StandardTableaux", "RowStandardTableaux", "IncreasingTableaux"]) -from sage.combinat.skew_tableau import SkewTableau, SkewTableaux, StandardSkewTableaux, SemistandardSkewTableaux -from sage.combinat.ribbon_shaped_tableau import RibbonShapedTableau, RibbonShapedTableaux, StandardRibbonShapedTableaux -from sage.combinat.ribbon_tableau import RibbonTableaux, RibbonTableau, MultiSkewTableaux, MultiSkewTableau, SemistandardMultiSkewTableaux -from sage.combinat.composition_tableau import CompositionTableau, CompositionTableaux - -lazy_import('sage.combinat.tableau_tuple', - ['TableauTuple', 'StandardTableauTuple', 'RowStandardTableauTuple', - 'TableauTuples', 'StandardTableauTuples', 'RowStandardTableauTuples']) -from sage.combinat.k_tableau import WeakTableau, WeakTableaux, StrongTableau, StrongTableaux -lazy_import('sage.combinat.lr_tableau', ['LittlewoodRichardsonTableau', - 'LittlewoodRichardsonTableaux']) -lazy_import('sage.combinat.shifted_primed_tableau', ['ShiftedPrimedTableaux', - 'ShiftedPrimedTableau']) - -# SuperTableaux -lazy_import('sage.combinat.super_tableau', - ["StandardSuperTableau", "SemistandardSuperTableau", "StandardSuperTableaux", "SemistandardSuperTableaux"]) - -# Words -from sage.combinat.words.all import * - -lazy_import('sage.combinat.subword', 'Subwords') - -from sage.combinat.graph_path import GraphPaths - -# Tuples -from sage.combinat.tuple import Tuples, UnorderedTuples - -# Alternating sign matrices -lazy_import('sage.combinat.alternating_sign_matrix', ('AlternatingSignMatrix', - 'AlternatingSignMatrices', - 'MonotoneTriangles', - 'ContreTableaux', - 'TruncatedStaircases')) - -# Decorated Permutations -lazy_import('sage.combinat.decorated_permutation', ('DecoratedPermutation', - 'DecoratedPermutations')) - -# Plane Partitions -lazy_import('sage.combinat.plane_partition', ('PlanePartition', - 'PlanePartitions')) - -# Parking Functions -lazy_import('sage.combinat.non_decreasing_parking_function', - ['NonDecreasingParkingFunctions', 'NonDecreasingParkingFunction']) -lazy_import('sage.combinat.parking_functions', - ['ParkingFunctions', 'ParkingFunction']) - -# Trees and Tamari interval posets -from sage.combinat.ordered_tree import (OrderedTree, OrderedTrees, - LabelledOrderedTree, LabelledOrderedTrees) -from sage.combinat.binary_tree import (BinaryTree, BinaryTrees, - LabelledBinaryTree, LabelledBinaryTrees) -lazy_import('sage.combinat.interval_posets', ['TamariIntervalPoset', 'TamariIntervalPosets']) -lazy_import('sage.combinat.rooted_tree', ('RootedTree', 'RootedTrees', - 'LabelledRootedTree', 'LabelledRootedTrees')) - -from sage.combinat.combination import Combinations - -from sage.combinat.set_partition import SetPartition, SetPartitions -from sage.combinat.set_partition_ordered import OrderedSetPartition, OrderedSetPartitions -lazy_import('sage.combinat.multiset_partition_into_sets_ordered', - ['OrderedMultisetPartitionIntoSets', - 'OrderedMultisetPartitionsIntoSets']) -from sage.combinat.subset import Subsets, subsets, powerset, uniq -from sage.combinat.necklace import Necklaces -lazy_import('sage.combinat.dyck_word', ('DyckWords', 'DyckWord')) -lazy_import('sage.combinat.nu_dyck_word', ('NuDyckWords', 'NuDyckWord')) -from sage.combinat.sloane_functions import sloane -lazy_import('sage.combinat.superpartition', ('SuperPartition', - 'SuperPartitions')) - -lazy_import('sage.combinat.parallelogram_polyomino', - ['ParallelogramPolyomino', 'ParallelogramPolyominoes']) - -from sage.combinat.root_system.all import * -from sage.combinat.sf.all import * -from sage.combinat.ncsf_qsym.all import * -from sage.combinat.ncsym.all import * -lazy_import('sage.combinat.fqsym', 'FreeQuasisymmetricFunctions') -from sage.combinat.matrices.all import * -# Posets -from sage.combinat.posets.all import * - -# Cluster Algebras and Quivers -from sage.combinat.cluster_algebra_quiver.all import * - -from sage.combinat import ranker - -from sage.combinat.integer_vector import IntegerVectors -from sage.combinat.integer_vector_weighted import WeightedIntegerVectors -from sage.combinat.integer_vectors_mod_permgroup import IntegerVectorsModPermutationGroup - -lazy_import('sage.combinat.q_analogues', ['gaussian_binomial', 'q_binomial', 'number_of_irreducible_polynomials']) - -from sage.combinat.species.all import * - -lazy_import('sage.combinat.kazhdan_lusztig', 'KazhdanLusztigPolynomial') - -lazy_import('sage.combinat.degree_sequences', 'DegreeSequences') - -lazy_import('sage.combinat.cyclic_sieving_phenomenon', - ['CyclicSievingPolynomial', 'CyclicSievingCheck']) - -lazy_import('sage.combinat.sidon_sets', 'sidon_sets') - -# Puzzles -lazy_import('sage.combinat.knutson_tao_puzzles', 'KnutsonTaoPuzzleSolver') - -# Gelfand-Tsetlin patterns -lazy_import('sage.combinat.gelfand_tsetlin_patterns', - ['GelfandTsetlinPattern', 'GelfandTsetlinPatterns']) - -# Finite State Machines (Automaton, Transducer) -lazy_import('sage.combinat.finite_state_machine', - ['Automaton', 'Transducer', 'FiniteStateMachine']) -lazy_import('sage.combinat.finite_state_machine_generators', - ['automata', 'transducers']) - -# Sequences -lazy_import('sage.combinat.binary_recurrence_sequences', - 'BinaryRecurrenceSequence') -lazy_import('sage.combinat.recognizable_series', 'RecognizableSeriesSpace') -lazy_import('sage.combinat.regular_sequence', 'RegularSequenceRing') - -# Six Vertex Model -lazy_import('sage.combinat.six_vertex_model', 'SixVertexModel') - -# sine-Gordon Y-systems -lazy_import('sage.combinat.sine_gordon', 'SineGordonYsystem') - -# Fully Packed Loop -lazy_import('sage.combinat.fully_packed_loop', ['FullyPackedLoop', 'FullyPackedLoops']) - -# Subword complex and cluster complex -lazy_import('sage.combinat.subword_complex', 'SubwordComplex') -lazy_import("sage.combinat.cluster_complex", "ClusterComplex") - -# Constellations -lazy_import('sage.combinat.constellation', ['Constellation', 'Constellations']) - -# Growth diagrams -lazy_import('sage.combinat.growth', 'GrowthDiagram') - -# Path Tableaux -lazy_import('sage.combinat.path_tableaux', 'catalog', as_='path_tableaux') - -# Bijectionist -lazy_import('sage.combinat.bijectionist', 'Bijectionist') +from sage.combinat.all__sagemath_combinat import * +from sage.combinat.all__sagemath_modules import * +from sage.combinat.all__sagemath_graphs import * +del lazy_import +del install_dict +del install_doc diff --git a/src/sage/combinat/all__sagemath_categories.py b/src/sage/combinat/all__sagemath_categories.py new file mode 100644 index 00000000000..e1449065cd8 --- /dev/null +++ b/src/sage/combinat/all__sagemath_categories.py @@ -0,0 +1,29 @@ +# sage_setup: distribution = sagemath-categories + +from sage.combinat.matrices.all__sagemath_categories import * + +from sage.misc.lazy_import import lazy_import + +# Integer lists +from sage.combinat.integer_lists import IntegerListsLex +from sage.combinat.integer_vector import IntegerVectors + +from sage.combinat.combinat import (CombinatorialObject, + bell_number, bell_polynomial, bernoulli_polynomial, + catalan_number, euler_number, + fibonacci, fibonacci_sequence, fibonacci_xrange, + lucas_number1, lucas_number2, + number_of_tuples, number_of_unordered_tuples, + polygonal_number, stirling_number1, stirling_number2, + tuples, unordered_tuples) + +from sage.combinat.combination import Combinations +from sage.combinat.composition import Composition, Compositions +from sage.combinat.permutation import Permutation, Permutations, Arrangements, CyclicPermutations, CyclicPermutationsOfPartition +from sage.combinat.subset import Subsets, subsets, powerset, uniq +from sage.combinat.tuple import Tuples, UnorderedTuples + + +from sage.combinat.dlx import DLXMatrix, AllExactCovers, OneExactCover + +del lazy_import diff --git a/src/sage/combinat/all__sagemath_combinat.py b/src/sage/combinat/all__sagemath_combinat.py new file mode 100644 index 00000000000..a07891e347a --- /dev/null +++ b/src/sage/combinat/all__sagemath_combinat.py @@ -0,0 +1,202 @@ +# sage_setup: distribution = sagemath-combinat +from sage.combinat.all__sagemath_categories import * + +from sage.misc.lazy_import import lazy_import + +from sage.combinat.expnums import expnums + +from sage.combinat.chas.all import * +from sage.combinat.crystals.all import * +from sage.combinat.rigged_configurations.all import * + +# Free modules and friends +from sage.combinat.debruijn_sequence import DeBruijnSequences + +lazy_import('sage.combinat.schubert_polynomial', 'SchubertPolynomialRing') +lazy_import('sage.combinat.key_polynomial', 'KeyPolynomialBasis', as_='KeyPolynomials') +lazy_import('sage.combinat.symmetric_group_algebra', [ + 'SymmetricGroupAlgebra', 'HeckeAlgebraSymmetricGroupT']) +lazy_import('sage.combinat.symmetric_group_representations', [ + 'SymmetricGroupRepresentation', 'SymmetricGroupRepresentations']) + +# Permutations +lazy_import('sage.combinat.affine_permutation', 'AffinePermutationGroup') +lazy_import('sage.combinat.colored_permutations', ['ColoredPermutations', + 'SignedPermutation', + 'SignedPermutations']) +from sage.combinat.derangements import Derangements +lazy_import('sage.combinat.baxter_permutations', ['BaxterPermutations']) + +# RSK +from sage.combinat.rsk import RSK, RSK_inverse, robinson_schensted_knuth, robinson_schensted_knuth_inverse, InsertionRules + +# HillmanGrassl +lazy_import("sage.combinat.hillman_grassl", [ + "WeakReversePlanePartition", "WeakReversePlanePartitions"]) + +# PerfectMatchings +from sage.combinat.perfect_matching import PerfectMatching, PerfectMatchings + +# Compositions +from sage.combinat.composition_signed import SignedCompositions + +# Partitions +from sage.combinat.partition import (Partition, Partitions, PartitionsInBox, + OrderedPartitions, PartitionsGreatestLE, + PartitionsGreatestEQ, number_of_partitions) + +lazy_import('sage.combinat.partition_tuple', ['PartitionTuple', 'PartitionTuples']) +lazy_import('sage.combinat.partition_kleshchev', ['KleshchevPartitions']) +lazy_import('sage.combinat.skew_partition', ['SkewPartition', 'SkewPartitions']) + +# Partition algebra +from sage.combinat.partition_algebra import (SetPartitionsAk, SetPartitionsPk, + SetPartitionsTk, SetPartitionsIk, + SetPartitionsBk, SetPartitionsSk, + SetPartitionsRk, SetPartitionsPRk) + +# Raising operators +lazy_import('sage.combinat.partition_shifting_algebras', 'ShiftingOperatorAlgebra') + +# Diagram algebra +lazy_import('sage.combinat.diagram_algebras', ['PartitionAlgebra', 'BrauerAlgebra', 'TemperleyLiebAlgebra', + 'PlanarAlgebra', 'PropagatingIdeal']) + +# Descent algebra +lazy_import('sage.combinat.descent_algebra', 'DescentAlgebra') + +# Vector Partitions +lazy_import('sage.combinat.vector_partition', + ['VectorPartition', 'VectorPartitions']) + +# Similarity class types +lazy_import('sage.combinat.similarity_class_type', ['PrimarySimilarityClassType', 'PrimarySimilarityClassTypes', + 'SimilarityClassType', 'SimilarityClassTypes']) + +# Cores +from sage.combinat.core import Core, Cores + +# Tableaux +lazy_import('sage.combinat.tableau', + ["Tableau", "SemistandardTableau", "StandardTableau", "RowStandardTableau", "IncreasingTableau", + "Tableaux", "SemistandardTableaux", "StandardTableaux", "RowStandardTableaux", "IncreasingTableaux"]) +from sage.combinat.skew_tableau import SkewTableau, SkewTableaux, StandardSkewTableaux, SemistandardSkewTableaux +from sage.combinat.ribbon_shaped_tableau import RibbonShapedTableau, RibbonShapedTableaux, StandardRibbonShapedTableaux +from sage.combinat.ribbon_tableau import RibbonTableaux, RibbonTableau, MultiSkewTableaux, MultiSkewTableau, SemistandardMultiSkewTableaux +from sage.combinat.composition_tableau import CompositionTableau, CompositionTableaux + +lazy_import('sage.combinat.tableau_tuple', + ['TableauTuple', 'StandardTableauTuple', 'RowStandardTableauTuple', + 'TableauTuples', 'StandardTableauTuples', 'RowStandardTableauTuples']) +from sage.combinat.k_tableau import WeakTableau, WeakTableaux, StrongTableau, StrongTableaux +lazy_import('sage.combinat.lr_tableau', ['LittlewoodRichardsonTableau', + 'LittlewoodRichardsonTableaux']) +lazy_import('sage.combinat.shifted_primed_tableau', ['ShiftedPrimedTableaux', + 'ShiftedPrimedTableau']) + +# SuperTableaux +lazy_import('sage.combinat.super_tableau', + ["StandardSuperTableau", "SemistandardSuperTableau", "StandardSuperTableaux", "SemistandardSuperTableaux"]) + +# Words +from sage.combinat.words.all import * + +lazy_import('sage.combinat.subword', 'Subwords') + +# Alternating sign matrices +lazy_import('sage.combinat.alternating_sign_matrix', ('AlternatingSignMatrix', + 'AlternatingSignMatrices', + 'MonotoneTriangles', + 'ContreTableaux', + 'TruncatedStaircases')) + +# Decorated Permutations +lazy_import('sage.combinat.decorated_permutation', ('DecoratedPermutation', + 'DecoratedPermutations')) + +# Plane Partitions +lazy_import('sage.combinat.plane_partition', ('PlanePartition', + 'PlanePartitions')) + +# Parking Functions +lazy_import('sage.combinat.non_decreasing_parking_function', + ['NonDecreasingParkingFunctions', 'NonDecreasingParkingFunction']) +lazy_import('sage.combinat.parking_functions', + ['ParkingFunctions', 'ParkingFunction']) + +from sage.combinat.set_partition import SetPartition, SetPartitions +from sage.combinat.set_partition_ordered import OrderedSetPartition, OrderedSetPartitions +lazy_import('sage.combinat.multiset_partition_into_sets_ordered', + ['OrderedMultisetPartitionIntoSets', + 'OrderedMultisetPartitionsIntoSets']) +from sage.combinat.necklace import Necklaces +lazy_import('sage.combinat.dyck_word', ('DyckWords', 'DyckWord')) +lazy_import('sage.combinat.nu_dyck_word', ('NuDyckWords', 'NuDyckWord')) +from sage.combinat.sloane_functions import sloane +lazy_import('sage.combinat.superpartition', ('SuperPartition', + 'SuperPartitions')) + +lazy_import('sage.combinat.parallelogram_polyomino', + ['ParallelogramPolyomino', 'ParallelogramPolyominoes']) + +from sage.combinat.sf.all import * +from sage.combinat.ncsf_qsym.all import * +from sage.combinat.ncsym.all import * +lazy_import('sage.combinat.fqsym', 'FreeQuasisymmetricFunctions') +from sage.combinat.matrices.all import * + +lazy_import('sage.combinat.integer_vector_weighted', 'WeightedIntegerVectors') +lazy_import('sage.combinat.integer_vectors_mod_permgroup', + 'IntegerVectorsModPermutationGroup') + +lazy_import('sage.combinat.q_analogues', ['gaussian_binomial', 'q_binomial', 'number_of_irreducible_polynomials']) + +from sage.combinat.species.all import * + +lazy_import('sage.combinat.kazhdan_lusztig', 'KazhdanLusztigPolynomial') + +lazy_import('sage.combinat.degree_sequences', 'DegreeSequences') + +lazy_import('sage.combinat.cyclic_sieving_phenomenon', + ['CyclicSievingPolynomial', 'CyclicSievingCheck']) + +lazy_import('sage.combinat.sidon_sets', 'sidon_sets') + +# Puzzles +lazy_import('sage.combinat.knutson_tao_puzzles', 'KnutsonTaoPuzzleSolver') + +# Gelfand-Tsetlin patterns +lazy_import('sage.combinat.gelfand_tsetlin_patterns', + ['GelfandTsetlinPattern', 'GelfandTsetlinPatterns']) + +# Sequences +lazy_import('sage.combinat.binary_recurrence_sequences', + 'BinaryRecurrenceSequence') +lazy_import('sage.combinat.recognizable_series', 'RecognizableSeriesSpace') +lazy_import('sage.combinat.regular_sequence', 'RegularSequenceRing') + +# Six Vertex Model +lazy_import('sage.combinat.six_vertex_model', 'SixVertexModel') + +# sine-Gordon Y-systems +lazy_import('sage.combinat.sine_gordon', 'SineGordonYsystem') + +# Fully Packed Loop +lazy_import('sage.combinat.fully_packed_loop', ['FullyPackedLoop', 'FullyPackedLoops']) + +# Subword complex and cluster complex +lazy_import('sage.combinat.subword_complex', 'SubwordComplex') +lazy_import("sage.combinat.cluster_complex", "ClusterComplex") + +# Constellations +lazy_import('sage.combinat.constellation', ['Constellation', 'Constellations']) + +# Growth diagrams +lazy_import('sage.combinat.growth', 'GrowthDiagram') + +# Path Tableaux +lazy_import('sage.combinat.path_tableaux', 'catalog', as_='path_tableaux') + +# Bijectionist +lazy_import('sage.combinat.bijectionist', 'Bijectionist') +del lazy_import diff --git a/src/sage/combinat/all__sagemath_flint.py b/src/sage/combinat/all__sagemath_flint.py new file mode 100644 index 00000000000..d31bae41036 --- /dev/null +++ b/src/sage/combinat/all__sagemath_flint.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/combinat/all__sagemath_gap.py b/src/sage/combinat/all__sagemath_gap.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/combinat/all__sagemath_gap.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/combinat/all__sagemath_graphs.py b/src/sage/combinat/all__sagemath_graphs.py new file mode 100644 index 00000000000..be411f7cde5 --- /dev/null +++ b/src/sage/combinat/all__sagemath_graphs.py @@ -0,0 +1,34 @@ +# sage_setup: distribution = sagemath-graphs +from sage.combinat.all__sagemath_categories import * + +from sage.misc.lazy_import import lazy_import + +# Posets +from sage.combinat.posets.all import * + +# Trees and Tamari interval posets +from sage.combinat.ordered_tree import (OrderedTree, OrderedTrees, + LabelledOrderedTree, LabelledOrderedTrees) +from sage.combinat.binary_tree import (BinaryTree, BinaryTrees, + LabelledBinaryTree, LabelledBinaryTrees) +lazy_import('sage.combinat.rooted_tree', ('RootedTree', 'RootedTrees', + 'LabelledRootedTree', 'LabelledRootedTrees')) +lazy_import('sage.combinat.interval_posets', [ + 'TamariIntervalPoset', 'TamariIntervalPosets']) + +from sage.combinat.graph_path import GraphPaths + +from sage.combinat.yang_baxter_graph import YangBaxterGraph + +# block designs, etc +from sage.combinat.designs.all import * + +# Cluster Algebras and Quivers +from sage.combinat.cluster_algebra_quiver.all import * + +# Finite State Machines (Automaton, Transducer) +lazy_import('sage.combinat.finite_state_machine', + ['Automaton', 'Transducer', 'FiniteStateMachine']) +lazy_import('sage.combinat.finite_state_machine_generators', + ['automata', 'transducers']) +del lazy_import diff --git a/src/sage/combinat/all__sagemath_modules.py b/src/sage/combinat/all__sagemath_modules.py new file mode 100644 index 00000000000..cd7f8c89a9d --- /dev/null +++ b/src/sage/combinat/all__sagemath_modules.py @@ -0,0 +1,7 @@ +# sage_setup: distribution = sagemath-modules +from sage.combinat.all__sagemath_categories import * + +from sage.combinat.free_module import CombinatorialFreeModule +from sage.combinat import ranker + +from sage.combinat.root_system.all import * diff --git a/src/sage/combinat/alternating_sign_matrix.py b/src/sage/combinat/alternating_sign_matrix.py index 230c9a8aae7..c72dcb02313 100644 --- a/src/sage/combinat/alternating_sign_matrix.py +++ b/src/sage/combinat/alternating_sign_matrix.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Alternating Sign Matrices diff --git a/src/sage/combinat/backtrack.py b/src/sage/combinat/backtrack.py index 223d3de1db5..08f2383c172 100644 --- a/src/sage/combinat/backtrack.py +++ b/src/sage/combinat/backtrack.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Backtracking diff --git a/src/sage/combinat/baxter_permutations.py b/src/sage/combinat/baxter_permutations.py index 08b67b96540..149e170c207 100644 --- a/src/sage/combinat/baxter_permutations.py +++ b/src/sage/combinat/baxter_permutations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Baxter permutations """ diff --git a/src/sage/combinat/bijectionist.py b/src/sage/combinat/bijectionist.py index ce1bf8aca13..3de81743a1d 100644 --- a/src/sage/combinat/bijectionist.py +++ b/src/sage/combinat/bijectionist.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.numerical.mip r""" A bijectionist's toolkit diff --git a/src/sage/combinat/binary_recurrence_sequences.py b/src/sage/combinat/binary_recurrence_sequences.py index df8de0ada86..b7ef70937d3 100644 --- a/src/sage/combinat/binary_recurrence_sequences.py +++ b/src/sage/combinat/binary_recurrence_sequences.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Binary Recurrence Sequences diff --git a/src/sage/combinat/binary_tree.py b/src/sage/combinat/binary_tree.py index 0d018c18b00..3b110e8a9f8 100644 --- a/src/sage/combinat/binary_tree.py +++ b/src/sage/combinat/binary_tree.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Binary Trees diff --git a/src/sage/combinat/blob_algebra.py b/src/sage/combinat/blob_algebra.py index 595063a69fd..10a5d171569 100644 --- a/src/sage/combinat/blob_algebra.py +++ b/src/sage/combinat/blob_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Blob Algebras diff --git a/src/sage/combinat/cartesian_product.py b/src/sage/combinat/cartesian_product.py index 7bf3590550f..ecede88d590 100644 --- a/src/sage/combinat/cartesian_product.py +++ b/src/sage/combinat/cartesian_product.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Cartesian Products """ diff --git a/src/sage/combinat/catalog_partitions.py b/src/sage/combinat/catalog_partitions.py index 302e8f112d6..14cdccd8592 100644 --- a/src/sage/combinat/catalog_partitions.py +++ b/src/sage/combinat/catalog_partitions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Enumerated sets of partitions, tableaux, ... diff --git a/src/sage/combinat/chas/all.py b/src/sage/combinat/chas/all.py index cc4da145e9a..14146102882 100644 --- a/src/sage/combinat/chas/all.py +++ b/src/sage/combinat/chas/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Combinatorial Hopf algebras diff --git a/src/sage/combinat/chas/fsym.py b/src/sage/combinat/chas/fsym.py index b28307e1ed9..5345cce896b 100644 --- a/src/sage/combinat/chas/fsym.py +++ b/src/sage/combinat/chas/fsym.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Poirier-Reutenauer Hopf algebra of standard tableaux diff --git a/src/sage/combinat/chas/wqsym.py b/src/sage/combinat/chas/wqsym.py index 50811f08cb8..bc70254c40f 100644 --- a/src/sage/combinat/chas/wqsym.py +++ b/src/sage/combinat/chas/wqsym.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Word Quasi-symmetric functions diff --git a/src/sage/combinat/cluster_algebra_quiver/all.py b/src/sage/combinat/cluster_algebra_quiver/all.py index 9659105e91a..4a7344218aa 100644 --- a/src/sage/combinat/cluster_algebra_quiver/all.py +++ b/src/sage/combinat/cluster_algebra_quiver/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Cluster algebras and quivers diff --git a/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py b/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py index 5ab85f84208..9302220c232 100644 --- a/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py +++ b/src/sage/combinat/cluster_algebra_quiver/cluster_seed.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs sage.modules r""" ClusterSeed diff --git a/src/sage/combinat/cluster_algebra_quiver/interact.py b/src/sage/combinat/cluster_algebra_quiver/interact.py index 834e8a38d44..38052644484 100644 --- a/src/sage/combinat/cluster_algebra_quiver/interact.py +++ b/src/sage/combinat/cluster_algebra_quiver/interact.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs import ipywidgets as widgets from sage.misc.latex import latex from sage.repl.rich_output.pretty_print import pretty_print diff --git a/src/sage/combinat/cluster_algebra_quiver/mutation_class.py b/src/sage/combinat/cluster_algebra_quiver/mutation_class.py index 9a85542100f..1ade0112adf 100644 --- a/src/sage/combinat/cluster_algebra_quiver/mutation_class.py +++ b/src/sage/combinat/cluster_algebra_quiver/mutation_class.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" mutation_class diff --git a/src/sage/combinat/cluster_algebra_quiver/mutation_type.py b/src/sage/combinat/cluster_algebra_quiver/mutation_type.py index 8a366c81053..cd5ec2f878a 100644 --- a/src/sage/combinat/cluster_algebra_quiver/mutation_type.py +++ b/src/sage/combinat/cluster_algebra_quiver/mutation_type.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Helper functions for mutation types of quivers diff --git a/src/sage/combinat/cluster_algebra_quiver/quiver.py b/src/sage/combinat/cluster_algebra_quiver/quiver.py index 7e07835b935..63f71648777 100644 --- a/src/sage/combinat/cluster_algebra_quiver/quiver.py +++ b/src/sage/combinat/cluster_algebra_quiver/quiver.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs sage.modules r""" Quiver diff --git a/src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py b/src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py index c9f06a4761f..8bcb94c611f 100644 --- a/src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py +++ b/src/sage/combinat/cluster_algebra_quiver/quiver_mutation_type.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Quiver mutation types diff --git a/src/sage/combinat/cluster_complex.py b/src/sage/combinat/cluster_complex.py index c99dc0df6f3..c4913a7ee6e 100644 --- a/src/sage/combinat/cluster_complex.py +++ b/src/sage/combinat/cluster_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.graphs r""" Cluster complex (or generalized dual associahedron) diff --git a/src/sage/combinat/colored_permutations.py b/src/sage/combinat/colored_permutations.py index 1accb8f46ee..b46e5a1c363 100644 --- a/src/sage/combinat/colored_permutations.py +++ b/src/sage/combinat/colored_permutations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Colored Permutations diff --git a/src/sage/combinat/combinat.py b/src/sage/combinat/combinat.py index 03c1797abfb..b932179e883 100644 --- a/src/sage/combinat/combinat.py +++ b/src/sage/combinat/combinat.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Combinatorial Functions diff --git a/src/sage/combinat/combinat_cython.pxd b/src/sage/combinat/combinat_cython.pxd index 40cae00a781..01be51d4a3d 100644 --- a/src/sage/combinat/combinat_cython.pxd +++ b/src/sage/combinat/combinat_cython.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.libs.gmp.all cimport mpz_t cdef mpz_stirling_s2(mpz_t s, unsigned long n, unsigned long k) diff --git a/src/sage/combinat/combinat_cython.pyx b/src/sage/combinat/combinat_cython.pyx index 421994394c2..223cf6ce01a 100644 --- a/src/sage/combinat/combinat_cython.pyx +++ b/src/sage/combinat/combinat_cython.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # cython: binding=True """ Fast computation of combinatorial functions (Cython + mpz) diff --git a/src/sage/combinat/combination.py b/src/sage/combinat/combination.py index 49de0da4ab7..57aa75bb81a 100644 --- a/src/sage/combinat/combination.py +++ b/src/sage/combinat/combination.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Combinations diff --git a/src/sage/combinat/combinatorial_map.py b/src/sage/combinat/combinatorial_map.py index ded649a41da..5ce58ac419c 100644 --- a/src/sage/combinat/combinatorial_map.py +++ b/src/sage/combinat/combinatorial_map.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Combinatorial maps diff --git a/src/sage/combinat/composition.py b/src/sage/combinat/composition.py index 173590cfd74..004bd6d1dbe 100644 --- a/src/sage/combinat/composition.py +++ b/src/sage/combinat/composition.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Integer compositions diff --git a/src/sage/combinat/composition_signed.py b/src/sage/combinat/composition_signed.py index 03e9acfe31e..09a790bf88c 100644 --- a/src/sage/combinat/composition_signed.py +++ b/src/sage/combinat/composition_signed.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Signed Compositions """ diff --git a/src/sage/combinat/composition_tableau.py b/src/sage/combinat/composition_tableau.py index 1e05da84c4e..14948d2e656 100644 --- a/src/sage/combinat/composition_tableau.py +++ b/src/sage/combinat/composition_tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Composition Tableaux diff --git a/src/sage/combinat/constellation.py b/src/sage/combinat/constellation.py index e22c3428bb4..aa5f7277529 100644 --- a/src/sage/combinat/constellation.py +++ b/src/sage/combinat/constellation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.groups r""" Constellations diff --git a/src/sage/combinat/core.py b/src/sage/combinat/core.py index 21ce49f57f1..a82fd231017 100644 --- a/src/sage/combinat/core.py +++ b/src/sage/combinat/core.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Cores diff --git a/src/sage/combinat/counting.py b/src/sage/combinat/counting.py index 5751ced4df5..574983b3c57 100644 --- a/src/sage/combinat/counting.py +++ b/src/sage/combinat/counting.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Counting diff --git a/src/sage/combinat/crystals/affine.py b/src/sage/combinat/crystals/affine.py index e8f927246bc..f02e7a6ed2d 100644 --- a/src/sage/combinat/crystals/affine.py +++ b/src/sage/combinat/crystals/affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Affine Crystals diff --git a/src/sage/combinat/crystals/affine_factorization.py b/src/sage/combinat/crystals/affine_factorization.py index 5bfb0988ce3..4e76b99ca96 100644 --- a/src/sage/combinat/crystals/affine_factorization.py +++ b/src/sage/combinat/crystals/affine_factorization.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Affine factorization crystal of type `A` diff --git a/src/sage/combinat/crystals/affinization.py b/src/sage/combinat/crystals/affinization.py index 32f56ff545f..3f8bbb4c860 100644 --- a/src/sage/combinat/crystals/affinization.py +++ b/src/sage/combinat/crystals/affinization.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Affinization Crystals diff --git a/src/sage/combinat/crystals/alcove_path.py b/src/sage/combinat/crystals/alcove_path.py index dc41f63b6b5..937cbbaf7cd 100644 --- a/src/sage/combinat/crystals/alcove_path.py +++ b/src/sage/combinat/crystals/alcove_path.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Alcove paths diff --git a/src/sage/combinat/crystals/all.py b/src/sage/combinat/crystals/all.py index be8576c0e02..5fc1f5f4d71 100644 --- a/src/sage/combinat/crystals/all.py +++ b/src/sage/combinat/crystals/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Crystals diff --git a/src/sage/combinat/crystals/bkk_crystals.py b/src/sage/combinat/crystals/bkk_crystals.py index 785f3fc7619..d59077d3aae 100644 --- a/src/sage/combinat/crystals/bkk_crystals.py +++ b/src/sage/combinat/crystals/bkk_crystals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Benkart-Kang-Kashiwara crystals for the general-linear Lie superalgebra diff --git a/src/sage/combinat/crystals/catalog.py b/src/sage/combinat/crystals/catalog.py index 0c884314255..79744ccd7bc 100644 --- a/src/sage/combinat/crystals/catalog.py +++ b/src/sage/combinat/crystals/catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Catalog Of Crystals diff --git a/src/sage/combinat/crystals/catalog_elementary_crystals.py b/src/sage/combinat/crystals/catalog_elementary_crystals.py index 51db8aa065a..02c97006d5a 100644 --- a/src/sage/combinat/crystals/catalog_elementary_crystals.py +++ b/src/sage/combinat/crystals/catalog_elementary_crystals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Catalog Of Elementary Crystals diff --git a/src/sage/combinat/crystals/catalog_infinity_crystals.py b/src/sage/combinat/crystals/catalog_infinity_crystals.py index 7f09b0f04f8..cbec9d97205 100644 --- a/src/sage/combinat/crystals/catalog_infinity_crystals.py +++ b/src/sage/combinat/crystals/catalog_infinity_crystals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Catalog Of Crystal Models For `B(\infty)` diff --git a/src/sage/combinat/crystals/catalog_kirillov_reshetikhin.py b/src/sage/combinat/crystals/catalog_kirillov_reshetikhin.py index 62b196e4ed6..cfd82ccd9b4 100644 --- a/src/sage/combinat/crystals/catalog_kirillov_reshetikhin.py +++ b/src/sage/combinat/crystals/catalog_kirillov_reshetikhin.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Catalog Of Crystal Models For Kirillov-Reshetikhin Crystals diff --git a/src/sage/combinat/crystals/crystals.py b/src/sage/combinat/crystals/crystals.py index fb8f150e479..12efae47147 100644 --- a/src/sage/combinat/crystals/crystals.py +++ b/src/sage/combinat/crystals/crystals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" An introduction to crystals diff --git a/src/sage/combinat/crystals/direct_sum.py b/src/sage/combinat/crystals/direct_sum.py index cbb39c7d4f6..db2756f1308 100644 --- a/src/sage/combinat/crystals/direct_sum.py +++ b/src/sage/combinat/crystals/direct_sum.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Direct Sum of Crystals diff --git a/src/sage/combinat/crystals/elementary_crystals.py b/src/sage/combinat/crystals/elementary_crystals.py index 7619e0e0a5e..6042a872ed0 100644 --- a/src/sage/combinat/crystals/elementary_crystals.py +++ b/src/sage/combinat/crystals/elementary_crystals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Elementary Crystals diff --git a/src/sage/combinat/crystals/fast_crystals.py b/src/sage/combinat/crystals/fast_crystals.py index e427c6b48aa..7c3e694325e 100644 --- a/src/sage/combinat/crystals/fast_crystals.py +++ b/src/sage/combinat/crystals/fast_crystals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Fast Rank Two Crystals diff --git a/src/sage/combinat/crystals/fully_commutative_stable_grothendieck.py b/src/sage/combinat/crystals/fully_commutative_stable_grothendieck.py index 9ba9e3c1e0a..b709db1b363 100644 --- a/src/sage/combinat/crystals/fully_commutative_stable_grothendieck.py +++ b/src/sage/combinat/crystals/fully_commutative_stable_grothendieck.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Fully commutative stable Grothendieck crystal diff --git a/src/sage/combinat/crystals/generalized_young_walls.py b/src/sage/combinat/crystals/generalized_young_walls.py index 65e1af9b61b..7b95e6960c0 100644 --- a/src/sage/combinat/crystals/generalized_young_walls.py +++ b/src/sage/combinat/crystals/generalized_young_walls.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Crystals of Generalized Young Walls diff --git a/src/sage/combinat/crystals/highest_weight_crystals.py b/src/sage/combinat/crystals/highest_weight_crystals.py index ef731d57692..6d9e4923570 100644 --- a/src/sage/combinat/crystals/highest_weight_crystals.py +++ b/src/sage/combinat/crystals/highest_weight_crystals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Highest weight crystals diff --git a/src/sage/combinat/crystals/induced_structure.py b/src/sage/combinat/crystals/induced_structure.py index 094a0e7a37b..af5be649853 100644 --- a/src/sage/combinat/crystals/induced_structure.py +++ b/src/sage/combinat/crystals/induced_structure.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Induced Crystals diff --git a/src/sage/combinat/crystals/infinity_crystals.py b/src/sage/combinat/crystals/infinity_crystals.py index a7f98a369fb..3c69a0da958 100644 --- a/src/sage/combinat/crystals/infinity_crystals.py +++ b/src/sage/combinat/crystals/infinity_crystals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" `\mathcal{B}(\infty)` Crystals of Tableaux in Nonexceptional Types and `G_2` diff --git a/src/sage/combinat/crystals/kac_modules.py b/src/sage/combinat/crystals/kac_modules.py index 23ed28b90c2..ddcd8492af1 100644 --- a/src/sage/combinat/crystals/kac_modules.py +++ b/src/sage/combinat/crystals/kac_modules.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Crystals of Kac modules of the general-linear Lie superalgebra diff --git a/src/sage/combinat/crystals/kirillov_reshetikhin.py b/src/sage/combinat/crystals/kirillov_reshetikhin.py index 18b1882014d..32e680086c5 100644 --- a/src/sage/combinat/crystals/kirillov_reshetikhin.py +++ b/src/sage/combinat/crystals/kirillov_reshetikhin.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Kirillov-Reshetikhin Crystals @@ -44,7 +45,7 @@ from sage.combinat.root_system.root_system import RootSystem from sage.combinat.crystals.tensor_product import CrystalOfTableaux from sage.combinat.tableau import Tableau -from sage.combinat.partition import Partition, Partitions +from sage.combinat.partition import Partition, Partitions, partitions_in_box from sage.combinat.integer_vector import IntegerVectors @@ -3967,20 +3968,6 @@ def sigma(self): ####################################################################### -def partitions_in_box(r, s): - """ - Return all partitions in a box of width s and height r. - - EXAMPLES:: - - sage: sage.combinat.crystals.kirillov_reshetikhin.partitions_in_box(3,2) - [[], [1], [2], [1, 1], [2, 1], [1, 1, 1], [2, 2], [2, 1, 1], - [2, 2, 1], [2, 2, 2]] - """ - return [x for n in range(r*s+1) - for x in Partitions(n, max_part=s, max_length=r)] - - def vertical_dominoes_removed(r, s): """ Return all partitions obtained from a rectangle of width s and height r by removing diff --git a/src/sage/combinat/crystals/kyoto_path_model.py b/src/sage/combinat/crystals/kyoto_path_model.py index e7ae0b47275..06589da80f3 100644 --- a/src/sage/combinat/crystals/kyoto_path_model.py +++ b/src/sage/combinat/crystals/kyoto_path_model.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Kyoto Path Model for Affine Highest Weight Crystals diff --git a/src/sage/combinat/crystals/letters.pxd b/src/sage/combinat/crystals/letters.pxd index 4f8e25da411..da06502c59c 100644 --- a/src/sage/combinat/crystals/letters.pxd +++ b/src/sage/combinat/crystals/letters.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from sage.structure.element cimport Element cdef class Letter(Element): diff --git a/src/sage/combinat/crystals/letters.pyx b/src/sage/combinat/crystals/letters.pyx index 93434bc1bd7..b84df4dfdd9 100644 --- a/src/sage/combinat/crystals/letters.pyx +++ b/src/sage/combinat/crystals/letters.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Crystals of letters diff --git a/src/sage/combinat/crystals/littelmann_path.py b/src/sage/combinat/crystals/littelmann_path.py index c9fa7cb7933..94853e81802 100644 --- a/src/sage/combinat/crystals/littelmann_path.py +++ b/src/sage/combinat/crystals/littelmann_path.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Littelmann paths diff --git a/src/sage/combinat/crystals/monomial_crystals.py b/src/sage/combinat/crystals/monomial_crystals.py index 567f3c4aa3d..cefcf490aa2 100644 --- a/src/sage/combinat/crystals/monomial_crystals.py +++ b/src/sage/combinat/crystals/monomial_crystals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Crystals of Modified Nakajima Monomials diff --git a/src/sage/combinat/crystals/multisegments.py b/src/sage/combinat/crystals/multisegments.py index 92de6809f4f..bb0a0bc3ccf 100644 --- a/src/sage/combinat/crystals/multisegments.py +++ b/src/sage/combinat/crystals/multisegments.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Crystal of Bernstein-Zelevinsky Multisegments diff --git a/src/sage/combinat/crystals/mv_polytopes.py b/src/sage/combinat/crystals/mv_polytopes.py index 341ad417443..6d78a4e3ce3 100644 --- a/src/sage/combinat/crystals/mv_polytopes.py +++ b/src/sage/combinat/crystals/mv_polytopes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Crystal Of Mirković-Vilonen (MV) Polytopes diff --git a/src/sage/combinat/crystals/pbw_crystal.py b/src/sage/combinat/crystals/pbw_crystal.py index 9859438ae58..6db2bf4d99a 100644 --- a/src/sage/combinat/crystals/pbw_crystal.py +++ b/src/sage/combinat/crystals/pbw_crystal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" `\mathcal{B}(\infty)` Crystal Of PBW Monomials diff --git a/src/sage/combinat/crystals/pbw_datum.pxd b/src/sage/combinat/crystals/pbw_datum.pxd index 9c3aab083df..643d297b9df 100644 --- a/src/sage/combinat/crystals/pbw_datum.pxd +++ b/src/sage/combinat/crystals/pbw_datum.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-combinat + cpdef tuple compute_new_lusztig_datum(list enhanced_braid_chain, initial_lusztig_datum) cpdef tuple tropical_plucker_relation(tuple a, lusztig_datum) cpdef list enhance_braid_move_chain(braid_move_chain, cartan_type) diff --git a/src/sage/combinat/crystals/pbw_datum.pyx b/src/sage/combinat/crystals/pbw_datum.pyx index 03a7aee51d9..c28546ee662 100644 --- a/src/sage/combinat/crystals/pbw_datum.pyx +++ b/src/sage/combinat/crystals/pbw_datum.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" PBW Data diff --git a/src/sage/combinat/crystals/polyhedral_realization.py b/src/sage/combinat/crystals/polyhedral_realization.py index c4193b44655..a9007307d32 100644 --- a/src/sage/combinat/crystals/polyhedral_realization.py +++ b/src/sage/combinat/crystals/polyhedral_realization.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Polyhedral Realization of `B(\infty)` diff --git a/src/sage/combinat/crystals/spins.pxd b/src/sage/combinat/crystals/spins.pxd index 3ef5e0b7c5f..715c44ba815 100644 --- a/src/sage/combinat/crystals/spins.pxd +++ b/src/sage/combinat/crystals/spins.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from sage.structure.element cimport Element cdef class Spin(Element): diff --git a/src/sage/combinat/crystals/spins.pyx b/src/sage/combinat/crystals/spins.pyx index 5ff109602d0..d5e11abaa82 100644 --- a/src/sage/combinat/crystals/spins.pyx +++ b/src/sage/combinat/crystals/spins.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Spin Crystals diff --git a/src/sage/combinat/crystals/star_crystal.py b/src/sage/combinat/crystals/star_crystal.py index 02427149ed4..45bffe85726 100644 --- a/src/sage/combinat/crystals/star_crystal.py +++ b/src/sage/combinat/crystals/star_crystal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Star-Crystal Structure On `B(\infty)` diff --git a/src/sage/combinat/crystals/subcrystal.py b/src/sage/combinat/crystals/subcrystal.py index b9caabafd72..7e227aa96a6 100644 --- a/src/sage/combinat/crystals/subcrystal.py +++ b/src/sage/combinat/crystals/subcrystal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Subcrystals diff --git a/src/sage/combinat/crystals/tensor_product.py b/src/sage/combinat/crystals/tensor_product.py index 8d35ecd8c90..a6c669e68c9 100644 --- a/src/sage/combinat/crystals/tensor_product.py +++ b/src/sage/combinat/crystals/tensor_product.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Tensor Products of Crystals diff --git a/src/sage/combinat/crystals/tensor_product_element.pxd b/src/sage/combinat/crystals/tensor_product_element.pxd index 792d6d3351e..e05c1cf4d59 100644 --- a/src/sage/combinat/crystals/tensor_product_element.pxd +++ b/src/sage/combinat/crystals/tensor_product_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from sage.structure.list_clone cimport ClonableArray cdef class ImmutableListWithParent(ClonableArray): diff --git a/src/sage/combinat/crystals/tensor_product_element.pyx b/src/sage/combinat/crystals/tensor_product_element.pyx index 607dcc2a8dc..f6237b2196e 100644 --- a/src/sage/combinat/crystals/tensor_product_element.pyx +++ b/src/sage/combinat/crystals/tensor_product_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Tensor Products of Crystal Elements diff --git a/src/sage/combinat/crystals/virtual_crystal.py b/src/sage/combinat/crystals/virtual_crystal.py index 5373e277bbd..2dc426ca6f0 100644 --- a/src/sage/combinat/crystals/virtual_crystal.py +++ b/src/sage/combinat/crystals/virtual_crystal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Virtual Crystals diff --git a/src/sage/combinat/cyclic_sieving_phenomenon.py b/src/sage/combinat/cyclic_sieving_phenomenon.py index ce6d6e58454..3dee57ef45e 100644 --- a/src/sage/combinat/cyclic_sieving_phenomenon.py +++ b/src/sage/combinat/cyclic_sieving_phenomenon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Cyclic sieving phenomenon diff --git a/src/sage/combinat/debruijn_sequence.pyx b/src/sage/combinat/debruijn_sequence.pyx index 54a58dc734b..90793f88c08 100644 --- a/src/sage/combinat/debruijn_sequence.pyx +++ b/src/sage/combinat/debruijn_sequence.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" De Bruijn sequences diff --git a/src/sage/combinat/decorated_permutation.py b/src/sage/combinat/decorated_permutation.py index 01b3b112caa..d72898f8fa9 100644 --- a/src/sage/combinat/decorated_permutation.py +++ b/src/sage/combinat/decorated_permutation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Decorated permutations diff --git a/src/sage/combinat/degree_sequences.pyx b/src/sage/combinat/degree_sequences.pyx index 4e0d282d068..270f508af46 100644 --- a/src/sage/combinat/degree_sequences.pyx +++ b/src/sage/combinat/degree_sequences.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Degree sequences diff --git a/src/sage/combinat/derangements.py b/src/sage/combinat/derangements.py index 53398e6b727..7bac97a07ec 100644 --- a/src/sage/combinat/derangements.py +++ b/src/sage/combinat/derangements.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Derangements diff --git a/src/sage/combinat/descent_algebra.py b/src/sage/combinat/descent_algebra.py index 617e0d615a2..761e8570235 100644 --- a/src/sage/combinat/descent_algebra.py +++ b/src/sage/combinat/descent_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Descent Algebras diff --git a/src/sage/combinat/designs/all.py b/src/sage/combinat/designs/all.py index bf00b490c3b..32d2aa35bac 100644 --- a/src/sage/combinat/designs/all.py +++ b/src/sage/combinat/designs/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Combinatorial designs and incidence structures diff --git a/src/sage/combinat/designs/bibd.py b/src/sage/combinat/designs/bibd.py index 49c930ccb38..dd4a28321a2 100644 --- a/src/sage/combinat/designs/bibd.py +++ b/src/sage/combinat/designs/bibd.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Balanced Incomplete Block Designs (BIBD) diff --git a/src/sage/combinat/designs/block_design.py b/src/sage/combinat/designs/block_design.py index 0c8b5b3fd38..e7fa223d884 100644 --- a/src/sage/combinat/designs/block_design.py +++ b/src/sage/combinat/designs/block_design.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.rings.finite_rings r""" Block designs diff --git a/src/sage/combinat/designs/covering_array.py b/src/sage/combinat/designs/covering_array.py index 9582a627d22..f7c94538c3e 100644 --- a/src/sage/combinat/designs/covering_array.py +++ b/src/sage/combinat/designs/covering_array.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Covering Arrays (CA) diff --git a/src/sage/combinat/designs/covering_design.py b/src/sage/combinat/designs/covering_design.py index 7977de93d9d..f272d3961fd 100644 --- a/src/sage/combinat/designs/covering_design.py +++ b/src/sage/combinat/designs/covering_design.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Covering designs: coverings of `t`-element subsets of a `v`-set by `k`-sets diff --git a/src/sage/combinat/designs/database.py b/src/sage/combinat/designs/database.py index 19eb9d26165..e5d2f9dd693 100644 --- a/src/sage/combinat/designs/database.py +++ b/src/sage/combinat/designs/database.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Database of small combinatorial designs diff --git a/src/sage/combinat/designs/design_catalog.py b/src/sage/combinat/designs/design_catalog.py index b5135151866..9d167831a8c 100644 --- a/src/sage/combinat/designs/design_catalog.py +++ b/src/sage/combinat/designs/design_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Catalog of designs diff --git a/src/sage/combinat/designs/designs_pyx.pxd b/src/sage/combinat/designs/designs_pyx.pxd index 345a41f2945..fef0692369c 100644 --- a/src/sage/combinat/designs/designs_pyx.pxd +++ b/src/sage/combinat/designs/designs_pyx.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # Cached informations about OA(k,n) # # - max_true: max k such that OA(k,n,existence=True) previously returned True diff --git a/src/sage/combinat/designs/designs_pyx.pyx b/src/sage/combinat/designs/designs_pyx.pyx index c862821330e..825a0865de1 100644 --- a/src/sage/combinat/designs/designs_pyx.pyx +++ b/src/sage/combinat/designs/designs_pyx.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Cython functions for combinatorial designs @@ -272,9 +273,10 @@ def is_orthogonal_array(OA, int k, int n, int t=2, verbose=False, terminology='O cardinality of the relabeling group which is `S_2^3 \times S_3` and has cardinality `48`:: + sage: # needs sage.schemes sage: from itertools import product sage: n = 0 - sage: for a in product(product((0,1), repeat=3), repeat=4): # needs sage.schemes + sage: for a in product(product((0,1), repeat=3), repeat=4): ....: if is_orthogonal_array(a,3,2): ....: n += 1 sage: n diff --git a/src/sage/combinat/designs/difference_family.py b/src/sage/combinat/designs/difference_family.py index 49b25c12dd0..1acd613b3b1 100644 --- a/src/sage/combinat/designs/difference_family.py +++ b/src/sage/combinat/designs/difference_family.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Difference families diff --git a/src/sage/combinat/designs/difference_matrices.py b/src/sage/combinat/designs/difference_matrices.py index 11fe16bb8d5..67cab31f5ee 100644 --- a/src/sage/combinat/designs/difference_matrices.py +++ b/src/sage/combinat/designs/difference_matrices.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.rings.finite_rings r""" Difference Matrices diff --git a/src/sage/combinat/designs/evenly_distributed_sets.pyx b/src/sage/combinat/designs/evenly_distributed_sets.pyx index 1d1a7acb8ec..45a076f8bef 100644 --- a/src/sage/combinat/designs/evenly_distributed_sets.pyx +++ b/src/sage/combinat/designs/evenly_distributed_sets.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.rings.finite_rings r""" Evenly distributed sets in finite fields diff --git a/src/sage/combinat/designs/ext_rep.py b/src/sage/combinat/designs/ext_rep.py index 93f55f6daed..52b7b04a5bd 100644 --- a/src/sage/combinat/designs/ext_rep.py +++ b/src/sage/combinat/designs/ext_rep.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" External Representations of Block Designs diff --git a/src/sage/combinat/designs/gen_quadrangles_with_spread.pyx b/src/sage/combinat/designs/gen_quadrangles_with_spread.pyx index f5912e83690..a62f90184c1 100644 --- a/src/sage/combinat/designs/gen_quadrangles_with_spread.pyx +++ b/src/sage/combinat/designs/gen_quadrangles_with_spread.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.libs.gap r""" Database of generalised quadrangles with spread diff --git a/src/sage/combinat/designs/group_divisible_designs.py b/src/sage/combinat/designs/group_divisible_designs.py index 6bff9bffe2e..96f6b3f0fe9 100644 --- a/src/sage/combinat/designs/group_divisible_designs.py +++ b/src/sage/combinat/designs/group_divisible_designs.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.rings.finite_rings r""" Group-Divisible Designs (GDD) diff --git a/src/sage/combinat/designs/incidence_structures.py b/src/sage/combinat/designs/incidence_structures.py index e9964af900c..15ee0886d4a 100644 --- a/src/sage/combinat/designs/incidence_structures.py +++ b/src/sage/combinat/designs/incidence_structures.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Incidence structures (i.e. hypergraphs, i.e. set systems) diff --git a/src/sage/combinat/designs/latin_squares.py b/src/sage/combinat/designs/latin_squares.py index c8b61827e90..55a6d05d621 100644 --- a/src/sage/combinat/designs/latin_squares.py +++ b/src/sage/combinat/designs/latin_squares.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.modules r""" Mutually Orthogonal Latin Squares (MOLS) diff --git a/src/sage/combinat/designs/orthogonal_arrays.py b/src/sage/combinat/designs/orthogonal_arrays.py index daac0f322cf..15bedf57d42 100644 --- a/src/sage/combinat/designs/orthogonal_arrays.py +++ b/src/sage/combinat/designs/orthogonal_arrays.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.rings.finite_rings sage.schemes r""" Orthogonal arrays (OA) diff --git a/src/sage/combinat/designs/orthogonal_arrays_build_recursive.py b/src/sage/combinat/designs/orthogonal_arrays_build_recursive.py index 937076ebb07..2ac06753c17 100644 --- a/src/sage/combinat/designs/orthogonal_arrays_build_recursive.py +++ b/src/sage/combinat/designs/orthogonal_arrays_build_recursive.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.rings.finite_rings r""" Orthogonal arrays (build recursive constructions) diff --git a/src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx b/src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx index f7f3502548b..9fe076dfbfe 100644 --- a/src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx +++ b/src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.rings.finite_rings sage.schemes # cython: cdivision=True r""" diff --git a/src/sage/combinat/designs/resolvable_bibd.py b/src/sage/combinat/designs/resolvable_bibd.py index ccc11176d54..9da126c9012 100644 --- a/src/sage/combinat/designs/resolvable_bibd.py +++ b/src/sage/combinat/designs/resolvable_bibd.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.rings.finite_rings r""" Resolvable Balanced Incomplete Block Design (RBIBD) diff --git a/src/sage/combinat/designs/steiner_quadruple_systems.py b/src/sage/combinat/designs/steiner_quadruple_systems.py index 9576ae5f5aa..bdf2a49880d 100644 --- a/src/sage/combinat/designs/steiner_quadruple_systems.py +++ b/src/sage/combinat/designs/steiner_quadruple_systems.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Steiner Quadruple Systems diff --git a/src/sage/combinat/designs/subhypergraph_search.pyx b/src/sage/combinat/designs/subhypergraph_search.pyx index 8de300efe2a..1e4241eafbb 100644 --- a/src/sage/combinat/designs/subhypergraph_search.pyx +++ b/src/sage/combinat/designs/subhypergraph_search.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Hypergraph isomorphic copy search diff --git a/src/sage/combinat/designs/twographs.py b/src/sage/combinat/designs/twographs.py index 131916b89c9..f6b81afc0be 100644 --- a/src/sage/combinat/designs/twographs.py +++ b/src/sage/combinat/designs/twographs.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Two-graphs diff --git a/src/sage/combinat/diagram.py b/src/sage/combinat/diagram.py index cc3c1dfe0b6..6932ff11367 100644 --- a/src/sage/combinat/diagram.py +++ b/src/sage/combinat/diagram.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Combinatorial diagrams diff --git a/src/sage/combinat/diagram_algebras.py b/src/sage/combinat/diagram_algebras.py index 6410a4a93ea..099d109a178 100644 --- a/src/sage/combinat/diagram_algebras.py +++ b/src/sage/combinat/diagram_algebras.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Diagram and Partition Algebras diff --git a/src/sage/combinat/dlx.py b/src/sage/combinat/dlx.py index d25f7414d0d..d1f7aebf87d 100644 --- a/src/sage/combinat/dlx.py +++ b/src/sage/combinat/dlx.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Exact Cover Problem via Dancing Links """ diff --git a/src/sage/combinat/dyck_word.py b/src/sage/combinat/dyck_word.py index df841984f31..102032c507a 100644 --- a/src/sage/combinat/dyck_word.py +++ b/src/sage/combinat/dyck_word.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Dyck Words diff --git a/src/sage/combinat/e_one_star.py b/src/sage/combinat/e_one_star.py index dd62dc79ae3..690f24caf3b 100644 --- a/src/sage/combinat/e_one_star.py +++ b/src/sage/combinat/e_one_star.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Substitutions over unit cube faces (Rauzy fractals) diff --git a/src/sage/combinat/enumerated_sets.py b/src/sage/combinat/enumerated_sets.py index f529886da82..1554a2c5786 100644 --- a/src/sage/combinat/enumerated_sets.py +++ b/src/sage/combinat/enumerated_sets.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Enumerated sets and combinatorial objects diff --git a/src/sage/combinat/enumeration_mod_permgroup.pxd b/src/sage/combinat/enumeration_mod_permgroup.pxd index 24a0e15217c..aace492701b 100644 --- a/src/sage/combinat/enumeration_mod_permgroup.pxd +++ b/src/sage/combinat/enumeration_mod_permgroup.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap from sage.structure.list_clone cimport ClonableIntArray cpdef list all_children(ClonableIntArray v, int max_part) diff --git a/src/sage/combinat/enumeration_mod_permgroup.pyx b/src/sage/combinat/enumeration_mod_permgroup.pyx index b2f713228ed..24f9a704b25 100644 --- a/src/sage/combinat/enumeration_mod_permgroup.pyx +++ b/src/sage/combinat/enumeration_mod_permgroup.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: needs sage.combinat r""" Tools for enumeration modulo the action of a permutation group diff --git a/src/sage/combinat/expnums.pyx b/src/sage/combinat/expnums.pyx index d0e169189ba..faa4c3660ed 100644 --- a/src/sage/combinat/expnums.pyx +++ b/src/sage/combinat/expnums.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Compute Bell and Uppuluri-Carpenter numbers diff --git a/src/sage/combinat/family.py b/src/sage/combinat/family.py index a7b2c592b3e..359dcc80e47 100644 --- a/src/sage/combinat/family.py +++ b/src/sage/combinat/family.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Families diff --git a/src/sage/combinat/fast_vector_partitions.pyx b/src/sage/combinat/fast_vector_partitions.pyx index e9a103f862b..2cea12b600c 100644 --- a/src/sage/combinat/fast_vector_partitions.pyx +++ b/src/sage/combinat/fast_vector_partitions.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Brent Yorgey's fast algorithm for integer vector (multiset) partitions. diff --git a/src/sage/combinat/finite_state_machine.py b/src/sage/combinat/finite_state_machine.py index 2750ea15e9c..c8d85e9f39c 100644 --- a/src/sage/combinat/finite_state_machine.py +++ b/src/sage/combinat/finite_state_machine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs sage.modules r""" Finite state machines, automata, transducers diff --git a/src/sage/combinat/finite_state_machine_generators.py b/src/sage/combinat/finite_state_machine_generators.py index a43391ef509..7307f2ef2fe 100644 --- a/src/sage/combinat/finite_state_machine_generators.py +++ b/src/sage/combinat/finite_state_machine_generators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs sage.modules r""" Common Automata and Transducers (Finite State Machines Generators) diff --git a/src/sage/combinat/fqsym.py b/src/sage/combinat/fqsym.py index e92c6fba45e..87a98a408c2 100644 --- a/src/sage/combinat/fqsym.py +++ b/src/sage/combinat/fqsym.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Free Quasi-symmetric functions diff --git a/src/sage/combinat/free_dendriform_algebra.py b/src/sage/combinat/free_dendriform_algebra.py index 4be2c514778..344cf1d6e93 100644 --- a/src/sage/combinat/free_dendriform_algebra.py +++ b/src/sage/combinat/free_dendriform_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Free Dendriform Algebras diff --git a/src/sage/combinat/free_module.py b/src/sage/combinat/free_module.py index 639cec54ae4..d33bc273169 100644 --- a/src/sage/combinat/free_module.py +++ b/src/sage/combinat/free_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Free modules """ diff --git a/src/sage/combinat/free_prelie_algebra.py b/src/sage/combinat/free_prelie_algebra.py index 6e7525d8b23..20cf5d53e36 100644 --- a/src/sage/combinat/free_prelie_algebra.py +++ b/src/sage/combinat/free_prelie_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.graphs sage.modules r""" Free Pre-Lie Algebras diff --git a/src/sage/combinat/fully_commutative_elements.py b/src/sage/combinat/fully_commutative_elements.py index 4cf13510dd3..a0e414af45f 100644 --- a/src/sage/combinat/fully_commutative_elements.py +++ b/src/sage/combinat/fully_commutative_elements.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Fully commutative elements of Coxeter groups diff --git a/src/sage/combinat/fully_packed_loop.py b/src/sage/combinat/fully_packed_loop.py index 74a14fa1ecd..56e26535991 100644 --- a/src/sage/combinat/fully_packed_loop.py +++ b/src/sage/combinat/fully_packed_loop.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Fully packed loops diff --git a/src/sage/combinat/gelfand_tsetlin_patterns.py b/src/sage/combinat/gelfand_tsetlin_patterns.py index 5c3c485e549..c927a0ca208 100644 --- a/src/sage/combinat/gelfand_tsetlin_patterns.py +++ b/src/sage/combinat/gelfand_tsetlin_patterns.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Gelfand-Tsetlin Patterns @@ -520,7 +521,7 @@ def bender_knuth_involution(self, i) -> GelfandTsetlinPattern: sage: G = GelfandTsetlinPattern([[3,2,0],[2.2,0],[2]]) sage: G.bender_knuth_involution(2) - [[3, 2, 0], [2.80000000000000, 2], [2]] + [[3, 2, 0], [2.8..., 2], [2]] TESTS:: @@ -591,7 +592,7 @@ class GelfandTsetlinPatterns(UniqueRepresentation, Parent): sage: G = GelfandTsetlinPatterns(3,3) sage: c = 0 - sage: from sage.combinat.crystals.kirillov_reshetikhin import partitions_in_box + sage: from sage.combinat.partition import partitions_in_box sage: for p in partitions_in_box(3,3): ....: S = SemistandardTableaux(p, max_entry=3) ....: c += S.cardinality() @@ -805,7 +806,7 @@ def __iter__(self): sage: L = list(GelfandTsetlinPatterns(3,3)) sage: c = 0 - sage: from sage.combinat.crystals.kirillov_reshetikhin import partitions_in_box + sage: from sage.combinat.partition import partitions_in_box sage: for p in partitions_in_box(3,3): ....: S = SemistandardTableaux(p, max_entry=3) ....: c += S.cardinality() diff --git a/src/sage/combinat/graph_path.py b/src/sage/combinat/graph_path.py index df84b1acdf7..943a4ac0fa1 100644 --- a/src/sage/combinat/graph_path.py +++ b/src/sage/combinat/graph_path.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Paths in Directed Acyclic Graphs """ diff --git a/src/sage/combinat/gray_codes.py b/src/sage/combinat/gray_codes.py index 63e366c2cb5..f4079f01abd 100644 --- a/src/sage/combinat/gray_codes.py +++ b/src/sage/combinat/gray_codes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Gray codes diff --git a/src/sage/combinat/grossman_larson_algebras.py b/src/sage/combinat/grossman_larson_algebras.py index 0e68753f52e..6769d90d087 100644 --- a/src/sage/combinat/grossman_larson_algebras.py +++ b/src/sage/combinat/grossman_larson_algebras.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.graphs sage.modules r""" Grossman-Larson Hopf Algebras diff --git a/src/sage/combinat/growth.py b/src/sage/combinat/growth.py index 958b664e7cd..189c22ce192 100644 --- a/src/sage/combinat/growth.py +++ b/src/sage/combinat/growth.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.graphs r""" Growth diagrams and dual graded graphs diff --git a/src/sage/combinat/hall_polynomial.py b/src/sage/combinat/hall_polynomial.py index 96e23908d37..bb12494c1e8 100644 --- a/src/sage/combinat/hall_polynomial.py +++ b/src/sage/combinat/hall_polynomial.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Hall Polynomials diff --git a/src/sage/combinat/hillman_grassl.py b/src/sage/combinat/hillman_grassl.py index c4e0f48088d..6222a77d188 100644 --- a/src/sage/combinat/hillman_grassl.py +++ b/src/sage/combinat/hillman_grassl.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" The Hillman-Grassl correspondence diff --git a/src/sage/combinat/integer_lists/__init__.py b/src/sage/combinat/integer_lists/__init__.py index 4e0c59ff8a6..b0f381d27bf 100644 --- a/src/sage/combinat/integer_lists/__init__.py +++ b/src/sage/combinat/integer_lists/__init__.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from .base import IntegerListsBackend, Envelope from .lists import IntegerLists from .invlex import IntegerListsLex diff --git a/src/sage/combinat/integer_lists/base.pxd b/src/sage/combinat/integer_lists/base.pxd index 3d373a64fe0..03af138ca01 100644 --- a/src/sage/combinat/integer_lists/base.pxd +++ b/src/sage/combinat/integer_lists/base.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories cdef class Envelope(): cdef readonly sign cdef f diff --git a/src/sage/combinat/integer_lists/base.pyx b/src/sage/combinat/integer_lists/base.pyx index d2bd5da3b92..7db5f5f6b57 100644 --- a/src/sage/combinat/integer_lists/base.pyx +++ b/src/sage/combinat/integer_lists/base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Enumerated set of lists of integers with constraints: base classes diff --git a/src/sage/combinat/integer_lists/invlex.pxd b/src/sage/combinat/integer_lists/invlex.pxd index 143306b4448..087a4f1cc9d 100644 --- a/src/sage/combinat/integer_lists/invlex.pxd +++ b/src/sage/combinat/integer_lists/invlex.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.combinat.integer_lists.base cimport IntegerListsBackend cdef class IntegerListsBackend_invlex(IntegerListsBackend): cdef public bint check diff --git a/src/sage/combinat/integer_lists/invlex.pyx b/src/sage/combinat/integer_lists/invlex.pyx index 6bef85031ce..d4bf5043835 100644 --- a/src/sage/combinat/integer_lists/invlex.pyx +++ b/src/sage/combinat/integer_lists/invlex.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Enumerated set of lists of integers with constraints, in inverse lexicographic order diff --git a/src/sage/combinat/integer_lists/lists.py b/src/sage/combinat/integer_lists/lists.py index 6a4c3cb35a3..c47d282a828 100644 --- a/src/sage/combinat/integer_lists/lists.py +++ b/src/sage/combinat/integer_lists/lists.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Enumerated set of lists of integers with constraints: front-end diff --git a/src/sage/combinat/integer_lists/nn.py b/src/sage/combinat/integer_lists/nn.py index 4329c6164d9..8788dbc6ca8 100644 --- a/src/sage/combinat/integer_lists/nn.py +++ b/src/sage/combinat/integer_lists/nn.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.sets.family import Family from sage.combinat.integer_lists import IntegerListsLex from sage.rings.semirings.non_negative_integer_semiring import NN diff --git a/src/sage/combinat/integer_matrices.py b/src/sage/combinat/integer_matrices.py index f97691338ff..2ef125f29dc 100644 --- a/src/sage/combinat/integer_matrices.py +++ b/src/sage/combinat/integer_matrices.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Counting, generating, and manipulating nonnegative integer matrices diff --git a/src/sage/combinat/integer_vector.py b/src/sage/combinat/integer_vector.py index 6848609cf5d..3cacf220e75 100644 --- a/src/sage/combinat/integer_vector.py +++ b/src/sage/combinat/integer_vector.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ (Non-negative) Integer vectors diff --git a/src/sage/combinat/integer_vector_weighted.py b/src/sage/combinat/integer_vector_weighted.py index ec074058b81..c1ad554d559 100644 --- a/src/sage/combinat/integer_vector_weighted.py +++ b/src/sage/combinat/integer_vector_weighted.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Weighted Integer Vectors diff --git a/src/sage/combinat/integer_vectors_mod_permgroup.py b/src/sage/combinat/integer_vectors_mod_permgroup.py index 38e6f5af829..1c846485834 100644 --- a/src/sage/combinat/integer_vectors_mod_permgroup.py +++ b/src/sage/combinat/integer_vectors_mod_permgroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.groups r""" Integer vectors modulo the action of a permutation group diff --git a/src/sage/combinat/interval_posets.py b/src/sage/combinat/interval_posets.py index 24084d03b82..31c49f26305 100644 --- a/src/sage/combinat/interval_posets.py +++ b/src/sage/combinat/interval_posets.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Tamari Interval-posets diff --git a/src/sage/combinat/k_tableau.py b/src/sage/combinat/k_tableau.py index 2c048fe38fc..384e6eeba61 100644 --- a/src/sage/combinat/k_tableau.py +++ b/src/sage/combinat/k_tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Strong and weak tableaux diff --git a/src/sage/combinat/kazhdan_lusztig.py b/src/sage/combinat/kazhdan_lusztig.py index 0014af47b73..de39a3d122d 100644 --- a/src/sage/combinat/kazhdan_lusztig.py +++ b/src/sage/combinat/kazhdan_lusztig.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Kazhdan-Lusztig Polynomials diff --git a/src/sage/combinat/key_polynomial.py b/src/sage/combinat/key_polynomial.py index 1b65f5bc063..242e70a10ad 100644 --- a/src/sage/combinat/key_polynomial.py +++ b/src/sage/combinat/key_polynomial.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Key polynomials diff --git a/src/sage/combinat/knutson_tao_puzzles.py b/src/sage/combinat/knutson_tao_puzzles.py index f7a7c513c52..d7c78d7f57f 100644 --- a/src/sage/combinat/knutson_tao_puzzles.py +++ b/src/sage/combinat/knutson_tao_puzzles.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Knutson-Tao Puzzles diff --git a/src/sage/combinat/lr_tableau.py b/src/sage/combinat/lr_tableau.py index 9a5e7a0ef03..53b908d25e3 100644 --- a/src/sage/combinat/lr_tableau.py +++ b/src/sage/combinat/lr_tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs lrcalc_python r""" Littlewood-Richardson tableaux diff --git a/src/sage/combinat/matrices/all.py b/src/sage/combinat/matrices/all.py index 0f6adbb5355..cca0aef31ad 100644 --- a/src/sage/combinat/matrices/all.py +++ b/src/sage/combinat/matrices/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Combinatorics on matrices @@ -10,10 +11,14 @@ from sage.misc.namespace_package import install_doc install_doc(__package__, __doc__) +from sage.combinat.matrices.all__sagemath_categories import * + from sage.misc.lazy_import import lazy_import lazy_import('sage.combinat.matrices.latin', ['LatinSquare', 'LatinSquare_generator']) -lazy_import('sage.combinat.matrices.dlxcpp', 'DLXCPP') lazy_import('sage.combinat.matrices.hadamard_matrix', ['hadamard_matrix', 'hadamard_matrix_www']) + +del install_doc +del lazy_import diff --git a/src/sage/combinat/matrices/all__sagemath_categories.py b/src/sage/combinat/matrices/all__sagemath_categories.py new file mode 100644 index 00000000000..1f69e4c1d1f --- /dev/null +++ b/src/sage/combinat/matrices/all__sagemath_categories.py @@ -0,0 +1,5 @@ +# sage_setup: distribution = sagemath-categories +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.combinat.matrices.dlxcpp', 'DLXCPP') +del lazy_import diff --git a/src/sage/combinat/matrices/dancing_links.pyx b/src/sage/combinat/matrices/dancing_links.pyx index 475b5ef3e1b..5898faab2bd 100644 --- a/src/sage/combinat/matrices/dancing_links.pyx +++ b/src/sage/combinat/matrices/dancing_links.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # distutils: language = c++ """ Dancing Links internal pyx code diff --git a/src/sage/combinat/matrices/dlxcpp.py b/src/sage/combinat/matrices/dlxcpp.py index 15c6eddbbdc..974ff9b19bb 100644 --- a/src/sage/combinat/matrices/dlxcpp.py +++ b/src/sage/combinat/matrices/dlxcpp.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Dancing links C++ wrapper """ diff --git a/src/sage/combinat/matrices/hadamard_matrix.py b/src/sage/combinat/matrices/hadamard_matrix.py index 326eb32843b..20877d4415d 100644 --- a/src/sage/combinat/matrices/hadamard_matrix.py +++ b/src/sage/combinat/matrices/hadamard_matrix.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.graphs sage.modules r""" Hadamard matrices diff --git a/src/sage/combinat/matrices/latin.py b/src/sage/combinat/matrices/latin.py index 66952952854..ad051c065ef 100644 --- a/src/sage/combinat/matrices/latin.py +++ b/src/sage/combinat/matrices/latin.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.groups sage.modules r""" Latin Squares diff --git a/src/sage/combinat/misc.py b/src/sage/combinat/misc.py index d04b615be80..f1892f3b74e 100644 --- a/src/sage/combinat/misc.py +++ b/src/sage/combinat/misc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Miscellaneous """ diff --git a/src/sage/combinat/multiset_partition_into_sets_ordered.py b/src/sage/combinat/multiset_partition_into_sets_ordered.py index aae1cd569a2..f4b08152def 100755 --- a/src/sage/combinat/multiset_partition_into_sets_ordered.py +++ b/src/sage/combinat/multiset_partition_into_sets_ordered.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Ordered Multiset Partitions into Sets and the Minimaj Crystal diff --git a/src/sage/combinat/ncsf_qsym/all.py b/src/sage/combinat/ncsf_qsym/all.py index 9ea6d381f82..5d3ebf86582 100644 --- a/src/sage/combinat/ncsf_qsym/all.py +++ b/src/sage/combinat/ncsf_qsym/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Non-commutative symmetric functions and quasi-symmetric functions diff --git a/src/sage/combinat/ncsf_qsym/combinatorics.py b/src/sage/combinat/ncsf_qsym/combinatorics.py index ef930596ab8..62b9c99cb0f 100644 --- a/src/sage/combinat/ncsf_qsym/combinatorics.py +++ b/src/sage/combinat/ncsf_qsym/combinatorics.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Common combinatorial tools diff --git a/src/sage/combinat/ncsf_qsym/generic_basis_code.py b/src/sage/combinat/ncsf_qsym/generic_basis_code.py index 7b2260f3be9..6dcaa583a35 100644 --- a/src/sage/combinat/ncsf_qsym/generic_basis_code.py +++ b/src/sage/combinat/ncsf_qsym/generic_basis_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Generic code for bases diff --git a/src/sage/combinat/ncsf_qsym/ncsf.py b/src/sage/combinat/ncsf_qsym/ncsf.py index c1c1ef90306..2d2787d865e 100644 --- a/src/sage/combinat/ncsf_qsym/ncsf.py +++ b/src/sage/combinat/ncsf_qsym/ncsf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Non-Commutative Symmetric Functions diff --git a/src/sage/combinat/ncsf_qsym/qsym.py b/src/sage/combinat/ncsf_qsym/qsym.py index af82a1569f3..429737cc80e 100644 --- a/src/sage/combinat/ncsf_qsym/qsym.py +++ b/src/sage/combinat/ncsf_qsym/qsym.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Quasisymmetric functions diff --git a/src/sage/combinat/ncsf_qsym/tutorial.py b/src/sage/combinat/ncsf_qsym/tutorial.py index 4b7f1d199ae..e4efe77d997 100644 --- a/src/sage/combinat/ncsf_qsym/tutorial.py +++ b/src/sage/combinat/ncsf_qsym/tutorial.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Introduction to Quasisymmetric Functions diff --git a/src/sage/combinat/ncsym/all.py b/src/sage/combinat/ncsym/all.py index 864a6ac6960..fb16bc191ce 100644 --- a/src/sage/combinat/ncsym/all.py +++ b/src/sage/combinat/ncsym/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Symmetric functions in non-commuting variables diff --git a/src/sage/combinat/ncsym/bases.py b/src/sage/combinat/ncsym/bases.py index b04afcdbd47..36cc80079b1 100644 --- a/src/sage/combinat/ncsym/bases.py +++ b/src/sage/combinat/ncsym/bases.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bases for `NCSym` diff --git a/src/sage/combinat/ncsym/dual.py b/src/sage/combinat/ncsym/dual.py index 520bf5b2d0e..35bc9b3ddf7 100644 --- a/src/sage/combinat/ncsym/dual.py +++ b/src/sage/combinat/ncsym/dual.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Dual Symmetric Functions in Non-Commuting Variables diff --git a/src/sage/combinat/ncsym/ncsym.py b/src/sage/combinat/ncsym/ncsym.py index 1bcbb7cf1e3..0a8170d10b5 100644 --- a/src/sage/combinat/ncsym/ncsym.py +++ b/src/sage/combinat/ncsym/ncsym.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Symmetric Functions in Non-Commuting Variables diff --git a/src/sage/combinat/necklace.py b/src/sage/combinat/necklace.py index 3ac4bccf5e2..c5dd9e69696 100644 --- a/src/sage/combinat/necklace.py +++ b/src/sage/combinat/necklace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Necklaces diff --git a/src/sage/combinat/non_decreasing_parking_function.py b/src/sage/combinat/non_decreasing_parking_function.py index dc6bf59e3e2..0ec94d16497 100644 --- a/src/sage/combinat/non_decreasing_parking_function.py +++ b/src/sage/combinat/non_decreasing_parking_function.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Non-Decreasing Parking Functions diff --git a/src/sage/combinat/nu_dyck_word.py b/src/sage/combinat/nu_dyck_word.py index 26f54ea8900..015629dd533 100644 --- a/src/sage/combinat/nu_dyck_word.py +++ b/src/sage/combinat/nu_dyck_word.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" `\nu`-Dyck Words diff --git a/src/sage/combinat/nu_tamari_lattice.py b/src/sage/combinat/nu_tamari_lattice.py index 7a7a9ef3d78..b1b827ac0df 100644 --- a/src/sage/combinat/nu_tamari_lattice.py +++ b/src/sage/combinat/nu_tamari_lattice.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.combinat r""" `\nu`-Tamari lattice diff --git a/src/sage/combinat/ordered_tree.py b/src/sage/combinat/ordered_tree.py index 492a0b72956..037b9a6afbd 100644 --- a/src/sage/combinat/ordered_tree.py +++ b/src/sage/combinat/ordered_tree.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Ordered Rooted Trees diff --git a/src/sage/combinat/output.py b/src/sage/combinat/output.py index 1e2725448f9..f3aa179ea67 100644 --- a/src/sage/combinat/output.py +++ b/src/sage/combinat/output.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Output functions diff --git a/src/sage/combinat/parallelogram_polyomino.py b/src/sage/combinat/parallelogram_polyomino.py index c60c72c10d2..12800f3484f 100644 --- a/src/sage/combinat/parallelogram_polyomino.py +++ b/src/sage/combinat/parallelogram_polyomino.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Parallelogram Polyominoes @@ -39,7 +40,8 @@ from sage.matrix.constructor import matrix from sage.combinat.combinat import catalan_number from sage.combinat.combinatorial_map import combinatorial_map -from sage.functions.trig import cos, sin +from sage.misc.lazy_import import lazy_import +lazy_import("sage.functions.trig", ["cos", "sin"]) from sage.misc.functional import sqrt from sage.misc.lazy_import import lazy_import diff --git a/src/sage/combinat/parking_functions.py b/src/sage/combinat/parking_functions.py index 00ec41337d6..5df04a0862e 100644 --- a/src/sage/combinat/parking_functions.py +++ b/src/sage/combinat/parking_functions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Parking Functions diff --git a/src/sage/combinat/partition.py b/src/sage/combinat/partition.py index 6b6a7edfa4c..f1e07c21e40 100644 --- a/src/sage/combinat/partition.py +++ b/src/sage/combinat/partition.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Integer partitions @@ -9406,6 +9407,19 @@ def number_of_partitions_length(n, k, algorithm='hybrid'): return ZZ(libgap.NrPartitions(ZZ(n), ZZ(k))) +def partitions_in_box(r, s): + """ + Return all partitions in a box of width ``s`` and height ``r``. + + EXAMPLES:: + + sage: sage.combinat.partition.partitions_in_box(3,2) + [[], [1], [2], [1, 1], [2, 1], [1, 1, 1], [2, 2], [2, 1, 1], + [2, 2, 1], [2, 2, 2]] + """ + return [x for n in range(r*s + 1) for x in Partitions(n, max_part=s, max_length=r)] + + ########## # issue 14225: Partitions() is frequently used, but only weakly cached. # Hence, establish a strong reference to it. diff --git a/src/sage/combinat/partition_algebra.py b/src/sage/combinat/partition_algebra.py index 91e79be4cbc..65de59c1c51 100644 --- a/src/sage/combinat/partition_algebra.py +++ b/src/sage/combinat/partition_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Partition/Diagram Algebras diff --git a/src/sage/combinat/partition_kleshchev.py b/src/sage/combinat/partition_kleshchev.py index cfa78933e37..043c592903f 100644 --- a/src/sage/combinat/partition_kleshchev.py +++ b/src/sage/combinat/partition_kleshchev.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Kleshchev partitions diff --git a/src/sage/combinat/partition_shifting_algebras.py b/src/sage/combinat/partition_shifting_algebras.py index 366200aefa3..997c800bd50 100644 --- a/src/sage/combinat/partition_shifting_algebras.py +++ b/src/sage/combinat/partition_shifting_algebras.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Partition Shifting Algebras diff --git a/src/sage/combinat/partition_tuple.py b/src/sage/combinat/partition_tuple.py index 0e0e8e4aae9..cad3a47fb6e 100644 --- a/src/sage/combinat/partition_tuple.py +++ b/src/sage/combinat/partition_tuple.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Partition tuples diff --git a/src/sage/combinat/partitions.pyx b/src/sage/combinat/partitions.pyx index f453694a90c..fec07f3bb04 100644 --- a/src/sage/combinat/partitions.pyx +++ b/src/sage/combinat/partitions.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Iterators over the partitions of an integer diff --git a/src/sage/combinat/path_tableaux/all.py b/src/sage/combinat/path_tableaux/all.py index 089fcc6f11b..77931f3f6e8 100644 --- a/src/sage/combinat/path_tableaux/all.py +++ b/src/sage/combinat/path_tableaux/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Path tableaux diff --git a/src/sage/combinat/path_tableaux/catalog.py b/src/sage/combinat/path_tableaux/catalog.py index a8758c77dd2..0adbd325c51 100644 --- a/src/sage/combinat/path_tableaux/catalog.py +++ b/src/sage/combinat/path_tableaux/catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Catalog of Path Tableaux diff --git a/src/sage/combinat/path_tableaux/dyck_path.py b/src/sage/combinat/path_tableaux/dyck_path.py index 232b87673d7..c816175a6b2 100644 --- a/src/sage/combinat/path_tableaux/dyck_path.py +++ b/src/sage/combinat/path_tableaux/dyck_path.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Dyck Paths @@ -138,7 +139,7 @@ def __init__(self, parent, ot, check=True): sage: path_tableaux.DyckPath([0,1,2.5,1,0]) Traceback (most recent call last): ... - ValueError: [0, 1, 2.50000000000000, 1, 0] is not a sequence of integers + ValueError: [0, 1, 2.5..., 1, 0] is not a sequence of integers sage: path_tableaux.DyckPath(Partition([3,2,1])) Traceback (most recent call last): ... diff --git a/src/sage/combinat/path_tableaux/frieze.py b/src/sage/combinat/path_tableaux/frieze.py index 48d22dbaa10..23105cd332f 100644 --- a/src/sage/combinat/path_tableaux/frieze.py +++ b/src/sage/combinat/path_tableaux/frieze.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Frieze Patterns diff --git a/src/sage/combinat/path_tableaux/path_tableau.py b/src/sage/combinat/path_tableaux/path_tableau.py index 9d9177ee355..807784c251b 100644 --- a/src/sage/combinat/path_tableaux/path_tableau.py +++ b/src/sage/combinat/path_tableaux/path_tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Path Tableaux diff --git a/src/sage/combinat/path_tableaux/semistandard.py b/src/sage/combinat/path_tableaux/semistandard.py index 368caf54145..71f7e7aa9a7 100644 --- a/src/sage/combinat/path_tableaux/semistandard.py +++ b/src/sage/combinat/path_tableaux/semistandard.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Semistandard Tableaux ===================== diff --git a/src/sage/combinat/perfect_matching.py b/src/sage/combinat/perfect_matching.py index 6f6fa67787e..b224b7248ad 100644 --- a/src/sage/combinat/perfect_matching.py +++ b/src/sage/combinat/perfect_matching.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Perfect matchings diff --git a/src/sage/combinat/permutation.py b/src/sage/combinat/permutation.py index 53901bb3c17..a7c1e2dcf69 100644 --- a/src/sage/combinat/permutation.py +++ b/src/sage/combinat/permutation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Permutations @@ -250,7 +251,6 @@ from sage.categories.infinite_enumerated_sets import InfiniteEnumeratedSets from sage.categories.sets_with_grading import SetsWithGrading from sage.combinat.backtrack import GenericBacktracker -from sage.combinat.SJT import SJT from sage.combinat.combinat import CombinatorialElement, catalan_number from sage.combinat.combinatorial_map import combinatorial_map from sage.combinat.composition import Composition @@ -270,6 +270,7 @@ from sage.structure.element import Element, get_coercion_model from sage.structure.unique_representation import UniqueRepresentation +lazy_import('sage.combinat.SJT', 'SJT') lazy_import('sage.combinat.rsk', ['RSK', 'RSK_inverse']) lazy_import('sage.combinat.tableau', 'Tableau') lazy_import('sage.combinat.words.finite_word', 'evaluation_dict') diff --git a/src/sage/combinat/permutation_cython.pxd b/src/sage/combinat/permutation_cython.pxd index 094dafc8ddc..45e190dc059 100644 --- a/src/sage/combinat/permutation_cython.pxd +++ b/src/sage/combinat/permutation_cython.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from cpython.array cimport array cdef void reset_swap(int n, int *c, int *o) noexcept diff --git a/src/sage/combinat/permutation_cython.pyx b/src/sage/combinat/permutation_cython.pyx index 978510c4ae9..020349f4b8f 100644 --- a/src/sage/combinat/permutation_cython.pyx +++ b/src/sage/combinat/permutation_cython.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Permutations (Cython file) diff --git a/src/sage/combinat/plane_partition.py b/src/sage/combinat/plane_partition.py index 7bf25102cc7..1b5d4c999be 100644 --- a/src/sage/combinat/plane_partition.py +++ b/src/sage/combinat/plane_partition.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Plane Partitions diff --git a/src/sage/combinat/posets/all.py b/src/sage/combinat/posets/all.py index b608b0094d1..f481f16e446 100644 --- a/src/sage/combinat/posets/all.py +++ b/src/sage/combinat/posets/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Posets diff --git a/src/sage/combinat/posets/all__sagemath_flint.py b/src/sage/combinat/posets/all__sagemath_flint.py new file mode 100644 index 00000000000..d31bae41036 --- /dev/null +++ b/src/sage/combinat/posets/all__sagemath_flint.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/combinat/posets/cartesian_product.py b/src/sage/combinat/posets/cartesian_product.py index 29206b236c5..7649af317ca 100644 --- a/src/sage/combinat/posets/cartesian_product.py +++ b/src/sage/combinat/posets/cartesian_product.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Cartesian products of Posets diff --git a/src/sage/combinat/posets/d_complete.py b/src/sage/combinat/posets/d_complete.py index 71820850e8a..aa8008ac166 100644 --- a/src/sage/combinat/posets/d_complete.py +++ b/src/sage/combinat/posets/d_complete.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.combinat sage.modules r""" D-Complete Posets diff --git a/src/sage/combinat/posets/elements.py b/src/sage/combinat/posets/elements.py index 7a94d76e213..aebfe63c0dd 100644 --- a/src/sage/combinat/posets/elements.py +++ b/src/sage/combinat/posets/elements.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.modules r""" Elements of posets, lattices, semilattices, etc. diff --git a/src/sage/combinat/posets/forest.py b/src/sage/combinat/posets/forest.py index f730b4147de..73b97c8d1f4 100644 --- a/src/sage/combinat/posets/forest.py +++ b/src/sage/combinat/posets/forest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Forest Posets diff --git a/src/sage/combinat/posets/hasse_cython.pyx b/src/sage/combinat/posets/hasse_cython.pyx index fee64e5d5c4..44bd11ba109 100644 --- a/src/sage/combinat/posets/hasse_cython.pyx +++ b/src/sage/combinat/posets/hasse_cython.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Some fast computations for finite posets diff --git a/src/sage/combinat/posets/hasse_cython_flint.pyx b/src/sage/combinat/posets/hasse_cython_flint.pyx index 28f3f026430..ca168535d2a 100644 --- a/src/sage/combinat/posets/hasse_cython_flint.pyx +++ b/src/sage/combinat/posets/hasse_cython_flint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # cython: binding=True # sage.doctest: needs sage.libs.flint sage.graphs sage.modules r""" diff --git a/src/sage/combinat/posets/hasse_diagram.py b/src/sage/combinat/posets/hasse_diagram.py index 56b51e96371..fedd8de446b 100644 --- a/src/sage/combinat/posets/hasse_diagram.py +++ b/src/sage/combinat/posets/hasse_diagram.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Hasse diagrams of posets diff --git a/src/sage/combinat/posets/incidence_algebras.py b/src/sage/combinat/posets/incidence_algebras.py index 3fc3f2a0b76..aef6d739669 100644 --- a/src/sage/combinat/posets/incidence_algebras.py +++ b/src/sage/combinat/posets/incidence_algebras.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.modules r""" Incidence Algebras diff --git a/src/sage/combinat/posets/lattices.py b/src/sage/combinat/posets/lattices.py index 149915f8fb5..890109a3aba 100644 --- a/src/sage/combinat/posets/lattices.py +++ b/src/sage/combinat/posets/lattices.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.modules r""" Finite lattices and semilattices diff --git a/src/sage/combinat/posets/linear_extension_iterator.pyx b/src/sage/combinat/posets/linear_extension_iterator.pyx index 906957fdbde..7b50eaa67d2 100644 --- a/src/sage/combinat/posets/linear_extension_iterator.pyx +++ b/src/sage/combinat/posets/linear_extension_iterator.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Fast linear extension iterator diff --git a/src/sage/combinat/posets/linear_extensions.py b/src/sage/combinat/posets/linear_extensions.py index cf62e234321..dbd77cf8207 100644 --- a/src/sage/combinat/posets/linear_extensions.py +++ b/src/sage/combinat/posets/linear_extensions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Linear Extensions of Posets diff --git a/src/sage/combinat/posets/mobile.py b/src/sage/combinat/posets/mobile.py index f529f6b664c..779eacf669e 100644 --- a/src/sage/combinat/posets/mobile.py +++ b/src/sage/combinat/posets/mobile.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Mobile posets """ diff --git a/src/sage/combinat/posets/moebius_algebra.py b/src/sage/combinat/posets/moebius_algebra.py index 5a8074c3272..8239cebda60 100644 --- a/src/sage/combinat/posets/moebius_algebra.py +++ b/src/sage/combinat/posets/moebius_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.modules r""" Möbius Algebras diff --git a/src/sage/combinat/posets/poset_examples.py b/src/sage/combinat/posets/poset_examples.py index 468ad8d9a01..5502c5c7610 100644 --- a/src/sage/combinat/posets/poset_examples.py +++ b/src/sage/combinat/posets/poset_examples.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.combinat sage.modules r""" Catalog of posets and lattices diff --git a/src/sage/combinat/posets/posets.py b/src/sage/combinat/posets/posets.py index e565eb3d2ee..6a9b161101e 100644 --- a/src/sage/combinat/posets/posets.py +++ b/src/sage/combinat/posets/posets.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs sage.modules r""" Finite posets diff --git a/src/sage/combinat/q_analogues.py b/src/sage/combinat/q_analogues.py index 8bde8028ae2..e114b75279d 100644 --- a/src/sage/combinat/q_analogues.py +++ b/src/sage/combinat/q_analogues.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" `q`-Analogues """ diff --git a/src/sage/combinat/q_bernoulli.pyx b/src/sage/combinat/q_bernoulli.pyx index aa1d1ef42a1..f9abdb66093 100644 --- a/src/sage/combinat/q_bernoulli.pyx +++ b/src/sage/combinat/q_bernoulli.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ `q`-Bernoulli Numbers and Polynomials """ @@ -41,8 +42,8 @@ def q_bernoulli(m, p=None): One can evaluate the rational function by giving a second argument:: - sage: x = PolynomialRing(GF(2),'x').gen() - sage: q_bernoulli(5,x) + sage: x = PolynomialRing(GF(2),'x').gen() # needs sage.rings.finite_rings + sage: q_bernoulli(5, x) # needs sage.rings.finite_rings x/(x^6 + x^5 + x + 1) The function does not accept negative arguments:: diff --git a/src/sage/combinat/quickref.py b/src/sage/combinat/quickref.py index ee7d9ca8ec1..17ca1fd9d47 100644 --- a/src/sage/combinat/quickref.py +++ b/src/sage/combinat/quickref.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Combinatorics quickref diff --git a/src/sage/combinat/ranker.py b/src/sage/combinat/ranker.py index 873424268d3..e736a835e5f 100644 --- a/src/sage/combinat/ranker.py +++ b/src/sage/combinat/ranker.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Rankers """ diff --git a/src/sage/combinat/recognizable_series.py b/src/sage/combinat/recognizable_series.py index d9e799607c9..2b64582f44d 100644 --- a/src/sage/combinat/recognizable_series.py +++ b/src/sage/combinat/recognizable_series.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Recognizable Series diff --git a/src/sage/combinat/regular_sequence.py b/src/sage/combinat/regular_sequence.py index b57e5ccbf5b..e0df124bc52 100644 --- a/src/sage/combinat/regular_sequence.py +++ b/src/sage/combinat/regular_sequence.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules sage.symbolic r""" `k`-regular sequences @@ -2165,7 +2166,7 @@ def from_recurrence(self, *args, **kwds): TESTS:: - sage: Seq2.from_recurrence([ # long time + sage: Seq2.from_recurrence([ # long time ....: f(4*n) == f(2*n), ....: f(4*n + 1) == f(2*n), ....: f(4*n + 2) == f(2*n), @@ -2232,7 +2233,7 @@ def from_recurrence(self, *args, **kwds): ....: g(22) == 22, g(23) == 23, g(24) == 24, g(25) == 25, ....: g(26) == 26, g(27) == 27, g(28) == 28, g(29) == 29, ....: g(30) == 30, g(31) == 31], g, m, offset=8) - sage: (S - T).is_trivial_zero() # long time + sage: (S - T).is_trivial_zero() # long time True Zero-sequence with nonzero initial values:: @@ -3234,8 +3235,8 @@ def parameters(self, M, m, coeffs, initial_values, offset=0, inhomogeneities={}) """ from collections import namedtuple + from sage.arith.misc import integer_ceil as ceil, integer_floor as floor from sage.arith.srange import srange - from sage.functions.other import ceil, floor coefficient_ring = self.coefficient_ring k = self.k @@ -3667,7 +3668,6 @@ def shifted_inhomogeneities(self, recurrence_rules): :meth:`RegularSequenceRing.from_recurrence` """ from sage.arith.srange import srange - from sage.functions.other import floor k = self.k M = recurrence_rules.M @@ -3676,8 +3676,8 @@ def shifted_inhomogeneities(self, recurrence_rules): uu = recurrence_rules.uu inhomogeneities = recurrence_rules.inhomogeneities - lower = floor(ll/k**M) - upper = floor((k**(M-1) - k**m + uu)/k**M) + 1 + lower = ll//k**M + upper = (k**(M-1) - k**m + uu) // k**M + 1 return {i: inhomogeneities[i].subsequence(1, {b: 1 for b in srange(lower, upper + 1)}, minimize=False) @@ -3894,7 +3894,6 @@ def matrix(self, recurrence_rules, rem, correct_offset=True): from itertools import chain from sage.arith.srange import srange - from sage.functions.other import floor from sage.matrix.constructor import Matrix from sage.matrix.special import block_matrix, block_diagonal_matrix, zero_matrix from sage.modules.free_module_element import vector @@ -3938,8 +3937,8 @@ def entry(i, kk): if not all(S.is_trivial_zero() for S in inhomogeneities.values()): shifted_inhomogeneities = self.shifted_inhomogeneities(recurrence_rules) - lower = floor(ll/k**M) - upper = floor((k**(M-1) - k**m + uu)/k**M) + 1 + lower = ll // k**M + upper = (k**(M-1) - k**m + uu) // k**M + 1 def wanted_inhomogeneity(row): j, d = ind[row] diff --git a/src/sage/combinat/restricted_growth.py b/src/sage/combinat/restricted_growth.py index b638356e4db..37e33b3688c 100644 --- a/src/sage/combinat/restricted_growth.py +++ b/src/sage/combinat/restricted_growth.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Restricted growth arrays diff --git a/src/sage/combinat/ribbon.py b/src/sage/combinat/ribbon.py index 6c662f505c7..557ed1aa9a6 100644 --- a/src/sage/combinat/ribbon.py +++ b/src/sage/combinat/ribbon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Ribbons """ diff --git a/src/sage/combinat/ribbon_shaped_tableau.py b/src/sage/combinat/ribbon_shaped_tableau.py index dd7218c899c..7bd4c067014 100644 --- a/src/sage/combinat/ribbon_shaped_tableau.py +++ b/src/sage/combinat/ribbon_shaped_tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Ribbon Shaped Tableaux """ diff --git a/src/sage/combinat/ribbon_tableau.py b/src/sage/combinat/ribbon_tableau.py index 6a1643a46c7..36daaad37ee 100644 --- a/src/sage/combinat/ribbon_tableau.py +++ b/src/sage/combinat/ribbon_tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Ribbon Tableaux """ diff --git a/src/sage/combinat/rigged_configurations/all.py b/src/sage/combinat/rigged_configurations/all.py index e068cb4aed6..5c22fa880ba 100644 --- a/src/sage/combinat/rigged_configurations/all.py +++ b/src/sage/combinat/rigged_configurations/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Rigged configurations diff --git a/src/sage/combinat/rigged_configurations/bij_abstract_class.py b/src/sage/combinat/rigged_configurations/bij_abstract_class.py index e22c657d672..4a4408c751d 100644 --- a/src/sage/combinat/rigged_configurations/bij_abstract_class.py +++ b/src/sage/combinat/rigged_configurations/bij_abstract_class.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Abstract classes for the rigged configuration bijections diff --git a/src/sage/combinat/rigged_configurations/bij_infinity.py b/src/sage/combinat/rigged_configurations/bij_infinity.py index 0fd8ee7fdc9..03ad4f03aeb 100644 --- a/src/sage/combinat/rigged_configurations/bij_infinity.py +++ b/src/sage/combinat/rigged_configurations/bij_infinity.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection between rigged configurations for `B(\infty)` and marginally large tableaux diff --git a/src/sage/combinat/rigged_configurations/bij_type_A.py b/src/sage/combinat/rigged_configurations/bij_type_A.py index 2a623f322da..6a5dbdb7e02 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_A.py +++ b/src/sage/combinat/rigged_configurations/bij_type_A.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `A_n^{(1)}` diff --git a/src/sage/combinat/rigged_configurations/bij_type_A2_dual.py b/src/sage/combinat/rigged_configurations/bij_type_A2_dual.py index ceb6ad8f1b8..080b73e900d 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_A2_dual.py +++ b/src/sage/combinat/rigged_configurations/bij_type_A2_dual.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `A_{2n}^{(2)\dagger}` diff --git a/src/sage/combinat/rigged_configurations/bij_type_A2_even.py b/src/sage/combinat/rigged_configurations/bij_type_A2_even.py index 8fa552a1077..b28430bd836 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_A2_even.py +++ b/src/sage/combinat/rigged_configurations/bij_type_A2_even.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `A_{2n}^{(2)}` diff --git a/src/sage/combinat/rigged_configurations/bij_type_A2_odd.py b/src/sage/combinat/rigged_configurations/bij_type_A2_odd.py index ea7862ef3ef..cbedbae3fe6 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_A2_odd.py +++ b/src/sage/combinat/rigged_configurations/bij_type_A2_odd.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `A_{2n-1}^{(2)}`. diff --git a/src/sage/combinat/rigged_configurations/bij_type_B.py b/src/sage/combinat/rigged_configurations/bij_type_B.py index d511ae76a2e..d9f5d3e8976 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_B.py +++ b/src/sage/combinat/rigged_configurations/bij_type_B.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `B_n^{(1)}` diff --git a/src/sage/combinat/rigged_configurations/bij_type_C.py b/src/sage/combinat/rigged_configurations/bij_type_C.py index 9e0997e1479..182f178230a 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_C.py +++ b/src/sage/combinat/rigged_configurations/bij_type_C.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `C_n^{(1)}` diff --git a/src/sage/combinat/rigged_configurations/bij_type_D.py b/src/sage/combinat/rigged_configurations/bij_type_D.py index a6a5c8316a7..893822d9cec 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_D.py +++ b/src/sage/combinat/rigged_configurations/bij_type_D.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `D_n^{(1)}` diff --git a/src/sage/combinat/rigged_configurations/bij_type_D_tri.py b/src/sage/combinat/rigged_configurations/bij_type_D_tri.py index b82ff955642..37770d2a07b 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_D_tri.py +++ b/src/sage/combinat/rigged_configurations/bij_type_D_tri.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `D_4^{(3)}` diff --git a/src/sage/combinat/rigged_configurations/bij_type_D_twisted.py b/src/sage/combinat/rigged_configurations/bij_type_D_twisted.py index 7d1edfb278a..af2fcbddf0f 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_D_twisted.py +++ b/src/sage/combinat/rigged_configurations/bij_type_D_twisted.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `D_{n+1}^{(2)}` diff --git a/src/sage/combinat/rigged_configurations/bij_type_E67.py b/src/sage/combinat/rigged_configurations/bij_type_E67.py index af59d3048f5..7c14ca00739 100644 --- a/src/sage/combinat/rigged_configurations/bij_type_E67.py +++ b/src/sage/combinat/rigged_configurations/bij_type_E67.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection classes for type `E_{6,7}^{(1)}` diff --git a/src/sage/combinat/rigged_configurations/bijection.py b/src/sage/combinat/rigged_configurations/bijection.py index 850270930a6..e236611bfd2 100644 --- a/src/sage/combinat/rigged_configurations/bijection.py +++ b/src/sage/combinat/rigged_configurations/bijection.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Bijection between rigged configurations and KR tableaux diff --git a/src/sage/combinat/rigged_configurations/kleber_tree.py b/src/sage/combinat/rigged_configurations/kleber_tree.py index e82b6c28035..0068d782723 100644 --- a/src/sage/combinat/rigged_configurations/kleber_tree.py +++ b/src/sage/combinat/rigged_configurations/kleber_tree.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.graphs sage.modules r""" Kleber Trees diff --git a/src/sage/combinat/rigged_configurations/kr_tableaux.py b/src/sage/combinat/rigged_configurations/kr_tableaux.py index fb6f223e62c..17041e29e79 100644 --- a/src/sage/combinat/rigged_configurations/kr_tableaux.py +++ b/src/sage/combinat/rigged_configurations/kr_tableaux.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Kirillov-Reshetikhin Tableaux diff --git a/src/sage/combinat/rigged_configurations/rc_crystal.py b/src/sage/combinat/rigged_configurations/rc_crystal.py index 171928862ef..8e171da5871 100644 --- a/src/sage/combinat/rigged_configurations/rc_crystal.py +++ b/src/sage/combinat/rigged_configurations/rc_crystal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Crystal of Rigged Configurations diff --git a/src/sage/combinat/rigged_configurations/rc_infinity.py b/src/sage/combinat/rigged_configurations/rc_infinity.py index 5d5ec854771..d5dc63dfc49 100644 --- a/src/sage/combinat/rigged_configurations/rc_infinity.py +++ b/src/sage/combinat/rigged_configurations/rc_infinity.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Rigged Configurations of `\mathcal{B}(\infty)` diff --git a/src/sage/combinat/rigged_configurations/rigged_configuration_element.py b/src/sage/combinat/rigged_configurations/rigged_configuration_element.py index 4fe967a5c6c..c0fd243ce96 100644 --- a/src/sage/combinat/rigged_configurations/rigged_configuration_element.py +++ b/src/sage/combinat/rigged_configurations/rigged_configuration_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Rigged Configuration Elements diff --git a/src/sage/combinat/rigged_configurations/rigged_configurations.py b/src/sage/combinat/rigged_configurations/rigged_configurations.py index 0d3d9954cc1..2b3abd609aa 100644 --- a/src/sage/combinat/rigged_configurations/rigged_configurations.py +++ b/src/sage/combinat/rigged_configurations/rigged_configurations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Rigged Configurations diff --git a/src/sage/combinat/rigged_configurations/rigged_partition.pxd b/src/sage/combinat/rigged_configurations/rigged_partition.pxd index e99258f33b2..1da1c05cf64 100644 --- a/src/sage/combinat/rigged_configurations/rigged_partition.pxd +++ b/src/sage/combinat/rigged_configurations/rigged_partition.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from sage.structure.sage_object cimport SageObject cdef class RiggedPartition(SageObject): diff --git a/src/sage/combinat/rigged_configurations/rigged_partition.pyx b/src/sage/combinat/rigged_configurations/rigged_partition.pyx index 84d98c90f3e..1b9367c7654 100644 --- a/src/sage/combinat/rigged_configurations/rigged_partition.pyx +++ b/src/sage/combinat/rigged_configurations/rigged_partition.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Rigged Partitions diff --git a/src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py b/src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py index a2ccd72e902..f78e8821dc1 100644 --- a/src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py +++ b/src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Tensor Product of Kirillov-Reshetikhin Tableaux diff --git a/src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py b/src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py index 436bbe79b61..e18b3701e47 100644 --- a/src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py +++ b/src/sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Tensor Product of Kirillov-Reshetikhin Tableaux Elements diff --git a/src/sage/combinat/root_system/all.py b/src/sage/combinat/root_system/all.py index bb55e491b44..645b64640c4 100644 --- a/src/sage/combinat/root_system/all.py +++ b/src/sage/combinat/root_system/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root Systems diff --git a/src/sage/combinat/root_system/all__sagemath_gap.py b/src/sage/combinat/root_system/all__sagemath_gap.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/combinat/root_system/all__sagemath_gap.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/combinat/root_system/ambient_space.py b/src/sage/combinat/root_system/ambient_space.py index 0d00c45273f..b50edb8c6fe 100644 --- a/src/sage/combinat/root_system/ambient_space.py +++ b/src/sage/combinat/root_system/ambient_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Ambient lattices and ambient spaces """ diff --git a/src/sage/combinat/root_system/associahedron.py b/src/sage/combinat/root_system/associahedron.py index 7b2752daa6d..7ae2d65af2b 100644 --- a/src/sage/combinat/root_system/associahedron.py +++ b/src/sage/combinat/root_system/associahedron.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.geometry.polyhedron r""" Associahedron diff --git a/src/sage/combinat/root_system/braid_move_calculator.py b/src/sage/combinat/root_system/braid_move_calculator.py index 8fcdc26f24b..07e89d9c5b8 100644 --- a/src/sage/combinat/root_system/braid_move_calculator.py +++ b/src/sage/combinat/root_system/braid_move_calculator.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.gap """ Braid Move Calculator diff --git a/src/sage/combinat/root_system/braid_orbit.pyx b/src/sage/combinat/root_system/braid_orbit.pyx index 5107038df4c..e43a69d3cc0 100644 --- a/src/sage/combinat/root_system/braid_orbit.pyx +++ b/src/sage/combinat/root_system/braid_orbit.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # cython: wraparound=False, boundscheck=False """ Braid Orbit diff --git a/src/sage/combinat/root_system/branching_rules.py b/src/sage/combinat/root_system/branching_rules.py index 91876ee8dd3..51dd66ac900 100644 --- a/src/sage/combinat/root_system/branching_rules.py +++ b/src/sage/combinat/root_system/branching_rules.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.gap """ Branching Rules diff --git a/src/sage/combinat/root_system/cartan_matrix.py b/src/sage/combinat/root_system/cartan_matrix.py index c8e665fcaa2..2ccf7acbe1d 100644 --- a/src/sage/combinat/root_system/cartan_matrix.py +++ b/src/sage/combinat/root_system/cartan_matrix.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Cartan matrices diff --git a/src/sage/combinat/root_system/cartan_type.py b/src/sage/combinat/root_system/cartan_type.py index ce5762719e2..5b15a687072 100644 --- a/src/sage/combinat/root_system/cartan_type.py +++ b/src/sage/combinat/root_system/cartan_type.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Cartan types diff --git a/src/sage/combinat/root_system/coxeter_group.py b/src/sage/combinat/root_system/coxeter_group.py index 656c933c3e5..ab086ec1363 100644 --- a/src/sage/combinat/root_system/coxeter_group.py +++ b/src/sage/combinat/root_system/coxeter_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Coxeter Groups """ diff --git a/src/sage/combinat/root_system/coxeter_matrix.py b/src/sage/combinat/root_system/coxeter_matrix.py index 4ac8ea335ed..d4e97a18b49 100644 --- a/src/sage/combinat/root_system/coxeter_matrix.py +++ b/src/sage/combinat/root_system/coxeter_matrix.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs """ Coxeter Matrices diff --git a/src/sage/combinat/root_system/coxeter_type.py b/src/sage/combinat/root_system/coxeter_type.py index 10312d7e59d..642371221ab 100644 --- a/src/sage/combinat/root_system/coxeter_type.py +++ b/src/sage/combinat/root_system/coxeter_type.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Coxeter Types """ diff --git a/src/sage/combinat/root_system/dynkin_diagram.py b/src/sage/combinat/root_system/dynkin_diagram.py index b190601f0bf..3605fa725ba 100644 --- a/src/sage/combinat/root_system/dynkin_diagram.py +++ b/src/sage/combinat/root_system/dynkin_diagram.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.graphs """ Dynkin diagrams diff --git a/src/sage/combinat/root_system/extended_affine_weyl_group.py b/src/sage/combinat/root_system/extended_affine_weyl_group.py index b1d35c86f7a..7129adc5932 100644 --- a/src/sage/combinat/root_system/extended_affine_weyl_group.py +++ b/src/sage/combinat/root_system/extended_affine_weyl_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.gap r""" Extended Affine Weyl Groups diff --git a/src/sage/combinat/root_system/fundamental_group.py b/src/sage/combinat/root_system/fundamental_group.py index d59f6af5415..6b1b3c9ff14 100644 --- a/src/sage/combinat/root_system/fundamental_group.py +++ b/src/sage/combinat/root_system/fundamental_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs sage.groups r""" Fundamental Group of an Extended Affine Weyl Group diff --git a/src/sage/combinat/root_system/hecke_algebra_representation.py b/src/sage/combinat/root_system/hecke_algebra_representation.py index fd40907d33e..2e380a40af1 100644 --- a/src/sage/combinat/root_system/hecke_algebra_representation.py +++ b/src/sage/combinat/root_system/hecke_algebra_representation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.gap sage.groups r""" Hecke algebra representations diff --git a/src/sage/combinat/root_system/integrable_representations.py b/src/sage/combinat/root_system/integrable_representations.py index 0cda82af318..5bf1825106c 100644 --- a/src/sage/combinat/root_system/integrable_representations.py +++ b/src/sage/combinat/root_system/integrable_representations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs sage.modules """ Integrable Representations of Affine Lie Algebras diff --git a/src/sage/combinat/root_system/non_symmetric_macdonald_polynomials.py b/src/sage/combinat/root_system/non_symmetric_macdonald_polynomials.py index 90482002c92..1b11b6abd61 100644 --- a/src/sage/combinat/root_system/non_symmetric_macdonald_polynomials.py +++ b/src/sage/combinat/root_system/non_symmetric_macdonald_polynomials.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs r""" Nonsymmetric Macdonald polynomials diff --git a/src/sage/combinat/root_system/pieri_factors.py b/src/sage/combinat/root_system/pieri_factors.py index 36dc4a332f2..81c972fc96a 100644 --- a/src/sage/combinat/root_system/pieri_factors.py +++ b/src/sage/combinat/root_system/pieri_factors.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.gap r""" Pieri Factors diff --git a/src/sage/combinat/root_system/plot.py b/src/sage/combinat/root_system/plot.py index 1ffa81daf78..c6510169d47 100644 --- a/src/sage/combinat/root_system/plot.py +++ b/src/sage/combinat/root_system/plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.geometry.polyhedron sage.plot sage.symbolic r""" Tutorial: visualizing root systems diff --git a/src/sage/combinat/root_system/reflection_group_c.pyx b/src/sage/combinat/root_system/reflection_group_c.pyx index 2f2c1b43aaf..de2cff8f75b 100644 --- a/src/sage/combinat/root_system/reflection_group_c.pyx +++ b/src/sage/combinat/root_system/reflection_group_c.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # cython: wraparound=False, boundscheck=False # sage.doctest: needs sage.graphs r""" diff --git a/src/sage/combinat/root_system/reflection_group_complex.py b/src/sage/combinat/root_system/reflection_group_complex.py index 32f57d5da95..51bb720c45b 100644 --- a/src/sage/combinat/root_system/reflection_group_complex.py +++ b/src/sage/combinat/root_system/reflection_group_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: optional - gap3, needs sage.libs.gap r""" Finite complex reflection groups diff --git a/src/sage/combinat/root_system/reflection_group_element.pxd b/src/sage/combinat/root_system/reflection_group_element.pxd index 218dd6c2575..8c2e98cbb2a 100644 --- a/src/sage/combinat/root_system/reflection_group_element.pxd +++ b/src/sage/combinat/root_system/reflection_group_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap from sage.groups.perm_gps.permgroup_element cimport PermutationGroupElement cdef class ComplexReflectionGroupElement(PermutationGroupElement): diff --git a/src/sage/combinat/root_system/reflection_group_element.pyx b/src/sage/combinat/root_system/reflection_group_element.pyx index fedda00cddd..9beb8637ae1 100644 --- a/src/sage/combinat/root_system/reflection_group_element.pyx +++ b/src/sage/combinat/root_system/reflection_group_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Reflection group elements diff --git a/src/sage/combinat/root_system/reflection_group_real.py b/src/sage/combinat/root_system/reflection_group_real.py index c9c06a74906..447ebd536d7 100644 --- a/src/sage/combinat/root_system/reflection_group_real.py +++ b/src/sage/combinat/root_system/reflection_group_real.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: optional - gap3 r""" Finite real reflection groups diff --git a/src/sage/combinat/root_system/root_lattice_realization_algebras.py b/src/sage/combinat/root_system/root_lattice_realization_algebras.py index 970f134ba90..33ed7249f64 100644 --- a/src/sage/combinat/root_system/root_lattice_realization_algebras.py +++ b/src/sage/combinat/root_system/root_lattice_realization_algebras.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Group algebras of root lattice realizations """ @@ -64,7 +65,7 @@ def some_elements(self): sage: A = RootSystem(["B",2]).weight_space().algebra(QQ) sage: A.some_elements() - [B[2*Lambda[1] + 2*Lambda[2]], ... B[Lambda[1]], B[Lambda[2]]] + [B[2*Lambda[1] + 2*Lambda[2]],... B[Lambda[1]], B[Lambda[2]]] sage: A.some_elements() # needs sage.graphs [B[2*Lambda[1] + 2*Lambda[2]], B[2*Lambda[1] - 2*Lambda[2]], diff --git a/src/sage/combinat/root_system/root_lattice_realizations.py b/src/sage/combinat/root_system/root_lattice_realizations.py index 2eddb3bbb38..c9999f76da9 100644 --- a/src/sage/combinat/root_system/root_lattice_realizations.py +++ b/src/sage/combinat/root_system/root_lattice_realizations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root lattice realizations """ @@ -2137,7 +2138,7 @@ def plot_parse_options(self, **args): EXAMPLES:: sage: L = RootSystem(["A",2,1]).ambient_space() - sage: options = L.plot_parse_options(); options # needs sage.symbolic + sage: options = L.plot_parse_options(); options # needs sage.geometry.polyhedron sage.symbolic .. SEEALSO:: diff --git a/src/sage/combinat/root_system/root_space.py b/src/sage/combinat/root_system/root_space.py index 14f5ed4ab23..49a30458797 100644 --- a/src/sage/combinat/root_system/root_space.py +++ b/src/sage/combinat/root_system/root_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root lattices and root spaces """ diff --git a/src/sage/combinat/root_system/root_system.py b/src/sage/combinat/root_system/root_system.py index 06210a749e7..deb777edfab 100644 --- a/src/sage/combinat/root_system/root_system.py +++ b/src/sage/combinat/root_system/root_system.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Root systems ============ diff --git a/src/sage/combinat/root_system/type_A.py b/src/sage/combinat/root_system/type_A.py index 91907976f8c..582640c080b 100644 --- a/src/sage/combinat/root_system/type_A.py +++ b/src/sage/combinat/root_system/type_A.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type A """ diff --git a/src/sage/combinat/root_system/type_A_affine.py b/src/sage/combinat/root_system/type_A_affine.py index cf642231967..d9d3d67ed37 100644 --- a/src/sage/combinat/root_system/type_A_affine.py +++ b/src/sage/combinat/root_system/type_A_affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for (untwisted) type A affine """ diff --git a/src/sage/combinat/root_system/type_A_infinity.py b/src/sage/combinat/root_system/type_A_infinity.py index 5c42db7e176..b79ff4d4ec9 100644 --- a/src/sage/combinat/root_system/type_A_infinity.py +++ b/src/sage/combinat/root_system/type_A_infinity.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type A infinity """ diff --git a/src/sage/combinat/root_system/type_B.py b/src/sage/combinat/root_system/type_B.py index 9794d00794c..568a4a28c48 100644 --- a/src/sage/combinat/root_system/type_B.py +++ b/src/sage/combinat/root_system/type_B.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type B """ diff --git a/src/sage/combinat/root_system/type_BC_affine.py b/src/sage/combinat/root_system/type_BC_affine.py index 6bf8cc43697..e42efa8294b 100644 --- a/src/sage/combinat/root_system/type_BC_affine.py +++ b/src/sage/combinat/root_system/type_BC_affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type BC affine """ diff --git a/src/sage/combinat/root_system/type_B_affine.py b/src/sage/combinat/root_system/type_B_affine.py index fd074cd2e8c..1753cac8095 100644 --- a/src/sage/combinat/root_system/type_B_affine.py +++ b/src/sage/combinat/root_system/type_B_affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for (untwisted) type B affine """ diff --git a/src/sage/combinat/root_system/type_C.py b/src/sage/combinat/root_system/type_C.py index d7c6b67194f..f214044f88c 100644 --- a/src/sage/combinat/root_system/type_C.py +++ b/src/sage/combinat/root_system/type_C.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type C """ diff --git a/src/sage/combinat/root_system/type_C_affine.py b/src/sage/combinat/root_system/type_C_affine.py index c26e03f1b10..2c82eb3211e 100644 --- a/src/sage/combinat/root_system/type_C_affine.py +++ b/src/sage/combinat/root_system/type_C_affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for (untwisted) type C affine """ diff --git a/src/sage/combinat/root_system/type_D.py b/src/sage/combinat/root_system/type_D.py index 49e9d952a2f..f20d4c86a2a 100644 --- a/src/sage/combinat/root_system/type_D.py +++ b/src/sage/combinat/root_system/type_D.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type D """ diff --git a/src/sage/combinat/root_system/type_D_affine.py b/src/sage/combinat/root_system/type_D_affine.py index 59748fb2ff6..663af8f82d1 100644 --- a/src/sage/combinat/root_system/type_D_affine.py +++ b/src/sage/combinat/root_system/type_D_affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for (untwisted) type D affine """ diff --git a/src/sage/combinat/root_system/type_E.py b/src/sage/combinat/root_system/type_E.py index a7fbb8aeb39..4995a3235c9 100644 --- a/src/sage/combinat/root_system/type_E.py +++ b/src/sage/combinat/root_system/type_E.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type E """ diff --git a/src/sage/combinat/root_system/type_E_affine.py b/src/sage/combinat/root_system/type_E_affine.py index a4800974566..9ab82bba7f6 100644 --- a/src/sage/combinat/root_system/type_E_affine.py +++ b/src/sage/combinat/root_system/type_E_affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for (untwisted) type E affine """ diff --git a/src/sage/combinat/root_system/type_F.py b/src/sage/combinat/root_system/type_F.py index 9a13a2e7a23..57a2e6a4145 100644 --- a/src/sage/combinat/root_system/type_F.py +++ b/src/sage/combinat/root_system/type_F.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type F """ diff --git a/src/sage/combinat/root_system/type_F_affine.py b/src/sage/combinat/root_system/type_F_affine.py index 66bbeb574a0..afd30e3cfb8 100644 --- a/src/sage/combinat/root_system/type_F_affine.py +++ b/src/sage/combinat/root_system/type_F_affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for (untwisted) type F affine """ diff --git a/src/sage/combinat/root_system/type_G.py b/src/sage/combinat/root_system/type_G.py index 057d8d17bd1..84dffac3632 100644 --- a/src/sage/combinat/root_system/type_G.py +++ b/src/sage/combinat/root_system/type_G.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type G """ diff --git a/src/sage/combinat/root_system/type_G_affine.py b/src/sage/combinat/root_system/type_G_affine.py index 0cc4f0dc4d7..b382bea8972 100644 --- a/src/sage/combinat/root_system/type_G_affine.py +++ b/src/sage/combinat/root_system/type_G_affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for (untwisted) type G affine """ diff --git a/src/sage/combinat/root_system/type_H.py b/src/sage/combinat/root_system/type_H.py index 5a7c12c1b69..9cc557c27dc 100644 --- a/src/sage/combinat/root_system/type_H.py +++ b/src/sage/combinat/root_system/type_H.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type H """ diff --git a/src/sage/combinat/root_system/type_I.py b/src/sage/combinat/root_system/type_I.py index 8f67bd07ee5..d9b6bd94809 100644 --- a/src/sage/combinat/root_system/type_I.py +++ b/src/sage/combinat/root_system/type_I.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type I """ diff --git a/src/sage/combinat/root_system/type_Q.py b/src/sage/combinat/root_system/type_Q.py index 3e0e33b1399..fe8eb877217 100644 --- a/src/sage/combinat/root_system/type_Q.py +++ b/src/sage/combinat/root_system/type_Q.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for type Q """ diff --git a/src/sage/combinat/root_system/type_affine.py b/src/sage/combinat/root_system/type_affine.py index 4acc93d29b3..ee85e488d24 100644 --- a/src/sage/combinat/root_system/type_affine.py +++ b/src/sage/combinat/root_system/type_affine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for affine Cartan types """ diff --git a/src/sage/combinat/root_system/type_dual.py b/src/sage/combinat/root_system/type_dual.py index 6f4710ae787..db29a52757f 100644 --- a/src/sage/combinat/root_system/type_dual.py +++ b/src/sage/combinat/root_system/type_dual.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for dual Cartan types """ diff --git a/src/sage/combinat/root_system/type_folded.py b/src/sage/combinat/root_system/type_folded.py index 58f4911c361..b3be9273f5e 100644 --- a/src/sage/combinat/root_system/type_folded.py +++ b/src/sage/combinat/root_system/type_folded.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Root system data for folded Cartan types diff --git a/src/sage/combinat/root_system/type_marked.py b/src/sage/combinat/root_system/type_marked.py index 83d39c1a29f..2ce80f7c91c 100644 --- a/src/sage/combinat/root_system/type_marked.py +++ b/src/sage/combinat/root_system/type_marked.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for Cartan types with marked nodes """ diff --git a/src/sage/combinat/root_system/type_reducible.py b/src/sage/combinat/root_system/type_reducible.py index da337ebaa96..36179a4866b 100644 --- a/src/sage/combinat/root_system/type_reducible.py +++ b/src/sage/combinat/root_system/type_reducible.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for reducible Cartan types """ diff --git a/src/sage/combinat/root_system/type_relabel.py b/src/sage/combinat/root_system/type_relabel.py index 27597563ae9..574581694b9 100644 --- a/src/sage/combinat/root_system/type_relabel.py +++ b/src/sage/combinat/root_system/type_relabel.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for relabelled Cartan types """ diff --git a/src/sage/combinat/root_system/type_super_A.py b/src/sage/combinat/root_system/type_super_A.py index 5ccb17e6a4e..5fb70912308 100644 --- a/src/sage/combinat/root_system/type_super_A.py +++ b/src/sage/combinat/root_system/type_super_A.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Root system data for super type A """ diff --git a/src/sage/combinat/root_system/weight_lattice_realizations.py b/src/sage/combinat/root_system/weight_lattice_realizations.py index 17faf8bb914..c0ceee4d825 100644 --- a/src/sage/combinat/root_system/weight_lattice_realizations.py +++ b/src/sage/combinat/root_system/weight_lattice_realizations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Weight lattice realizations """ diff --git a/src/sage/combinat/root_system/weight_space.py b/src/sage/combinat/root_system/weight_space.py index 3dbaa0740e8..c266243b725 100644 --- a/src/sage/combinat/root_system/weight_space.py +++ b/src/sage/combinat/root_system/weight_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Weight lattices and weight spaces """ diff --git a/src/sage/combinat/root_system/weyl_characters.py b/src/sage/combinat/root_system/weyl_characters.py index d7f87d6f494..6c891e07254 100644 --- a/src/sage/combinat/root_system/weyl_characters.py +++ b/src/sage/combinat/root_system/weyl_characters.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs sage.groups sage.modules """ Weyl Character Rings diff --git a/src/sage/combinat/root_system/weyl_group.py b/src/sage/combinat/root_system/weyl_group.py index 7751520ca79..bda2cfaf1ca 100644 --- a/src/sage/combinat/root_system/weyl_group.py +++ b/src/sage/combinat/root_system/weyl_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: needs sage.graphs sage.groups sage.modules """ Weyl Groups diff --git a/src/sage/combinat/rooted_tree.py b/src/sage/combinat/rooted_tree.py index 0ced874b74d..d9c10982e48 100644 --- a/src/sage/combinat/rooted_tree.py +++ b/src/sage/combinat/rooted_tree.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Rooted (Unordered) Trees diff --git a/src/sage/combinat/rsk.py b/src/sage/combinat/rsk.py index 1fa0ba62b4e..7c922146032 100644 --- a/src/sage/combinat/rsk.py +++ b/src/sage/combinat/rsk.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Robinson-Schensted-Knuth correspondence diff --git a/src/sage/combinat/schubert_polynomial.py b/src/sage/combinat/schubert_polynomial.py index efd11f1e0f3..ee9561e6a80 100644 --- a/src/sage/combinat/schubert_polynomial.py +++ b/src/sage/combinat/schubert_polynomial.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Schubert Polynomials diff --git a/src/sage/combinat/set_partition.py b/src/sage/combinat/set_partition.py index 092e2f9dbb7..da7b662149c 100644 --- a/src/sage/combinat/set_partition.py +++ b/src/sage/combinat/set_partition.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Set Partitions diff --git a/src/sage/combinat/set_partition_iterator.pyx b/src/sage/combinat/set_partition_iterator.pyx index c8a7938875b..93024e7666a 100644 --- a/src/sage/combinat/set_partition_iterator.pyx +++ b/src/sage/combinat/set_partition_iterator.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # cython: binding=True r""" Fast set partition iterators diff --git a/src/sage/combinat/set_partition_ordered.py b/src/sage/combinat/set_partition_ordered.py index 37faaec29be..2308337b935 100644 --- a/src/sage/combinat/set_partition_ordered.py +++ b/src/sage/combinat/set_partition_ordered.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Ordered Set Partitions diff --git a/src/sage/combinat/sf/all.py b/src/sage/combinat/sf/all.py index 00f8e4f2bdf..36b1fc6cf20 100644 --- a/src/sage/combinat/sf/all.py +++ b/src/sage/combinat/sf/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Symmetric Functions @@ -36,7 +37,7 @@ # In the long run, this will be the single entry point # Nothing else will be exported -lazy_import('sage.combinat.sf.sf', 'SymmetricFunctions') +from sage.combinat.sf.sf import SymmetricFunctions # Advanced stuff: @@ -45,3 +46,5 @@ lazy_import('sage.combinat.sf.ns_macdonald', ['NonattackingFillings', 'AugmentedLatticeDiagramFilling', 'LatticeDiagram']) +del lazy_import +del install_doc diff --git a/src/sage/combinat/sf/character.py b/src/sage/combinat/sf/character.py index 36755b58f05..a2e072debe1 100644 --- a/src/sage/combinat/sf/character.py +++ b/src/sage/combinat/sf/character.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Characters of the symmetric group as bases of the symmetric functions diff --git a/src/sage/combinat/sf/classical.py b/src/sage/combinat/sf/classical.py index badea76a0c5..67eafcb9f50 100644 --- a/src/sage/combinat/sf/classical.py +++ b/src/sage/combinat/sf/classical.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Classical symmetric functions @@ -17,11 +18,11 @@ # # https://www.gnu.org/licenses/ # **************************************************************************** +from sage.combinat.partition import _Partitions +from sage.misc.lazy_import import lazy_import from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ from sage.rings.rational_field import QQ -from sage.combinat.partition import _Partitions - from . import hall_littlewood from . import sfa diff --git a/src/sage/combinat/sf/dual.py b/src/sage/combinat/sf/dual.py index 5feb90c385b..f7189dfdc8b 100644 --- a/src/sage/combinat/sf/dual.py +++ b/src/sage/combinat/sf/dual.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Generic dual bases symmetric functions diff --git a/src/sage/combinat/sf/elementary.py b/src/sage/combinat/sf/elementary.py index 675c02604fd..ab7a60f36ec 100644 --- a/src/sage/combinat/sf/elementary.py +++ b/src/sage/combinat/sf/elementary.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Elementary symmetric functions diff --git a/src/sage/combinat/sf/hall_littlewood.py b/src/sage/combinat/sf/hall_littlewood.py index c725d478749..57d2cf18770 100644 --- a/src/sage/combinat/sf/hall_littlewood.py +++ b/src/sage/combinat/sf/hall_littlewood.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Hall-Littlewood Polynomials @@ -20,14 +21,17 @@ #***************************************************************************** from sage.structure.unique_representation import UniqueRepresentation -from sage.libs.symmetrica.all import hall_littlewood from . import sfa import sage.combinat.partition -from sage.matrix.constructor import matrix from sage.categories.morphism import SetMorphism from sage.categories.homset import Hom +from sage.misc.lazy_import import lazy_import from sage.rings.rational_field import QQ +lazy_import('sage.libs.symmetrica.all', 'hall_littlewood') +lazy_import('sage.matrix.constructor', 'matrix') + + # P basis cache p_to_s_cache = {} s_to_p_cache = {} diff --git a/src/sage/combinat/sf/hecke.py b/src/sage/combinat/sf/hecke.py index aec6860cdc5..2b1a4a90782 100644 --- a/src/sage/combinat/sf/hecke.py +++ b/src/sage/combinat/sf/hecke.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Hecke Character Basis diff --git a/src/sage/combinat/sf/homogeneous.py b/src/sage/combinat/sf/homogeneous.py index e6bc361f3b0..442a53989b2 100644 --- a/src/sage/combinat/sf/homogeneous.py +++ b/src/sage/combinat/sf/homogeneous.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Homogeneous symmetric functions diff --git a/src/sage/combinat/sf/jack.py b/src/sage/combinat/sf/jack.py index f104af0d9d5..53d14e7f044 100644 --- a/src/sage/combinat/sf/jack.py +++ b/src/sage/combinat/sf/jack.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Jack Symmetric Functions diff --git a/src/sage/combinat/sf/k_dual.py b/src/sage/combinat/sf/k_dual.py index ad7471ec001..bc9402e33eb 100644 --- a/src/sage/combinat/sf/k_dual.py +++ b/src/sage/combinat/sf/k_dual.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Quotient of symmetric function space by ideal generated by Hall-Littlewood symmetric functions diff --git a/src/sage/combinat/sf/kfpoly.py b/src/sage/combinat/sf/kfpoly.py index d58fb746780..d52b3db15e9 100644 --- a/src/sage/combinat/sf/kfpoly.py +++ b/src/sage/combinat/sf/kfpoly.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Kostka-Foulkes Polynomials diff --git a/src/sage/combinat/sf/llt.py b/src/sage/combinat/sf/llt.py index d0a0a040672..e15bb2a5dd5 100644 --- a/src/sage/combinat/sf/llt.py +++ b/src/sage/combinat/sf/llt.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" LLT symmetric functions @@ -639,19 +640,20 @@ def __init__(self, llt): TESTS:: sage: HSp3 = SymmetricFunctions(FractionField(QQ['t'])).llt(3).hspin() - sage: TestSuite(HSp3).run(skip = ["_test_associativity", "_test_distributivity", "_test_prod"]) # products are too expensive, long time (10s on sage.math, 2012) - sage: TestSuite(HSp3).run(elements = [HSp3.t*HSp3[1,1]+HSp3.t*HSp3[2], HSp3[1]+(1+HSp3.t)*HSp3[1,1]]) # long time (depends on previous) + sage: TestSuite(HSp3).run(skip=["_test_associativity", "_test_distributivity", "_test_prod"]) # products are too expensive, long time (10s on sage.math, 2012) + sage: TestSuite(HSp3).run(elements=[HSp3.t*HSp3[1,1]+HSp3.t*HSp3[2], HSp3[1]+(1+HSp3.t)*HSp3[1,1]]) # long time (depends on previous) :: - sage: HS3t2 = SymmetricFunctions(QQ).llt(3,t=2).hspin() - sage: TestSuite(HS3t2).run() # products are too expensive, long time (7s on sage.math, 2012) + sage: HS3t2 = SymmetricFunctions(QQ).llt(3, t=2).hspin() + sage: TestSuite(HS3t2).run() # products are too expensive, long time (7s on sage.math, 2012) :: - sage: HS3x = SymmetricFunctions(FractionField(QQ['x'])).llt(3,t=x).hspin() - sage: TestSuite(HS3x).run(skip = ["_test_associativity", "_test_distributivity", "_test_prod"]) # products are too expensive, long time (4s on sage.math, 2012) - sage: TestSuite(HS3x).run(elements = [HS3x.t*HS3x[1,1]+HS3x.t*HS3x[2], HS3x[1]+(1+HS3x.t)*HS3x[1,1]]) # long time (depends on previous) + sage: R. = QQ[] + sage: HS3x = SymmetricFunctions(FractionField(R)).llt(3, t=x).hspin() + sage: TestSuite(HS3x).run(skip=["_test_associativity", "_test_distributivity", "_test_prod"]) # products are too expensive, long time (4s on sage.math, 2012) + sage: TestSuite(HS3x).run(elements=[HS3x.t*HS3x[1,1]+HS3x.t*HS3x[2], HS3x[1]+(1+HS3x.t)*HS3x[1,1]]) # long time (depends on previous) """ level = llt._k if level not in hsp_to_m_cache: @@ -708,19 +710,20 @@ def __init__(self, llt): TESTS:: sage: HCosp3 = SymmetricFunctions(FractionField(QQ['t'])).llt(3).hcospin() - sage: TestSuite(HCosp3).run(skip = ["_test_associativity", "_test_distributivity", "_test_prod"]) # products are too expensive, long time (11s on sage.math, 2012) - sage: TestSuite(HCosp3).run(elements = [HCosp3.t*HCosp3[1,1]+HCosp3.t*HCosp3[2], HCosp3[1]+(1+HCosp3.t)*HCosp3[1,1]]) # long time (depends on previous) + sage: TestSuite(HCosp3).run(skip=["_test_associativity", "_test_distributivity", "_test_prod"]) # products are too expensive, long time (11s on sage.math, 2012) + sage: TestSuite(HCosp3).run(elements=[HCosp3.t*HCosp3[1,1]+HCosp3.t*HCosp3[2], HCosp3[1]+(1+HCosp3.t)*HCosp3[1,1]]) # long time (depends on previous) :: - sage: HC3t2 = SymmetricFunctions(QQ).llt(3,t=2).hcospin() - sage: TestSuite(HC3t2).run() # products are too expensive, long time (6s on sage.math, 2012) + sage: HC3t2 = SymmetricFunctions(QQ).llt(3, t=2).hcospin() + sage: TestSuite(HC3t2).run() # products are too expensive, long time (6s on sage.math, 2012) :: - sage: HC3x = SymmetricFunctions(FractionField(QQ['x'])).llt(3,t=x).hcospin() - sage: TestSuite(HC3x).run(skip = ["_test_associativity", "_test_distributivity", "_test_prod"]) # products are too expensive, long time (5s on sage.math, 2012) - sage: TestSuite(HC3x).run(elements = [HC3x.t*HC3x[1,1]+HC3x.t*HC3x[2], HC3x[1]+(1+HC3x.t)*HC3x[1,1]]) # long time (depends on previous) + sage: R. = QQ[] + sage: HC3x = SymmetricFunctions(FractionField(R)).llt(3, t=x).hcospin() + sage: TestSuite(HC3x).run(skip=["_test_associativity", "_test_distributivity", "_test_prod"]) # products are too expensive, long time (5s on sage.math, 2012) + sage: TestSuite(HC3x).run(elements=[HC3x.t*HC3x[1,1]+HC3x.t*HC3x[2], HC3x[1]+(1+HC3x.t)*HC3x[1,1]]) # long time (depends on previous) """ level = llt._k if level not in hcosp_to_m_cache: diff --git a/src/sage/combinat/sf/macdonald.py b/src/sage/combinat/sf/macdonald.py index 395906bada4..fe9b40e1fe3 100644 --- a/src/sage/combinat/sf/macdonald.py +++ b/src/sage/combinat/sf/macdonald.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Macdonald Polynomials diff --git a/src/sage/combinat/sf/monomial.py b/src/sage/combinat/sf/monomial.py index bb7b54bae4e..6296908788e 100644 --- a/src/sage/combinat/sf/monomial.py +++ b/src/sage/combinat/sf/monomial.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Monomial symmetric functions @@ -19,12 +20,16 @@ # https://www.gnu.org/licenses/ # **************************************************************************** -from . import classical -import sage.libs.symmetrica.all as symmetrica -from sage.rings.integer import Integer -from sage.rings.infinity import infinity -from sage.combinat.partition import _Partitions from sage.arith.misc import multinomial, factorial, binomial +from sage.combinat.partition import _Partitions +from sage.misc.lazy_import import lazy_import +from sage.rings.infinity import infinity +from sage.rings.integer import Integer +import sage.libs.symmetrica.all as symmetrica + +lazy_import('sage.libs.symmetrica', 'all', as_='symmetrica') + +from . import classical class SymmetricFunctionAlgebra_monomial(classical.SymmetricFunctionAlgebra_classical): diff --git a/src/sage/combinat/sf/multiplicative.py b/src/sage/combinat/sf/multiplicative.py index 5fd06b8e373..2a12380b83f 100644 --- a/src/sage/combinat/sf/multiplicative.py +++ b/src/sage/combinat/sf/multiplicative.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Multiplicative symmetric functions diff --git a/src/sage/combinat/sf/new_kschur.py b/src/sage/combinat/sf/new_kschur.py index 740489adabf..93f5ee80cc1 100644 --- a/src/sage/combinat/sf/new_kschur.py +++ b/src/sage/combinat/sf/new_kschur.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ `k`-Schur Functions diff --git a/src/sage/combinat/sf/ns_macdonald.py b/src/sage/combinat/sf/ns_macdonald.py index 9011cc86b62..0f13032ba9b 100644 --- a/src/sage/combinat/sf/ns_macdonald.py +++ b/src/sage/combinat/sf/ns_macdonald.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Non-symmetric Macdonald Polynomials diff --git a/src/sage/combinat/sf/orthogonal.py b/src/sage/combinat/sf/orthogonal.py index b55b3b54a3d..2617d6791d5 100644 --- a/src/sage/combinat/sf/orthogonal.py +++ b/src/sage/combinat/sf/orthogonal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Orthogonal Symmetric Functions diff --git a/src/sage/combinat/sf/orthotriang.py b/src/sage/combinat/sf/orthotriang.py index 926213f7c0e..36c45233a19 100644 --- a/src/sage/combinat/sf/orthotriang.py +++ b/src/sage/combinat/sf/orthotriang.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Symmetric functions defined by orthogonality and triangularity diff --git a/src/sage/combinat/sf/powersum.py b/src/sage/combinat/sf/powersum.py index ce64edef000..a5781b42bc4 100644 --- a/src/sage/combinat/sf/powersum.py +++ b/src/sage/combinat/sf/powersum.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Power sum symmetric functions diff --git a/src/sage/combinat/sf/schur.py b/src/sage/combinat/sf/schur.py index 6d68365f270..d992743973d 100644 --- a/src/sage/combinat/sf/schur.py +++ b/src/sage/combinat/sf/schur.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Schur symmetric functions diff --git a/src/sage/combinat/sf/sf.py b/src/sage/combinat/sf/sf.py index 9f15dd18fea..994f5c9cdd8 100644 --- a/src/sage/combinat/sf/sf.py +++ b/src/sage/combinat/sf/sf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Symmetric functions, with their multiple realizations diff --git a/src/sage/combinat/sf/sfa.py b/src/sage/combinat/sf/sfa.py index d44758ad1ff..9f78d1b6be1 100644 --- a/src/sage/combinat/sf/sfa.py +++ b/src/sage/combinat/sf/sfa.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Symmetric Functions diff --git a/src/sage/combinat/sf/symplectic.py b/src/sage/combinat/sf/symplectic.py index 8102121389e..bd5a37a87ca 100644 --- a/src/sage/combinat/sf/symplectic.py +++ b/src/sage/combinat/sf/symplectic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Symplectic Symmetric Functions diff --git a/src/sage/combinat/sf/witt.py b/src/sage/combinat/sf/witt.py index 5e8b115c95c..b89f27e49cd 100644 --- a/src/sage/combinat/sf/witt.py +++ b/src/sage/combinat/sf/witt.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Witt symmetric functions diff --git a/src/sage/combinat/shard_order.py b/src/sage/combinat/shard_order.py index f9081ef77dc..5caab515bce 100644 --- a/src/sage/combinat/shard_order.py +++ b/src/sage/combinat/shard_order.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Shard intersection order diff --git a/src/sage/combinat/shifted_primed_tableau.py b/src/sage/combinat/shifted_primed_tableau.py index 6d889425d28..742b9569bbd 100644 --- a/src/sage/combinat/shifted_primed_tableau.py +++ b/src/sage/combinat/shifted_primed_tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules """ Shifted primed tableaux diff --git a/src/sage/combinat/shuffle.py b/src/sage/combinat/shuffle.py index f1797f7acab..6c5367b40e1 100644 --- a/src/sage/combinat/shuffle.py +++ b/src/sage/combinat/shuffle.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Shuffle product of iterables diff --git a/src/sage/combinat/sidon_sets.py b/src/sage/combinat/sidon_sets.py index e2c85f74633..d9474d5f25b 100644 --- a/src/sage/combinat/sidon_sets.py +++ b/src/sage/combinat/sidon_sets.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Sidon sets and their generalizations, Sidon `g`-sets diff --git a/src/sage/combinat/similarity_class_type.py b/src/sage/combinat/similarity_class_type.py index caa691ac559..7600e8e2bb9 100644 --- a/src/sage/combinat/similarity_class_type.py +++ b/src/sage/combinat/similarity_class_type.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Similarity class types of matrices with entries in a finite field diff --git a/src/sage/combinat/sine_gordon.py b/src/sage/combinat/sine_gordon.py index 1891f172d38..b24bcb7fae8 100644 --- a/src/sage/combinat/sine_gordon.py +++ b/src/sage/combinat/sine_gordon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" sine-Gordon Y-system plotter @@ -44,16 +45,15 @@ from sage.structure.sage_object import SageObject from sage.rings.integer_ring import ZZ -from sage.rings.real_mpfr import RR from sage.rings.semirings.non_negative_integer_semiring import NN -from sage.functions.trig import cos, sin from sage.misc.lazy_import import lazy_import -from sage.symbolic.constants import pi, I -from sage.functions.log import exp -from sage.functions.other import ceil +lazy_import("sage.functions.trig", ["cos", "sin"]) +lazy_import("sage.symbolic.constants", ["pi", "I"]) +lazy_import("sage.functions.log", "exp") +lazy_import("sage.functions.other", "ceil") from sage.misc.flatten import flatten -from sage.symbolic.ring import SR -from sage.functions.other import real_part, imag_part +lazy_import("sage.symbolic.ring", "SR") +lazy_import("sage.functions.other", ["real_part", "imag_part"]) from sage.misc.cachefunc import cached_method lazy_import("sage.plot.plot", "parametric_plot") lazy_import("sage.plot.graphics", "Graphics") @@ -466,6 +466,8 @@ def plot(self, **kwds): sage: Y.plot() # long time (2s) # needs sage.plot Graphics object consisting of 219 graphics primitives """ + from sage.rings.real_mpfr import RR + # Set up plotting options if 'radius' in kwds: radius = kwds['radius'] diff --git a/src/sage/combinat/six_vertex_model.py b/src/sage/combinat/six_vertex_model.py index 879418f18d9..5a5787797fd 100644 --- a/src/sage/combinat/six_vertex_model.py +++ b/src/sage/combinat/six_vertex_model.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Six Vertex Model """ diff --git a/src/sage/combinat/skew_partition.py b/src/sage/combinat/skew_partition.py index aad38f9afbf..320ecd3dd0b 100644 --- a/src/sage/combinat/skew_partition.py +++ b/src/sage/combinat/skew_partition.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Skew Partitions diff --git a/src/sage/combinat/skew_tableau.py b/src/sage/combinat/skew_tableau.py index 44189013d5c..e94053ba79d 100644 --- a/src/sage/combinat/skew_tableau.py +++ b/src/sage/combinat/skew_tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Skew Tableaux diff --git a/src/sage/combinat/sloane_functions.py b/src/sage/combinat/sloane_functions.py index 08897c8b6da..918834b624d 100644 --- a/src/sage/combinat/sloane_functions.py +++ b/src/sage/combinat/sloane_functions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.libs.gap sage.libs.flint sage.libs.pari sage.modules r""" Functions that compute some of the sequences in Sloane's tables diff --git a/src/sage/combinat/specht_module.py b/src/sage/combinat/specht_module.py index 1af53083f89..b78dbb0d0af 100644 --- a/src/sage/combinat/specht_module.py +++ b/src/sage/combinat/specht_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.groups sage.modules r""" Specht Modules diff --git a/src/sage/combinat/species/all.py b/src/sage/combinat/species/all.py index 1c3a550d342..7a229e71779 100644 --- a/src/sage/combinat/species/all.py +++ b/src/sage/combinat/species/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Combinatorial species diff --git a/src/sage/combinat/species/characteristic_species.py b/src/sage/combinat/species/characteristic_species.py index a8078bc7313..065fa5b98b1 100644 --- a/src/sage/combinat/species/characteristic_species.py +++ b/src/sage/combinat/species/characteristic_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Characteristic Species """ diff --git a/src/sage/combinat/species/composition_species.py b/src/sage/combinat/species/composition_species.py index 17a240b72dc..347954da23e 100644 --- a/src/sage/combinat/species/composition_species.py +++ b/src/sage/combinat/species/composition_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Composition species """ diff --git a/src/sage/combinat/species/cycle_species.py b/src/sage/combinat/species/cycle_species.py index bc27b988d3c..ea230adae18 100644 --- a/src/sage/combinat/species/cycle_species.py +++ b/src/sage/combinat/species/cycle_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Cycle Species """ diff --git a/src/sage/combinat/species/empty_species.py b/src/sage/combinat/species/empty_species.py index 8ebad9b871d..8115fcc2d42 100644 --- a/src/sage/combinat/species/empty_species.py +++ b/src/sage/combinat/species/empty_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Empty Species """ diff --git a/src/sage/combinat/species/functorial_composition_species.py b/src/sage/combinat/species/functorial_composition_species.py index 2fc5ede99db..117ddc5651c 100644 --- a/src/sage/combinat/species/functorial_composition_species.py +++ b/src/sage/combinat/species/functorial_composition_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Functorial composition species """ diff --git a/src/sage/combinat/species/generating_series.py b/src/sage/combinat/species/generating_series.py index b970bb36dbf..791328ffca1 100644 --- a/src/sage/combinat/species/generating_series.py +++ b/src/sage/combinat/species/generating_series.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Generating Series diff --git a/src/sage/combinat/species/library.py b/src/sage/combinat/species/library.py index c50a9fe75fa..8d6bb4679c9 100644 --- a/src/sage/combinat/species/library.py +++ b/src/sage/combinat/species/library.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Examples of Combinatorial Species """ diff --git a/src/sage/combinat/species/linear_order_species.py b/src/sage/combinat/species/linear_order_species.py index 41a0ac49ae4..4adb974e2b8 100644 --- a/src/sage/combinat/species/linear_order_species.py +++ b/src/sage/combinat/species/linear_order_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Linear-order Species """ diff --git a/src/sage/combinat/species/misc.py b/src/sage/combinat/species/misc.py index 04211b19d0c..77aa9d51b51 100644 --- a/src/sage/combinat/species/misc.py +++ b/src/sage/combinat/species/misc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.groups """ Miscellaneous Functions diff --git a/src/sage/combinat/species/partition_species.py b/src/sage/combinat/species/partition_species.py index d166a99109a..06edf98a662 100644 --- a/src/sage/combinat/species/partition_species.py +++ b/src/sage/combinat/species/partition_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.libs.flint """ Partition Species diff --git a/src/sage/combinat/species/permutation_species.py b/src/sage/combinat/species/permutation_species.py index 7494ee33c08..7ee6070608f 100644 --- a/src/sage/combinat/species/permutation_species.py +++ b/src/sage/combinat/species/permutation_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.groups sage.libs.flint """ Permutation species diff --git a/src/sage/combinat/species/product_species.py b/src/sage/combinat/species/product_species.py index 4a17d3c8ed2..94fabcea99f 100644 --- a/src/sage/combinat/species/product_species.py +++ b/src/sage/combinat/species/product_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Product species """ diff --git a/src/sage/combinat/species/recursive_species.py b/src/sage/combinat/species/recursive_species.py index c9bc12a9a4f..8e8e52a9abf 100644 --- a/src/sage/combinat/species/recursive_species.py +++ b/src/sage/combinat/species/recursive_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Recursive Species """ diff --git a/src/sage/combinat/species/set_species.py b/src/sage/combinat/species/set_species.py index 3d45fe6b81a..88177ef1d39 100644 --- a/src/sage/combinat/species/set_species.py +++ b/src/sage/combinat/species/set_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Set Species """ diff --git a/src/sage/combinat/species/species.py b/src/sage/combinat/species/species.py index a1760df462f..48d3cda5a78 100644 --- a/src/sage/combinat/species/species.py +++ b/src/sage/combinat/species/species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Combinatorial Species diff --git a/src/sage/combinat/species/structure.py b/src/sage/combinat/species/structure.py index d34005ca138..b11c3fe2ef1 100644 --- a/src/sage/combinat/species/structure.py +++ b/src/sage/combinat/species/structure.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Species structures diff --git a/src/sage/combinat/species/subset_species.py b/src/sage/combinat/species/subset_species.py index 5515f1c9d96..77b023e31fe 100644 --- a/src/sage/combinat/species/subset_species.py +++ b/src/sage/combinat/species/subset_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Subset Species """ diff --git a/src/sage/combinat/species/sum_species.py b/src/sage/combinat/species/sum_species.py index c54e7245a55..d0e58a5f2f8 100644 --- a/src/sage/combinat/species/sum_species.py +++ b/src/sage/combinat/species/sum_species.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Sum species """ diff --git a/src/sage/combinat/subset.py b/src/sage/combinat/subset.py index 6c8d923ce9f..895c75e193f 100644 --- a/src/sage/combinat/subset.py +++ b/src/sage/combinat/subset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Subsets diff --git a/src/sage/combinat/subsets_hereditary.py b/src/sage/combinat/subsets_hereditary.py index b02cf538f42..a6dec849485 100644 --- a/src/sage/combinat/subsets_hereditary.py +++ b/src/sage/combinat/subsets_hereditary.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Subsets satisfying a hereditary property """ diff --git a/src/sage/combinat/subsets_pairwise.py b/src/sage/combinat/subsets_pairwise.py index d8fec5c1a0c..106f4427c19 100644 --- a/src/sage/combinat/subsets_pairwise.py +++ b/src/sage/combinat/subsets_pairwise.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Subsets whose elements satisfy a predicate pairwise """ diff --git a/src/sage/combinat/subword.py b/src/sage/combinat/subword.py index ff67d63343d..027745e707a 100644 --- a/src/sage/combinat/subword.py +++ b/src/sage/combinat/subword.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Subwords diff --git a/src/sage/combinat/subword_complex.py b/src/sage/combinat/subword_complex.py index 8dcbd2d64cd..6d01560c4d0 100644 --- a/src/sage/combinat/subword_complex.py +++ b/src/sage/combinat/subword_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.graphs sage.modules r""" Subword complex diff --git a/src/sage/combinat/subword_complex_c.pyx b/src/sage/combinat/subword_complex_c.pyx index 17d18c50c77..e632e16cd9b 100644 --- a/src/sage/combinat/subword_complex_c.pyx +++ b/src/sage/combinat/subword_complex_c.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.modules cpdef int _flip_c(W, set positions, list extended_root_conf_indices, diff --git a/src/sage/combinat/super_tableau.py b/src/sage/combinat/super_tableau.py index 280654fcc5e..6232f41e9cf 100644 --- a/src/sage/combinat/super_tableau.py +++ b/src/sage/combinat/super_tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Super Tableaux diff --git a/src/sage/combinat/superpartition.py b/src/sage/combinat/superpartition.py index b270c17d68b..1ab0cdafcb0 100644 --- a/src/sage/combinat/superpartition.py +++ b/src/sage/combinat/superpartition.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Super Partitions diff --git a/src/sage/combinat/symmetric_group_algebra.py b/src/sage/combinat/symmetric_group_algebra.py index 47820fc23a5..a2b7049603b 100644 --- a/src/sage/combinat/symmetric_group_algebra.py +++ b/src/sage/combinat/symmetric_group_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules sage.groups r""" Symmetric Group Algebra diff --git a/src/sage/combinat/symmetric_group_representations.py b/src/sage/combinat/symmetric_group_representations.py index f64e68fecad..3604e25b5b1 100644 --- a/src/sage/combinat/symmetric_group_representations.py +++ b/src/sage/combinat/symmetric_group_representations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules sage.groups r""" Representations of the Symmetric Group diff --git a/src/sage/combinat/t_sequences.py b/src/sage/combinat/t_sequences.py index c78a451f67c..230303282ee 100644 --- a/src/sage/combinat/t_sequences.py +++ b/src/sage/combinat/t_sequences.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" T-sequences diff --git a/src/sage/combinat/tableau.py b/src/sage/combinat/tableau.py index 80e3391b279..bb99906c876 100644 --- a/src/sage/combinat/tableau.py +++ b/src/sage/combinat/tableau.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Tableaux diff --git a/src/sage/combinat/tableau_residues.py b/src/sage/combinat/tableau_residues.py index ccd39961fa9..67652804146 100644 --- a/src/sage/combinat/tableau_residues.py +++ b/src/sage/combinat/tableau_residues.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Residue sequences of tableaux diff --git a/src/sage/combinat/tableau_tuple.py b/src/sage/combinat/tableau_tuple.py index fd847c4ad1e..df3a3cc045d 100644 --- a/src/sage/combinat/tableau_tuple.py +++ b/src/sage/combinat/tableau_tuple.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" TableauTuples diff --git a/src/sage/combinat/tamari_lattices.py b/src/sage/combinat/tamari_lattices.py index 89a940182d7..93552a92991 100644 --- a/src/sage/combinat/tamari_lattices.py +++ b/src/sage/combinat/tamari_lattices.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.modules r""" Generalized Tamari lattices diff --git a/src/sage/combinat/tiling.py b/src/sage/combinat/tiling.py index 9aed8fd0652..f1a5e536fa5 100644 --- a/src/sage/combinat/tiling.py +++ b/src/sage/combinat/tiling.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Tiling Solver diff --git a/src/sage/combinat/tools.py b/src/sage/combinat/tools.py index 63c611581c8..feb2c5d4975 100644 --- a/src/sage/combinat/tools.py +++ b/src/sage/combinat/tools.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Transitive ideal closure tool """ diff --git a/src/sage/combinat/triangles_FHM.py b/src/sage/combinat/triangles_FHM.py index c8248bdc5f2..640edbc9988 100644 --- a/src/sage/combinat/triangles_FHM.py +++ b/src/sage/combinat/triangles_FHM.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Combinatorial triangles for posets and fans diff --git a/src/sage/combinat/tuple.py b/src/sage/combinat/tuple.py index 196d869769d..1ce84561b94 100644 --- a/src/sage/combinat/tuple.py +++ b/src/sage/combinat/tuple.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Tuples """ diff --git a/src/sage/combinat/tutorial.py b/src/sage/combinat/tutorial.py index ef77bf66d4e..3d0605b7c17 100644 --- a/src/sage/combinat/tutorial.py +++ b/src/sage/combinat/tutorial.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Introduction to combinatorics in Sage diff --git a/src/sage/combinat/vector_partition.py b/src/sage/combinat/vector_partition.py index 1f41c08d7af..002dc6cff37 100644 --- a/src/sage/combinat/vector_partition.py +++ b/src/sage/combinat/vector_partition.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Vector Partitions diff --git a/src/sage/combinat/words/abstract_word.py b/src/sage/combinat/words/abstract_word.py index 21d17ab759f..251aa1a2f8c 100644 --- a/src/sage/combinat/words/abstract_word.py +++ b/src/sage/combinat/words/abstract_word.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Abstract word (finite or infinite) diff --git a/src/sage/combinat/words/all.py b/src/sage/combinat/words/all.py index 66a2fa38719..64c4ab6b47a 100644 --- a/src/sage/combinat/words/all.py +++ b/src/sage/combinat/words/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Combinatorics on words diff --git a/src/sage/combinat/words/alphabet.py b/src/sage/combinat/words/alphabet.py index 4c899084eff..bea93a158ea 100644 --- a/src/sage/combinat/words/alphabet.py +++ b/src/sage/combinat/words/alphabet.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Alphabet diff --git a/src/sage/combinat/words/finite_word.py b/src/sage/combinat/words/finite_word.py index 23e02ad61fb..b023d75d582 100644 --- a/src/sage/combinat/words/finite_word.py +++ b/src/sage/combinat/words/finite_word.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Finite word diff --git a/src/sage/combinat/words/infinite_word.py b/src/sage/combinat/words/infinite_word.py index 0fab1f18891..40e5335433e 100644 --- a/src/sage/combinat/words/infinite_word.py +++ b/src/sage/combinat/words/infinite_word.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Infinite word diff --git a/src/sage/combinat/words/lyndon_word.py b/src/sage/combinat/words/lyndon_word.py index 0f4e4111f37..44bb0d2dd34 100644 --- a/src/sage/combinat/words/lyndon_word.py +++ b/src/sage/combinat/words/lyndon_word.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Lyndon words """ diff --git a/src/sage/combinat/words/morphic.py b/src/sage/combinat/words/morphic.py index 160f4e2243a..fcd6df085de 100644 --- a/src/sage/combinat/words/morphic.py +++ b/src/sage/combinat/words/morphic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Morphic words diff --git a/src/sage/combinat/words/morphism.py b/src/sage/combinat/words/morphism.py index 7ff3b53451c..59f5850a9ff 100644 --- a/src/sage/combinat/words/morphism.py +++ b/src/sage/combinat/words/morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Word morphisms/substitutions diff --git a/src/sage/combinat/words/paths.py b/src/sage/combinat/words/paths.py index a17331b7b82..f6fec0963c8 100644 --- a/src/sage/combinat/words/paths.py +++ b/src/sage/combinat/words/paths.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat sage.modules r""" Word paths diff --git a/src/sage/combinat/words/shuffle_product.py b/src/sage/combinat/words/shuffle_product.py index 5aea554b6b6..dfd634ff627 100644 --- a/src/sage/combinat/words/shuffle_product.py +++ b/src/sage/combinat/words/shuffle_product.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Shuffle product of words diff --git a/src/sage/combinat/words/suffix_trees.py b/src/sage/combinat/words/suffix_trees.py index 3249ce23235..6dd57e30044 100644 --- a/src/sage/combinat/words/suffix_trees.py +++ b/src/sage/combinat/words/suffix_trees.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Suffix Tries and Suffix Trees """ diff --git a/src/sage/combinat/words/word.py b/src/sage/combinat/words/word.py index 2470ee0c00f..2211dd4461d 100644 --- a/src/sage/combinat/words/word.py +++ b/src/sage/combinat/words/word.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Word classes diff --git a/src/sage/combinat/words/word_char.pyx b/src/sage/combinat/words/word_char.pyx index 18be2efde90..8f302232b9e 100644 --- a/src/sage/combinat/words/word_char.pyx +++ b/src/sage/combinat/words/word_char.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Fast word datatype using an array of unsigned char """ diff --git a/src/sage/combinat/words/word_datatypes.pxd b/src/sage/combinat/words/word_datatypes.pxd index c3329bd5a78..5a2019651ec 100644 --- a/src/sage/combinat/words/word_datatypes.pxd +++ b/src/sage/combinat/words/word_datatypes.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat cdef class WordDatatype(): cdef public _parent cdef _hash diff --git a/src/sage/combinat/words/word_datatypes.pyx b/src/sage/combinat/words/word_datatypes.pyx index ddda24ab436..9240a313229 100644 --- a/src/sage/combinat/words/word_datatypes.pyx +++ b/src/sage/combinat/words/word_datatypes.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Datatypes for finite words """ diff --git a/src/sage/combinat/words/word_generators.py b/src/sage/combinat/words/word_generators.py index 5803709ba5b..34c51a4b985 100644 --- a/src/sage/combinat/words/word_generators.py +++ b/src/sage/combinat/words/word_generators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Common words @@ -1147,7 +1148,7 @@ def LowerMechanicalWord(self, alpha, rho=0, alphabet=None): if not 0 <= alpha <= 1: raise ValueError("parameter alpha (=%s) must be in [0,1]" % alpha) - from sage.functions.other import floor + from sage.arith.misc import integer_floor as floor from sage.combinat.words.alphabet import build_alphabet if alphabet is None or alphabet in ((0, 1), [0, 1]): alphabet = build_alphabet([0, 1]) @@ -1205,8 +1206,9 @@ def UpperMechanicalWord(self, alpha, rho=0, alphabet=None): if not 0 <= alpha <= 1: raise ValueError("parameter alpha (=%s) must be in [0,1]" % alpha) - from sage.functions.other import ceil + from sage.arith.misc import integer_ceil as ceil from sage.combinat.words.alphabet import build_alphabet + if alphabet is None or alphabet in ((0, 1), [0, 1]): alphabet = build_alphabet([0, 1]) s = lambda n: ceil(alpha*(n+1) + rho) - ceil(alpha*n + rho) diff --git a/src/sage/combinat/words/word_infinite_datatypes.py b/src/sage/combinat/words/word_infinite_datatypes.py index d36b3f80976..6a667f48e03 100644 --- a/src/sage/combinat/words/word_infinite_datatypes.py +++ b/src/sage/combinat/words/word_infinite_datatypes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Datatypes for words defined by iterators and callables """ diff --git a/src/sage/combinat/words/word_options.py b/src/sage/combinat/words/word_options.py index 44bc5ea071e..c775744d370 100644 --- a/src/sage/combinat/words/word_options.py +++ b/src/sage/combinat/words/word_options.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" User-customizable options for words """ diff --git a/src/sage/combinat/words/words.py b/src/sage/combinat/words/words.py index e940582f83c..9e4d5d0839c 100644 --- a/src/sage/combinat/words/words.py +++ b/src/sage/combinat/words/words.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Set of words diff --git a/src/sage/combinat/yang_baxter_graph.py b/src/sage/combinat/yang_baxter_graph.py index 33552e4cc46..02d76d0cb92 100644 --- a/src/sage/combinat/yang_baxter_graph.py +++ b/src/sage/combinat/yang_baxter_graph.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Yang-Baxter Graphs """ diff --git a/src/sage/cpython/cython_metaclass.h b/src/sage/cpython/cython_metaclass.h index ecf7f973c3e..3beb73816af 100644 --- a/src/sage/cpython/cython_metaclass.h +++ b/src/sage/cpython/cython_metaclass.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-objects + */ /***************************************************************************** * Copyright (C) 2015 Jeroen Demeyer * diff --git a/src/sage/cpython/dict_internal.h b/src/sage/cpython/dict_internal.h index a5ee35bc198..13869c0b673 100644 --- a/src/sage/cpython/dict_internal.h +++ b/src/sage/cpython/dict_internal.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-objects + */ /* This contains internal definitions for python dictionaries, * mostly copied from cpython sourcecode. * diff --git a/src/sage/cpython/pycore_long.h b/src/sage/cpython/pycore_long.h index 99561f1ba96..161fd59b7c9 100644 --- a/src/sage/cpython/pycore_long.h +++ b/src/sage/cpython/pycore_long.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-objects + */ #include "Python.h" #include diff --git a/src/sage/cpython/python_debug.h b/src/sage/cpython/python_debug.h index 64b9b03a8d4..4b37d199501 100644 --- a/src/sage/cpython/python_debug.h +++ b/src/sage/cpython/python_debug.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-objects + */ /* * Workaround to handle Python preprocessor macros: Translate defined / * undefined into true / false diff --git a/src/sage/cpython/pyx_visit.h b/src/sage/cpython/pyx_visit.h index 2dd1fd125b1..84fe6dbfb77 100644 --- a/src/sage/cpython/pyx_visit.h +++ b/src/sage/cpython/pyx_visit.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-objects + */ /* 3-argument version of Py_VISIT, easier to use from Cython */ #define Py_VISIT3(op, visit, arg) \ diff --git a/src/sage/cpython/string_impl.h b/src/sage/cpython/string_impl.h index c0f78966908..f73e5673e13 100644 --- a/src/sage/cpython/string_impl.h +++ b/src/sage/cpython/string_impl.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-objects + */ /***************************************************************************** # Copyright (C) 2017 Erik M. Bray # Copyright (C) 2018 Jeroen Demeyer diff --git a/src/sage/crypto/__init__.py b/src/sage/crypto/__init__.py index 107a9733a62..8d79ceb4559 100644 --- a/src/sage/crypto/__init__.py +++ b/src/sage/crypto/__init__.py @@ -1,2 +1,3 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import lazy_import('sage.crypto.lattice', 'gen_lattice') diff --git a/src/sage/crypto/all.py b/src/sage/crypto/all.py index cd6fd8cc95e..de21fed2ed1 100644 --- a/src/sage/crypto/all.py +++ b/src/sage/crypto/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules import sage.crypto.sbox from sage.misc.persist import register_unpickle_override register_unpickle_override('sage.crypto.mq.sbox', 'SBox', sage.crypto.sbox.SBox) diff --git a/src/sage/crypto/block_cipher/all.py b/src/sage/crypto/block_cipher/all.py index 66ce4ca0a59..822866ce5ec 100644 --- a/src/sage/crypto/block_cipher/all.py +++ b/src/sage/crypto/block_cipher/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import lazy_import('sage.crypto.block_cipher.miniaes', 'MiniAES') diff --git a/src/sage/crypto/block_cipher/des.py b/src/sage/crypto/block_cipher/des.py index 182de4a14b3..566cae673de 100644 --- a/src/sage/crypto/block_cipher/des.py +++ b/src/sage/crypto/block_cipher/des.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" DES diff --git a/src/sage/crypto/block_cipher/miniaes.py b/src/sage/crypto/block_cipher/miniaes.py index 0a421c17e5e..53895739c00 100644 --- a/src/sage/crypto/block_cipher/miniaes.py +++ b/src/sage/crypto/block_cipher/miniaes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.modules sage.rings.finite_rings r""" Mini-AES diff --git a/src/sage/crypto/block_cipher/present.py b/src/sage/crypto/block_cipher/present.py index 7b1a4a8a3d5..f66af72376b 100644 --- a/src/sage/crypto/block_cipher/present.py +++ b/src/sage/crypto/block_cipher/present.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" PRESENT diff --git a/src/sage/crypto/block_cipher/sdes.py b/src/sage/crypto/block_cipher/sdes.py index 9b29d25ac15..f36cc66ef28 100644 --- a/src/sage/crypto/block_cipher/sdes.py +++ b/src/sage/crypto/block_cipher/sdes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.rings.finite_rings r""" Simplified DES diff --git a/src/sage/crypto/boolean_function.pxd b/src/sage/crypto/boolean_function.pxd index 5703943123c..50ba8283b1c 100644 --- a/src/sage/crypto/boolean_function.pxd +++ b/src/sage/crypto/boolean_function.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules cdef inline unsigned int hamming_weight(unsigned int x) noexcept: # valid for 32bits x -= (x>>1) & 0x55555555UL # 0-2 in 2 bits diff --git a/src/sage/crypto/boolean_function.pyx b/src/sage/crypto/boolean_function.pyx index 7f8f4b4fba0..03a9e636e7d 100644 --- a/src/sage/crypto/boolean_function.pyx +++ b/src/sage/crypto/boolean_function.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Boolean functions diff --git a/src/sage/crypto/cipher.py b/src/sage/crypto/cipher.py index 98a00db47dc..05d2aabf530 100644 --- a/src/sage/crypto/cipher.py +++ b/src/sage/crypto/cipher.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat """ Ciphers diff --git a/src/sage/crypto/classical.py b/src/sage/crypto/classical.py index 82811ab56a8..bc5241f8515 100644 --- a/src/sage/crypto/classical.py +++ b/src/sage/crypto/classical.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat r""" Classical Cryptosystems diff --git a/src/sage/crypto/classical_cipher.py b/src/sage/crypto/classical_cipher.py index cb2a03ede29..f687547aff3 100644 --- a/src/sage/crypto/classical_cipher.py +++ b/src/sage/crypto/classical_cipher.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat """ Classical Ciphers diff --git a/src/sage/crypto/cryptosystem.py b/src/sage/crypto/cryptosystem.py index 82fb0e553ad..d6c67429a29 100644 --- a/src/sage/crypto/cryptosystem.py +++ b/src/sage/crypto/cryptosystem.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat r""" Cryptosystems diff --git a/src/sage/crypto/lattice.py b/src/sage/crypto/lattice.py index 430ab98f3ae..41fc3b60b80 100644 --- a/src/sage/crypto/lattice.py +++ b/src/sage/crypto/lattice.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules """ Hard Lattice Generator diff --git a/src/sage/crypto/lfsr.py b/src/sage/crypto/lfsr.py index 7a640e91533..ac865e44d83 100644 --- a/src/sage/crypto/lfsr.py +++ b/src/sage/crypto/lfsr.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.finite_rings r""" Linear feedback shift register (LFSR) sequence commands @@ -127,10 +128,10 @@ import copy -from sage.structure.all import Sequence from sage.rings.finite_rings.finite_field_base import FiniteField from sage.rings.integer import Integer from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing +from sage.structure.all import Sequence def lfsr_sequence(key, fill, n): diff --git a/src/sage/crypto/lwe.py b/src/sage/crypto/lwe.py index 7403260c514..d126d0bbc30 100644 --- a/src/sage/crypto/lwe.py +++ b/src/sage/crypto/lwe.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs scipy sage.symbolic """ (Ring-)LWE oracle generators diff --git a/src/sage/crypto/mq/__init__.py b/src/sage/crypto/mq/__init__.py index bc96f8eb607..a0b767f60a5 100644 --- a/src/sage/crypto/mq/__init__.py +++ b/src/sage/crypto/mq/__init__.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import lazy_import('sage.crypto.mq.rijndael_gf', 'RijndaelGF') lazy_import('sage.crypto.mq.sr', 'SR') diff --git a/src/sage/crypto/mq/mpolynomialsystemgenerator.py b/src/sage/crypto/mq/mpolynomialsystemgenerator.py index 864e9ab1ea1..84aac38f80b 100644 --- a/src/sage/crypto/mq/mpolynomialsystemgenerator.py +++ b/src/sage/crypto/mq/mpolynomialsystemgenerator.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Abstract base class for generators of polynomial systems diff --git a/src/sage/crypto/mq/rijndael_gf.py b/src/sage/crypto/mq/rijndael_gf.py index dc75f5d165b..b4acd5a5262 100644 --- a/src/sage/crypto/mq/rijndael_gf.py +++ b/src/sage/crypto/mq/rijndael_gf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Rijndael-GF diff --git a/src/sage/crypto/mq/sbox.py b/src/sage/crypto/mq/sbox.py index b05411fe0d3..ea2e3ea529e 100644 --- a/src/sage/crypto/mq/sbox.py +++ b/src/sage/crypto/mq/sbox.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import lazy_import('sage.crypto.sbox', ['SBox', diff --git a/src/sage/crypto/mq/sr.py b/src/sage/crypto/mq/sr.py index 610a97b05fb..06f49f0e2bf 100644 --- a/src/sage/crypto/mq/sr.py +++ b/src/sage/crypto/mq/sr.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Small Scale Variants of the AES (SR) Polynomial System Generator diff --git a/src/sage/crypto/public_key/all.py b/src/sage/crypto/public_key/all.py index 984a36108ca..c19d3da50f3 100644 --- a/src/sage/crypto/public_key/all.py +++ b/src/sage/crypto/public_key/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import lazy_import('sage.crypto.public_key.blum_goldwasser', 'BlumGoldwasser') diff --git a/src/sage/crypto/public_key/blum_goldwasser.py b/src/sage/crypto/public_key/blum_goldwasser.py index cf09d4038c8..465667e1e22 100644 --- a/src/sage/crypto/public_key/blum_goldwasser.py +++ b/src/sage/crypto/public_key/blum_goldwasser.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat r""" Blum-Goldwasser Probabilistic Encryption diff --git a/src/sage/crypto/sbox.pyx b/src/sage/crypto/sbox.pyx index 30b7a3cd8c9..ce4818da02b 100644 --- a/src/sage/crypto/sbox.pyx +++ b/src/sage/crypto/sbox.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" S-Boxes and Their Algebraic Representations diff --git a/src/sage/crypto/sboxes.py b/src/sage/crypto/sboxes.py index ab0f2759573..e576c6388f4 100644 --- a/src/sage/crypto/sboxes.py +++ b/src/sage/crypto/sboxes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules sage.rings.finite_rings r""" S-Boxes used in cryptographic schemes diff --git a/src/sage/crypto/stream.py b/src/sage/crypto/stream.py index a9e94d63b24..651c6f96876 100644 --- a/src/sage/crypto/stream.py +++ b/src/sage/crypto/stream.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.rings.finite_rings """ Stream Cryptosystems diff --git a/src/sage/crypto/stream_cipher.py b/src/sage/crypto/stream_cipher.py index 4b6d36ad925..1273ee6046e 100644 --- a/src/sage/crypto/stream_cipher.py +++ b/src/sage/crypto/stream_cipher.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.rings.finite_rings """ Stream Ciphers diff --git a/src/sage/crypto/util.py b/src/sage/crypto/util.py index 66ffb78ef2b..51bed8cdbbe 100644 --- a/src/sage/crypto/util.py +++ b/src/sage/crypto/util.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat """ Utility Functions for Cryptography diff --git a/src/sage/data_structures/all.py b/src/sage/data_structures/all.py index eac1b4b8931..86dc95c5bd8 100644 --- a/src/sage/data_structures/all.py +++ b/src/sage/data_structures/all.py @@ -1,2 +1,3 @@ +# sage_setup: distribution = sagemath-categories -from sage.data_structures.bitset import Bitset, FrozenBitset +from sage.data_structures.all__sagemath_categories import * diff --git a/src/sage/data_structures/all__sagemath_categories.py b/src/sage/data_structures/all__sagemath_categories.py new file mode 100644 index 00000000000..25fc9140ce6 --- /dev/null +++ b/src/sage/data_structures/all__sagemath_categories.py @@ -0,0 +1,2 @@ +# sage_setup: distribution = sagemath-categories +from sage.data_structures.bitset import Bitset, FrozenBitset diff --git a/src/sage/data_structures/all__sagemath_combinat.py b/src/sage/data_structures/all__sagemath_combinat.py new file mode 100644 index 00000000000..28c48d66b20 --- /dev/null +++ b/src/sage/data_structures/all__sagemath_combinat.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-combinat diff --git a/src/sage/data_structures/all__sagemath_flint.py b/src/sage/data_structures/all__sagemath_flint.py new file mode 100644 index 00000000000..d31bae41036 --- /dev/null +++ b/src/sage/data_structures/all__sagemath_flint.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/data_structures/binary_matrix.pxd b/src/sage/data_structures/binary_matrix.pxd index ce69e036ad2..7f9aa9d99f0 100644 --- a/src/sage/data_structures/binary_matrix.pxd +++ b/src/sage/data_structures/binary_matrix.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" A binary matrix datatype in Cython diff --git a/src/sage/data_structures/binary_search.pxd b/src/sage/data_structures/binary_search.pxd index 5eee088e8b8..88b025a3766 100644 --- a/src/sage/data_structures/binary_search.pxd +++ b/src/sage/data_structures/binary_search.pxd @@ -1,2 +1,3 @@ +# sage_setup: distribution = sagemath-categories cdef Py_ssize_t binary_search(Py_ssize_t* v, Py_ssize_t n, Py_ssize_t x, Py_ssize_t* ins) noexcept -cdef Py_ssize_t binary_search0(Py_ssize_t* v, Py_ssize_t n, Py_ssize_t x) noexcept \ No newline at end of file +cdef Py_ssize_t binary_search0(Py_ssize_t* v, Py_ssize_t n, Py_ssize_t x) noexcept diff --git a/src/sage/data_structures/binary_search.pyx b/src/sage/data_structures/binary_search.pyx index 173affa5687..47d92ca3a16 100644 --- a/src/sage/data_structures/binary_search.pyx +++ b/src/sage/data_structures/binary_search.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # We can probably get away with only having the mpz_binary_searches in here. # I'm too scared to get rid of it at 2am though. cdef Py_ssize_t binary_search(Py_ssize_t* v, Py_ssize_t n, Py_ssize_t x, Py_ssize_t* ins) noexcept: diff --git a/src/sage/data_structures/bitset.pxd b/src/sage/data_structures/bitset.pxd index 35343fa28ae..6f980b21837 100644 --- a/src/sage/data_structures/bitset.pxd +++ b/src/sage/data_structures/bitset.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2008 Robert Bradshaw # diff --git a/src/sage/data_structures/bitset.pyx b/src/sage/data_structures/bitset.pyx index 973102fc2a6..95ef04b1b19 100644 --- a/src/sage/data_structures/bitset.pyx +++ b/src/sage/data_structures/bitset.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Bitsets diff --git a/src/sage/data_structures/bitset_base.pxd b/src/sage/data_structures/bitset_base.pxd index b2fb299dd9c..c9af029e297 100644 --- a/src/sage/data_structures/bitset_base.pxd +++ b/src/sage/data_structures/bitset_base.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # distutils: depends = bitset_intrinsics.h # distutils: libraries = gmp """ diff --git a/src/sage/data_structures/bitset_base.pyx b/src/sage/data_structures/bitset_base.pyx index 182812a891f..bb94d74e131 100644 --- a/src/sage/data_structures/bitset_base.pyx +++ b/src/sage/data_structures/bitset_base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Few functions from ``bitset_base.pxd`` that are not inlined. """ diff --git a/src/sage/data_structures/bitset_intrinsics.h b/src/sage/data_structures/bitset_intrinsics.h index ce9c0f9889d..9ec2232732d 100644 --- a/src/sage/data_structures/bitset_intrinsics.h +++ b/src/sage/data_structures/bitset_intrinsics.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-categories + */ #ifndef SAGE_BITSET_INTRINSICS #define SAGE_BITSET_INTRINSICS diff --git a/src/sage/data_structures/blas_dict.pxd b/src/sage/data_structures/blas_dict.pxd index 7464c0daba8..b40130c88d5 100644 --- a/src/sage/data_structures/blas_dict.pxd +++ b/src/sage/data_structures/blas_dict.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories cpdef int iaxpy(a, dict X, dict Y, bint remove_zeros=*, bint factor_on_left=*) except -1 cpdef dict axpy(a, dict X, dict Y, bint factor_on_left=*) cpdef dict negate(dict D) diff --git a/src/sage/data_structures/blas_dict.pyx b/src/sage/data_structures/blas_dict.pyx index baa27e54c22..258451b24e0 100644 --- a/src/sage/data_structures/blas_dict.pyx +++ b/src/sage/data_structures/blas_dict.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Basic Linear Algebra Subroutines on dictionaries diff --git a/src/sage/data_structures/bounded_integer_sequences.pxd b/src/sage/data_structures/bounded_integer_sequences.pxd index ed30b915d14..31e1846aed1 100644 --- a/src/sage/data_structures/bounded_integer_sequences.pxd +++ b/src/sage/data_structures/bounded_integer_sequences.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.libs.gmp.types cimport * from sage.data_structures.bitset cimport * diff --git a/src/sage/data_structures/bounded_integer_sequences.pyx b/src/sage/data_structures/bounded_integer_sequences.pyx index 44635ad2364..113e078bbee 100644 --- a/src/sage/data_structures/bounded_integer_sequences.pyx +++ b/src/sage/data_structures/bounded_integer_sequences.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Sequences of bounded integers diff --git a/src/sage/data_structures/list_of_pairs.pxd b/src/sage/data_structures/list_of_pairs.pxd index 5b7483eb9ad..d4fc9e75724 100644 --- a/src/sage/data_structures/list_of_pairs.pxd +++ b/src/sage/data_structures/list_of_pairs.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories cimport cython cdef struct pair_s: diff --git a/src/sage/data_structures/list_of_pairs.pyx b/src/sage/data_structures/list_of_pairs.pyx index 258320353a0..a8e213aea36 100644 --- a/src/sage/data_structures/list_of_pairs.pyx +++ b/src/sage/data_structures/list_of_pairs.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" A data structure to store lists of integer pairs of large size. """ diff --git a/src/sage/data_structures/mutable_poset.py b/src/sage/data_structures/mutable_poset.py index 0acef5aca6e..70bc5bcfa2b 100644 --- a/src/sage/data_structures/mutable_poset.py +++ b/src/sage/data_structures/mutable_poset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Mutable Poset diff --git a/src/sage/data_structures/sparse_bitset.pxd b/src/sage/data_structures/sparse_bitset.pxd index e30de80073f..4ea536d48b2 100644 --- a/src/sage/data_structures/sparse_bitset.pxd +++ b/src/sage/data_structures/sparse_bitset.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Sparse bitset. diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index ae3cbb71ecd..7314ba83236 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Streams diff --git a/src/sage/databases/all__sagemath_graphs.py b/src/sage/databases/all__sagemath_graphs.py new file mode 100644 index 00000000000..9d0d23c0337 --- /dev/null +++ b/src/sage/databases/all__sagemath_graphs.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-graphs diff --git a/src/sage/databases/knotinfo_db.py b/src/sage/databases/knotinfo_db.py index aae6f46d980..979048881f8 100644 --- a/src/sage/databases/knotinfo_db.py +++ b/src/sage/databases/knotinfo_db.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" KnotInfo database diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py index e6fcc29a61b..8420f254587 100644 --- a/src/sage/doctest/control.py +++ b/src/sage/doctest/control.py @@ -1,4 +1,5 @@ # sage_setup: distribution = sagemath-repl +# sage.doctest: needs sage.all """ Classes involved in doctesting @@ -492,7 +493,7 @@ def __init__(self, options, args): if pkg.name in options.hide: continue # Skip features for which we have a more specific runtime feature test. - if pkg.name in ['bliss', 'coxeter3', 'mcqd', 'meataxe', 'sirocco', 'tdlib']: + if pkg.name in ['bliss', 'coxeter3', 'mcqd', 'meataxe', 'mpmath', 'sirocco', 'tdlib']: continue if pkg.is_installed() and pkg.installed_version == pkg.remote_version: options.optional.add(pkg.name) @@ -608,7 +609,7 @@ def _init_warn_long(self): sage: DC.options.warn_long = 5.0 sage: DC._init_warn_long() sage: DC.options.warn_long # existing command-line options are not changed - 5.00000000000000 + 5.0... """ # default is -1.0 if self.options.warn_long >= 0: # Specified on the command line @@ -674,10 +675,10 @@ def load_environment(self): sage: from sage.doctest.control import DocTestDefaults, DocTestController sage: DC = DocTestController(DocTestDefaults(), []) - sage: 'BipartiteGraph' in DC.load_environment().__dict__ + sage: 'BipartiteGraph' in DC.load_environment().__dict__ # needs sage.graphs True sage: DC = DocTestController(DocTestDefaults(environment='sage.doctest.all'), []) - sage: 'BipartiteGraph' in DC.load_environment().__dict__ + sage: 'BipartiteGraph' in DC.load_environment().__dict__ # needs sage.graphs False sage: 'run_doctests' in DC.load_environment().__dict__ True diff --git a/src/sage/doctest/external.py b/src/sage/doctest/external.py index a80b8ac555e..4c7a45459e1 100644 --- a/src/sage/doctest/external.py +++ b/src/sage/doctest/external.py @@ -31,15 +31,15 @@ # http://www.gnu.org/licenses/ #***************************************************************************** -import multiprocessing import os + # With OS X, Python 3.8 defaults to use 'spawn' instead of 'fork' in # multiprocessing, and Sage doctesting doesn't work with 'spawn'. See # trac #27754. if os.uname().sysname == 'Darwin': + import multiprocessing multiprocessing.set_start_method('fork', force=True) -Array = multiprocessing.Array # Functions in this module whose name is of the form 'has_xxx' tests if the # software xxx is available to Sage. @@ -431,8 +431,13 @@ def __init__(self): features.update(all_features()) self._features = sorted(features, key=lambda feature: feature.name) self._indices = {feature.name: idx for idx, feature in enumerate(self._features)} - self._seen = Array('i', len(self._features)) # initialized to zeroes - self._hidden = Array('i', len(self._features)) # initialized to zeroes + try: + from multiprocessing import Array + self._seen = Array('i', len(self._features)) # initialized to zeroes + self._hidden = Array('i', len(self._features)) # initialized to zeroes + except ImportError: # module '_multiprocessing' is removed in Pyodide due to browser limitations + self._seen = [0] * len(self._features) + self._hidden = [0] * len(self._features) def __contains__(self, item): """ diff --git a/src/sage/doctest/fixtures.py b/src/sage/doctest/fixtures.py index 033b0671c06..5861cc3abe6 100644 --- a/src/sage/doctest/fixtures.py +++ b/src/sage/doctest/fixtures.py @@ -81,7 +81,7 @@ def reproducible_repr(val): frozenset(['a', 'b', 'c', 'd']) sage: print(reproducible_repr([1, frozenset("cab"), set("bar"), 0])) [1, frozenset(['a', 'b', 'c']), set(['a', 'b', 'r']), 0] - sage: print(reproducible_repr({3.0: "three", "2": "two", 1: "one"})) # optional - sage.rings.real_mpfr + sage: print(reproducible_repr({3.0: "three", "2": "two", 1: "one"})) # needs sage.rings.real_mpfr {'2': 'two', 1: 'one', 3.00000000000000: 'three'} sage: print(reproducible_repr("foo\nbar")) # demonstrate default case 'foo\nbar' diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py index dfe57f59b0b..3c8c91dcdd9 100644 --- a/src/sage/doctest/forker.py +++ b/src/sage/doctest/forker.py @@ -53,7 +53,6 @@ import signal import linecache import hashlib -import multiprocessing import warnings import re import errno @@ -81,8 +80,16 @@ # multiprocessing, and Sage doctesting doesn't work with 'spawn'. See # trac #27754. if os.uname().sysname == 'Darwin': + import multiprocessing multiprocessing.set_start_method('fork', force=True) +from multiprocessing import Process + +try: + import _multiprocessing +except ImportError: + _multiprocessing = None + def _sorted_dict_pprinter_factory(start, end): """ @@ -204,7 +211,8 @@ def init_sage(controller=None): if controller is None: import sage.repl.ipython_kernel.all_jupyter else: - controller.load_environment() + import sage + sage.all = controller.load_environment() try: from sage.interfaces.quit import invalidate_all @@ -236,7 +244,7 @@ def init_sage(controller=None): pass try: - import sympy + import sympy.printing except ImportError: # Do not require sympy for running doctests (Issue #25106). pass @@ -533,7 +541,8 @@ def __init__(self, *args, **kwds): sage: from sage.doctest.forker import SageDocTestRunner sage: from sage.doctest.control import DocTestDefaults; DD = DocTestDefaults() sage: import doctest, sys, os - sage: DTR = SageDocTestRunner(SageOutputChecker(), verbose=False, sage_options=DD, optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS) + sage: DTR = SageDocTestRunner(SageOutputChecker(), verbose=False, sage_options=DD, + ....: optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS) sage: DTR """ @@ -937,7 +946,8 @@ def summarize(self, verbose=None): sage: from sage.doctest.forker import SageDocTestRunner sage: from sage.doctest.control import DocTestDefaults; DD = DocTestDefaults() sage: import doctest, sys, os - sage: DTR = SageDocTestRunner(SageOutputChecker(), verbose=False, sage_options=DD, optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS) + sage: DTR = SageDocTestRunner(SageOutputChecker(), verbose=False, sage_options=DD, + ....: optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS) sage: DTR._name2ft['sage.doctest.forker'] = (1,120) sage: results = DTR.summarize() ********************************************************************** @@ -1411,6 +1421,7 @@ def report_failure(self, out, test, example, got, globs): If debugging is turned on this function starts an IPython prompt when a test returns an incorrect answer:: + sage: # needs sage.symbolic (actually sage.all) sage: sage0.quit() sage: _ = sage0.eval("import doctest, sys, os, multiprocessing, subprocess") sage: _ = sage0.eval("from sage.doctest.parsing import SageOutputChecker") @@ -1482,7 +1493,7 @@ def report_failure(self, out, test, example, got, globs): except KeyboardInterrupt: # Assume this is a *real* interrupt. We need to # escalate this to the master doctesting process. - if not self.options.serial: + if not self.options.serial and _multiprocessing: os.kill(os.getppid(), signal.SIGINT) raise finally: @@ -1529,7 +1540,8 @@ def report_overtime(self, out, test, example, got, *, check_duration=0): sage: doctests, extras = FDS.create_doctests(globals()) sage: ex = doctests[0].examples[0] sage: ex.walltime = 1.23r - sage: DTR.report_overtime(sys.stdout.write, doctests[0], ex, 'BAD ANSWER\n', check_duration=2.34r) + sage: DTR.report_overtime(sys.stdout.write, doctests[0], ex, 'BAD ANSWER\n', + check_duration=2.34r) ********************************************************************** File ".../sage/doctest/forker.py", line 12, in sage.doctest.forker Warning, slow doctest: @@ -1562,6 +1574,7 @@ def report_unexpected_exception(self, out, test, example, exc_info): EXAMPLES:: + sage: # needs sage.symbolic (actually sage.all) sage: from sage.interfaces.sage0 import sage0 sage: sage0.quit() sage: _ = sage0.eval("import doctest, sys, os, multiprocessing, subprocess") @@ -1617,7 +1630,7 @@ def report_unexpected_exception(self, out, test, example, exc_info): except KeyboardInterrupt: # Assume this is a *real* interrupt. We need to # escalate this to the master doctesting process. - if not self.options.serial: + if not self.options.serial and _multiprocessing: os.kill(os.getppid(), signal.SIGINT) raise finally: @@ -2102,6 +2115,7 @@ def dispatch(self): EXAMPLES:: + sage: # needs sage.modules sage: from sage.doctest.control import DocTestController, DocTestDefaults sage: from sage.doctest.forker import DocTestDispatcher sage: from sage.doctest.reporting import DocTestReporter @@ -2122,13 +2136,13 @@ def dispatch(self): sage -t .../sage/rings/big_oh.py [... tests, ... s] """ - if self.controller.options.serial: + if self.controller.options.serial or not _multiprocessing: self.serial_dispatch() else: self.parallel_dispatch() -class DocTestWorker(multiprocessing.Process): +class DocTestWorker(Process): """ The DocTestWorker process runs one :class:`DocTestTask` for a given source. It returns messages about doctest failures (or all tests if @@ -2191,7 +2205,7 @@ def __init__(self, source, options, funclist=[], baseline=None): cumulative wall time: ... seconds Features detected... """ - multiprocessing.Process.__init__(self) + Process.__init__(self) self.source = source self.options = options diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py index d9b054ae2dd..156e64dee0c 100644 --- a/src/sage/doctest/parsing.py +++ b/src/sage/doctest/parsing.py @@ -560,7 +560,7 @@ def parse_tolerance(source, want): 0 sage: marked.rel_tol 0 - sage: marked.abs_tol + sage: marked.abs_tol # needs sage.rings.real_mpfr 0.010000000000000000000...? """ # regular expressions @@ -870,7 +870,7 @@ def parse(self, string, *args): '0.893515349287690\n' sage: type(ex.want) - sage: ex.want.tol + sage: ex.want.tol # needs sage.rings.real_interval_field 2.000000000000000000...?e-11 You can use continuation lines:: @@ -1106,7 +1106,8 @@ def check_and_clear_tag_counts(): if not first_example_in_block: first_example_in_block = item first_example_in_block_index = len(filtered) - update_tag_counts(optional_tags) + if not re.match(r'\s*sage:\s*(#|from |import |class |def |\w+\s*=\s*(polygen|lambda ))', item.source): + update_tag_counts(optional_tags) optional_tags.update(persistent_optional_tags) item.optional_tags = frozenset(optional_tags) item.probed_tags = set() @@ -1208,6 +1209,8 @@ class SageOutputChecker(doctest.OutputChecker): '0.893515349287690\n' sage: type(ex.want) + + sage: # needs sage.rings.real_interval_field sage: ex.want.tol 2.000000000000000000...?e-11 sage: OC.check_output(ex.want, '0.893515349287690', optflag) diff --git a/src/sage/doctest/util.py b/src/sage/doctest/util.py index 6bffb67156b..8b3e28cc7f1 100644 --- a/src/sage/doctest/util.py +++ b/src/sage/doctest/util.py @@ -146,10 +146,10 @@ def annotate(self, object): EXAMPLES:: sage: from sage.doctest.util import Timer - sage: Timer().start().annotate(EllipticCurve) - sage: EllipticCurve.cputime # random + sage: Timer().start().annotate(EllipticCurve) # needs sage.schemes + sage: EllipticCurve.cputime # random # needs sage.schemes 2.817255 - sage: EllipticCurve.walltime # random + sage: EllipticCurve.walltime # random # needs sage.schemes 1332649288.410404 """ object.cputime = self.cputime diff --git a/src/sage/dynamics/all.py b/src/sage/dynamics/all.py index e5c553a3d54..fddc4e83a98 100644 --- a/src/sage/dynamics/all.py +++ b/src/sage/dynamics/all.py @@ -20,14 +20,22 @@ from sage.misc.namespace_package import install_doc install_doc(__package__, __doc__) +from sage.dynamics.all__sagemath_schemes import * + +try: + from sage.dynamics.all__sagemath_symbolics import * +except ImportError: + pass + from sage.misc.lazy_import import lazy_import -from sage.dynamics.arithmetic_dynamics.all import * -from sage.dynamics.complex_dynamics.all import * from sage.dynamics.cellular_automata.all import * # Discrete dynamical systems lazy_import('sage.dynamics.finite_dynamical_system', ['DiscreteDynamicalSystem']) -lazy_import('sage.dynamics', 'finite_dynamical_system_catalog', 'finite_dynamical_systems') +lazy_import('sage.dynamics', 'finite_dynamical_system_catalog', + 'finite_dynamical_systems') +del lazy_import +del install_doc diff --git a/src/sage/dynamics/all__sagemath_schemes.py b/src/sage/dynamics/all__sagemath_schemes.py new file mode 100644 index 00000000000..07fd680d23c --- /dev/null +++ b/src/sage/dynamics/all__sagemath_schemes.py @@ -0,0 +1,2 @@ +# sage_setup: distribution = sagemath-schemes +from sage.dynamics.arithmetic_dynamics.all import * diff --git a/src/sage/dynamics/all__sagemath_symbolics.py b/src/sage/dynamics/all__sagemath_symbolics.py new file mode 100644 index 00000000000..8df5ae4a869 --- /dev/null +++ b/src/sage/dynamics/all__sagemath_symbolics.py @@ -0,0 +1,6 @@ +# sage_setup: distribution = sagemath-symbolics +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.dynamics.complex_dynamics.mandel_julia', + ["mandelbrot_plot", "external_ray", "kneading_sequence", "julia_plot"]) +del lazy_import diff --git a/src/sage/dynamics/arithmetic_dynamics/affine_ds.py b/src/sage/dynamics/arithmetic_dynamics/affine_ds.py index c2ad0f04cea..8fa9e9e72ff 100644 --- a/src/sage/dynamics/arithmetic_dynamics/affine_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/affine_ds.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Dynamical systems on affine schemes diff --git a/src/sage/dynamics/arithmetic_dynamics/all.py b/src/sage/dynamics/arithmetic_dynamics/all.py index 66773e29d76..563f3f5205b 100644 --- a/src/sage/dynamics/arithmetic_dynamics/all.py +++ b/src/sage/dynamics/arithmetic_dynamics/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes from sage.misc.lazy_import import lazy_import from sage.dynamics.arithmetic_dynamics.generic_ds import DynamicalSystem diff --git a/src/sage/dynamics/arithmetic_dynamics/berkovich_ds.py b/src/sage/dynamics/arithmetic_dynamics/berkovich_ds.py index 6995f61f463..8303a6fa3f4 100644 --- a/src/sage/dynamics/arithmetic_dynamics/berkovich_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/berkovich_ds.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" Dynamical systems on Berkovich space over `\CC_p`. diff --git a/src/sage/dynamics/arithmetic_dynamics/dynamical_semigroup.py b/src/sage/dynamics/arithmetic_dynamics/dynamical_semigroup.py index 43ca8843fe8..84226f449b4 100644 --- a/src/sage/dynamics/arithmetic_dynamics/dynamical_semigroup.py +++ b/src/sage/dynamics/arithmetic_dynamics/dynamical_semigroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Dynamical semigroups diff --git a/src/sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py b/src/sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py index 76ba5864fe6..c267967ffcc 100644 --- a/src/sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py +++ b/src/sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Automorphism groups of dynamical systems of the projective line diff --git a/src/sage/dynamics/arithmetic_dynamics/endPN_minimal_model.py b/src/sage/dynamics/arithmetic_dynamics/endPN_minimal_model.py index c8528c4821f..886eeb00bc0 100644 --- a/src/sage/dynamics/arithmetic_dynamics/endPN_minimal_model.py +++ b/src/sage/dynamics/arithmetic_dynamics/endPN_minimal_model.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Sage functions to compute minimal models of rational functions under the conjugation action of `PGL_2(QQ)`. diff --git a/src/sage/dynamics/arithmetic_dynamics/generic_ds.py b/src/sage/dynamics/arithmetic_dynamics/generic_ds.py index f16d99cbb11..d99249afbba 100644 --- a/src/sage/dynamics/arithmetic_dynamics/generic_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/generic_ds.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Generic dynamical systems on schemes diff --git a/src/sage/dynamics/arithmetic_dynamics/product_projective_ds.py b/src/sage/dynamics/arithmetic_dynamics/product_projective_ds.py index 3cf6ae27350..7a71e2d322f 100644 --- a/src/sage/dynamics/arithmetic_dynamics/product_projective_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/product_projective_ds.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Dynamical systems for products of projective spaces diff --git a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py index a74efd9129a..bc9afc0dcc8 100644 --- a/src/sage/dynamics/arithmetic_dynamics/projective_ds.py +++ b/src/sage/dynamics/arithmetic_dynamics/projective_ds.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Dynamical systems on projective schemes @@ -116,7 +117,10 @@ class initialization directly. lazy_import('sage.rings.padics.factory', 'Qp') lazy_import('sage.rings.qqbar', 'number_field_elements_from_algebraics') -from sage.libs.pari.all import PariError +try: + from sage.libs.pari.all import PariError +except ImportError: + PariError = () class DynamicalSystem_projective(SchemeMorphism_polynomial_projective_space, diff --git a/src/sage/dynamics/arithmetic_dynamics/projective_ds_helper.pyx b/src/sage/dynamics/arithmetic_dynamics/projective_ds_helper.pyx index 1da1efc2bd7..bd764643888 100644 --- a/src/sage/dynamics/arithmetic_dynamics/projective_ds_helper.pyx +++ b/src/sage/dynamics/arithmetic_dynamics/projective_ds_helper.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Dynamical systems on projective varieties (Cython helper) diff --git a/src/sage/dynamics/arithmetic_dynamics/wehlerK3.py b/src/sage/dynamics/arithmetic_dynamics/wehlerK3.py index 3ef9877e782..98bac39bbe4 100644 --- a/src/sage/dynamics/arithmetic_dynamics/wehlerK3.py +++ b/src/sage/dynamics/arithmetic_dynamics/wehlerK3.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Wehler K3 Surfaces diff --git a/src/sage/dynamics/complex_dynamics/all.py b/src/sage/dynamics/complex_dynamics/all.py index 0d8c4797497..9bd84366db6 100644 --- a/src/sage/dynamics/complex_dynamics/all.py +++ b/src/sage/dynamics/complex_dynamics/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics from sage.misc.lazy_import import lazy_import lazy_import("sage.dynamics.complex_dynamics.mandel_julia", ["mandelbrot_plot", "external_ray", "kneading_sequence", "julia_plot"]) diff --git a/src/sage/dynamics/complex_dynamics/mandel_julia.py b/src/sage/dynamics/complex_dynamics/mandel_julia.py index 87e98ec084d..5e0a32aa6c8 100644 --- a/src/sage/dynamics/complex_dynamics/mandel_julia.py +++ b/src/sage/dynamics/complex_dynamics/mandel_julia.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Mandelbrot and Julia sets diff --git a/src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx b/src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx index 2fd00e9b07a..55c320ea4a7 100644 --- a/src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx +++ b/src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # cython: binding=True # sage.doctest: needs sage.plot r""" diff --git a/src/sage/env.py b/src/sage/env.py index 0f287145814..d031ad530e1 100644 --- a/src/sage/env.py +++ b/src/sage/env.py @@ -245,8 +245,9 @@ def var(key: str, *fallbacks: Optional[str], force: bool = False) -> Optional[st OPENMP_CFLAGS = var("OPENMP_CFLAGS", "") OPENMP_CXXFLAGS = var("OPENMP_CXXFLAGS", "") -# Make sure mpmath uses Sage types -os.environ['MPMATH_SAGE'] = '1' +# Make sure that a non-vendored copy of mpmath (e.g. used by SymPy) does not use Sage types +os.environ.pop('MPMATH_SAGE', None) +os.environ['MPMATH_NOSAGE'] = '1' # misc SAGE_BANNER = var("SAGE_BANNER", "") @@ -292,7 +293,7 @@ def sage_include_directories(use_sources=False): Expected output while using Sage:: sage: import sage.env - sage: sage.env.sage_include_directories() + sage: sage.env.sage_include_directories() # needs numpy ['...', '.../numpy/...core/include', '.../include/python...'] @@ -357,6 +358,7 @@ def cython_aliases(required_modules=None, optional_modules=None): EXAMPLES:: + sage: # needs sage.misc.cython sage: from sage.env import cython_aliases sage: cython_aliases() {...} @@ -376,7 +378,7 @@ def cython_aliases(required_modules=None, optional_modules=None): We can use ``cython.parallel`` regardless of whether OpenMP is supported. This will run in parallel, if OpenMP is supported:: - sage: cython( # optional - sage.misc.cython + sage: cython( # needs sage.misc.cython ....: ''' ....: #distutils: extra_compile_args = OPENMP_CFLAGS ....: #distutils: extra_link_args = OPENMP_CFLAGS diff --git a/src/sage/ext/all__sagemath_categories.py b/src/sage/ext/all__sagemath_categories.py new file mode 100644 index 00000000000..4d45a2c90af --- /dev/null +++ b/src/sage/ext/all__sagemath_categories.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-categories +from sage.ext.fast_callable import fast_callable +from sage.ext.fast_eval import fast_float diff --git a/src/sage/ext/all__sagemath_modules.py b/src/sage/ext/all__sagemath_modules.py new file mode 100644 index 00000000000..6f6ab52d0f2 --- /dev/null +++ b/src/sage/ext/all__sagemath_modules.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/ext/all__sagemath_pari.py b/src/sage/ext/all__sagemath_pari.py new file mode 100644 index 00000000000..01c9cb07cd5 --- /dev/null +++ b/src/sage/ext/all__sagemath_pari.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-pari diff --git a/src/sage/ext/all__sagemath_symbolics.py b/src/sage/ext/all__sagemath_symbolics.py new file mode 100644 index 00000000000..332eaf1cdb6 --- /dev/null +++ b/src/sage/ext/all__sagemath_symbolics.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-symbolics diff --git a/src/sage/ext/cplusplus.pxd b/src/sage/ext/cplusplus.pxd index d748bf2347a..d5d2035ebe3 100644 --- a/src/sage/ext/cplusplus.pxd +++ b/src/sage/ext/cplusplus.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects #***************************************************************************** # Copyright (C) 2017 Jeroen Demeyer # diff --git a/src/sage/ext/fast_callable.pxd b/src/sage/ext/fast_callable.pxd index 73dd0311c12..9e03efad5d5 100644 --- a/src/sage/ext/fast_callable.pxd +++ b/src/sage/ext/fast_callable.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories cdef class Wrapper: cdef readonly object _orig_args cdef readonly object _metadata diff --git a/src/sage/ext/fast_callable.pyx b/src/sage/ext/fast_callable.pyx index c7b4664ff1a..cebbf603cd7 100644 --- a/src/sage/ext/fast_callable.pyx +++ b/src/sage/ext/fast_callable.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Fast Expression Evaluation @@ -1761,15 +1762,19 @@ cpdef dict get_builtin_functions(): op_pow: 'pow', } - # not handled: atan2, log2, log10 - import sage.functions.all as func_all - for fn in ('sqrt', 'ceil', 'floor', - 'sin', 'cos', 'tan', 'sec', 'csc', 'cot', - 'asin', 'acos', 'atan', 'sinh', 'cosh', 'tanh', - 'asinh', 'acosh', 'atanh', 'exp', 'log'): - builtin_functions[getattr(func_all, fn)] = fn - builtin_functions[func_all.abs_symbolic] = 'abs' - builtin_functions[func_all.ln] = 'log' + try: + import sage.functions.all as func_all + except ImportError: + pass + else: + # not handled: atan2, log2, log10 + for fn in ('sqrt', 'ceil', 'floor', + 'sin', 'cos', 'tan', 'sec', 'csc', 'cot', + 'asin', 'acos', 'atan', 'sinh', 'cosh', 'tanh', + 'asinh', 'acosh', 'atanh', 'exp', 'log'): + builtin_functions[getattr(func_all, fn)] = fn + builtin_functions[func_all.abs_symbolic] = 'abs' + builtin_functions[func_all.ln] = 'log' return builtin_functions diff --git a/src/sage/ext/fast_eval.pxd b/src/sage/ext/fast_eval.pxd index e69de29bb2d..b230a6a2ad9 100644 --- a/src/sage/ext/fast_eval.pxd +++ b/src/sage/ext/fast_eval.pxd @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/ext/fast_eval.pyx b/src/sage/ext/fast_eval.pyx index cd14c0b0893..efc844860be 100644 --- a/src/sage/ext/fast_eval.pyx +++ b/src/sage/ext/fast_eval.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Fast Numerical Evaluation diff --git a/src/sage/ext/memory.pyx b/src/sage/ext/memory.pyx index 76f51623d96..00ea245d0a0 100644 --- a/src/sage/ext/memory.pyx +++ b/src/sage/ext/memory.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Low-level memory allocation functions diff --git a/src/sage/ext/meson.build.in b/src/sage/ext/meson.build.in new file mode 100644 index 00000000000..c9488170a41 --- /dev/null +++ b/src/sage/ext/meson.build.in @@ -0,0 +1,46 @@ +interpreters = custom_target( + 'sage.ext.interpreters', + output: 'all.py', + input: '../../sage_setup/autogen/interpreters/__init__.py', + command: [py, '-m', 'sage_setup.autogen.interpreters', meson.current_source_dir() / 'interpreters'], + # This is actually against the Meson philosophy, which does not like in-source builds. + # So normally you would do something like the following + # however, this we currently cannot pass the generated files as sources to install_sources + # properly fixing this is left for a follow-up + # command: [py, '-m', 'sage_setup.autogen.interpreters','@OUTDIR@'], + env: ['PYTHONPATH=' + meson.current_source_dir() / '..' / '..'], +) + +# Manually create header files, which otherwise is not found +wrapper_el_header = custom_target( + 'wrapper_el.h', + output : 'wrapper_el.h', + input : ['interpreters/wrapper_el.pyx', interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], +) +wrapper_cc_header = custom_target( + 'wrapper_cc.h', + output : 'wrapper_cc.h', + input : ['interpreters/wrapper_cc.pyx', interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], +) +wrapper_cdf_header = custom_target( + 'wrapper_cdf.h', + output : 'wrapper_cdf.h', + input : ['interpreters/wrapper_cdf.pyx', interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], +) +wrapper_rr_header = custom_target( + 'wrapper_rr.h', + output : 'wrapper_rr.h', + input : ['interpreters/wrapper_rr.pyx', interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], +) + +interpreters_dep = declare_dependency( + sources: [interpreters, wrapper_el_header, wrapper_cc_header, wrapper_cdf_header, wrapper_rr_header], +) + +if get_variable('distribution_sagemath_categories', false) + subdir('interpreters') +endif diff --git a/src/sage/ext/mod_int.pxd b/src/sage/ext/mod_int.pxd index f2ef6fe5527..98be0ab54dd 100644 --- a/src/sage/ext/mod_int.pxd +++ b/src/sage/ext/mod_int.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects """ The `mod_int` Data Type diff --git a/src/sage/ext_data/all__sagemath_gap.py b/src/sage/ext_data/all__sagemath_gap.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/ext_data/all__sagemath_gap.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/ext_data/all__sagemath_singular.py b/src/sage/ext_data/all__sagemath_singular.py new file mode 100644 index 00000000000..84ec2b51067 --- /dev/null +++ b/src/sage/ext_data/all__sagemath_singular.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-singular diff --git a/src/sage/ext_data/gap/__init__.py b/src/sage/ext_data/gap/__init__.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/ext_data/gap/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/features/__init__.py b/src/sage/features/__init__.py index 81602180d80..1822893728a 100644 --- a/src/sage/features/__init__.py +++ b/src/sage/features/__init__.py @@ -108,6 +108,9 @@ def __classcall__(cls, *args, **options): return cached +_spkg_type_warnings = [] + + class Feature(TrivialUniqueRepresentation): r""" A feature of the runtime environment. @@ -164,11 +167,10 @@ def __init__(self, name, spkg=None, url=None, description=None, type='optional') pass else: if spkg and (t := spkg_type(spkg)) not in (type, None): - from warnings import warn - warn(f'Feature {name} is declared {type}, ' - f'but it is provided by {spkg}, ' - f'which is declared {t} in SAGE_ROOT/build/pkgs', - stacklevel=3) + _spkg_type_warnings.append( + f'Feature {name} is declared {type}, ' + f'but it is provided by {spkg}, ' + f'which is declared {t} in SAGE_ROOT/build/pkgs') def is_present(self): r""" @@ -318,9 +320,10 @@ def joined_features(self): sage: from sage.features.sagemath import sage__rings__function_field sage: sage__rings__function_field().joined_features() [Feature('sage.rings.function_field.function_field_polymod'), - Feature('sage.libs.singular'), - Feature('sage.libs.singular.singular'), - Feature('sage.interfaces.singular')] + Feature('sage.libs.singular'), + Feature('sage.libs.singular.singular'), + Feature('sage.interfaces.singular'), + Feature('sage.rings.polynomial.plural')] sage: from sage.features.interfaces import Mathematica sage: Mathematica().joined_features() [] diff --git a/src/sage/features/all.py b/src/sage/features/all.py index 14d2480d520..d3a30a2029b 100644 --- a/src/sage/features/all.py +++ b/src/sage/features/all.py @@ -24,6 +24,12 @@ def all_features(): sage: from sage.features.all import all_features sage: sorted(all_features(), key=lambda f: f.name) # random [...Feature('sage.combinat')...] + + TESTS:: + + sage: from sage.features import _spkg_type_warnings + sage: for a in _spkg_type_warnings: + ....: print(a) """ import pkgutil import importlib @@ -55,13 +61,13 @@ def module_feature(module_name): EXAMPLES:: sage: from sage.features.all import module_feature - sage: module_feature('sage.combinat.tableau') # needs sage.combinat + sage: module_feature('sage.combinat.tableau') Feature('sage.combinat') - sage: module_feature('sage.combinat.posets.poset') # needs sage.graphs + sage: module_feature('sage.combinat.posets.poset') Feature('sage.graphs') - sage: module_feature('sage.schemes.toric.variety') # needs sage.geometry.polyhedron + sage: module_feature('sage.schemes.toric.variety') Feature('sage.geometry.polyhedron') - sage: module_feature('scipy') # needs scipy + sage: module_feature('scipy') Feature('scipy') sage: print(module_feature('sage.structure.element')) None diff --git a/src/sage/features/join_feature.py b/src/sage/features/join_feature.py index fd993e90e1b..6e8dde1f415 100644 --- a/src/sage/features/join_feature.py +++ b/src/sage/features/join_feature.py @@ -138,7 +138,7 @@ def unhide(self): sage: f.unhide() sage: f.is_present() # optional sage.groups FeatureTestResult('sage.groups', True) - sage: f._features[0].is_present() # optional sage.groups + sage: f._features[0].is_present() # needs sage.groups FeatureTestResult('sage.groups.perm_gps.permgroup', True) """ for f in self._features: diff --git a/src/sage/features/mip_backends.py b/src/sage/features/mip_backends.py index a6aa0ff2525..05496940e46 100644 --- a/src/sage/features/mip_backends.py +++ b/src/sage/features/mip_backends.py @@ -97,7 +97,7 @@ def __init__(self): TESTS:: sage: from sage.features.mip_backends import CVXOPT - sage: CVXOPT()._is_present() # optional - cvxopt + sage: CVXOPT()._is_present() # needs cvxopt FeatureTestResult('cvxopt', True) """ JoinFeature.__init__(self, 'cvxopt', diff --git a/src/sage/features/sagemath.py b/src/sage/features/sagemath.py index f536665d8cc..3215d92d606 100644 --- a/src/sage/features/sagemath.py +++ b/src/sage/features/sagemath.py @@ -104,6 +104,28 @@ def __init__(self): type='standard') +class sage__all(PythonModule): + r""" + A :class:`~sage.features.Feature` describing the presence of :mod:`sage.all`. + + EXAMPLES:: + + sage: from sage.features.sagemath import sage__all + sage: sage__all().is_present() # needs sage.all + FeatureTestResult('sage.all', True) + """ + + def __init__(self): + r""" + TESTS:: + + sage: from sage.features.sagemath import sage__all + sage: isinstance(sage__all(), sage__all) + True + """ + PythonModule.__init__(self, 'sage.all') + + class sage__combinat(JoinFeature): r""" A :class:`~sage.features.Feature` describing the presence of :mod:`sage.combinat`. @@ -127,10 +149,10 @@ class sage__combinat(JoinFeature): Doctests that use Python modules from :mod:`sage.combinat` that involve trees, graphs, hypergraphs, posets, quivers, combinatorial designs, - finite state machines etc. should be marked ``# needs sage.combinat sage.graphs``:: + finite state machines etc. should be marked ``# needs sage.graphs`` instead:: - sage: L = Poset({0: [1], 1: [2], 2:[3], 3:[4]}) # needs sage.combinat sage.graphs - sage: L.is_chain() # needs sage.combinat sage.graphs + sage: L = Poset({0: [1], 1: [2], 2:[3], 3:[4]}) # needs sage.graphs + sage: L.is_chain() # needs sage.graphs True Doctests that use combinatorial modules/algebras, or root systems should use the tag @@ -146,10 +168,10 @@ class sage__combinat(JoinFeature): Positive imaginary roots of type ['A', 3, 1] Doctests that use lattices, semilattices, or Dynkin diagrams should use the tag - ``# needs sage.combinat sage.graphs sage.modules``:: + ``# needs sage.graphs sage.modules``:: - sage: L = LatticePoset({0: [1,2], 1: [3], 2: [3,4], 3: [5], 4: [5]}) # needs sage.combinat sage.graphs sage.modules - sage: L.meet_irreducibles() # needs sage.combinat sage.graphs sage.modules + sage: L = LatticePoset({0: [1,2], 1: [3], 2: [3,4], 3: [5], 4: [5]}) # needs sage.graphs sage.modules + sage: L.meet_irreducibles() # needs sage.graphs sage.modules [1, 3, 4] TESTS:: @@ -173,6 +195,8 @@ def __init__(self): JoinFeature.__init__(self, 'sage.combinat', [PythonModule('sage.combinat'), # namespace package PythonModule('sage.combinat.tableau'), # representative + PythonModule('sage.monoids'), # namespace package + PythonModule('sage.monoids.hecke_monoid'), # representative ], spkg='sagemath_combinat', type='standard') @@ -215,8 +239,10 @@ def __init__(self): JoinFeature.__init__(self, 'sage.geometry.polyhedron', [PythonModule('sage.geometry'), # namespace package PythonModule('sage.geometry.polyhedron'), # representative + PythonModule('sage.geometry.newton_polygon'), PythonModule('sage.schemes.toric'), # namespace package PythonModule('sage.schemes.toric.variety'), # representative + # sage__modules(), ], spkg='sagemath_polyhedra', type='standard') @@ -366,7 +392,7 @@ class sage__libs__ecl(PythonModule): EXAMPLES:: sage: from sage.features.sagemath import sage__libs__ecl - sage: sage__libs__ecl().is_present() # optional - sage.libs.ecl + sage: sage__libs__ecl().is_present() # needs sage.libs.ecl FeatureTestResult('sage.libs.ecl', True) """ @@ -405,8 +431,12 @@ def __init__(self): True """ JoinFeature.__init__(self, 'sage.libs.flint', - [PythonModule('sage.libs.flint.arith_sage'), - PythonModule('sage.libs.flint.flint_sage')], + [PythonModule('sage.libs.flint.flint_sage'), + PythonModule('sage.libs.flint.arith_sage'), + PythonModule('sage.rings.padics.padic_relaxed_element'), + PythonModule('sage.rings.padics.pow_computer_flint'), + PythonModule('sage.graphs.chrompoly'), + PythonModule('sage.graphs.matchpoly')], spkg='sagemath_flint', type='standard') @@ -453,6 +483,58 @@ def __init__(self): PythonModule('sage.rings.universal_cyclotomic_field')]) +class sage__libs__giac(JoinFeature): + r""" + A :class:`sage.features.Feature` describing the presence of :mod:`sage.libs.giac`. + + In addition to the modularization purposes that this tag serves, + it also provides attribution to the upstream project. + + TESTS:: + + sage: from sage.features.sagemath import sage__libs__giac + sage: sage__libs__giac().is_present() # needs sage.libs.giac + FeatureTestResult('sage.libs.giac', True) + """ + def __init__(self): + r""" + TESTS:: + + sage: from sage.features.sagemath import sage__libs__giac + sage: isinstance(sage__libs__giac(), sage__libs__giac) + True + """ + JoinFeature.__init__(self, 'sage.libs.giac', + [PythonModule('sage.libs.giac.giac')], + spkg='sagemath_giac', type='standard') + + +class sage__libs__homfly(JoinFeature): + r""" + A :class:`sage.features.Feature` describing the presence of :mod:`sage.libs.homfly`. + + In addition to the modularization purposes that this tag serves, + it also provides attribution to the upstream project. + + TESTS:: + + sage: from sage.features.sagemath import sage__libs__homfly + sage: sage__libs__homfly().is_present() # needs sage.libs.homfly + FeatureTestResult('sage.libs.homfly', True) + """ + def __init__(self): + r""" + TESTS:: + + sage: from sage.features.sagemath import sage__libs__homfly + sage: isinstance(sage__libs__homfly(), sage__libs__homfly) + True + """ + JoinFeature.__init__(self, 'sage.libs.homfly', + [PythonModule('sage.libs.homfly')], + spkg='sagemath_homfly', type='standard') + + class sage__libs__linbox(JoinFeature): r""" A :class:`sage.features.Feature` describing the presence of :mod:`sage.libs.linbox` @@ -478,7 +560,9 @@ def __init__(self): JoinFeature.__init__(self, 'sage.libs.linbox', [PythonModule('sage.rings.finite_rings.element_givaro'), PythonModule('sage.matrix.matrix_modn_dense_float'), - PythonModule('sage.matrix.matrix_modn_dense_double')], + PythonModule('sage.matrix.matrix_modn_dense_double'), + PythonModule('sage.matrix.matrix_integer_dense'), + PythonModule('sage.matrix.matrix_rational_dense')], spkg='sagemath_linbox', type='standard') @@ -487,8 +571,8 @@ class sage__libs__m4ri(JoinFeature): A :class:`sage.features.Feature` describing the presence of Cython modules depending on the M4RI and/or M4RIe libraries. - In addition to the modularization purposes that this tag serves, - it also provides attribution to the upstream project. + In addition to the modularization purposes that this tag serves, it also provides attribution + to the upstream project. TESTS:: @@ -533,62 +617,12 @@ def __init__(self): True """ JoinFeature.__init__(self, 'sage.libs.ntl', - [PythonModule('sage.libs.ntl.convert')], + [PythonModule('sage.libs.ntl.convert'), + PythonModule('sage.rings.polynomial.polynomial_integer_dense_ntl'), + ], spkg='sagemath_ntl', type='standard') -class sage__libs__giac(JoinFeature): - r""" - A :class:`sage.features.Feature` describing the presence of :mod:`sage.libs.giac`. - - In addition to the modularization purposes that this tag serves, - it also provides attribution to the upstream project. - - TESTS:: - - sage: from sage.features.sagemath import sage__libs__giac - sage: sage__libs__giac().is_present() # needs sage.libs.giac - FeatureTestResult('sage.libs.giac', True) - """ - def __init__(self): - r""" - TESTS:: - - sage: from sage.features.sagemath import sage__libs__giac - sage: isinstance(sage__libs__giac(), sage__libs__giac) - True - """ - JoinFeature.__init__(self, 'sage.libs.giac', - [PythonModule('sage.libs.giac.giac')], - spkg='sagemath_giac', type='standard') - - -class sage__libs__homfly(JoinFeature): - r""" - A :class:`sage.features.Feature` describing the presence of :mod:`sage.libs.homfly`. - - In addition to the modularization purposes that this tag serves, - it also provides attribution to the upstream project. - - TESTS:: - - sage: from sage.features.sagemath import sage__libs__homfly - sage: sage__libs__homfly().is_present() # needs sage.libs.homfly - FeatureTestResult('sage.libs.homfly', True) - """ - def __init__(self): - r""" - TESTS:: - - sage: from sage.features.sagemath import sage__libs__homfly - sage: isinstance(sage__libs__homfly(), sage__libs__homfly) - True - """ - JoinFeature.__init__(self, 'sage.libs.homfly', - [PythonModule('sage.libs.homfly')], - spkg='sagemath_homfly', type='standard') - - class sage__libs__pari(JoinFeature): r""" A :class:`~sage.features.Feature` describing the presence of :mod:`sage.libs.pari`. @@ -623,7 +657,8 @@ def __init__(self): True """ JoinFeature.__init__(self, 'sage.libs.pari', - [PythonModule('sage.libs.pari.convert_sage')], + [PythonModule('sage.interfaces.gp'), + PythonModule('sage.libs.pari.convert_gmp')], spkg='sagemath_pari', type='standard') @@ -655,7 +690,8 @@ def __init__(self): """ JoinFeature.__init__(self, 'sage.libs.singular', [PythonModule('sage.libs.singular.singular'), - PythonModule('sage.interfaces.singular')]) + PythonModule('sage.interfaces.singular'), + PythonModule('sage.rings.polynomial.plural')]) class sage__modular(JoinFeature): @@ -719,6 +755,8 @@ def __init__(self): PythonModule('sage.modules.free_module'), # representative PythonModule('sage.matrix'), # namespace package PythonModule('sage.matrix.matrix2'), # representative + PythonModule('sage.coding'), # namespace package + PythonModule('sage.coding.kasami_codes'), # representative PythonModule('sage.combinat.free_module'), PythonModule('sage.quadratic_forms'), # namespace package PythonModule('sage.quadratic_forms.quadratic_form'), # representative @@ -777,7 +815,8 @@ def __init__(self): True """ JoinFeature.__init__(self, 'sage.plot', - [PythonModule('sage.plot.plot')], + [PythonModule('sage.plot.plot'), + PythonModule('matplotlib')], spkg='sagemath_plot', type='standard') @@ -803,6 +842,30 @@ def __init__(self): spkg='sagemath_modules', type='standard') +class sage__rings__complex_interval_field(JoinFeature): + r""" + A :class:`~sage.features.Feature` describing the presence of :mod:`sage.rings.complex_interval_field`. + + TESTS:: + + sage: from sage.features.sagemath import sage__rings__complex_interval_field + sage: sage__rings__complex_interval_field().is_present() # needs sage.rings.complex_interval_field + FeatureTestResult('sage.rings.complex_interval_field', True) + """ + def __init__(self): + r""" + TESTS:: + + sage: from sage.features.sagemath import sage__rings__complex_interval_field + sage: isinstance(sage__rings__complex_interval_field(), sage__rings__complex_interval_field) + True + """ + JoinFeature.__init__(self, 'sage.rings.complex_interval_field', + [PythonModule('sage.rings.complex_interval_field'), + PythonModule('sage.rings.cif')], + spkg='sagemath_modules', type='standard') + + class sage__rings__finite_rings(JoinFeature): r""" A :class:`~sage.features.Feature` describing the presence of :mod:`sage.rings.finite_rings`; @@ -938,8 +1001,10 @@ def __init__(self): """ JoinFeature.__init__(self, 'sage.rings.number_field', [PythonModule('sage.rings.number_field.number_field_element'), - PythonModule('sage.rings.universal_cyclotomic_field'), - PythonModule('sage.rings.qqbar')], + PythonModule('sage.rings.number_field.number_field_element_quadratic'), + PythonModule('sage.rings.qqbar'), + PythonModule('sage.rings.polynomial.real_roots'), + sage__libs__flint()], type='standard') @@ -947,6 +1012,20 @@ class sage__rings__padics(JoinFeature): r""" A :class:`~sage.features.Feature` describing the presence of ``sage.rings.padics``. + This includes the element implementations using :ref:`PARI ` and :ref:`NTL `. + + EXAMPLES:: + + sage: Qp(3) # needs sage.rings.padics + sage: Qq(125) # needs sage.rings.padics + + Some other precision models require the additional feature :mod:`sage.libs.flint`:: + + sage: R. = QqFP(25, 40); R # needs sage.libs.flint sage.rings.padics + 5-adic Unramified Extension Field in a defined by x^2 + 4*x + 2 + sage: R. = Zq(9, 5, 'fixed-mod', print_mode='series'); b = 3*(1+2*a)^4; b # needs sage.libs.flint sage.rings.padics + 2*3 + (2*a + 2)*3^2 + (2*a + 1)*3^3 + TESTS:: sage: from sage.features.sagemath import sage__rings__padics @@ -962,7 +1041,9 @@ def __init__(self): True """ JoinFeature.__init__(self, 'sage.rings.padics', - [PythonModule('sage.rings.padics.factory')], + [PythonModule('sage.rings.padics.factory'), + PythonModule('sage.rings.padics.padic_ext_element'), + PythonModule('polynomial_padic_capped_relative_dense')], type='standard') @@ -986,7 +1067,7 @@ def __init__(self): """ JoinFeature.__init__(self, 'sage.rings.polynomial.pbori', [PythonModule('sage.rings.polynomial.pbori.pbori')], - spkg='sagemath_brial', type='standard') + spkg='sagemath_brial', type='optional') class sage__rings__real_double(PythonModule): @@ -1020,6 +1101,31 @@ def __init__(self): PythonModule.__init__(self, 'sage.rings.real_double', type='standard') +class sage__rings__real_interval_field(JoinFeature): + r""" + A :class:`~sage.features.Feature` describing the presence of :mod:`sage.rings.real_mpfi`. + + It provides the :class:`RealIntervalField`. + + TESTS:: + + sage: from sage.features.sagemath import sage__rings__real_interval_field + sage: sage__rings__real_interval_field().is_present() # needs sage.rings.real_interval_field + FeatureTestResult('sage.rings.real_interval_field', True) + """ + def __init__(self): + r""" + TESTS:: + + sage: from sage.features.sagemath import sage__rings__real_interval_field + sage: isinstance(sage__rings__real_interval_field(), sage__rings__real_interval_field) + True + """ + JoinFeature.__init__(self, 'sage.rings.real_interval_field', + [PythonModule('sage.rings.real_mpfi')], + type='standard') + + class sage__rings__real_mpfr(JoinFeature): r""" A :class:`~sage.features.Feature` describing the presence of :mod:`sage.rings.real_mpfr`. @@ -1040,6 +1146,7 @@ def __init__(self): """ JoinFeature.__init__(self, 'sage.rings.real_mpfr', [PythonModule('sage.rings.real_mpfr'), + PythonModule('sage.rings.cc'), PythonModule('sage.rings.complex_mpfr'), ], spkg='sagemath_modules', type='standard') @@ -1064,7 +1171,7 @@ def __init__(self): True """ JoinFeature.__init__(self, 'sage.sat', - [PythonModule('sage.sat.expression')], + [PythonModule('sage.sat.solvers.satsolver')], spkg='sagemath_combinat', type='standard') @@ -1087,7 +1194,8 @@ def __init__(self): True """ JoinFeature.__init__(self, 'sage.schemes', - [PythonModule('sage.schemes.elliptic_curves.ell_generic')], + [PythonModule('sage.schemes.elliptic_curves.ell_generic'), + sage__modules()], spkg='sagemath_schemes', type='standard') @@ -1173,6 +1281,7 @@ def all_features(): """ return [SAGE_SRC(), sagemath_doc_html(), + sage__all(), sage__combinat(), sage__geometry__polyhedron(), sage__graphs(), @@ -1193,12 +1302,14 @@ def all_features(): sage__numerical__mip(), sage__plot(), sage__rings__complex_double(), + sage__rings__complex_interval_field(), sage__rings__finite_rings(), sage__rings__function_field(), sage__rings__number_field(), sage__rings__padics(), sage__rings__polynomial__pbori(), sage__rings__real_double(), + sage__rings__real_interval_field(), sage__rings__real_mpfr(), sage__sat(), sage__schemes(), diff --git a/src/sage/features/sphinx.py b/src/sage/features/sphinx.py index 672b826f59d..87633ad4b1d 100644 --- a/src/sage/features/sphinx.py +++ b/src/sage/features/sphinx.py @@ -25,7 +25,7 @@ class Sphinx(PythonModule): EXAMPLES:: sage: from sage.features.sphinx import Sphinx - sage: Sphinx().is_present() # optional - sphinx + sage: Sphinx().is_present() # needs sphinx FeatureTestResult('sphinx', True) """ def __init__(self): diff --git a/src/sage/features/standard.py b/src/sage/features/standard.py index c4055263e79..5480bfbc1c3 100644 --- a/src/sage/features/standard.py +++ b/src/sage/features/standard.py @@ -23,7 +23,9 @@ def all_features(): PythonModule('fpylll', spkg='fpylll', type='standard'), JoinFeature('ipython', (PythonModule('IPython'),), spkg='ipython', type='standard'), JoinFeature('lrcalc_python', (PythonModule('lrcalc'),), spkg='lrcalc_python', type='standard'), - PythonModule('mpmath', spkg='mpmath', type='standard'), + JoinFeature('mpmath', (PythonModule('sage.libs.mpmath'), + PythonModule('sage.libs.mpmath.all'),), + spkg='sagemath_mpmath', type='standard'), PythonModule('networkx', spkg='networkx', type='standard'), PythonModule('numpy', spkg='numpy', type='standard'), PythonModule('pexpect', spkg='pexpect', type='standard'), diff --git a/src/sage/features/threejs.py b/src/sage/features/threejs.py index 8698b84e0e5..33f484ea4e4 100644 --- a/src/sage/features/threejs.py +++ b/src/sage/features/threejs.py @@ -67,8 +67,11 @@ def required_version(self): filename = Path(SAGE_EXTCODE) / 'threejs' / 'threejs-version.txt' - with open(filename) as f: - return f.read().strip() + try: + with open(filename) as f: + return f.read().strip() + except FileNotFoundError: + return "unknown" def all_features(): diff --git a/src/sage/functions/airy.py b/src/sage/functions/airy.py index d8f1a79fa8b..089851916de 100644 --- a/src/sage/functions/airy.py +++ b/src/sage/functions/airy.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Airy functions @@ -54,8 +55,8 @@ lazy_import('sage.symbolic.ring', 'SR') -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') -lazy_import('mpmath', ['airyai', 'airybi'], +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') +lazy_import('sage.libs.mpmath.all', ['airyai', 'airybi'], as_=['_mpmath_airyai', '_mpmath_airybi']) @@ -148,7 +149,7 @@ def _evalf_(self, alpha, x, parent=None, algorithm=None): sage: airy_ai_general(-2, 1.0) # needs mpmath 0.136645379421096 """ - return _mpmath_utils_call(_mpmath_airyai, x, derivative=alpha, + return _mpmath_call(_mpmath_airyai, x, derivative=alpha, parent=parent) @@ -252,7 +253,7 @@ def _evalf_(self, x, **kwargs): return CC(y) return parent(y) elif algorithm == 'mpmath': - return _mpmath_utils_call(_mpmath_airyai, x, parent=parent) + return _mpmath_call(_mpmath_airyai, x, parent=parent) else: raise ValueError("unknown algorithm '%s'" % algorithm) @@ -352,7 +353,7 @@ def _evalf_(self, x, **kwargs): return CC(y) return parent(y) elif algorithm == 'mpmath': - return _mpmath_utils_call(_mpmath_airyai, x, derivative=1, + return _mpmath_call(_mpmath_airyai, x, derivative=1, parent=parent) else: raise ValueError("unknown algorithm '%s'" % algorithm) @@ -583,9 +584,8 @@ def _evalf_(self, alpha, x, **kwargs): 0.388621540699059 """ parent = kwargs.get('parent') - import mpmath from sage.libs.mpmath import utils as mpmath_utils - return _mpmath_utils_call(_mpmath_airybi, x, derivative=alpha, + return _mpmath_call(_mpmath_airybi, x, derivative=alpha, parent=parent) @@ -691,9 +691,8 @@ def _evalf_(self, x, **kwargs): return CC(y) return parent(y) elif algorithm == 'mpmath': - import mpmath from sage.libs.mpmath import utils as mpmath_utils - return _mpmath_utils_call(_mpmath_airybi, x, parent=parent) + return _mpmath_call(_mpmath_airybi, x, parent=parent) else: raise ValueError("unknown algorithm '%s'" % algorithm) @@ -793,7 +792,7 @@ def _evalf_(self, x, **kwargs): return CC(y) return parent(y) elif algorithm == 'mpmath': - return _mpmath_utils_call(_mpmath_airybi, x, derivative=1, + return _mpmath_call(_mpmath_airybi, x, derivative=1, parent=parent) else: raise ValueError("unknown algorithm '%s'" % algorithm) diff --git a/src/sage/functions/all.py b/src/sage/functions/all.py index 4e4c092bc0f..cd3ef41a7ab 100644 --- a/src/sage/functions/all.py +++ b/src/sage/functions/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.misc.lazy_import import lazy_import diff --git a/src/sage/functions/bessel.py b/src/sage/functions/bessel.py index 1cd132b3a45..1835f73537d 100644 --- a/src/sage/functions/bessel.py +++ b/src/sage/functions/bessel.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Bessel functions @@ -230,8 +231,8 @@ lazy_import('sage.symbolic.constants', 'pi') lazy_import('sage.symbolic.ring', 'SR') -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') -lazy_import('mpmath', +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') +lazy_import('sage.libs.mpmath.all', ['besseli', 'besselj', 'besselk', 'bessely', 'hankel1', 'hankel2', 'struveh', 'struvel'], @@ -418,7 +419,7 @@ def _evalf_(self, n, x, parent=None, algorithm=None): pass n, x = get_coercion_model().canonical_coercion(n, x) - return _mpmath_utils_call(_mpmath_besselj, n, x, parent=parent) + return _mpmath_call(_mpmath_besselj, n, x, parent=parent) def _derivative_(self, n, x, diff_param): """ @@ -637,7 +638,7 @@ def _evalf_(self, n, x, parent=None, algorithm=None): pass n, x = get_coercion_model().canonical_coercion(n, x) - return _mpmath_utils_call(_mpmath_bessely, n, x, parent=parent) + return _mpmath_call(_mpmath_bessely, n, x, parent=parent) def _derivative_(self, n, x, diff_param): """ @@ -830,7 +831,7 @@ def _evalf_(self, n, x, parent=None, algorithm=None): sage: bessel_I(1,3).n(digits=20) # needs sage.symbolic 3.9533702174026093965 """ - return _mpmath_utils_call(_mpmath_besseli, n, x, parent=parent) + return _mpmath_call(_mpmath_besseli, n, x, parent=parent) def _derivative_(self, n, x, diff_param): """ @@ -1028,7 +1029,7 @@ def _evalf_(self, n, x, parent=None, algorithm=None): sage: bessel_K(0, RealField(128)(1)) # needs sage.rings.real_mpfr 0.42102443824070833333562737921260903614 """ - return _mpmath_utils_call(_mpmath_besselk, n, x, parent=parent) + return _mpmath_call(_mpmath_besselk, n, x, parent=parent) def _derivative_(self, n, x, diff_param): """ @@ -1329,7 +1330,7 @@ def _evalf_(self, a, z, parent=None, algorithm=None): sage: struve_H(1/2, pi).n(200) # needs sage.symbolic 0.9003163161571060695551991910... """ - return _mpmath_utils_call(_mpmath_struveh, a, z, parent=parent) + return _mpmath_call(_mpmath_struveh, a, z, parent=parent) def _derivative_(self, a, z, diff_param=None): """ @@ -1444,7 +1445,7 @@ def _evalf_(self, a, z, parent=None, algorithm=None): sage: struve_L(1/2, pi).n(200) # needs sage.symbolic 4.768054176962864289162484345... """ - return _mpmath_utils_call(_mpmath_struvel, a, z, parent=parent) + return _mpmath_call(_mpmath_struvel, a, z, parent=parent) def _derivative_(self, a, z, diff_param=None): """ @@ -1513,7 +1514,7 @@ def __init__(self): sympy='hankel1', fricas='hankelH1')) - def _evalf_(self, nu, z, parent, algorithm=None): + def _evalf_(self, nu, z, parent=None, algorithm=None): r""" TESTS:: @@ -1522,7 +1523,7 @@ def _evalf_(self, nu, z, parent, algorithm=None): sage: hankel1(I, I).n() # needs sage.symbolic -0.886357449263715*I """ - return _mpmath_utils_call(_mpmath_hankel1, nu, z, parent=parent) + return _mpmath_call(_mpmath_hankel1, nu, z, parent=parent) def _latex_(self): r""" @@ -1600,7 +1601,7 @@ def __init__(self): sympy='hankel2', fricas='hankelH2')) - def _evalf_(self, nu, z, parent, algorithm=None): + def _evalf_(self, nu, z, parent=None, algorithm=None): r""" TESTS:: @@ -1609,7 +1610,7 @@ def _evalf_(self, nu, z, parent, algorithm=None): sage: hankel2(I, I).n() # needs sage.symbolic 0.790274862674015 + 0.444006335520019*I """ - return _mpmath_utils_call(_mpmath_hankel2, nu, z, parent=parent) + return _mpmath_call(_mpmath_hankel2, nu, z, parent=parent) def _latex_(self): r""" @@ -1698,7 +1699,7 @@ def __init__(self): BuiltinFunction.__init__(self, 'spherical_bessel_J', nargs=2, conversions=conversions) - def _evalf_(self, n, z, parent, algorithm=None): + def _evalf_(self, n, z, parent=None, algorithm=None): r""" TESTS:: @@ -1707,7 +1708,7 @@ def _evalf_(self, n, z, parent, algorithm=None): sage: spherical_bessel_J(I, I).n() # needs sage.symbolic 0.215520585196889 - 0.282308805801851*I """ - return _mpmath_utils_call(spherical_bessel_f, 'besselj', n, z, + return _mpmath_call(spherical_bessel_f, 'besselj', n, z, parent=parent) def _latex_(self): @@ -1797,7 +1798,7 @@ def __init__(self): BuiltinFunction.__init__(self, 'spherical_bessel_Y', nargs=2, conversions=conversions) - def _evalf_(self, n, z, parent, algorithm=None): + def _evalf_(self, n, z, parent=None, algorithm=None): r""" TESTS:: @@ -1806,7 +1807,7 @@ def _evalf_(self, n, z, parent, algorithm=None): sage: spherical_bessel_Y(I, I).n() # needs sage.symbolic -0.174225389805399 + 1.36247234140312*I """ - return _mpmath_utils_call(spherical_bessel_f, 'bessely', n, z, + return _mpmath_call(spherical_bessel_f, 'bessely', n, z, parent=parent) def _latex_(self): @@ -1895,7 +1896,7 @@ def __init__(self): BuiltinFunction.__init__(self, 'spherical_hankel1', nargs=2, conversions=conversions) - def _evalf_(self, n, z, parent, algorithm=None): + def _evalf_(self, n, z, parent=None, algorithm=None): r""" TESTS:: @@ -1904,7 +1905,7 @@ def _evalf_(self, n, z, parent, algorithm=None): sage: spherical_hankel1(I, I).n() # needs sage.symbolic -1.14695175620623 - 0.456534195607250*I """ - return _mpmath_utils_call(spherical_bessel_f, 'hankel1', n, z, + return _mpmath_call(spherical_bessel_f, 'hankel1', n, z, parent=parent) def _latex_(self): @@ -1996,7 +1997,7 @@ def __init__(self): conversions=dict(mathematica='SphericalHankelH2', maxima='spherical_hankel2')) - def _evalf_(self, n, z, parent, algorithm=None): + def _evalf_(self, n, z, parent=None, algorithm=None): r""" TESTS:: @@ -2005,7 +2006,7 @@ def _evalf_(self, n, z, parent, algorithm=None): sage: spherical_hankel2(I, I).n() # needs sage.symbolic 1.57799292660001 - 0.108083415996452*I """ - return _mpmath_utils_call(spherical_bessel_f, 'hankel2', n, z, + return _mpmath_call(spherical_bessel_f, 'hankel2', n, z, parent=parent) def _latex_(self): @@ -2082,7 +2083,7 @@ def spherical_bessel_f(F, n, z): sage: spherical_bessel_f('bessely', 3, -4) # needs mpmath mpc(real='-0.21864196590306359', imag='0.0') """ - from mpmath import mp as ctx + from sage.libs.mpmath.all import mp as ctx prec = ctx.prec try: n = ctx.convert(n) diff --git a/src/sage/functions/error.py b/src/sage/functions/error.py index 78eb4992aa6..1a63ff274ca 100644 --- a/src/sage/functions/error.py +++ b/src/sage/functions/error.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Error functions @@ -53,7 +54,7 @@ lazy_import('sage.symbolic.constants', ['I', 'pi']) -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') lazy_import('sage.libs.mpmath.all', 'erf', as_='_mpmath_erf') lazy_import('sage.libs.mpmath.all', 'erfc', as_='_mpmath_erfc') lazy_import('sage.libs.mpmath.all', 'erfi', as_='_mpmath_erfi') @@ -265,7 +266,7 @@ def _evalf_(self, x, parent=None, algorithm=None): sage: gp.set_real_precision(59) # random # needs sage.libs.pari 38 - sage: print(gp.eval("1 - erfc(1)")); print(erf(1).n(200)) # needs mpmath sage.libs.pari + sage: print(gp.eval("1 - erfc(1)")); print(erf(1).n(200)) # needs sage.libs.mpmath sage.libs.pari 0.84270079294971486934122063508260925929606699796630290845994 0.84270079294971486934122063508260925929606699796630290845994 @@ -283,7 +284,7 @@ def _evalf_(self, x, parent=None, algorithm=None): [0.99999999999846254020557196514981165651 +/- 7.33e-39] """ R = parent or s_parent(x) - y = _mpmath_utils_call(_mpmath_erf, x, parent=R) + y = _mpmath_call(_mpmath_erf, x, parent=R) return y def _derivative_(self, x, diff_param=None): @@ -373,7 +374,7 @@ def _evalf_(self, x, parent=None, algorithm=None): -0.99532226501895273416206925637*I """ R = parent or s_parent(x) - return _mpmath_utils_call(_mpmath_erfi, x, parent=R) + return _mpmath_call(_mpmath_erfi, x, parent=R) def _derivative_(self, x, diff_param=None): """ @@ -476,7 +477,7 @@ def _evalf_(self, x, parent=None, algorithm=None): 1.0000000000000000000000000000 - 1.2969597307176392315279409506e6*I """ R = parent or s_parent(x) - return _mpmath_utils_call(_mpmath_erfc, x, parent=R) + return _mpmath_call(_mpmath_erfc, x, parent=R) def _derivative_(self, x, diff_param=None): """ @@ -564,7 +565,7 @@ def _evalf_(self, x, parent=None, algorithm=None): 0.17914345462129167649274901663 """ R = parent or s_parent(x) - return _mpmath_utils_call(_mpmath_erfinv, x, parent=R) + return _mpmath_call(_mpmath_erfinv, x, parent=R) def _derivative_(self, x, diff_param=None): """ @@ -669,7 +670,7 @@ def _evalf_(self, x, parent=None, algorithm=None): sage: fresnel_sin(1.0+2*I) # needs sage.symbolic 36.7254648839914 + 15.5877511044046*I """ - return _mpmath_utils_call(_mpmath_fresnels, x, parent=parent) + return _mpmath_call(_mpmath_fresnels, x, parent=parent) def _derivative_(self, x, diff_param=None): """ @@ -767,7 +768,7 @@ def _evalf_(self, x, parent=None, algorithm=None): sage: fresnel_cos(1.0+2*I) # needs sage.symbolic 16.0878713741255 - 36.2256879928817*I """ - return _mpmath_utils_call(_mpmath_fresnelc, x, parent=parent) + return _mpmath_call(_mpmath_fresnelc, x, parent=parent) def _derivative_(self, x, diff_param=None): """ diff --git a/src/sage/functions/exp_integral.py b/src/sage/functions/exp_integral.py index ac88a0146a1..035a085ae83 100644 --- a/src/sage/functions/exp_integral.py +++ b/src/sage/functions/exp_integral.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Exponential integrals @@ -62,8 +63,8 @@ lazy_import('sage.symbolic.ring', 'SR') -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') -lazy_import('mpmath', +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') +lazy_import('sage.libs.mpmath.all', ['chi', 'ci', 'e1', 'ei', 'expint', 'ei', 'li', 'shi', 'si'], as_=['_mpmath_chi', '_mpmath_ci', '_mpmath_e1', '_mpmath_ei', '_mpmath_expint', '_mpmath_ei', '_mpmath_li', '_mpmath_shi', '_mpmath_si']) @@ -222,7 +223,7 @@ def _evalf_(self, n, z, parent=None, algorithm=None): sage: exp_integral_e(1, RealField(100)(1)) # needs sage.rings.real_mpfr 0.21938393439552027367716377546 """ - return _mpmath_utils_call(_mpmath_expint, n, z, parent=parent) + return _mpmath_call(_mpmath_expint, n, z, parent=parent) def _print_latex_(self, n, z): r""" @@ -331,7 +332,7 @@ def _evalf_(self, z, parent=None, algorithm=None): sage: exp_integral_e1(RealField(200)(0.5)) # needs sage.rings.real_mpfr 0.55977359477616081174679593931508523522684689031635351524829 """ - return _mpmath_utils_call(_mpmath_e1, z, parent=parent) + return _mpmath_call(_mpmath_e1, z, parent=parent) def _print_latex_(self, z): r""" @@ -473,7 +474,7 @@ def _evalf_(self, z, parent=None, algorithm=None): sage: log_integral(RealField(200)(1e6)) # needs sage.rings.real_mpfr 78627.549159462181919862910747947261161321874382421767074759 """ - return _mpmath_utils_call(_mpmath_li, z, parent=parent) + return _mpmath_call(_mpmath_li, z, parent=parent) def _derivative_(self, z, diff_param=None): r""" @@ -665,7 +666,7 @@ def _evalf_(self, z, parent=None, algorithm=None): sage: li(4.5) - li(2.0) - Li(4.5) # needs mpmath 0.000000000000000 """ - return _mpmath_utils_call(_mpmath_li, z, offset=True, parent=parent) + return _mpmath_call(_mpmath_li, z, offset=True, parent=parent) def _derivative_(self, z, diff_param=None): r""" @@ -854,7 +855,7 @@ def _evalf_(self, z, parent=None, algorithm=None): sage: sin_integral(-1e23) # needs mpmath -1.57079632679490 """ - return _mpmath_utils_call(_mpmath_si, z, parent=parent) + return _mpmath_call(_mpmath_si, z, parent=parent) def _derivative_(self, z, diff_param=None): r""" @@ -995,7 +996,7 @@ def _evalf_(self, z, parent=None, algorithm=None): sage: cos_integral(ComplexField(100)(I)) # needs sage.symbolic 0.83786694098020824089467857943 + 1.5707963267948966192313216916*I """ - return _mpmath_utils_call(_mpmath_ci, z, parent=parent) + return _mpmath_call(_mpmath_ci, z, parent=parent) def _derivative_(self, z, diff_param=None): r""" @@ -1142,7 +1143,7 @@ def _evalf_(self, z, parent=None, algorithm=None): sage: sinh_integral(ComplexField(100)(I)) # needs sage.symbolic 0.94608307036718301494135331382*I """ - return _mpmath_utils_call(_mpmath_shi, z, parent=parent) + return _mpmath_call(_mpmath_shi, z, parent=parent) def _derivative_(self, z, diff_param=None): r""" @@ -1266,7 +1267,7 @@ def _evalf_(self, z, parent=None, algorithm=None): sage: cosh_integral(ComplexField(100)(I)) # needs sage.symbolic 0.33740392290096813466264620389 + 1.5707963267948966192313216916*I """ - return _mpmath_utils_call(_mpmath_chi, z, parent=parent) + return _mpmath_call(_mpmath_chi, z, parent=parent) def _derivative_(self, z, diff_param=None): r""" @@ -1385,7 +1386,7 @@ def _evalf_(self, x, parent=None, algorithm=None): sage: Ei(3+I).n() 7.82313467600158 + 6.09751978399231*I """ - return _mpmath_utils_call(_mpmath_ei, x, parent=parent) + return _mpmath_call(_mpmath_ei, x, parent=parent) def _derivative_(self, x, diff_param=None): """ diff --git a/src/sage/functions/gamma.py b/src/sage/functions/gamma.py index c5b730eb65b..06dfce08af0 100644 --- a/src/sage/functions/gamma.py +++ b/src/sage/functions/gamma.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Gamma and related functions """ @@ -17,8 +18,8 @@ lazy_import('sage.symbolic.constants', 'pi') -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') -lazy_import('mpmath', 'gammainc', as_='_mpmath_gammainc') +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') +lazy_import('sage.libs.mpmath.all', 'gammainc', as_='_mpmath_gammainc') class Function_gamma(GinacFunction): @@ -481,7 +482,7 @@ def _evalf_(self, x, y, parent=None, algorithm='pari'): if algorithm == 'pari': v = ComplexField(prec)(x).gamma_inc(y) else: - v = ComplexField(prec)(_mpmath_utils_call(_mpmath_gammainc, x, y, parent=R)) + v = ComplexField(prec)(_mpmath_call(_mpmath_gammainc, x, y, parent=R)) if v.is_real(): return R(v) else: @@ -612,7 +613,7 @@ def _evalf_(self, x, y, parent=None, algorithm='mpmath'): Cx = ComplexField(prec)(x) v = Cx.gamma() - Cx.gamma_inc(y) else: - v = ComplexField(prec)(_mpmath_utils_call(_mpmath_gammainc, x, 0, y, parent=R)) + v = ComplexField(prec)(_mpmath_call(_mpmath_gammainc, x, 0, y, parent=R)) return R(v) if v.is_real() else C(v) def _derivative_(self, x, y, diff_param=None): diff --git a/src/sage/functions/generalized.py b/src/sage/functions/generalized.py index f8f92b293a4..267cbdc56c4 100644 --- a/src/sage/functions/generalized.py +++ b/src/sage/functions/generalized.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Generalized functions diff --git a/src/sage/functions/hyperbolic.py b/src/sage/functions/hyperbolic.py index 6098a6de0bb..8d6defc12ce 100644 --- a/src/sage/functions/hyperbolic.py +++ b/src/sage/functions/hyperbolic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Hyperbolic functions diff --git a/src/sage/functions/hypergeometric.py b/src/sage/functions/hypergeometric.py index 717f0c5b763..0c555aa9d3f 100644 --- a/src/sage/functions/hypergeometric.py +++ b/src/sage/functions/hypergeometric.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Hypergeometric functions @@ -194,10 +195,10 @@ lazy_import('sage.symbolic.constants', 'pi') lazy_import('sage.symbolic.ring', 'SR') -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') -lazy_import('mpmath', 'hyp1f1', as_='_mpmath_hyp1f1') -lazy_import('mpmath', 'hyper', as_='_mpmath_hyper') -lazy_import('mpmath', 'hyperu', as_='_mpmath_hyperu') +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') +lazy_import('sage.libs.mpmath.all', 'hyp1f1', as_='_mpmath_hyp1f1') +lazy_import('sage.libs.mpmath.all', 'hyper', as_='_mpmath_hyper') +lazy_import('sage.libs.mpmath.all', 'hyperu', as_='_mpmath_hyperu') def rational_param_as_tuple(x): @@ -366,7 +367,7 @@ def _evalf_try_(self, a, b, z): p = get_coercion_model().common_parent(*args) return self._evalf_(a, b, z, parent=p) - def _evalf_(self, a, b, z, parent, algorithm=None): + def _evalf_(self, a, b, z, parent=None, algorithm=None): """ TESTS:: @@ -379,7 +380,7 @@ def _evalf_(self, a, b, z, parent, algorithm=None): raise TypeError("The first two parameters must be of type list") aa = [rational_param_as_tuple(c) for c in a] bb = [rational_param_as_tuple(c) for c in b] - return _mpmath_utils_call(_mpmath_hyper, aa, bb, z, parent=parent) + return _mpmath_call(_mpmath_hyper, aa, bb, z, parent=parent) def _tderivative_(self, a, b, z, *args, **kwargs): """ @@ -1001,14 +1002,14 @@ def _eval_(self, a, b, z, **kwargs): return Integer(1) return - def _evalf_(self, a, b, z, parent, algorithm=None): + def _evalf_(self, a, b, z, parent=None, algorithm=None): """ TESTS:: sage: hypergeometric_M(1,1,1).n() # needs mpmath sage.symbolic 2.71828182845905 """ - return _mpmath_utils_call(_mpmath_hyp1f1, a, b, z, parent=parent) + return _mpmath_call(_mpmath_hyp1f1, a, b, z, parent=parent) def _derivative_(self, a, b, z, diff_param): """ @@ -1107,14 +1108,14 @@ def __init__(self): def _eval_(self, a, b, z, **kwargs): return - def _evalf_(self, a, b, z, parent, algorithm=None): + def _evalf_(self, a, b, z, parent=None, algorithm=None): """ TESTS:: sage: hypergeometric_U(1, 1, 1).n() # needs mpmath sage.symbolic 0.596347362323194 """ - return _mpmath_utils_call(_mpmath_hyperu, a, b, z, parent=parent) + return _mpmath_call(_mpmath_hyperu, a, b, z, parent=parent) def _derivative_(self, a, b, z, diff_param): """ diff --git a/src/sage/functions/jacobi.py b/src/sage/functions/jacobi.py index 9e5e6ae3849..edccc306144 100644 --- a/src/sage/functions/jacobi.py +++ b/src/sage/functions/jacobi.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Jacobi elliptic functions @@ -158,8 +159,8 @@ lazy_import('sage.misc.latex', 'latex') -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') -lazy_import('mpmath', 'ellipfun', as_='_mpmath_ellipfun') +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') +lazy_import('sage.libs.mpmath.all', 'ellipfun', as_='_mpmath_ellipfun') HALF = QQ((1, 2)) @@ -358,7 +359,7 @@ def _eval_(self, x, m): return csch(x) return - def _evalf_(self, x, m, parent, algorithm=None): + def _evalf_(self, x, m, parent=None, algorithm=None): r""" TESTS:: @@ -367,7 +368,7 @@ def _evalf_(self, x, m, parent, algorithm=None): sage: jacobi_dn(I, I).n() # needs mpmath sage.symbolic 0.874189950651018 + 0.667346865048825*I """ - return _mpmath_utils_call(_mpmath_ellipfun, self.kind, x, m, parent=parent) + return _mpmath_call(_mpmath_ellipfun, self.kind, x, m, parent=parent) def _derivative_(self, x, m, diff_param): r""" @@ -716,7 +717,7 @@ def _eval_(self, x, m): return Integer(0) return - def _evalf_(self, x, m, parent, algorithm=None): + def _evalf_(self, x, m, parent=None, algorithm=None): r""" TESTS:: @@ -725,7 +726,7 @@ def _evalf_(self, x, m, parent, algorithm=None): sage: inverse_jacobi_cd(3, 4).n(100) # needs mpmath -0.67214752201235862490069823239 + 2.1565156474996432354386749988*I """ - return _mpmath_utils_call(inverse_jacobi_f, self.kind, x, m, parent=parent) + return _mpmath_call(inverse_jacobi_f, self.kind, x, m, parent=parent) def _derivative_(self, x, m, diff_param): r""" @@ -1103,14 +1104,14 @@ def _eval_(self, x, m): return Integer(0) return - def _evalf_(self, x, m, parent, algorithm=None): + def _evalf_(self, x, m, parent=None, algorithm=None): r""" TESTS:: sage: jacobi_am(1, 2).n(100) # needs mpmath 0.73704379494724574105101929735 """ - return _mpmath_utils_call(jacobi_am_f, x, m, parent=parent) + return _mpmath_call(jacobi_am_f, x, m, parent=parent) def _derivative_(self, x, m, diff_param): r""" @@ -1294,7 +1295,7 @@ def inverse_jacobi_f(kind, x, m): sage: chop(ellipfun('ds', inverse_jacobi_f('ds', 4, 0.25), 0.25)) # needs mpmath mpf('4.0') """ - from mpmath import mp as ctx + from sage.libs.mpmath.all import mp as ctx prec = ctx.prec try: x = ctx.convert(x) @@ -1651,7 +1652,7 @@ def jacobi_am_f(x, m): sage: jacobi_am_f(-3, 2) mpf('0.36067407399586108') """ - from mpmath import mp as ctx + from sage.libs.mpmath.all import mp as ctx prec = ctx.prec try: x = ctx.convert(x) diff --git a/src/sage/functions/log.py b/src/sage/functions/log.py index de1db4dcb92..978509f7ef6 100644 --- a/src/sage/functions/log.py +++ b/src/sage/functions/log.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Logarithmic functions @@ -28,9 +29,9 @@ lazy_import('sage.libs.flint.arith_sage', 'harmonic_number', as_='_flint_harmonic_number') -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') -lazy_import('mpmath', 'harmonic', as_='_mpmath_harmonic') -lazy_import('mpmath', 'lambertw', as_='_mpmath_lambertw') +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') +lazy_import('sage.libs.mpmath.all', 'harmonic', as_='_mpmath_harmonic') +lazy_import('sage.libs.mpmath.all', 'lambertw', as_='_mpmath_lambertw') lazy_import('sympy', 'polylog', as_='_sympy_polylog') lazy_import('sympy', 'sympify', as_='_sympify') @@ -811,7 +812,7 @@ def _evalf_(self, n, z, parent=None, algorithm=None): elif R is complex or R is CDF: return R(_scipy_lambertw(z, n)) else: - return _mpmath_utils_call(_mpmath_lambertw, z, n, parent=R) + return _mpmath_call(_mpmath_lambertw, z, n, parent=R) def _derivative_(self, n, z, diff_param=None): r""" @@ -1373,7 +1374,7 @@ def _evalf_(self, z, parent=None, algorithm='mpmath'): sage: harmonic_number(1.0*I) # needs sage.symbolic 0.671865985524010 + 1.07667404746858*I """ - return _mpmath_utils_call(_mpmath_harmonic, z, parent=parent) + return _mpmath_call(_mpmath_harmonic, z, parent=parent) def _derivative_(self, z, diff_param=None): """ diff --git a/src/sage/functions/min_max.py b/src/sage/functions/min_max.py index caaed6f1193..38b68ba4314 100644 --- a/src/sage/functions/min_max.py +++ b/src/sage/functions/min_max.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Symbolic minimum and maximum diff --git a/src/sage/functions/orthogonal_polys.py b/src/sage/functions/orthogonal_polys.py index 4bf17b6c049..4aeff5d69c2 100644 --- a/src/sage/functions/orthogonal_polys.py +++ b/src/sage/functions/orthogonal_polys.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Orthogonal polynomials @@ -414,7 +415,7 @@ lazy_import('sage.symbolic.ring', 'SR') lazy_import('sage.calculus.calculus', 'maxima', as_='_maxima') -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') lazy_import('sage.libs.mpmath.all', 'chebyt', as_='_mpmath_chebyt') lazy_import('sage.libs.mpmath.all', 'chebyu', as_='_mpmath_chebyu') lazy_import('sage.libs.mpmath.all', 'laguerre', as_='_mpmath_laguerre') @@ -633,8 +634,8 @@ def _eval_(self, n, x): # n is not an integer and neither n nor x is symbolic. # We assume n and x are real/complex and evaluate numerically + import sage.libs.mpmath.all as mpmath try: - import sage.libs.mpmath.all as mpmath return self._evalf_(n, x) except mpmath.NoConvergence: warnings.warn("mpmath failed, keeping expression unevaluated", @@ -801,7 +802,7 @@ def _evalf_(self, n, x, **kwds): if not isinstance(real_parent, (sage.rings.abc.RealField, sage.rings.abc.ComplexField)): raise TypeError("cannot evaluate chebyshev_T with parent {}".format(real_parent)) - return _mpmath_utils_call(_mpmath_chebyt, n, x, parent=real_parent) + return _mpmath_call(_mpmath_chebyt, n, x, parent=real_parent) def eval_formula(self, n, x): """ @@ -1171,7 +1172,7 @@ def _evalf_(self, n, x, **kwds): if not isinstance(real_parent, (sage.rings.abc.RealField, sage.rings.abc.ComplexField)): raise TypeError("cannot evaluate chebyshev_U with parent {}".format(real_parent)) - return _mpmath_utils_call(_mpmath_chebyu, n, x, parent=real_parent) + return _mpmath_call(_mpmath_chebyu, n, x, parent=real_parent) def _eval_special_values_(self, n, x): """ @@ -1460,7 +1461,7 @@ def _evalf_(self, n, x, parent=None, **kwds): if ret is not None: return ret - return _mpmath_utils_call(_mpmath_legenq, n, 0, x, parent=parent) + return _mpmath_call(_mpmath_legenq, n, 0, x, parent=parent) def eval_recursive(self, n, arg, **kwds): """ @@ -1838,7 +1839,7 @@ def _evalf_(self, n, m, x, parent=None, **kwds): sage: gen_legendre_P(2/3, 1, 0.) # needs mpmath -0.773063511309286 """ - return _mpmath_utils_call(_mpmath_legenp, n, m, x, parent=parent) + return _mpmath_call(_mpmath_legenp, n, m, x, parent=parent) def eval_gen_poly(self, n, m, arg, **kwds): r""" @@ -1979,7 +1980,7 @@ def _evalf_(self, n, m, x, parent=None, **kwds): if ret is not None: return ret - return _mpmath_utils_call(_mpmath_legenq, n, m, x, parent=parent) + return _mpmath_call(_mpmath_legenq, n, m, x, parent=parent) def eval_recursive(self, n, m, x, **kwds): """ @@ -2512,9 +2513,9 @@ def _evalf_(self, n, x, **kwds): if n < 0: # work around mpmath issue 307 from sage.functions.log import exp - return exp(x) * _mpmath_utils_call(_mpmath_laguerre, -n-1, 0, -x, parent=the_parent) + return exp(x) * _mpmath_call(_mpmath_laguerre, -n-1, 0, -x, parent=the_parent) else: - return _mpmath_utils_call(_mpmath_laguerre, n, 0, x, parent=the_parent) + return _mpmath_call(_mpmath_laguerre, n, 0, x, parent=the_parent) def _derivative_(self, n, x, *args, **kwds): """ @@ -2648,13 +2649,13 @@ def _evalf_(self, n, a, x, **kwds): sage: gen_laguerre(100, 1, RealField(300)(pi)) # needs sage.symbolic -0.89430788373354541911... - sage: gen_laguerre(10,1/2,1.+I) # needs sage.symbolic + sage: gen_laguerre(10, 1/2, 1. + I) # needs sage.symbolic 5.34469635574906 + 5.23754057922902*I """ the_parent = kwds.get('parent', None) if the_parent is None: the_parent = parent(x) - return _mpmath_utils_call(_mpmath_laguerre, n, a, x, parent=the_parent) + return _mpmath_call(_mpmath_laguerre, n, a, x, parent=the_parent) def _derivative_(self, n, a, x, diff_param): """ diff --git a/src/sage/functions/other.py b/src/sage/functions/other.py index e57fbf14cd9..92d14b41ad8 100644 --- a/src/sage/functions/other.py +++ b/src/sage/functions/other.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Other functions diff --git a/src/sage/functions/piecewise.py b/src/sage/functions/piecewise.py index d7370a5cd30..337716074aa 100644 --- a/src/sage/functions/piecewise.py +++ b/src/sage/functions/piecewise.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.symbolic r""" Piecewise functions diff --git a/src/sage/functions/prime_pi.pyx b/src/sage/functions/prime_pi.pyx index 216e2fb2321..512f9cf494a 100644 --- a/src/sage/functions/prime_pi.pyx +++ b/src/sage/functions/prime_pi.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs primecountpy r""" Counting primes diff --git a/src/sage/functions/special.py b/src/sage/functions/special.py index 308171af3cd..bdd7f873838 100644 --- a/src/sage/functions/special.py +++ b/src/sage/functions/special.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Miscellaneous special functions @@ -157,8 +158,8 @@ lazy_import('sage.symbolic.constants', ['I', 'pi']) -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') -lazy_import('mpmath', +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') +lazy_import('sage.libs.mpmath.all', ['spherharm', 'ellipe', 'ellipf', 'ellipk', 'ellippi'], as_=['_mpmath_spherharm', '_mpmath_ellipe', '_mpmath_ellipf', '_mpmath_ellipk', '_mpmath_ellippi']) @@ -312,7 +313,7 @@ def _eval_(self, n, m, theta, phi, **kwargs): res = res.substitute({sqrt(sin(theta)**2): sin(theta)}) return res - def _evalf_(self, n, m, theta, phi, parent, **kwds): + def _evalf_(self, n, m, theta, phi, parent=None, **kwds): r""" TESTS:: @@ -329,7 +330,7 @@ def _evalf_(self, n, m, theta, phi, parent, **kwds): sage: all(d(a, b) < 1e-14 for a, b in ab) # needs sage.symbolic True """ - return _mpmath_utils_call(_mpmath_spherharm, n, m, theta, phi, parent=parent) + return _mpmath_call(_mpmath_spherharm, n, m, theta, phi, parent=parent) def _derivative_(self, n, m, theta, phi, diff_param): r""" @@ -587,7 +588,7 @@ def _evalf_(self, z, m, parent=None, algorithm=None): 0.535647771608740 + 1.63996015168665*I """ R = parent or s_parent(z) - return _mpmath_utils_call(_mpmath_ellipe, z, m, parent=R) + return _mpmath_call(_mpmath_ellipe, z, m, parent=R) def _derivative_(self, z, m, diff_param): """ @@ -693,7 +694,7 @@ def _evalf_(self, x, parent=None, algorithm=None): 1.63241178144043 - 0.369219492375499*I """ R = parent or s_parent(x) - return _mpmath_utils_call(_mpmath_ellipe, x, parent=R) + return _mpmath_call(_mpmath_ellipe, x, parent=R) def _derivative_(self, x, diff_param): """ @@ -766,7 +767,7 @@ def _evalf_(self, u, m, parent=None, algorithm=None): 0.7615941559557648881194582... """ R = parent or s_parent(u) - return _mpmath_utils_call(elliptic_eu_f, u, m, parent=R) + return _mpmath_call(elliptic_eu_f, u, m, parent=R) def _derivative_(self, u, m, diff_param): """ @@ -818,7 +819,7 @@ def elliptic_eu_f(u, m): sage: elliptic_eu_f(0.5, 0.1) # needs mpmath mpf('0.49605455128659691') """ - from mpmath import mp as ctx + from sage.libs.mpmath.all import mp as ctx prec = ctx.prec try: u = ctx.convert(u) @@ -937,7 +938,7 @@ def _evalf_(self, z, m, parent=None, algorithm=None): 0.149965060031782 + 0.925097284105771*I """ R = parent or s_parent(z) - return _mpmath_utils_call(_mpmath_ellipf, z, m, parent=R) + return _mpmath_call(_mpmath_ellipf, z, m, parent=R) def _derivative_(self, z, m, diff_param): """ @@ -1060,7 +1061,7 @@ def _evalf_(self, z, parent=None, algorithm=None): 1.42127228104504 + 0.295380284214777*I """ R = parent or s_parent(z) - return _mpmath_utils_call(_mpmath_ellipk, z, parent=R) + return _mpmath_call(_mpmath_ellipk, z, parent=R) def _derivative_(self, z, diff_param): """ @@ -1152,7 +1153,7 @@ def _evalf_(self, n, z, m, parent=None, algorithm=None): 0.0542471560940594 + 0.552096453413081*I """ R = parent or s_parent(z) - return _mpmath_utils_call(_mpmath_ellippi, n, z, m, parent=R) + return _mpmath_call(_mpmath_ellippi, n, z, m, parent=R) def _derivative_(self, n, z, m, diff_param): """ diff --git a/src/sage/functions/spike_function.py b/src/sage/functions/spike_function.py index 6fa011434d8..8772100fc9a 100644 --- a/src/sage/functions/spike_function.py +++ b/src/sage/functions/spike_function.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Spike functions diff --git a/src/sage/functions/transcendental.py b/src/sage/functions/transcendental.py index 7cfa2640473..4fd94a9b74c 100644 --- a/src/sage/functions/transcendental.py +++ b/src/sage/functions/transcendental.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Number-theoretic functions """ @@ -33,8 +34,8 @@ lazy_import('sage.rings.real_double', 'RDF') lazy_import('sage.rings.real_mpfr', ['RR', 'RealField', 'RealNumber']) -lazy_import('sage.libs.mpmath.utils', 'call', as_='_mpmath_utils_call') -lazy_import('mpmath', 'zeta', as_='_mpmath_zeta') +lazy_import('sage.libs.mpmath.sage_utils', 'call', as_='_mpmath_call') +lazy_import('sage.libs.mpmath.all', 'zeta', as_='_mpmath_zeta') class Function_zeta(GinacFunction): @@ -272,7 +273,7 @@ def _evalf_(self, s, x, parent=None, algorithm=None): sage: hurwitz_zeta(11/10, 1 + 1j).n() # needs mpmath sage.rings.real_mpfr 9.85014164287853 - 1.06139499403981*I """ - return _mpmath_utils_call(_mpmath_zeta, s, x, parent=parent) + return _mpmath_call(_mpmath_zeta, s, x, parent=parent) def _derivative_(self, s, x, diff_param): r""" @@ -389,7 +390,7 @@ def _evalf_(self, n, x, parent=None, algorithm=None): sage: zetaderiv(2, 3 + I).n() # needs sage.symbolic 0.0213814086193841 - 0.174938812330834*I """ - return _mpmath_utils_call(_mpmath_zeta, x, 1, n, parent=parent) + return _mpmath_call(_mpmath_zeta, x, 1, n, parent=parent) def _method_arguments(self, k, x, **args): r""" diff --git a/src/sage/functions/trig.py b/src/sage/functions/trig.py index f912dd79e8f..62436d78949 100644 --- a/src/sage/functions/trig.py +++ b/src/sage/functions/trig.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Trigonometric functions """ diff --git a/src/sage/functions/wigner.py b/src/sage/functions/wigner.py index e177fc1287b..732b7c30f82 100644 --- a/src/sage/functions/wigner.py +++ b/src/sage/functions/wigner.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Wigner, Clebsch-Gordan, Racah, and Gaunt coefficients diff --git a/src/sage/game_theory/all.py b/src/sage/game_theory/all.py index 30fa5c52f2e..f5caf04e6b7 100644 --- a/src/sage/game_theory/all.py +++ b/src/sage/game_theory/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra from sage.misc.lazy_import import lazy_import lazy_import('sage.game_theory', 'catalog', 'game_theory') diff --git a/src/sage/game_theory/catalog.py b/src/sage/game_theory/catalog.py index 9abb2c74151..58c3fb02a80 100644 --- a/src/sage/game_theory/catalog.py +++ b/src/sage/game_theory/catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Catalog Of Games """ diff --git a/src/sage/game_theory/catalog_normal_form_games.py b/src/sage/game_theory/catalog_normal_form_games.py index 705957f079e..f738a675ee9 100644 --- a/src/sage/game_theory/catalog_normal_form_games.py +++ b/src/sage/game_theory/catalog_normal_form_games.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" A catalog of normal form games diff --git a/src/sage/game_theory/cooperative_game.py b/src/sage/game_theory/cooperative_game.py index c9253d2bbb0..e832bacdd31 100644 --- a/src/sage/game_theory/cooperative_game.py +++ b/src/sage/game_theory/cooperative_game.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Co-operative Games With Finite Players diff --git a/src/sage/game_theory/matching_game.py b/src/sage/game_theory/matching_game.py index 5b3f081bf10..fae75872a6f 100644 --- a/src/sage/game_theory/matching_game.py +++ b/src/sage/game_theory/matching_game.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.graphs """ Matching games diff --git a/src/sage/game_theory/normal_form_game.py b/src/sage/game_theory/normal_form_game.py index 8f19e4842e1..e23043dfbc9 100644 --- a/src/sage/game_theory/normal_form_game.py +++ b/src/sage/game_theory/normal_form_game.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Normal form games with N players. diff --git a/src/sage/game_theory/parser.py b/src/sage/game_theory/parser.py index 07b62d178f8..a21b0052031 100644 --- a/src/sage/game_theory/parser.py +++ b/src/sage/game_theory/parser.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Parser For gambit And lrs Nash Equilibria """ diff --git a/src/sage/games/all.py b/src/sage/games/all.py index d2b0648440e..cef064e1383 100644 --- a/src/sage/games/all.py +++ b/src/sage/games/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from sage.misc.lazy_import import lazy_import diff --git a/src/sage/games/hexad.py b/src/sage/games/hexad.py index 6a8b5e178e5..672c2f3ae36 100644 --- a/src/sage/games/hexad.py +++ b/src/sage/games/hexad.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-combinat +# sage.doctest: needs sage.symbolic r""" Hexads in S(5, 6, 12) diff --git a/src/sage/games/quantumino.py b/src/sage/games/quantumino.py index e40dc47f407..c572b664d78 100644 --- a/src/sage/games/quantumino.py +++ b/src/sage/games/quantumino.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-combinat +# sage.doctest: needs sage.combinat sage.modules r""" Family Games America's Quantumino solver @@ -52,7 +54,7 @@ viewer:: sage: from sage.games.quantumino import show_pentaminos - sage: show_pentaminos() + sage: show_pentaminos() # needs sage.plot Graphics3d Object To solve the puzzle where the pentamino numbered 12 is put aside:: @@ -62,12 +64,12 @@ sage: s # long time (<1s) Quantumino state where the following pentamino is put aside : Polyomino: [(0, 0, 0), (1, 0, 0), (1, 1, 0), (1, 1, 1), (2, 1, 1)], Color: blue - sage: s.show3d() # long time (<1s) + sage: s.show3d() # long time (<1s) # needs sage.plot Graphics3d Object To remove the frame:: - sage: s.show3d().show(frame=False) # long time (<1s) + sage: s.show3d().show(frame=False) # long time (<1s) # needs sage.plot To solve the puzzle where the pentamino numbered 7 is put aside:: @@ -75,7 +77,7 @@ sage: s # long time (<1s) Quantumino state where the following pentamino is put aside : Polyomino: [(0, 0, 0), (0, 1, 0), (0, 2, 0), (0, 2, 1), (1, 0, 0)], Color: orange - sage: s.show3d() # long time (<1s) + sage: s.show3d() # long time (<1s) # needs sage.plot Graphics3d Object The solution is iterable. This may be used to explicitly list the positions of each @@ -117,12 +119,12 @@ To get the solution inside other boxes:: sage: s = next(QuantuminoSolver(7, box=(4,4,5)).solve()) # not tested (2s) - sage: s.show3d() # not tested (<1s) + sage: s.show3d() # not tested (<1s) # needs sage.plot :: sage: s = next(QuantuminoSolver(7, box=(2,2,20)).solve()) # not tested (1s) - sage: s.show3d() # not tested (<1s) + sage: s.show3d() # not tested (<1s) # needs sage.plot If there are no solution, a StopIteration error is raised:: diff --git a/src/sage/games/sudoku.py b/src/sage/games/sudoku.py index c1b3fa8b62d..9e7cb6545ea 100644 --- a/src/sage/games/sudoku.py +++ b/src/sage/games/sudoku.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-combinat +# sage.doctest: needs sage.combinat sage.modules r""" Sudoku Puzzles diff --git a/src/sage/games/sudoku_backtrack.pyx b/src/sage/games/sudoku_backtrack.pyx index b9630566cf5..3e17028d35c 100644 --- a/src/sage/games/sudoku_backtrack.pyx +++ b/src/sage/games/sudoku_backtrack.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" This module contains Cython code for a backtracking algorithm to solve Sudoku puzzles. diff --git a/src/sage/geometry/abc.pxd b/src/sage/geometry/abc.pxd new file mode 100644 index 00000000000..4164d19ce13 --- /dev/null +++ b/src/sage/geometry/abc.pxd @@ -0,0 +1,6 @@ +# sage_setup: distribution = sagemath-categories +from sage.structure.parent cimport Parent + + +cdef class HyperbolicSpace(Parent): + pass diff --git a/src/sage/geometry/abc.pyx b/src/sage/geometry/abc.pyx index f3aee46d324..016f0bccd91 100644 --- a/src/sage/geometry/abc.pyx +++ b/src/sage/geometry/abc.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Abstract base classes for classes in :mod:`~sage.geometry` """ @@ -79,3 +80,26 @@ class Polyhedron: """ pass + + +cdef class HyperbolicSpace(Parent): + r""" + Abstract base class for :class:`~sage.geometry.hyperbolic_space.hyperbolic_model.HyperbolicModel` + + This class is defined for the purpose of ``isinstance`` tests. It should not be + instantiated. + + EXAMPLES:: + + sage: import sage.geometry.abc + sage: H = HyperbolicPlane() # needs sage.symbolic + sage: isinstance(H, sage.geometry.abc.HyperbolicSpace) # needs sage.symbolic + True + + By design, there is a unique direct subclass:: + + sage: len(sage.geometry.abc.HyperbolicSpace.__subclasses__()) <= 1 + True + """ + + pass diff --git a/src/sage/geometry/all.py b/src/sage/geometry/all.py index 0115d5b3ba8..ebf0d36f808 100644 --- a/src/sage/geometry/all.py +++ b/src/sage/geometry/all.py @@ -1,20 +1,12 @@ -from sage.geometry.polyhedron.all import * -from sage.geometry.hyperbolic_space.all import * -from sage.geometry.polyhedral_complex import PolyhedralComplex -from sage.misc.lazy_import import lazy_import +from sage.geometry.all__sagemath_polyhedra import * -lazy_import('sage.geometry.cone', ['Cone', 'random_cone']) -lazy_import('sage.geometry', 'cone_catalog', 'cones') -lazy_import('sage.geometry.fan', ['Fan', 'FaceFan', 'NormalFan', 'Fan2d']) -lazy_import('sage.geometry.fan_morphism', 'FanMorphism') -lazy_import('sage.geometry.lattice_polytope', - ['LatticePolytope', 'NefPartition', - 'ReflexivePolytope', 'ReflexivePolytopes']) -lazy_import('sage.geometry', 'lattice_polytope') -lazy_import('sage.geometry.toric_lattice', 'ToricLattice') -lazy_import('sage.geometry', 'toric_plotter') -lazy_import('sage.geometry.voronoi_diagram', 'VoronoiDiagram') -lazy_import('sage.geometry.ribbon_graph', 'RibbonGraph') -lazy_import('sage.geometry.hyperplane_arrangement.arrangement', 'HyperplaneArrangements') -lazy_import('sage.geometry.hyperplane_arrangement.ordered_arrangement', 'OrderedHyperplaneArrangements') -lazy_import('sage.geometry.hyperplane_arrangement.library', 'hyperplane_arrangements') +try: + from sage.geometry.all__sagemath_symbolics import * +except ImportError: + pass + + +try: + from sage.geometry.all__sagemath_gap import * +except ImportError: + pass diff --git a/src/sage/geometry/all__sagemath_categories.py b/src/sage/geometry/all__sagemath_categories.py new file mode 100644 index 00000000000..b230a6a2ad9 --- /dev/null +++ b/src/sage/geometry/all__sagemath_categories.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/geometry/all__sagemath_gap.py b/src/sage/geometry/all__sagemath_gap.py new file mode 100644 index 00000000000..94ac41b895d --- /dev/null +++ b/src/sage/geometry/all__sagemath_gap.py @@ -0,0 +1,6 @@ +# sage_setup: distribution = sagemath-gap + +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.geometry.ribbon_graph', 'RibbonGraph') +del lazy_import diff --git a/src/sage/geometry/all__sagemath_linbox.py b/src/sage/geometry/all__sagemath_linbox.py new file mode 100644 index 00000000000..d3fe8dc3de9 --- /dev/null +++ b/src/sage/geometry/all__sagemath_linbox.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-linbox diff --git a/src/sage/geometry/all__sagemath_modules.py b/src/sage/geometry/all__sagemath_modules.py new file mode 100644 index 00000000000..20633dba8e3 --- /dev/null +++ b/src/sage/geometry/all__sagemath_modules.py @@ -0,0 +1,5 @@ +# sage_setup: distribution = sagemath-modules +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.geometry.toric_lattice', 'ToricLattice') +del lazy_import diff --git a/src/sage/geometry/all__sagemath_polyhedra.py b/src/sage/geometry/all__sagemath_polyhedra.py new file mode 100644 index 00000000000..d3d170c84c4 --- /dev/null +++ b/src/sage/geometry/all__sagemath_polyhedra.py @@ -0,0 +1,22 @@ +# sage_setup: distribution = sagemath-polyhedra +from sage.geometry.all__sagemath_modules import * + +from sage.geometry.polyhedron.all import * +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.geometry.polyhedral_complex', 'PolyhedralComplex') +lazy_import('sage.geometry.cone', ['Cone', 'random_cone']) +lazy_import('sage.geometry', 'cone_catalog', 'cones') +lazy_import('sage.geometry.fan', ['Fan', 'FaceFan', 'NormalFan', 'Fan2d']) +lazy_import('sage.geometry.fan_morphism', 'FanMorphism') +lazy_import('sage.geometry.lattice_polytope', + ['LatticePolytope', 'NefPartition', + 'ReflexivePolytope', 'ReflexivePolytopes']) +lazy_import('sage.geometry', 'lattice_polytope') +lazy_import('sage.geometry', 'toric_plotter') +lazy_import('sage.geometry.voronoi_diagram', 'VoronoiDiagram') +lazy_import('sage.geometry.hyperplane_arrangement.arrangement', + 'HyperplaneArrangements') +lazy_import('sage.geometry.hyperplane_arrangement.ordered_arrangement', 'OrderedHyperplaneArrangements') +lazy_import('sage.geometry.hyperplane_arrangement.library', 'hyperplane_arrangements') +del lazy_import diff --git a/src/sage/geometry/all__sagemath_symbolics.py b/src/sage/geometry/all__sagemath_symbolics.py new file mode 100644 index 00000000000..4a77cd5cbee --- /dev/null +++ b/src/sage/geometry/all__sagemath_symbolics.py @@ -0,0 +1,8 @@ +# sage_setup: distribution = sagemath-symbolics +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.geometry.hyperbolic_space.hyperbolic_interface', 'HyperbolicPlane') + +from sage.geometry.riemannian_manifolds.all import * + +del lazy_import diff --git a/src/sage/geometry/cone.py b/src/sage/geometry/cone.py index c4b308adbfa..f7d3bcef08b 100644 --- a/src/sage/geometry/cone.py +++ b/src/sage/geometry/cone.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Convex rational polyhedral cones diff --git a/src/sage/geometry/cone_catalog.py b/src/sage/geometry/cone_catalog.py index da2ab39a0e6..8b916839d43 100644 --- a/src/sage/geometry/cone_catalog.py +++ b/src/sage/geometry/cone_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Catalog of common polyhedral convex cones diff --git a/src/sage/geometry/convex_set.py b/src/sage/geometry/convex_set.py index 2117eccfcc6..531e9ae4024 100644 --- a/src/sage/geometry/convex_set.py +++ b/src/sage/geometry/convex_set.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Convex Sets """ diff --git a/src/sage/geometry/fan.py b/src/sage/geometry/fan.py index 9f8403eeeae..30148e8a5ed 100644 --- a/src/sage/geometry/fan.py +++ b/src/sage/geometry/fan.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.graphs sage.combinat r""" Rational polyhedral fans diff --git a/src/sage/geometry/fan_isomorphism.py b/src/sage/geometry/fan_isomorphism.py index bae1501e897..58fd5463776 100644 --- a/src/sage/geometry/fan_isomorphism.py +++ b/src/sage/geometry/fan_isomorphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Find isomorphisms between fans """ diff --git a/src/sage/geometry/fan_morphism.py b/src/sage/geometry/fan_morphism.py index ddefd299133..37126c03a52 100644 --- a/src/sage/geometry/fan_morphism.py +++ b/src/sage/geometry/fan_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.combinat sage.graphs r""" Morphisms between toric lattices compatible with fans diff --git a/src/sage/geometry/hasse_diagram.py b/src/sage/geometry/hasse_diagram.py index 2e054bcfedc..b360bff03ed 100644 --- a/src/sage/geometry/hasse_diagram.py +++ b/src/sage/geometry/hasse_diagram.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Construction of finite atomic and coatomic lattices from incidences diff --git a/src/sage/geometry/hyperbolic_space/all.py b/src/sage/geometry/hyperbolic_space/all.py index 3a2f359a125..88d94a913e4 100644 --- a/src/sage/geometry/hyperbolic_space/all.py +++ b/src/sage/geometry/hyperbolic_space/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics from sage.misc.lazy_import import lazy_import lazy_import('sage.geometry.hyperbolic_space.hyperbolic_interface', 'HyperbolicPlane') diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_coercion.py b/src/sage/geometry/hyperbolic_space/hyperbolic_coercion.py index c88d573e0cb..596eaee0cba 100644 --- a/src/sage/geometry/hyperbolic_space/hyperbolic_coercion.py +++ b/src/sage/geometry/hyperbolic_space/hyperbolic_coercion.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Coercion Maps Between Hyperbolic Plane Models diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_constants.py b/src/sage/geometry/hyperbolic_space/hyperbolic_constants.py index 1ea800e58b0..b42f519014a 100644 --- a/src/sage/geometry/hyperbolic_space/hyperbolic_constants.py +++ b/src/sage/geometry/hyperbolic_space/hyperbolic_constants.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics from sage.matrix.constructor import matrix EPSILON = 10 ** -9 diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py b/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py index b9488e77b16..90724c51744 100644 --- a/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py +++ b/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Hyperbolic Geodesics diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_interface.py b/src/sage/geometry/hyperbolic_space/hyperbolic_interface.py index 11f4c08add9..19ac25d31cf 100644 --- a/src/sage/geometry/hyperbolic_space/hyperbolic_interface.py +++ b/src/sage/geometry/hyperbolic_space/hyperbolic_interface.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Interface to Hyperbolic Models @@ -51,6 +52,8 @@ # https://www.gnu.org/licenses/ # ********************************************************************** +import sage.geometry.abc + from sage.structure.unique_representation import UniqueRepresentation from sage.structure.parent import Parent from sage.categories.sets_cat import Sets @@ -75,7 +78,7 @@ def HyperbolicSpace(n): raise NotImplementedError("currently only implemented in dimension 2") -class HyperbolicPlane(Parent, UniqueRepresentation): +class HyperbolicPlane(sage.geometry.abc.HyperbolicSpace, UniqueRepresentation): r""" The hyperbolic plane `\mathbb{H}^2`. diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_isometry.py b/src/sage/geometry/hyperbolic_space/hyperbolic_isometry.py index 03a646b7059..e1b7e58c8f7 100644 --- a/src/sage/geometry/hyperbolic_space/hyperbolic_isometry.py +++ b/src/sage/geometry/hyperbolic_space/hyperbolic_isometry.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # sage.doctest: needs scipy r""" Hyperbolic Isometries diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_model.py b/src/sage/geometry/hyperbolic_space/hyperbolic_model.py index d9def677e6d..82e8d60b386 100644 --- a/src/sage/geometry/hyperbolic_space/hyperbolic_model.py +++ b/src/sage/geometry/hyperbolic_space/hyperbolic_model.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Hyperbolic Models diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_point.py b/src/sage/geometry/hyperbolic_space/hyperbolic_point.py index 3c408e69d95..bccfa6210ab 100644 --- a/src/sage/geometry/hyperbolic_space/hyperbolic_point.py +++ b/src/sage/geometry/hyperbolic_space/hyperbolic_point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Hyperbolic Points diff --git a/src/sage/geometry/hyperplane_arrangement/affine_subspace.py b/src/sage/geometry/hyperplane_arrangement/affine_subspace.py index 94d004f987f..2d3269cb65a 100644 --- a/src/sage/geometry/hyperplane_arrangement/affine_subspace.py +++ b/src/sage/geometry/hyperplane_arrangement/affine_subspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Affine Subspaces of a Vector Space diff --git a/src/sage/geometry/hyperplane_arrangement/all.py b/src/sage/geometry/hyperplane_arrangement/all.py index e69de29bb2d..ca4c26e905d 100644 --- a/src/sage/geometry/hyperplane_arrangement/all.py +++ b/src/sage/geometry/hyperplane_arrangement/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-polyhedra diff --git a/src/sage/geometry/hyperplane_arrangement/arrangement.py b/src/sage/geometry/hyperplane_arrangement/arrangement.py index 274702e0322..93f86a9e049 100644 --- a/src/sage/geometry/hyperplane_arrangement/arrangement.py +++ b/src/sage/geometry/hyperplane_arrangement/arrangement.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Hyperplane Arrangements diff --git a/src/sage/geometry/hyperplane_arrangement/check_freeness.py b/src/sage/geometry/hyperplane_arrangement/check_freeness.py index f1691634f69..c9db2122f88 100644 --- a/src/sage/geometry/hyperplane_arrangement/check_freeness.py +++ b/src/sage/geometry/hyperplane_arrangement/check_freeness.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.libs.singular r""" Helper Functions For Freeness Of Hyperplane Arrangements diff --git a/src/sage/geometry/hyperplane_arrangement/hyperplane.py b/src/sage/geometry/hyperplane_arrangement/hyperplane.py index 04de307442d..490dee1d7d2 100644 --- a/src/sage/geometry/hyperplane_arrangement/hyperplane.py +++ b/src/sage/geometry/hyperplane_arrangement/hyperplane.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Hyperplanes diff --git a/src/sage/geometry/hyperplane_arrangement/library.py b/src/sage/geometry/hyperplane_arrangement/library.py index 9e2ca3336f6..86d51640c51 100644 --- a/src/sage/geometry/hyperplane_arrangement/library.py +++ b/src/sage/geometry/hyperplane_arrangement/library.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Library of Hyperplane Arrangements diff --git a/src/sage/geometry/hyperplane_arrangement/plot.py b/src/sage/geometry/hyperplane_arrangement/plot.py index 7e550bfd472..e8ecbd2a958 100644 --- a/src/sage/geometry/hyperplane_arrangement/plot.py +++ b/src/sage/geometry/hyperplane_arrangement/plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Plotting of Hyperplane Arrangements diff --git a/src/sage/geometry/integral_points.pxi b/src/sage/geometry/integral_points.pxi index a67535b450b..87b6f68b484 100644 --- a/src/sage/geometry/integral_points.pxi +++ b/src/sage/geometry/integral_points.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox r""" Cython helper methods to compute integral points in polyhedra. """ diff --git a/src/sage/geometry/integral_points.py b/src/sage/geometry/integral_points.py index 48153591bcf..bc6e4a0626f 100644 --- a/src/sage/geometry/integral_points.py +++ b/src/sage/geometry/integral_points.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra try: from .integral_points_integer_dense import ( parallelotope_points, diff --git a/src/sage/geometry/integral_points_generic_dense.pyx b/src/sage/geometry/integral_points_generic_dense.pyx index 5ff619f44d4..99b0a60e49e 100644 --- a/src/sage/geometry/integral_points_generic_dense.pyx +++ b/src/sage/geometry/integral_points_generic_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra #cython: wraparound=False, boundscheck=False from sage.modules.vector_integer_dense cimport Vector_integer_dense as VectorClass diff --git a/src/sage/geometry/integral_points_integer_dense.pyx b/src/sage/geometry/integral_points_integer_dense.pyx index 0151ffed5c0..67b5009f191 100644 --- a/src/sage/geometry/integral_points_integer_dense.pyx +++ b/src/sage/geometry/integral_points_integer_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox #cython: wraparound=False, boundscheck=False from sage.modules.vector_integer_dense cimport Vector_integer_dense as VectorClass diff --git a/src/sage/geometry/lattice_polytope.py b/src/sage/geometry/lattice_polytope.py index 65cacb35d0c..5209c24d401 100644 --- a/src/sage/geometry/lattice_polytope.py +++ b/src/sage/geometry/lattice_polytope.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Lattice and reflexive polytopes @@ -1317,7 +1318,7 @@ def _repr_(self): parts[1] = "reflexive" if self.dim() == 2 or self.index.is_in_cache(): parts.insert(-1, "#%d" % self.index()) - except ValueError: + except (ValueError, FileNotFoundError): pass if isinstance(self.lattice(), ToricLattice_generic): parts.append(str(self.lattice())) diff --git a/src/sage/geometry/linear_expression.py b/src/sage/geometry/linear_expression.py index 28388cd4232..ec4b2dd3106 100644 --- a/src/sage/geometry/linear_expression.py +++ b/src/sage/geometry/linear_expression.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Linear Expressions diff --git a/src/sage/geometry/newton_polygon.py b/src/sage/geometry/newton_polygon.py index 05cfbcbf621..9fcfce3da67 100644 --- a/src/sage/geometry/newton_polygon.py +++ b/src/sage/geometry/newton_polygon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Newton Polygons diff --git a/src/sage/geometry/palp_normal_form.pyx b/src/sage/geometry/palp_normal_form.pyx index 82e26830234..733805466f2 100644 --- a/src/sage/geometry/palp_normal_form.pyx +++ b/src/sage/geometry/palp_normal_form.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.groups r""" PALP normal form of vertices of a lattice polytope diff --git a/src/sage/geometry/point_collection.pyx b/src/sage/geometry/point_collection.pyx index f310dc7cb14..553bbadee7c 100644 --- a/src/sage/geometry/point_collection.pyx +++ b/src/sage/geometry/point_collection.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Point collections diff --git a/src/sage/geometry/polyhedral_complex.py b/src/sage/geometry/polyhedral_complex.py index 539e2021f88..947366edabd 100644 --- a/src/sage/geometry/polyhedral_complex.py +++ b/src/sage/geometry/polyhedral_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.graphs r""" Finite polyhedral complexes @@ -2327,6 +2328,7 @@ def subdivide(self, make_simplicial=False, sage: simplicial_pc.is_simplicial_complex() True + sage: # needs sage.symbolic sage: fan = PolyhedralComplex([Polyhedron(rays=square_vertices)]) sage: fan.is_polyhedral_fan() and not fan.is_simplicial_fan() True @@ -2345,6 +2347,7 @@ def subdivide(self, make_simplicial=False, sage: simplicial_fan.is_simplicial_fan() True + sage: # needs sage.symbolic sage: halfspace = PolyhedralComplex([Polyhedron(rays=[(0, 0, 1)], ....: lines=[(1, 0, 0), (0, 1, 0)])]) sage: halfspace.is_simplicial_fan() diff --git a/src/sage/geometry/polyhedron/all.py b/src/sage/geometry/polyhedron/all.py index cda722f4d6b..848763439fb 100644 --- a/src/sage/geometry/polyhedron/all.py +++ b/src/sage/geometry/polyhedron/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra from sage.misc.lazy_import import lazy_import lazy_import('sage.geometry.polyhedron.constructor', 'Polyhedron') diff --git a/src/sage/geometry/polyhedron/backend_cdd.py b/src/sage/geometry/polyhedron/backend_cdd.py index 07abff41d80..2d904230c74 100644 --- a/src/sage/geometry/polyhedron/backend_cdd.py +++ b/src/sage/geometry/polyhedron/backend_cdd.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" The cdd backend for polyhedral computations """ diff --git a/src/sage/geometry/polyhedron/backend_cdd_rdf.py b/src/sage/geometry/polyhedron/backend_cdd_rdf.py index 985cad14419..a4c1e88649f 100644 --- a/src/sage/geometry/polyhedron/backend_cdd_rdf.py +++ b/src/sage/geometry/polyhedron/backend_cdd_rdf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.rings.real_double r""" diff --git a/src/sage/geometry/polyhedron/backend_field.py b/src/sage/geometry/polyhedron/backend_field.py index ebed490d7af..3eb2263b68b 100644 --- a/src/sage/geometry/polyhedron/backend_field.py +++ b/src/sage/geometry/polyhedron/backend_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ The Python backend diff --git a/src/sage/geometry/polyhedron/backend_normaliz.py b/src/sage/geometry/polyhedron/backend_normaliz.py index f93f9d84d81..b3aacc6b3a5 100644 --- a/src/sage/geometry/polyhedron/backend_normaliz.py +++ b/src/sage/geometry/polyhedron/backend_normaliz.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: optional - pynormaliz """ The Normaliz backend for polyhedral computations diff --git a/src/sage/geometry/polyhedron/backend_number_field.py b/src/sage/geometry/polyhedron/backend_number_field.py index 5a8b8d285a0..aeff539b63b 100644 --- a/src/sage/geometry/polyhedron/backend_number_field.py +++ b/src/sage/geometry/polyhedron/backend_number_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" The Python backend, using number fields internally """ @@ -45,15 +46,14 @@ class Polyhedron_number_field(Polyhedron_field, Polyhedron_base_number_field): sage: P.vertices() # needs sage.rings.number_field sage.symbolic (A vertex at (1), A vertex at (sqrt(2))) - sage: P = polytopes.icosahedron(exact=True, backend='number_field') # needs sage.rings.number_field - sage: P # needs sage.rings.number_field + sage: P = polytopes.icosahedron(exact=True, backend='number_field'); P # needs sage.groups sage.rings.number_field A 3-dimensional polyhedron in (Number Field in sqrt5 with defining polynomial x^2 - 5 with sqrt5 = 2.236067977499790?)^3 defined as the convex hull of 12 vertices sage: x = polygen(ZZ); P = Polyhedron( # needs sage.rings.number_field sage.symbolic - ....: vertices=[[sqrt(2)], [AA.polynomial_root(x^3-2, RIF(0,3))]], + ....: vertices=[[sqrt(2)], [AA.polynomial_root(x^3 - 2, RIF(0,3))]], ....: backend='number_field') sage: P # needs sage.rings.number_field sage.symbolic A 1-dimensional polyhedron diff --git a/src/sage/geometry/polyhedron/backend_polymake.py b/src/sage/geometry/polyhedron/backend_polymake.py index 9b497b421ac..a0ca28f56b8 100644 --- a/src/sage/geometry/polyhedron/backend_polymake.py +++ b/src/sage/geometry/polyhedron/backend_polymake.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ The polymake backend for polyhedral computations diff --git a/src/sage/geometry/polyhedron/backend_ppl.py b/src/sage/geometry/polyhedron/backend_ppl.py index c930039886b..f1651b3aa2a 100644 --- a/src/sage/geometry/polyhedron/backend_ppl.py +++ b/src/sage/geometry/polyhedron/backend_ppl.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ The PPL (Parma Polyhedra Library) backend for polyhedral computations """ diff --git a/src/sage/geometry/polyhedron/base.py b/src/sage/geometry/polyhedron/base.py index 7110f74a202..cb15c5f6a54 100644 --- a/src/sage/geometry/polyhedron/base.py +++ b/src/sage/geometry/polyhedron/base.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra: Miscellaneous methods """ diff --git a/src/sage/geometry/polyhedron/base0.py b/src/sage/geometry/polyhedron/base0.py index 7ba3007ea35..be2e64307f1 100644 --- a/src/sage/geometry/polyhedron/base0.py +++ b/src/sage/geometry/polyhedron/base0.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra: Initialization and access to Vrepresentation and Hrepresentation """ diff --git a/src/sage/geometry/polyhedron/base1.py b/src/sage/geometry/polyhedron/base1.py index 40a94c1b2d7..86870054272 100644 --- a/src/sage/geometry/polyhedron/base1.py +++ b/src/sage/geometry/polyhedron/base1.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra: Implementation of the :class:`ConvexSet_base` API diff --git a/src/sage/geometry/polyhedron/base2.py b/src/sage/geometry/polyhedron/base2.py index f9a48e45b1c..7afaa230117 100644 --- a/src/sage/geometry/polyhedron/base2.py +++ b/src/sage/geometry/polyhedron/base2.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra: Methods related to lattice points """ diff --git a/src/sage/geometry/polyhedron/base3.py b/src/sage/geometry/polyhedron/base3.py index 6347132e0fb..ae67abbd506 100644 --- a/src/sage/geometry/polyhedron/base3.py +++ b/src/sage/geometry/polyhedron/base3.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra: Methods regarding the combinatorics of a polyhedron @@ -135,7 +136,7 @@ def slack_matrix(self): [1 0 1 0 0 1] [1 0 0 0 1 1] - sage: # needs sage.rings.number_field + sage: # needs sage.groups sage.rings.number_field sage: P = polytopes.dodecahedron().faces(2)[0].as_polyhedron() sage: P.slack_matrix() [1/2*sqrt5 - 1/2 0 0 1 1/2*sqrt5 - 1/2 0] diff --git a/src/sage/geometry/polyhedron/base4.py b/src/sage/geometry/polyhedron/base4.py index a6fd6dad1ea..4c33ee81e6a 100644 --- a/src/sage/geometry/polyhedron/base4.py +++ b/src/sage/geometry/polyhedron/base4.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.graphs r""" Base class for polyhedra: Graph-theoretic methods diff --git a/src/sage/geometry/polyhedron/base5.py b/src/sage/geometry/polyhedron/base5.py index 21a463f1234..66a39e90098 100644 --- a/src/sage/geometry/polyhedron/base5.py +++ b/src/sage/geometry/polyhedron/base5.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra: Methods for constructing new polyhedra diff --git a/src/sage/geometry/polyhedron/base6.py b/src/sage/geometry/polyhedron/base6.py index f9bc49d7821..88b28e72309 100644 --- a/src/sage/geometry/polyhedron/base6.py +++ b/src/sage/geometry/polyhedron/base6.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra: Methods for plotting and affine hull projection """ diff --git a/src/sage/geometry/polyhedron/base7.py b/src/sage/geometry/polyhedron/base7.py index 7b86d534017..0ec6de93bf0 100644 --- a/src/sage/geometry/polyhedron/base7.py +++ b/src/sage/geometry/polyhedron/base7.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra: Methods for triangulation and volume computation """ diff --git a/src/sage/geometry/polyhedron/base_QQ.py b/src/sage/geometry/polyhedron/base_QQ.py index e17f043adb5..d33cf5442e5 100644 --- a/src/sage/geometry/polyhedron/base_QQ.py +++ b/src/sage/geometry/polyhedron/base_QQ.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra over `\QQ` """ diff --git a/src/sage/geometry/polyhedron/base_RDF.py b/src/sage/geometry/polyhedron/base_RDF.py index 505355ac42c..a2b34cca97f 100644 --- a/src/sage/geometry/polyhedron/base_RDF.py +++ b/src/sage/geometry/polyhedron/base_RDF.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.rings.real_double """ Base class for polyhedra over ``RDF`` diff --git a/src/sage/geometry/polyhedron/base_ZZ.py b/src/sage/geometry/polyhedron/base_ZZ.py index d17b40a1b3d..71e405c073b 100644 --- a/src/sage/geometry/polyhedron/base_ZZ.py +++ b/src/sage/geometry/polyhedron/base_ZZ.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for polyhedra over `\ZZ` """ diff --git a/src/sage/geometry/polyhedron/base_mutable.py b/src/sage/geometry/polyhedron/base_mutable.py index 1a3622a9e5b..060185caf2b 100644 --- a/src/sage/geometry/polyhedron/base_mutable.py +++ b/src/sage/geometry/polyhedron/base_mutable.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Base class for mutable polyhedra. diff --git a/src/sage/geometry/polyhedron/base_number_field.py b/src/sage/geometry/polyhedron/base_number_field.py index ef912a5e501..148248f6e46 100644 --- a/src/sage/geometry/polyhedron/base_number_field.py +++ b/src/sage/geometry/polyhedron/base_number_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Support for internal use of number fields in backends for polyhedral computations """ diff --git a/src/sage/geometry/polyhedron/cdd_file_format.py b/src/sage/geometry/polyhedron/cdd_file_format.py index 9dfedcad58d..3c6c06a6719 100644 --- a/src/sage/geometry/polyhedron/cdd_file_format.py +++ b/src/sage/geometry/polyhedron/cdd_file_format.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Generate cdd ``.ext`` / ``.ine`` file format """ diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/all.py b/src/sage/geometry/polyhedron/combinatorial_polyhedron/all.py index e69de29bb2d..ca4c26e905d 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/all.py +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-polyhedra diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pxd b/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pxd index dd5ee0bf472..d95f398b78f 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pxd +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra cimport cython from sage.data_structures.list_of_pairs cimport ListOfPairs from sage.structure.sage_object cimport SageObject diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx b/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx index 73cc5be6428..fd7d541312d 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Combinatorial polyhedron @@ -86,10 +87,8 @@ import numbers from memory_allocator cimport MemoryAllocator from cysignals.memory cimport check_calloc, sig_free -from sage.graphs.graph import Graph -from sage.geometry.polyhedron.base import Polyhedron_base -from sage.geometry.lattice_polytope import LatticePolytopeClass -from sage.geometry.cone import ConvexRationalPolyhedralCone +import sage.geometry.abc + from sage.structure.element import Matrix from sage.matrix.matrix_dense cimport Matrix_dense from sage.misc.misc import is_iterator @@ -361,13 +360,13 @@ cdef class CombinatorialPolyhedron(SageObject): self._equations = () self._far_face_tuple = () - if isinstance(data, Polyhedron_base): + if isinstance(data, sage.geometry.abc.Polyhedron): self._init_from_polyhedron(data) return - if isinstance(data, LatticePolytopeClass): + if isinstance(data, sage.geometry.abc.LatticePolytope): self._init_from_lattice_polytope(data) return - if isinstance(data, ConvexRationalPolyhedralCone): + if isinstance(data, sage.geometry.abc.ConvexRationalPolyhedralCone): self._init_from_cone(data) return @@ -1142,15 +1141,19 @@ cdef class CombinatorialPolyhedron(SageObject): """ from sage.rings.integer_ring import ZZ from sage.matrix.constructor import matrix - cdef Matrix_dense incidence_matrix = matrix( + incidence_matrix = matrix( ZZ, self.n_Vrepresentation(), self.n_Hrepresentation(), 0) if self.dim() < 1: # Small cases. if self.dim() == 0: - # To be consistent with ``Polyhedron_base``, - for i in range(self.n_Hrepresentation()): - incidence_matrix.set_unsafe_int(0, i, 1) + try: + # To be consistent with ``Polyhedron_base``, + for i in range(self.n_Hrepresentation()): + incidence_matrix.set_unsafe_int(0, i, 1) + except AttributeError: + for i in range(self.n_Hrepresentation()): + incidence_matrix[0, i] = 1 incidence_matrix.set_immutable() return incidence_matrix @@ -1158,15 +1161,24 @@ cdef class CombinatorialPolyhedron(SageObject): n_facets = self.n_facets() if self.facet_names() is not None: n_equations = len(self.equations()) - for Hindex in range(n_facets, n_facets + n_equations): - for Vindex in range(self.n_Vrepresentation()): - incidence_matrix.set_unsafe_int(Vindex, Hindex, 1) + try: + for Hindex in range(n_facets, n_facets + n_equations): + for Vindex in range(self.n_Vrepresentation()): + incidence_matrix.set_unsafe_int(Vindex, Hindex, 1) + except AttributeError: + for Hindex in range(n_facets, n_facets + n_equations): + for Vindex in range(self.n_Vrepresentation()): + incidence_matrix[Vindex, Hindex] = 1 facet_iter = self.face_iter(self.dimension() - 1, algorithm='primal') for facet in facet_iter: Hindex = facet.ambient_H_indices()[0] - for Vindex in facet.ambient_V_indices(): - incidence_matrix.set_unsafe_int(Vindex, Hindex, 1) + try: + for Vindex in facet.ambient_V_indices(): + incidence_matrix.set_unsafe_int(Vindex, Hindex, 1) + except AttributeError: + for Vindex in facet.ambient_V_indices(): + incidence_matrix[Vindex, Hindex] = 1 incidence_matrix.set_immutable() @@ -1300,6 +1312,7 @@ cdef class CombinatorialPolyhedron(SageObject): edges = tuple(edge for edge in self.edges(names=names, algorithm=algorithm) if edge[0] in vertices and edge[1] in vertices) + from sage.graphs.graph import Graph return Graph([vertices, edges], format='vertices_and_edges') graph = vertex_graph @@ -1351,11 +1364,16 @@ cdef class CombinatorialPolyhedron(SageObject): cdef size_t i, first, second self._compute_edges(self._algorithm_to_dual(algorithm)) - for i in range(self._edges.length): - first = self._edges.get(i).first - second = self._edges.get(i).second - adjacency_matrix.set_unsafe_int(first, second, 1) - adjacency_matrix.set_unsafe_int(second, first, 1) + try: + for i in range(self._edges.length): + first = self._edges.get(i).first + second = self._edges.get(i).second + adjacency_matrix.set_unsafe_int(first, second, 1) + adjacency_matrix.set_unsafe_int(second, first, 1) + except AttributeError: + first = self._edges.get(i).first + second = self._edges.get(i).second + adjacency_matrix[first, second] = adjacency_matrix[second, first] = 1 adjacency_matrix.set_immutable() return adjacency_matrix @@ -1521,11 +1539,17 @@ cdef class CombinatorialPolyhedron(SageObject): cdef size_t i self._compute_ridges(self._algorithm_to_dual(algorithm)) - for i in range(self._ridges.length): - first = self._ridges.get(i).first - second = self._ridges.get(i).second - adjacency_matrix.set_unsafe_int(first, second, 1) - adjacency_matrix.set_unsafe_int(second, first, 1) + try: + for i in range(self._ridges.length): + first = self._ridges.get(i).first + second = self._ridges.get(i).second + adjacency_matrix.set_unsafe_int(first, second, 1) + adjacency_matrix.set_unsafe_int(second, first, 1) + except AttributeError: + for i in range(self._ridges.length): + first = self._ridges.get(i).first + second = self._ridges.get(i).second + adjacency_matrix[first, second] = adjacency_matrix[second, first] = 1 adjacency_matrix.set_immutable() return adjacency_matrix @@ -1583,6 +1607,7 @@ cdef class CombinatorialPolyhedron(SageObject): # If names is false, the ridges are given as tuple of indices, # i.e. (1,2) instead of (('f1',), ('f2',)). V = list(v[0] for v in V) + from sage.graphs.graph import Graph return Graph([V, E], format='vertices_and_edges') @cached_method @@ -2641,7 +2666,7 @@ cdef class CombinatorialPolyhedron(SageObject): EXAMPLES:: - sage: # needs sage.rings.number_field + sage: # needs sage.groups sage.rings.number_field sage: P = polytopes.dodecahedron() sage: C = CombinatorialPolyhedron(P) sage: C.meet_of_Hrep(0) diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pxd b/src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pxd index f39284ace68..71456157430 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pxd +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra cimport cython from sage.structure.sage_object cimport SageObject from sage.geometry.polyhedron.combinatorial_polyhedron.list_of_faces cimport ListOfFaces diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx b/src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx index fb780e29353..b701f6a25c4 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/combinatorial_face.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Combinatorial face of a polyhedron diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pxd b/src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pxd index 2a0e950b469..93f272f50d8 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pxd +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pxd @@ -1,6 +1,6 @@ +# sage_setup: distribution = sagemath-polyhedra from sage.geometry.polyhedron.combinatorial_polyhedron.face_list_data_structure cimport face_t - cdef int Vrep_list_to_bit_rep(tuple Vrep_list, face_t output) except -1 cdef int incidences_to_bit_rep(tuple incidences, face_t output) except -1 diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pyx b/src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pyx index a1ce8b14cb1..7c30b091ca6 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pyx +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/conversions.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Conversions @@ -228,23 +229,32 @@ def incidence_matrix_to_bit_rep_of_facets(Matrix_dense matrix): """ # Output will be a ``ListOfFaces`` with ``matrix.ncols()`` faces and # ``matrix.nrows()`` Vrep. - cdef size_t nrows = matrix._nrows - cdef size_t ncols = matrix._ncols + cdef size_t nrows = matrix.nrows() + cdef size_t ncols = matrix.ncols() cdef ListOfFaces facets = ListOfFaces(ncols, nrows, ncols) cdef face_t output cdef size_t entry # index for the entries in tup cdef size_t i - for i in range(ncols): - output = facets.data.faces[i] - facet_set_coatom(output, i) - - # Filling each facet with its Vrep-incidences, which "is" the - # "i-th column" of the original matrix (but we have transposed). - for entry in range(nrows): - if not matrix.get_is_zero_unsafe(entry, i): - # Vrep ``entry`` is contained in the face, so set the corresponding bit - face_add_atom_safe(output, entry) + try: + for i in range(ncols): + output = facets.data.faces[i] + facet_set_coatom(output, i) + + # Filling each facet with its Vrep-incidences, which "is" the + # "i-th column" of the original matrix (but we have transposed). + for entry in range(nrows): + if not matrix.get_is_zero_unsafe(entry, i): + # Vrep ``entry`` is contained in the face, so set the corresponding bit + face_add_atom_safe(output, entry) + except AttributeError: + # fall back to using general matrix API + for i in range(ncols): + output = facets.data.faces[i] + facet_set_coatom(output, i) + for entry in range(nrows): + if matrix[entry, i]: + face_add_atom_safe(output, entry) return facets diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_data_structure.pxd b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_data_structure.pxd index 87766041ffb..0bd1c3e8d27 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_data_structure.pxd +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_data_structure.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Cython data structure for combinatorial faces. """ diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pxd b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pxd index e77abc9f33a..a8981e9c09e 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pxd +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra cimport cython from sage.structure.sage_object cimport SageObject from sage.geometry.polyhedron.combinatorial_polyhedron.list_of_faces cimport ListOfFaces diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pyx b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pyx index d1daed6ad8b..d398a6e7a21 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pyx +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_iterator.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # distutils: extra_compile_args = OPENMP_CFLAGS # distutils: extra_link_args = OPENMP_CFLAGS r""" diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pxd b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pxd index ea68babbaf5..c919088bc89 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pxd +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Inline cython methods for lists of faces. """ diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pyx b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pyx index 34adfb092dd..6b95606d751 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pyx +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/face_list_data_structure.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Sorting of a list of faces. """ diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pxd b/src/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pxd index 62ba5b987cf..6f704dd760b 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pxd +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra cimport cython from sage.geometry.polyhedron.combinatorial_polyhedron.face_list_data_structure cimport face_list_t, face_t diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pyx b/src/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pyx index 0e8a53e97dc..d2d910a5c3c 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pyx +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/list_of_faces.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" List of faces @@ -509,11 +510,19 @@ cdef class ListOfFaces: cdef size_t i cdef long j - for i in range(self.n_faces()): - j = face_next_atom(self.data.faces[i], 0) - while j != -1: - M.set_unsafe_int(i, j, 1) - j = face_next_atom(self.data.faces[i], j+1) + try: + for i in range(self.n_faces()): + j = face_next_atom(self.data.faces[i], 0) + while j != -1: + M.set_unsafe_int(i, j, 1) + j = face_next_atom(self.data.faces[i], j+1) + except AttributeError: + # Fall back to general matrix API + for i in range(self.n_faces()): + j = face_next_atom(self.data.faces[i], 0) + while j != -1: + M[i, j] = 1 + j = face_next_atom(self.data.faces[i], j+1) M.set_immutable() return M diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pxd b/src/sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pxd index 824b832f238..72b4dd30889 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pxd +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra cimport cython from sage.geometry.polyhedron.combinatorial_polyhedron.list_of_faces cimport ListOfFaces from sage.geometry.polyhedron.combinatorial_polyhedron.face_data_structure cimport face_t diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pyx b/src/sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pyx index 475b3e63e6c..527b54bb6cb 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pyx +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/polyhedron_face_lattice.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" PolyhedronFaceLattice diff --git a/src/sage/geometry/polyhedron/constructor.py b/src/sage/geometry/polyhedron/constructor.py index 0d8a4bfa6e6..a2046ba24c1 100644 --- a/src/sage/geometry/polyhedron/constructor.py +++ b/src/sage/geometry/polyhedron/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Polyhedra diff --git a/src/sage/geometry/polyhedron/double_description.py b/src/sage/geometry/polyhedron/double_description.py index b38e108640f..af62e2ea081 100644 --- a/src/sage/geometry/polyhedron/double_description.py +++ b/src/sage/geometry/polyhedron/double_description.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Double Description Algorithm for Cones diff --git a/src/sage/geometry/polyhedron/double_description_inhomogeneous.py b/src/sage/geometry/polyhedron/double_description_inhomogeneous.py index 873b3b431ea..ed431bfa2b0 100644 --- a/src/sage/geometry/polyhedron/double_description_inhomogeneous.py +++ b/src/sage/geometry/polyhedron/double_description_inhomogeneous.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Double Description for Arbitrary Polyhedra diff --git a/src/sage/geometry/polyhedron/face.py b/src/sage/geometry/polyhedron/face.py index 9b72f1fc691..f4565a40607 100644 --- a/src/sage/geometry/polyhedron/face.py +++ b/src/sage/geometry/polyhedron/face.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ A class to keep information about faces of a polyhedron diff --git a/src/sage/geometry/polyhedron/generating_function.py b/src/sage/geometry/polyhedron/generating_function.py index c4bece2af55..40094ceadc5 100644 --- a/src/sage/geometry/polyhedron/generating_function.py +++ b/src/sage/geometry/polyhedron/generating_function.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.combinat r""" Generating Function of Polyhedron's Integral Points diff --git a/src/sage/geometry/polyhedron/lattice_euclidean_group_element.py b/src/sage/geometry/polyhedron/lattice_euclidean_group_element.py index 6d26a0ff267..ef596b91b36 100644 --- a/src/sage/geometry/polyhedron/lattice_euclidean_group_element.py +++ b/src/sage/geometry/polyhedron/lattice_euclidean_group_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Lattice Euclidean Group Elements diff --git a/src/sage/geometry/polyhedron/library.py b/src/sage/geometry/polyhedron/library.py index 97ca4131fe9..999c1a4afc7 100644 --- a/src/sage/geometry/polyhedron/library.py +++ b/src/sage/geometry/polyhedron/library.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Library of commonly used, famous, or interesting polytopes @@ -3475,7 +3476,10 @@ def parallelotope(self, generators, backend=None): # -------------------------------------------------------- # imports from other files # -------------------------------------------------------- - associahedron = staticmethod(Associahedron) + try: + associahedron = staticmethod(Associahedron) + except ImportError: + pass try: flow_polytope = staticmethod(DiGraph.flow_polytope) diff --git a/src/sage/geometry/polyhedron/misc.py b/src/sage/geometry/polyhedron/misc.py index e61090e83c8..649e739ff3c 100644 --- a/src/sage/geometry/polyhedron/misc.py +++ b/src/sage/geometry/polyhedron/misc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Miscellaneous helper functions """ diff --git a/src/sage/geometry/polyhedron/modules/all.py b/src/sage/geometry/polyhedron/modules/all.py index e69de29bb2d..ca4c26e905d 100644 --- a/src/sage/geometry/polyhedron/modules/all.py +++ b/src/sage/geometry/polyhedron/modules/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-polyhedra diff --git a/src/sage/geometry/polyhedron/modules/formal_polyhedra_module.py b/src/sage/geometry/polyhedron/modules/formal_polyhedra_module.py index b17c2a1ce71..73e01242d33 100644 --- a/src/sage/geometry/polyhedron/modules/formal_polyhedra_module.py +++ b/src/sage/geometry/polyhedron/modules/formal_polyhedra_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Formal modules generated by polyhedra """ diff --git a/src/sage/geometry/polyhedron/palp_database.py b/src/sage/geometry/polyhedron/palp_database.py index 6432d62080f..e34698cee87 100644 --- a/src/sage/geometry/polyhedron/palp_database.py +++ b/src/sage/geometry/polyhedron/palp_database.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: optional - polytopes_db palp """ Access the PALP database(s) of reflexive lattice polytopes @@ -5,7 +6,7 @@ EXAMPLES:: sage: from sage.geometry.polyhedron.palp_database import PALPreader - sage: for lp in PALPreader(2): # needs sage.graphs + sage: for lp in PALPreader(2): # needs fpylll sage.graphs sage.libs.singular ....: cone = Cone([(1,r[0],r[1]) for r in lp.vertices()]) ....: fan = Fan([cone]) ....: X = ToricVariety(fan) diff --git a/src/sage/geometry/polyhedron/parent.py b/src/sage/geometry/polyhedron/parent.py index e26948de9fd..1e8e8b00359 100644 --- a/src/sage/geometry/polyhedron/parent.py +++ b/src/sage/geometry/polyhedron/parent.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Parents for Polyhedra """ @@ -20,7 +21,12 @@ import sage.rings.abc from sage.rings.integer_ring import ZZ from sage.rings.rational_field import QQ -from sage.rings.real_double import RDF + +try: + from sage.rings.real_double import RDF +except ImportError: + RDF = None + from sage.categories.fields import Fields from sage.categories.rings import Rings from sage.categories.modules import Modules diff --git a/src/sage/geometry/polyhedron/plot.py b/src/sage/geometry/polyhedron/plot.py index 7a0ad2a2153..a266c30abb1 100644 --- a/src/sage/geometry/polyhedron/plot.py +++ b/src/sage/geometry/polyhedron/plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Functions for plotting polyhedra """ diff --git a/src/sage/geometry/polyhedron/ppl_lattice_polygon.py b/src/sage/geometry/polyhedron/ppl_lattice_polygon.py index dc100230745..62b71f6765d 100644 --- a/src/sage/geometry/polyhedron/ppl_lattice_polygon.py +++ b/src/sage/geometry/polyhedron/ppl_lattice_polygon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Fast Lattice Polygons using PPL diff --git a/src/sage/geometry/polyhedron/ppl_lattice_polytope.py b/src/sage/geometry/polyhedron/ppl_lattice_polytope.py index 27874340a51..f9780c0155d 100644 --- a/src/sage/geometry/polyhedron/ppl_lattice_polytope.py +++ b/src/sage/geometry/polyhedron/ppl_lattice_polytope.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Fast Lattice Polytopes using PPL. diff --git a/src/sage/geometry/polyhedron/representation.py b/src/sage/geometry/polyhedron/representation.py index 78e0cbf08d3..c2d19287787 100644 --- a/src/sage/geometry/polyhedron/representation.py +++ b/src/sage/geometry/polyhedron/representation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ H(yperplane) and V(ertex) representation objects for polyhedra """ diff --git a/src/sage/geometry/pseudolines.py b/src/sage/geometry/pseudolines.py index cb9f68a8ba5..6da0f70c9f4 100644 --- a/src/sage/geometry/pseudolines.py +++ b/src/sage/geometry/pseudolines.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Pseudolines diff --git a/src/sage/geometry/relative_interior.py b/src/sage/geometry/relative_interior.py index 3d7aa5d1c36..b7ef5a49874 100644 --- a/src/sage/geometry/relative_interior.py +++ b/src/sage/geometry/relative_interior.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Relative Interiors of Polyhedra and Cones """ diff --git a/src/sage/geometry/ribbon_graph.py b/src/sage/geometry/ribbon_graph.py index 6f10912ff79..aac9b29d222 100644 --- a/src/sage/geometry/ribbon_graph.py +++ b/src/sage/geometry/ribbon_graph.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Ribbon Graphs diff --git a/src/sage/geometry/riemannian_manifolds/all.py b/src/sage/geometry/riemannian_manifolds/all.py index 705438b39c0..b379b366f24 100644 --- a/src/sage/geometry/riemannian_manifolds/all.py +++ b/src/sage/geometry/riemannian_manifolds/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics from sage.misc.lazy_import import lazy_import lazy_import('sage.geometry.riemannian_manifolds.parametrized_surface3d', 'ParametrizedSurface3D') diff --git a/src/sage/geometry/riemannian_manifolds/parametrized_surface3d.py b/src/sage/geometry/riemannian_manifolds/parametrized_surface3d.py index 27940e9a723..c1430d3beda 100644 --- a/src/sage/geometry/riemannian_manifolds/parametrized_surface3d.py +++ b/src/sage/geometry/riemannian_manifolds/parametrized_surface3d.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Differential Geometry of Parametrized Surfaces diff --git a/src/sage/geometry/riemannian_manifolds/surface3d_generators.py b/src/sage/geometry/riemannian_manifolds/surface3d_generators.py index 76177dc279b..8246341519d 100644 --- a/src/sage/geometry/riemannian_manifolds/surface3d_generators.py +++ b/src/sage/geometry/riemannian_manifolds/surface3d_generators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Common parametrized surfaces in 3D. diff --git a/src/sage/geometry/toric_lattice.py b/src/sage/geometry/toric_lattice.py index a79bac65c6e..dd9eb50702a 100644 --- a/src/sage/geometry/toric_lattice.py +++ b/src/sage/geometry/toric_lattice.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Toric lattices diff --git a/src/sage/geometry/toric_lattice_element.pyx b/src/sage/geometry/toric_lattice_element.pyx index 1b8178077eb..f5d69c51691 100644 --- a/src/sage/geometry/toric_lattice_element.pyx +++ b/src/sage/geometry/toric_lattice_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Toric lattice elements diff --git a/src/sage/geometry/toric_plotter.py b/src/sage/geometry/toric_plotter.py index 398903fc76a..284f3911cb1 100644 --- a/src/sage/geometry/toric_plotter.py +++ b/src/sage/geometry/toric_plotter.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Toric plotter diff --git a/src/sage/geometry/triangulation/all.py b/src/sage/geometry/triangulation/all.py index fa72ba05f83..9bbbc0f6270 100644 --- a/src/sage/geometry/triangulation/all.py +++ b/src/sage/geometry/triangulation/all.py @@ -1 +1,3 @@ +# sage_setup: distribution = sagemath-polyhedra + from sage.geometry.triangulation.point_configuration import PointConfiguration diff --git a/src/sage/geometry/triangulation/base.pyx b/src/sage/geometry/triangulation/base.pyx index 55144d1623c..65fd525f825 100644 --- a/src/sage/geometry/triangulation/base.pyx +++ b/src/sage/geometry/triangulation/base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # distutils: sources = sage/geometry/triangulation/functions.cc sage/geometry/triangulation/data.cc sage/geometry/triangulation/triangulations.cc # distutils: depends = sage/geometry/triangulation/functions.h sage/geometry/triangulation/data.h sage/geometry/triangulation/triangulations.h # distutils: language = c++ diff --git a/src/sage/geometry/triangulation/data.pxd b/src/sage/geometry/triangulation/data.pxd index 1baf9381ef7..13bdc971669 100644 --- a/src/sage/geometry/triangulation/data.pxd +++ b/src/sage/geometry/triangulation/data.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra cdef extern from "data.h": cdef cppclass compact_simplices(): void push_back(int encoded_simplex) diff --git a/src/sage/geometry/triangulation/element.py b/src/sage/geometry/triangulation/element.py index 2baf66a578e..266194a0d5b 100644 --- a/src/sage/geometry/triangulation/element.py +++ b/src/sage/geometry/triangulation/element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ A triangulation diff --git a/src/sage/geometry/triangulation/functions.pxd b/src/sage/geometry/triangulation/functions.pxd index fa981e5215b..875adc3fdba 100644 --- a/src/sage/geometry/triangulation/functions.pxd +++ b/src/sage/geometry/triangulation/functions.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra cdef extern from "functions.h": int factorial(int n) int binomial(int n, int D) diff --git a/src/sage/geometry/triangulation/point_configuration.py b/src/sage/geometry/triangulation/point_configuration.py index 88aa25f6c46..d840226e529 100644 --- a/src/sage/geometry/triangulation/point_configuration.py +++ b/src/sage/geometry/triangulation/point_configuration.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Triangulations of a point configuration diff --git a/src/sage/geometry/triangulation/triangulations.pxd b/src/sage/geometry/triangulation/triangulations.pxd index 0111fb0dd5f..0caca05228c 100644 --- a/src/sage/geometry/triangulation/triangulations.pxd +++ b/src/sage/geometry/triangulation/triangulations.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra cdef extern from "triangulations.h": ctypedef void* triangulations_ptr cdef triangulations_ptr init_triangulations \ diff --git a/src/sage/geometry/voronoi_diagram.py b/src/sage/geometry/voronoi_diagram.py index 1402e0b1e77..14ce1bf0cbb 100644 --- a/src/sage/geometry/voronoi_diagram.py +++ b/src/sage/geometry/voronoi_diagram.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Voronoi diagram diff --git a/src/sage/graphs/all.py b/src/sage/graphs/all.py index 14f4eb9204b..89d78944b28 100644 --- a/src/sage/graphs/all.py +++ b/src/sage/graphs/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from sage.misc.lazy_import import lazy_import diff --git a/src/sage/graphs/all__sagemath_flint.py b/src/sage/graphs/all__sagemath_flint.py new file mode 100644 index 00000000000..d31bae41036 --- /dev/null +++ b/src/sage/graphs/all__sagemath_flint.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/graphs/asteroidal_triples.pyx b/src/sage/graphs/asteroidal_triples.pyx index 7c904f777f3..d4bb8fcafb5 100644 --- a/src/sage/graphs/asteroidal_triples.pyx +++ b/src/sage/graphs/asteroidal_triples.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Asteroidal triples diff --git a/src/sage/graphs/base/all.py b/src/sage/graphs/base/all.py index e69de29bb2d..9d0d23c0337 100644 --- a/src/sage/graphs/base/all.py +++ b/src/sage/graphs/base/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-graphs diff --git a/src/sage/graphs/base/boost_graph.pxd b/src/sage/graphs/base/boost_graph.pxd index 7c7333a525b..c0b41e8b5cc 100644 --- a/src/sage/graphs/base/boost_graph.pxd +++ b/src/sage/graphs/base/boost_graph.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # distutils: language = c++ # distutils: extra_compile_args = -std=c++11 diff --git a/src/sage/graphs/base/boost_graph.pyx b/src/sage/graphs/base/boost_graph.pyx index 31f3c6d0267..b7d99ce50fb 100644 --- a/src/sage/graphs/base/boost_graph.pyx +++ b/src/sage/graphs/base/boost_graph.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Interface to run Boost algorithms @@ -1025,9 +1026,13 @@ cpdef shortest_paths(g, start, weight_function=None, algorithm=None): else: correct_type = int # Needed for rational curves. - from sage.rings.real_mpfr import RealNumber, RR - if correct_type == RealNumber: - correct_type = RR + try: + from sage.rings.real_mpfr import RealNumber, RR + except ImportError: + pass + else: + if correct_type == RealNumber: + correct_type = RR import sys for v in range(g.num_verts()): @@ -1226,9 +1231,13 @@ cpdef johnson_shortest_paths(g, weight_function=None, distances=True, predecesso else: correct_type = int # Needed for rational curves. - from sage.rings.real_mpfr import RealNumber, RR - if correct_type == RealNumber: - correct_type = RR + try: + from sage.rings.real_mpfr import RealNumber, RR + except ImportError: + pass + else: + if correct_type == RealNumber: + correct_type = RR import sys if distances: @@ -1382,9 +1391,13 @@ cpdef floyd_warshall_shortest_paths(g, weight_function=None, distances=True, pre else: correct_type = int # Needed for rational curves. - from sage.rings.real_mpfr import RealNumber, RR - if correct_type == RealNumber: - correct_type = RR + try: + from sage.rings.real_mpfr import RealNumber, RR + except ImportError: + pass + else: + if correct_type == RealNumber: + correct_type = RR import sys if distances: diff --git a/src/sage/graphs/base/c_graph.pxd b/src/sage/graphs/base/c_graph.pxd index 9cd670ccbc5..19710b4326d 100644 --- a/src/sage/graphs/base/c_graph.pxd +++ b/src/sage/graphs/base/c_graph.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs #************************************************************************** # Copyright (C) 2008-9 Robert L. Miller # diff --git a/src/sage/graphs/base/c_graph.pyx b/src/sage/graphs/base/c_graph.pyx index 1aa7b32d691..c46903b2c6c 100644 --- a/src/sage/graphs/base/c_graph.pyx +++ b/src/sage/graphs/base/c_graph.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # distutils: language = c++ r""" Fast compiled graphs diff --git a/src/sage/graphs/base/dense_graph.pxd b/src/sage/graphs/base/dense_graph.pxd index 82659713bd9..6fe1fa722e2 100644 --- a/src/sage/graphs/base/dense_graph.pxd +++ b/src/sage/graphs/base/dense_graph.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs #***************************************************************************** # Copyright (C) 2008-2009 Robert L. Miller # diff --git a/src/sage/graphs/base/dense_graph.pyx b/src/sage/graphs/base/dense_graph.pyx index 45d09ced3d3..ee2b5508013 100644 --- a/src/sage/graphs/base/dense_graph.pyx +++ b/src/sage/graphs/base/dense_graph.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Fast dense graphs diff --git a/src/sage/graphs/base/graph_backends.pxd b/src/sage/graphs/base/graph_backends.pxd index 063e70e575e..ad412643bab 100644 --- a/src/sage/graphs/base/graph_backends.pxd +++ b/src/sage/graphs/base/graph_backends.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from sage.structure.sage_object cimport SageObject cdef class GenericGraphBackend(SageObject): diff --git a/src/sage/graphs/base/graph_backends.pyx b/src/sage/graphs/base/graph_backends.pyx index 4363a812995..b5d2c0a3489 100644 --- a/src/sage/graphs/base/graph_backends.pyx +++ b/src/sage/graphs/base/graph_backends.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Backends for Sage (di)graphs diff --git a/src/sage/graphs/base/overview.py b/src/sage/graphs/base/overview.py index e349d84b828..a1c781f1afc 100644 --- a/src/sage/graphs/base/overview.py +++ b/src/sage/graphs/base/overview.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Overview of (di)graph data structures diff --git a/src/sage/graphs/base/sparse_graph.pxd b/src/sage/graphs/base/sparse_graph.pxd index b47c5df8210..822caeac124 100644 --- a/src/sage/graphs/base/sparse_graph.pxd +++ b/src/sage/graphs/base/sparse_graph.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # **************************************************************************** # Copyright (C) 2008-2009 Robert L. Miller # diff --git a/src/sage/graphs/base/sparse_graph.pyx b/src/sage/graphs/base/sparse_graph.pyx index a02541436ac..1c27ac049bc 100644 --- a/src/sage/graphs/base/sparse_graph.pyx +++ b/src/sage/graphs/base/sparse_graph.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Fast sparse graphs diff --git a/src/sage/graphs/base/static_dense_graph.pxd b/src/sage/graphs/base/static_dense_graph.pxd index 0e580a02b57..4f513679c41 100644 --- a/src/sage/graphs/base/static_dense_graph.pxd +++ b/src/sage/graphs/base/static_dense_graph.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from sage.data_structures.binary_matrix cimport binary_matrix_t from libc.stdint cimport uint32_t, uint64_t diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index 6a07565ecca..055e2e5f349 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Static dense graphs diff --git a/src/sage/graphs/base/static_sparse_backend.pxd b/src/sage/graphs/base/static_sparse_backend.pxd index 31f3b172a94..da6ee55ccbe 100644 --- a/src/sage/graphs/base/static_sparse_backend.pxd +++ b/src/sage/graphs/base/static_sparse_backend.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-graphs + from libc.stdint cimport uint64_t, uint32_t, INT32_MAX, UINT32_MAX from sage.data_structures.bitset cimport * diff --git a/src/sage/graphs/base/static_sparse_backend.pyx b/src/sage/graphs/base/static_sparse_backend.pyx index e51fc238ac5..09839ba33eb 100644 --- a/src/sage/graphs/base/static_sparse_backend.pyx +++ b/src/sage/graphs/base/static_sparse_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Static sparse graph backend diff --git a/src/sage/graphs/base/static_sparse_graph.pxd b/src/sage/graphs/base/static_sparse_graph.pxd index 6cb9e53f17d..62941a573e2 100644 --- a/src/sage/graphs/base/static_sparse_graph.pxd +++ b/src/sage/graphs/base/static_sparse_graph.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from cpython.object cimport PyObject from libc.stdint cimport uint32_t, uint64_t, UINT32_MAX from sage.data_structures.bitset cimport * diff --git a/src/sage/graphs/base/static_sparse_graph.pyx b/src/sage/graphs/base/static_sparse_graph.pyx index c27f0d9a8cc..14f1d279e4c 100644 --- a/src/sage/graphs/base/static_sparse_graph.pyx +++ b/src/sage/graphs/base/static_sparse_graph.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True # distutils: language = c++ r""" diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index 45e4c67747d..35e17e59efd 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # autopep8: off r""" Bipartite graphs diff --git a/src/sage/graphs/centrality.pyx b/src/sage/graphs/centrality.pyx index e249046ae70..aa20f91161f 100755 --- a/src/sage/graphs/centrality.pyx +++ b/src/sage/graphs/centrality.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Centrality diff --git a/src/sage/graphs/chrompoly.pyx b/src/sage/graphs/chrompoly.pyx index 17a9837041b..fed5c0bd213 100644 --- a/src/sage/graphs/chrompoly.pyx +++ b/src/sage/graphs/chrompoly.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # cython: binding=True # sage.doctest: needs sage.libs.flint sage.graphs """ diff --git a/src/sage/graphs/cliquer.pxd b/src/sage/graphs/cliquer.pxd index df1576b164e..05f6ad93ab0 100644 --- a/src/sage/graphs/cliquer.pxd +++ b/src/sage/graphs/cliquer.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # distutils: libraries = cliquer cdef extern from "cliquer/graph.h": diff --git a/src/sage/graphs/cliquer.pyx b/src/sage/graphs/cliquer.pyx index 62ce4816ccd..f1f18fd992a 100644 --- a/src/sage/graphs/cliquer.pyx +++ b/src/sage/graphs/cliquer.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Interface with Cliquer (clique-related problems) diff --git a/src/sage/graphs/cliquer/cl.c b/src/sage/graphs/cliquer/cl.c index 88d35fc168b..9a698bbb7b4 100644 --- a/src/sage/graphs/cliquer/cl.c +++ b/src/sage/graphs/cliquer/cl.c @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-graphs + */ #include "cliquer/cliquer.h" static int maximal; diff --git a/src/sage/graphs/comparability.pyx b/src/sage/graphs/comparability.pyx index 05d5d3b5185..b157ffabe1d 100644 --- a/src/sage/graphs/comparability.pyx +++ b/src/sage/graphs/comparability.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Comparability and permutation graphs diff --git a/src/sage/graphs/connectivity.pxd b/src/sage/graphs/connectivity.pxd index f529d2ebdea..ba23b20f2ba 100644 --- a/src/sage/graphs/connectivity.pxd +++ b/src/sage/graphs/connectivity.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from memory_allocator cimport MemoryAllocator from sage.graphs.generic_graph_pyx cimport GenericGraph_pyx diff --git a/src/sage/graphs/connectivity.pyx b/src/sage/graphs/connectivity.pyx index 05138c68f49..6c4a6f50825 100644 --- a/src/sage/graphs/connectivity.pyx +++ b/src/sage/graphs/connectivity.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Connectivity related functions @@ -1372,7 +1373,8 @@ def edge_connectivity(G, ... TypeError: the input must be a Sage graph """ - from sage.graphs.generic_graph import GenericGraph + from sage.graphs.generic_graph import GenericGraph, _weight_if_real, _weight_1 + if not isinstance(G, GenericGraph): raise TypeError("the input must be a Sage graph") @@ -1428,13 +1430,9 @@ def edge_connectivity(G, return val if use_edge_labels: - from sage.rings.real_mpfr import RR - - def weight(x): - return x if x in RR else 1 + weight = _weight_if_real else: - def weight(x): - return 1 + weight = _weight_1 # Better methods for small connectivity tests, when one is not interested in # cuts... diff --git a/src/sage/graphs/convexity_properties.pxd b/src/sage/graphs/convexity_properties.pxd index f6c1b68b6b8..7f9fc85c3c1 100644 --- a/src/sage/graphs/convexity_properties.pxd +++ b/src/sage/graphs/convexity_properties.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from sage.data_structures.bitset cimport bitset_t from sage.data_structures.binary_matrix cimport binary_matrix_t diff --git a/src/sage/graphs/convexity_properties.pyx b/src/sage/graphs/convexity_properties.pyx index f292cae3eed..eb8a1c9b512 100644 --- a/src/sage/graphs/convexity_properties.pyx +++ b/src/sage/graphs/convexity_properties.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Convexity properties of graphs diff --git a/src/sage/graphs/digraph.py b/src/sage/graphs/digraph.py index 54fa7ed4eb3..8b00a9e238c 100644 --- a/src/sage/graphs/digraph.py +++ b/src/sage/graphs/digraph.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Directed graphs diff --git a/src/sage/graphs/digraph_generators.py b/src/sage/graphs/digraph_generators.py index b374392163e..2933d0dfc8c 100644 --- a/src/sage/graphs/digraph_generators.py +++ b/src/sage/graphs/digraph_generators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Common digraphs diff --git a/src/sage/graphs/distances_all_pairs.pxd b/src/sage/graphs/distances_all_pairs.pxd index d87a001d143..3b6287215a0 100644 --- a/src/sage/graphs/distances_all_pairs.pxd +++ b/src/sage/graphs/distances_all_pairs.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from libc.stdint cimport uint32_t cdef unsigned short * c_shortest_path_all_pairs(G, vertex_list=*) except NULL diff --git a/src/sage/graphs/distances_all_pairs.pyx b/src/sage/graphs/distances_all_pairs.pyx index 23d2e1c79d7..f45718f0d82 100644 --- a/src/sage/graphs/distances_all_pairs.pyx +++ b/src/sage/graphs/distances_all_pairs.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Distances/shortest paths between all pairs of vertices diff --git a/src/sage/graphs/domination.py b/src/sage/graphs/domination.py index 37c0ca5fb51..4468c509af6 100644 --- a/src/sage/graphs/domination.py +++ b/src/sage/graphs/domination.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Domination diff --git a/src/sage/graphs/dot2tex_utils.py b/src/sage/graphs/dot2tex_utils.py index 77446949886..09ae2e1fd23 100644 --- a/src/sage/graphs/dot2tex_utils.py +++ b/src/sage/graphs/dot2tex_utils.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" This file contains some utility functions for the interface with dot2tex """ diff --git a/src/sage/graphs/edge_connectivity.pyx b/src/sage/graphs/edge_connectivity.pyx index aef8e43d98e..8e9a088eb6c 100644 --- a/src/sage/graphs/edge_connectivity.pyx +++ b/src/sage/graphs/edge_connectivity.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True # distutils: language = c++ r""" diff --git a/src/sage/graphs/generators/all.py b/src/sage/graphs/generators/all.py index e69de29bb2d..9d0d23c0337 100644 --- a/src/sage/graphs/generators/all.py +++ b/src/sage/graphs/generators/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-graphs diff --git a/src/sage/graphs/generators/basic.py b/src/sage/graphs/generators/basic.py index e231428445f..faf6cd220a4 100644 --- a/src/sage/graphs/generators/basic.py +++ b/src/sage/graphs/generators/basic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Basic graphs diff --git a/src/sage/graphs/generators/chessboard.py b/src/sage/graphs/generators/chessboard.py index 4759ad917e7..45afe4f0fe5 100644 --- a/src/sage/graphs/generators/chessboard.py +++ b/src/sage/graphs/generators/chessboard.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Chessboard graphs diff --git a/src/sage/graphs/generators/classical_geometries.py b/src/sage/graphs/generators/classical_geometries.py index 8cd60e5862e..69fa9fa90b8 100644 --- a/src/sage/graphs/generators/classical_geometries.py +++ b/src/sage/graphs/generators/classical_geometries.py @@ -1,4 +1,5 @@ -# sage.doctest: optional - sage.modules +# sage_setup: distribution = sagemath-graphs +# sage.doctest: needs sage.modules r""" Families of graphs derived from classical geometries over finite fields diff --git a/src/sage/graphs/generators/degree_sequence.py b/src/sage/graphs/generators/degree_sequence.py index fa3a6aebb02..f1e47b7c900 100644 --- a/src/sage/graphs/generators/degree_sequence.py +++ b/src/sage/graphs/generators/degree_sequence.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Graphs with a given degree sequence diff --git a/src/sage/graphs/generators/distance_regular.pyx b/src/sage/graphs/generators/distance_regular.pyx index 795bfa58dc2..6ba2359b26b 100644 --- a/src/sage/graphs/generators/distance_regular.pyx +++ b/src/sage/graphs/generators/distance_regular.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Database of distance regular graphs diff --git a/src/sage/graphs/generators/families.py b/src/sage/graphs/generators/families.py index 74e7dd01f28..4798de5b1c2 100644 --- a/src/sage/graphs/generators/families.py +++ b/src/sage/graphs/generators/families.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Various families of graphs @@ -3071,10 +3072,10 @@ def petersen_family(generate=False): [Petersen graph: Graph on 10 vertices, Complete graph: Graph on 6 vertices, Multipartite Graph with set sizes [3, 3, 1]: Graph on 7 vertices, - Graph on 8 vertices, - Graph on 9 vertices, - Graph on 7 vertices, - Graph on 8 vertices] + Graph on 8 vertices, + Graph on 9 vertices, + Graph on 7 vertices, + Graph on 8 vertices] The two different inputs generate the same graphs:: diff --git a/src/sage/graphs/generators/intersection.py b/src/sage/graphs/generators/intersection.py index 3cdb3c681b8..91e215784e4 100644 --- a/src/sage/graphs/generators/intersection.py +++ b/src/sage/graphs/generators/intersection.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Intersection graphs diff --git a/src/sage/graphs/generators/platonic_solids.py b/src/sage/graphs/generators/platonic_solids.py index 893c085c326..ad1f538a343 100644 --- a/src/sage/graphs/generators/platonic_solids.py +++ b/src/sage/graphs/generators/platonic_solids.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" 1-skeletons of Platonic solids diff --git a/src/sage/graphs/generators/random.py b/src/sage/graphs/generators/random.py index 90cd8bceb93..37e31f8d1b1 100644 --- a/src/sage/graphs/generators/random.py +++ b/src/sage/graphs/generators/random.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Random graphs diff --git a/src/sage/graphs/generators/smallgraphs.py b/src/sage/graphs/generators/smallgraphs.py index d490eda7830..91c6ab46eb8 100644 --- a/src/sage/graphs/generators/smallgraphs.py +++ b/src/sage/graphs/generators/smallgraphs.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Various small graphs diff --git a/src/sage/graphs/generators/world_map.py b/src/sage/graphs/generators/world_map.py index 5ccd80a0908..40e808e7f6b 100644 --- a/src/sage/graphs/generators/world_map.py +++ b/src/sage/graphs/generators/world_map.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Graphs from the World Map diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py index 3ae14de7877..d3974b5c759 100644 --- a/src/sage/graphs/generic_graph.py +++ b/src/sage/graphs/generic_graph.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Generic graphs (common to directed/undirected) @@ -458,6 +459,18 @@ to_hex = LazyImport('matplotlib.colors', 'to_hex') +try: + from sage.rings.real_mpfr import RR as Reals +except ImportError: + from sage.rings.real_double import RDF as Reals + +def _weight_if_real(x): + return x if x in Reals else 1 + +def _weight_1(x): + return 1 + + class GenericGraph(GenericGraph_pyx): """ Base class for graphs and digraphs. @@ -7970,13 +7983,9 @@ def max_cut(self, value_only=True, use_edge_labels=False, vertices=False, value_only = False if use_edge_labels: - from sage.rings.real_mpfr import RR - - def weight(x): - return x if x in RR else 1 + weight = _weight_if_real else: - def weight(x): - return 1 + weight = _weight_1 if g.is_directed(): def good_edge(e): @@ -10722,13 +10731,9 @@ def multicommodity_flow(self, terminals, integer=True, use_edge_labels=False, # Whether to use edge labels if use_edge_labels: - from sage.rings.real_mpfr import RR - - def capacity(x): - return x if x in RR else 1 + capacity = _weight_if_real else: - def capacity(x): - return 1 + capacity = _weight_1 if g.is_directed(): # This function return the balance of flow at X diff --git a/src/sage/graphs/generic_graph_pyx.pxd b/src/sage/graphs/generic_graph_pyx.pxd index a09c1d69333..317832d3b7a 100644 --- a/src/sage/graphs/generic_graph_pyx.pxd +++ b/src/sage/graphs/generic_graph_pyx.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from sage.structure.sage_object cimport SageObject from sage.graphs.base.dense_graph cimport DenseGraph from memory_allocator cimport MemoryAllocator diff --git a/src/sage/graphs/generic_graph_pyx.pyx b/src/sage/graphs/generic_graph_pyx.pyx index a350ceeba86..45a6cb2a16f 100644 --- a/src/sage/graphs/generic_graph_pyx.pyx +++ b/src/sage/graphs/generic_graph_pyx.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ GenericGraph Cython functions diff --git a/src/sage/graphs/genus.pyx b/src/sage/graphs/genus.pyx index ec524fd1a7a..f542c1e3ff9 100644 --- a/src/sage/graphs/genus.pyx +++ b/src/sage/graphs/genus.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Genus diff --git a/src/sage/graphs/graph.py b/src/sage/graphs/graph.py index 711ea03afc3..da1d2b80210 100644 --- a/src/sage/graphs/graph.py +++ b/src/sage/graphs/graph.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Undirected graphs @@ -419,7 +420,7 @@ from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ import sage.graphs.generic_graph_pyx as generic_graph_pyx -from sage.graphs.generic_graph import GenericGraph +from sage.graphs.generic_graph import GenericGraph, _weight_if_real, _weight_1 from sage.graphs.independent_sets import IndependentSets from sage.misc.rest_index_of_methods import doc_index, gen_thematic_rest_table_index from sage.graphs.views import EdgesView @@ -2993,13 +2994,9 @@ def f_bounds(x): f_bounds = bounds if self.weighted(): - from sage.rings.real_mpfr import RR - - def weight(x): - return x if x in RR else 1 + weight = _weight_if_real else: - def weight(x): - return 1 + weight = _weight_1 for v in self: minimum, maximum = f_bounds(v) @@ -3190,14 +3187,11 @@ def minimum_outdegree_orientation(self, use_edge_labels=False, solver=None, verb "Please convert it to a Graph if you really mean it.") if use_edge_labels: - from sage.rings.real_mpfr import RR - def weight(e): l = self.edge_label(e) - return l if l in RR else 1 + return _weight_if_real(l) else: - def weight(e): - return 1 + weight = _weight_1 from sage.numerical.mip import MixedIntegerLinearProgram @@ -8253,9 +8247,8 @@ def _gomory_hu_tree(self, vertices, algorithm=None): # # If the same edge is added several times their capacities add up. - from sage.rings.real_mpfr import RR for uu, vv, capacity in edges: - capacity = capacity if capacity in RR else 1 + capacity = _weight_if_real(capacity) # Assume uu is in gU if uu in V: diff --git a/src/sage/graphs/graph_coloring.pyx b/src/sage/graphs/graph_coloring.pyx index 30fb0cf3a53..b0cdd4a83b0 100644 --- a/src/sage/graphs/graph_coloring.pyx +++ b/src/sage/graphs/graph_coloring.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True # distutils: language = c++ """ diff --git a/src/sage/graphs/graph_database.py b/src/sage/graphs/graph_database.py index 8549b208af6..53dd2a283a5 100644 --- a/src/sage/graphs/graph_database.py +++ b/src/sage/graphs/graph_database.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Graph database diff --git a/src/sage/graphs/graph_decompositions/all.py b/src/sage/graphs/graph_decompositions/all.py index e69de29bb2d..9d0d23c0337 100644 --- a/src/sage/graphs/graph_decompositions/all.py +++ b/src/sage/graphs/graph_decompositions/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-graphs diff --git a/src/sage/graphs/graph_decompositions/bandwidth.pyx b/src/sage/graphs/graph_decompositions/bandwidth.pyx index a491bb50acd..7535a5ef7bc 100644 --- a/src/sage/graphs/graph_decompositions/bandwidth.pyx +++ b/src/sage/graphs/graph_decompositions/bandwidth.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Bandwidth of undirected graphs diff --git a/src/sage/graphs/graph_decompositions/clique_separators.pyx b/src/sage/graphs/graph_decompositions/clique_separators.pyx index 3cb10805b8a..e6d60adc6ac 100644 --- a/src/sage/graphs/graph_decompositions/clique_separators.pyx +++ b/src/sage/graphs/graph_decompositions/clique_separators.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True # distutils: language = c++ r""" diff --git a/src/sage/graphs/graph_decompositions/cutwidth.pyx b/src/sage/graphs/graph_decompositions/cutwidth.pyx index 7929eac7a86..87f5caa6292 100644 --- a/src/sage/graphs/graph_decompositions/cutwidth.pyx +++ b/src/sage/graphs/graph_decompositions/cutwidth.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Cutwidth diff --git a/src/sage/graphs/graph_decompositions/fast_digraph.pxd b/src/sage/graphs/graph_decompositions/fast_digraph.pxd index 2687f8f974d..b2b2f44b989 100644 --- a/src/sage/graphs/graph_decompositions/fast_digraph.pxd +++ b/src/sage/graphs/graph_decompositions/fast_digraph.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from libc.stdint cimport uint8_t cdef class FastDigraph: diff --git a/src/sage/graphs/graph_decompositions/fast_digraph.pyx b/src/sage/graphs/graph_decompositions/fast_digraph.pyx index a661509d23d..dd0397a7066 100644 --- a/src/sage/graphs/graph_decompositions/fast_digraph.pyx +++ b/src/sage/graphs/graph_decompositions/fast_digraph.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Compact structure for fast operations on less than 32 vertices diff --git a/src/sage/graphs/graph_decompositions/graph_products.pyx b/src/sage/graphs/graph_decompositions/graph_products.pyx index 187f6a7ec09..d5a55cabfca 100644 --- a/src/sage/graphs/graph_decompositions/graph_products.pyx +++ b/src/sage/graphs/graph_decompositions/graph_products.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Products of graphs diff --git a/src/sage/graphs/graph_decompositions/meson.build.in b/src/sage/graphs/graph_decompositions/meson.build.in new file mode 100644 index 00000000000..1c4f674af8e --- /dev/null +++ b/src/sage/graphs/graph_decompositions/meson.build.in @@ -0,0 +1,7 @@ +tdlib = cc.find_library('tdlib', required: false) +# Cannot be found via pkg-config +rw = declare_dependency( + dependencies: [ + cc.find_library('rw'), + ] +) diff --git a/src/sage/graphs/graph_decompositions/modular_decomposition.py b/src/sage/graphs/graph_decompositions/modular_decomposition.py index 001f127d63d..9357e834225 100644 --- a/src/sage/graphs/graph_decompositions/modular_decomposition.py +++ b/src/sage/graphs/graph_decompositions/modular_decomposition.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Modular Decomposition diff --git a/src/sage/graphs/graph_decompositions/rankwidth.pxd b/src/sage/graphs/graph_decompositions/rankwidth.pxd index a23faceac4f..a970d155391 100644 --- a/src/sage/graphs/graph_decompositions/rankwidth.pxd +++ b/src/sage/graphs/graph_decompositions/rankwidth.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs cdef extern from "rw.h": ctypedef int uint_fast8_t ctypedef int uint_fast32_t diff --git a/src/sage/graphs/graph_decompositions/rankwidth.pyx b/src/sage/graphs/graph_decompositions/rankwidth.pyx index d817cf04a5d..438b0a9e1b2 100644 --- a/src/sage/graphs/graph_decompositions/rankwidth.pyx +++ b/src/sage/graphs/graph_decompositions/rankwidth.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True # distutils: libraries = rw r""" diff --git a/src/sage/graphs/graph_decompositions/sage_tdlib.cpp b/src/sage/graphs/graph_decompositions/sage_tdlib.cpp index 886859e8d74..372e0f3ee10 100644 --- a/src/sage/graphs/graph_decompositions/sage_tdlib.cpp +++ b/src/sage/graphs/graph_decompositions/sage_tdlib.cpp @@ -1,4 +1,4 @@ -// sage.setup: distribution = sagemath-tdlib +// sage_setup: distribution = sagemath-tdlib #include #include diff --git a/src/sage/graphs/graph_decompositions/tree_decomposition.pxd b/src/sage/graphs/graph_decompositions/tree_decomposition.pxd index 2de876e8889..ace3fd5a327 100644 --- a/src/sage/graphs/graph_decompositions/tree_decomposition.pxd +++ b/src/sage/graphs/graph_decompositions/tree_decomposition.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from sage.graphs.generic_graph_pyx cimport GenericGraph_pyx cdef class TreelengthConnected: diff --git a/src/sage/graphs/graph_decompositions/tree_decomposition.pyx b/src/sage/graphs/graph_decompositions/tree_decomposition.pyx index 8ed9ee9d224..966c0bed0cb 100644 --- a/src/sage/graphs/graph_decompositions/tree_decomposition.pyx +++ b/src/sage/graphs/graph_decompositions/tree_decomposition.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Tree decompositions diff --git a/src/sage/graphs/graph_decompositions/vertex_separation.pxd b/src/sage/graphs/graph_decompositions/vertex_separation.pxd index fa757b2c28e..94a46c33c26 100644 --- a/src/sage/graphs/graph_decompositions/vertex_separation.pxd +++ b/src/sage/graphs/graph_decompositions/vertex_separation.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from libc.stdint cimport uint8_t from sage.graphs.graph_decompositions.fast_digraph cimport FastDigraph diff --git a/src/sage/graphs/graph_decompositions/vertex_separation.pyx b/src/sage/graphs/graph_decompositions/vertex_separation.pyx index e83c05d2c0e..4722ca48697 100644 --- a/src/sage/graphs/graph_decompositions/vertex_separation.pyx +++ b/src/sage/graphs/graph_decompositions/vertex_separation.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Vertex separation diff --git a/src/sage/graphs/graph_editor.py b/src/sage/graphs/graph_editor.py index fc1fc72ccc8..e09368db17a 100644 --- a/src/sage/graphs/graph_editor.py +++ b/src/sage/graphs/graph_editor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Graph editor widget diff --git a/src/sage/graphs/graph_generators.py b/src/sage/graphs/graph_generators.py index 812a16e8b4d..6f8c3e2a64b 100644 --- a/src/sage/graphs/graph_generators.py +++ b/src/sage/graphs/graph_generators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Common graphs diff --git a/src/sage/graphs/graph_generators_pyx.pyx b/src/sage/graphs/graph_generators_pyx.pyx index 04b20d3229b..2642819f730 100644 --- a/src/sage/graphs/graph_generators_pyx.pyx +++ b/src/sage/graphs/graph_generators_pyx.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Common graphs and digraphs generators (Cython) diff --git a/src/sage/graphs/graph_input.py b/src/sage/graphs/graph_input.py index 678fdbcf32e..1d3611aa1d9 100644 --- a/src/sage/graphs/graph_input.py +++ b/src/sage/graphs/graph_input.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Functions for reading/building graphs/digraphs diff --git a/src/sage/graphs/graph_latex.py b/src/sage/graphs/graph_latex.py index f0fb9329002..50372e242cd 100644 --- a/src/sage/graphs/graph_latex.py +++ b/src/sage/graphs/graph_latex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.plot r""" LaTeX options for graphs diff --git a/src/sage/graphs/graph_list.py b/src/sage/graphs/graph_list.py index 4109d5d738a..40820485706 100644 --- a/src/sage/graphs/graph_list.py +++ b/src/sage/graphs/graph_list.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Lists of graphs diff --git a/src/sage/graphs/graph_plot.py b/src/sage/graphs/graph_plot.py index 40b6ecc764d..037dc283e60 100644 --- a/src/sage/graphs/graph_plot.py +++ b/src/sage/graphs/graph_plot.py @@ -1,4 +1,5 @@ -# sage.doctest: optional - sage.plot +# sage_setup: distribution = sagemath-graphs +# sage.doctest: needs sage.plot r""" Graph plotting diff --git a/src/sage/graphs/graph_plot_js.py b/src/sage/graphs/graph_plot_js.py index 7ef9057d3b2..7ebf9519a63 100644 --- a/src/sage/graphs/graph_plot_js.py +++ b/src/sage/graphs/graph_plot_js.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.plot r""" Graph plotting in Javascript with d3.js diff --git a/src/sage/graphs/hyperbolicity.pyx b/src/sage/graphs/hyperbolicity.pyx index bf24e7d3d97..cfd52d3ec7f 100644 --- a/src/sage/graphs/hyperbolicity.pyx +++ b/src/sage/graphs/hyperbolicity.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Hyperbolicity @@ -149,19 +150,19 @@ Methods # https://www.gnu.org/licenses/ # **************************************************************************** +from libc.stdint cimport uint16_t, uint32_t, uint64_t from libc.string cimport memset from cysignals.memory cimport check_allocarray, sig_free from cysignals.signals cimport sig_on, sig_off from memory_allocator cimport MemoryAllocator -from sage.graphs.distances_all_pairs cimport c_distances_all_pairs from sage.arith.misc import binomial -from sage.rings.integer_ring import ZZ +from sage.data_structures.bitset_base cimport * from sage.graphs.base.static_sparse_graph cimport short_digraph from sage.graphs.base.static_sparse_graph cimport init_short_digraph from sage.graphs.base.static_sparse_graph cimport free_short_digraph -from libc.stdint cimport uint16_t, uint32_t, uint64_t -from sage.data_structures.bitset_base cimport * +from sage.graphs.distances_all_pairs cimport c_distances_all_pairs +from sage.rings.integer_ring import ZZ # Defining a pair of vertices as a C struct diff --git a/src/sage/graphs/hypergraph_generators.py b/src/sage/graphs/hypergraph_generators.py index b4bae7292cf..83ad90a2ac2 100644 --- a/src/sage/graphs/hypergraph_generators.py +++ b/src/sage/graphs/hypergraph_generators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Hypergraph generators diff --git a/src/sage/graphs/independent_sets.pxd b/src/sage/graphs/independent_sets.pxd index 91f65b64ff7..7089adec2ae 100644 --- a/src/sage/graphs/independent_sets.pxd +++ b/src/sage/graphs/independent_sets.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from libc.stdint cimport uint32_t, uint64_t from sage.data_structures.binary_matrix cimport * diff --git a/src/sage/graphs/independent_sets.pyx b/src/sage/graphs/independent_sets.pyx index c880d9df424..d8cc00a462f 100644 --- a/src/sage/graphs/independent_sets.pyx +++ b/src/sage/graphs/independent_sets.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Independent sets diff --git a/src/sage/graphs/isgci.py b/src/sage/graphs/isgci.py index f8bcf801d7e..3b3c9f4bea4 100644 --- a/src/sage/graphs/isgci.py +++ b/src/sage/graphs/isgci.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" ISGCI: Information System on Graph Classes and their Inclusions diff --git a/src/sage/graphs/isoperimetric_inequalities.pyx b/src/sage/graphs/isoperimetric_inequalities.pyx index 731cfc00040..1050fcbafbb 100644 --- a/src/sage/graphs/isoperimetric_inequalities.pyx +++ b/src/sage/graphs/isoperimetric_inequalities.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding = True r""" Isoperimetric inequalities diff --git a/src/sage/graphs/line_graph.pyx b/src/sage/graphs/line_graph.pyx index e54caf52897..59ca4d7742a 100644 --- a/src/sage/graphs/line_graph.pyx +++ b/src/sage/graphs/line_graph.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Line graphs diff --git a/src/sage/graphs/lovasz_theta.py b/src/sage/graphs/lovasz_theta.py index 5335a597ebf..8ebd37e2372 100644 --- a/src/sage/graphs/lovasz_theta.py +++ b/src/sage/graphs/lovasz_theta.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Lovász theta-function of graphs diff --git a/src/sage/graphs/matchpoly.pyx b/src/sage/graphs/matchpoly.pyx index 4fe8549ad6c..9e348d045a6 100644 --- a/src/sage/graphs/matchpoly.pyx +++ b/src/sage/graphs/matchpoly.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # cython: binding=True # sage.doctest: needs sage.libs.flint sage.graphs """ diff --git a/src/sage/graphs/meson.build.in b/src/sage/graphs/meson.build.in new file mode 100644 index 00000000000..963add61ce1 --- /dev/null +++ b/src/sage/graphs/meson.build.in @@ -0,0 +1,10 @@ +bliss = cc.find_library('bliss', required: false) +mcqd = cc.find_library('mcqd', required: false) +cliquer = cc.find_library('cliquer') + +# Cannot be found via pkg-config +planarity = declare_dependency( + dependencies: [ + cc.find_library('planarity'), + ] +) diff --git a/src/sage/graphs/orientations.py b/src/sage/graphs/orientations.py index 26dc4df7722..f57cd4a59c2 100644 --- a/src/sage/graphs/orientations.py +++ b/src/sage/graphs/orientations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Orientations diff --git a/src/sage/graphs/partial_cube.py b/src/sage/graphs/partial_cube.py index 7512f5acd1f..3e5079e53ec 100644 --- a/src/sage/graphs/partial_cube.py +++ b/src/sage/graphs/partial_cube.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Partial cubes diff --git a/src/sage/graphs/path_enumeration.pyx b/src/sage/graphs/path_enumeration.pyx index 50b992692e4..a41fd733a74 100644 --- a/src/sage/graphs/path_enumeration.pyx +++ b/src/sage/graphs/path_enumeration.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True # distutils: language = c++ r""" diff --git a/src/sage/graphs/planarity.pyx b/src/sage/graphs/planarity.pyx index 0234aa4f707..eeaf8c29eff 100644 --- a/src/sage/graphs/planarity.pyx +++ b/src/sage/graphs/planarity.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # distutils: libraries = planarity """ Wrapper for Boyer's (C) planarity algorithm diff --git a/src/sage/graphs/pq_trees.py b/src/sage/graphs/pq_trees.py index 998e35fd845..a06f190cbf2 100644 --- a/src/sage/graphs/pq_trees.py +++ b/src/sage/graphs/pq_trees.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" PQ-Trees diff --git a/src/sage/graphs/print_graphs.py b/src/sage/graphs/print_graphs.py index e89610d0424..e0248c86806 100644 --- a/src/sage/graphs/print_graphs.py +++ b/src/sage/graphs/print_graphs.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Print graph diff --git a/src/sage/graphs/schnyder.py b/src/sage/graphs/schnyder.py index fc4e76e917f..030fcf60f6b 100644 --- a/src/sage/graphs/schnyder.py +++ b/src/sage/graphs/schnyder.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Schnyder's algorithm for straight-line planar embeddings diff --git a/src/sage/graphs/spanning_tree.pyx b/src/sage/graphs/spanning_tree.pyx index cc73b401668..644ce2934fb 100644 --- a/src/sage/graphs/spanning_tree.pyx +++ b/src/sage/graphs/spanning_tree.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Spanning trees diff --git a/src/sage/graphs/strongly_regular_db.pyx b/src/sage/graphs/strongly_regular_db.pyx index 0fa241ba218..ecb1990db6b 100644 --- a/src/sage/graphs/strongly_regular_db.pyx +++ b/src/sage/graphs/strongly_regular_db.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Database of strongly regular graphs diff --git a/src/sage/graphs/traversals.pxd b/src/sage/graphs/traversals.pxd index a81c72dcd9d..f937451fc7e 100644 --- a/src/sage/graphs/traversals.pxd +++ b/src/sage/graphs/traversals.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from sage.graphs.base.static_sparse_graph cimport short_digraph cdef maximum_cardinality_search_M_short_digraph(short_digraph sd, diff --git a/src/sage/graphs/traversals.pyx b/src/sage/graphs/traversals.pyx index 0ce87c3ad11..d21bb300d96 100644 --- a/src/sage/graphs/traversals.pyx +++ b/src/sage/graphs/traversals.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True # distutils: language = c++ r""" diff --git a/src/sage/graphs/trees.pxd b/src/sage/graphs/trees.pxd index f2c81ab49a7..953d29c1f7e 100644 --- a/src/sage/graphs/trees.pxd +++ b/src/sage/graphs/trees.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs cdef class TreeIterator: cdef int vertices diff --git a/src/sage/graphs/trees.pyx b/src/sage/graphs/trees.pyx index bcaab0c88ad..fac641396a9 100644 --- a/src/sage/graphs/trees.pyx +++ b/src/sage/graphs/trees.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Generation of trees diff --git a/src/sage/graphs/tutte_polynomial.py b/src/sage/graphs/tutte_polynomial.py index 042fb4c286b..0903ea96cef 100644 --- a/src/sage/graphs/tutte_polynomial.py +++ b/src/sage/graphs/tutte_polynomial.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Tutte polynomial diff --git a/src/sage/graphs/views.pyx b/src/sage/graphs/views.pyx index 8dd73c928d4..67ee8b6858c 100644 --- a/src/sage/graphs/views.pyx +++ b/src/sage/graphs/views.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" View classes diff --git a/src/sage/graphs/weakly_chordal.pyx b/src/sage/graphs/weakly_chordal.pyx index 37961e273e5..f70d195da23 100644 --- a/src/sage/graphs/weakly_chordal.pyx +++ b/src/sage/graphs/weakly_chordal.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # cython: binding=True r""" Weakly chordal graphs diff --git a/src/sage/groups/abelian_gps/abelian_aut.py b/src/sage/groups/abelian_gps/abelian_aut.py index 7108f311a48..aa06aaa0a44 100644 --- a/src/sage/groups/abelian_gps/abelian_aut.py +++ b/src/sage/groups/abelian_gps/abelian_aut.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Automorphisms of abelian groups diff --git a/src/sage/groups/abelian_gps/abelian_group.py b/src/sage/groups/abelian_gps/abelian_group.py index 0ad20d9d4fa..19029b1297f 100644 --- a/src/sage/groups/abelian_gps/abelian_group.py +++ b/src/sage/groups/abelian_gps/abelian_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Multiplicative Abelian Groups @@ -124,8 +125,7 @@ We create an abelian group in zero or more variables; the syntax ``T(1)`` creates the identity element even in the rank zero case:: - sage: T = AbelianGroup(0, []) - sage: T + sage: T = AbelianGroup(0, []); T Trivial Abelian group sage: T.gens() () @@ -137,14 +137,12 @@ An Abelian group uses a multiplicative representation of elements, but the underlying representation is lists of integer exponents:: - sage: F = AbelianGroup(5, [3,4,5,5,7], names = list("abcde")) - sage: F + sage: F = AbelianGroup(5, [3,4,5,5,7], names=list("abcde")); F Multiplicative Abelian group isomorphic to C3 x C4 x C5 x C5 x C7 sage: (a,b,c,d,e) = F.gens() sage: a*b^2*e*d a*b^2*d*e - sage: x = b^2*e*d*a^7 - sage: x + sage: x = b^2*e*d*a^7; x a*b^2*d*e sage: x.list() [1, 2, 0, 1, 1] @@ -1366,6 +1364,9 @@ def number_of_subgroups(self, order=None): Traceback (most recent call last): ... ValueError: subgroups order must be positive or None + + sage: AbelianGroup([1,3,0,1]).number_of_subgroups(order=3) # needs sage.libs.gap + 1 """ if not self.is_finite(): if order is None: diff --git a/src/sage/groups/abelian_gps/abelian_group_element.py b/src/sage/groups/abelian_gps/abelian_group_element.py index 956fff7bd9a..4ec0f58c893 100644 --- a/src/sage/groups/abelian_gps/abelian_group_element.py +++ b/src/sage/groups/abelian_gps/abelian_group_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Abelian group elements @@ -17,16 +18,13 @@ Recall an example from abelian groups:: - sage: F = AbelianGroup(5,[4,5,5,7,8],names = list("abcde")) + sage: F = AbelianGroup(5, [4,5,5,7,8], names=list("abcde")) sage: (a,b,c,d,e) = F.gens() - sage: x = a*b^2*e*d^20*e^12 - sage: x + sage: x = a*b^2*e*d^20*e^12; x a*b^2*d^6*e^5 - sage: x = a^10*b^12*c^13*d^20*e^12 - sage: x + sage: x = a^10*b^12*c^13*d^20*e^12; x a^2*b^2*c^3*d^6*e^4 - sage: y = a^13*b^19*c^23*d^27*e^72 - sage: y + sage: y = a^13*b^19*c^23*d^27*e^72; y a*b^4*c^3*d^6 sage: x*y a^3*b*c*d^5*e^4 diff --git a/src/sage/groups/abelian_gps/abelian_group_gap.py b/src/sage/groups/abelian_gps/abelian_group_gap.py index 199aa935f56..9937fac46b2 100644 --- a/src/sage/groups/abelian_gps/abelian_group_gap.py +++ b/src/sage/groups/abelian_gps/abelian_group_gap.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Finitely generated abelian groups with GAP. diff --git a/src/sage/groups/abelian_gps/abelian_group_morphism.py b/src/sage/groups/abelian_gps/abelian_group_morphism.py index c635ad32cb6..c086cbdc926 100644 --- a/src/sage/groups/abelian_gps/abelian_group_morphism.py +++ b/src/sage/groups/abelian_gps/abelian_group_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ Homomorphisms of abelian groups diff --git a/src/sage/groups/abelian_gps/all.py b/src/sage/groups/abelian_gps/all.py index f0c228a6a90..6d1dd159ba6 100644 --- a/src/sage/groups/abelian_gps/all.py +++ b/src/sage/groups/abelian_gps/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups """ all.py -- export of abelian groups to Sage """ @@ -17,13 +18,8 @@ # # The full text of the GPL is available at: # -# http://www.gnu.org/licenses/ -#***************************************************************************** - -#from dual_abelian_group import DualAbelianGroup -from sage.groups.abelian_gps.abelian_group import AbelianGroup, word_problem -from sage.groups.abelian_gps.values import AbelianGroupWithValues +# https://www.gnu.org/licenses/ +# ***************************************************************************** -# TODO: -# Implement group homset, conversion of generator images to morphism -from sage.groups.abelian_gps.abelian_group_morphism import AbelianGroupMorphism +from sage.groups.abelian_gps.all__sagemath_modules import * +from sage.groups.abelian_gps.all__sagemath_gap import * diff --git a/src/sage/groups/abelian_gps/all__sagemath_gap.py b/src/sage/groups/abelian_gps/all__sagemath_gap.py new file mode 100644 index 00000000000..4a3ed6cfc85 --- /dev/null +++ b/src/sage/groups/abelian_gps/all__sagemath_gap.py @@ -0,0 +1,6 @@ +# sage_setup: distribution = sagemath-gap + +# TODO: +# Implement group homset, conversion of generator images to morphism + +from sage.groups.abelian_gps.abelian_group_morphism import AbelianGroupMorphism diff --git a/src/sage/groups/abelian_gps/all__sagemath_modules.py b/src/sage/groups/abelian_gps/all__sagemath_modules.py new file mode 100644 index 00000000000..291c9ffd667 --- /dev/null +++ b/src/sage/groups/abelian_gps/all__sagemath_modules.py @@ -0,0 +1,5 @@ +# sage_setup: distribution = sagemath-modules + +# from dual_abelian_group import DualAbelianGroup +from sage.groups.abelian_gps.abelian_group import AbelianGroup, word_problem +from sage.groups.abelian_gps.values import AbelianGroupWithValues diff --git a/src/sage/groups/abelian_gps/dual_abelian_group.py b/src/sage/groups/abelian_gps/dual_abelian_group.py index 1c353a90136..b347d7f3cf1 100644 --- a/src/sage/groups/abelian_gps/dual_abelian_group.py +++ b/src/sage/groups/abelian_gps/dual_abelian_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.number_field r""" Dual groups of Finite Multiplicative Abelian Groups diff --git a/src/sage/groups/abelian_gps/dual_abelian_group_element.py b/src/sage/groups/abelian_gps/dual_abelian_group_element.py index db6683910b2..28e0b8934c2 100644 --- a/src/sage/groups/abelian_gps/dual_abelian_group_element.py +++ b/src/sage/groups/abelian_gps/dual_abelian_group_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.number_field """ Elements (characters) of the dual group of a finite Abelian group diff --git a/src/sage/groups/abelian_gps/element_base.py b/src/sage/groups/abelian_gps/element_base.py index abaff8a225a..70159506f7d 100644 --- a/src/sage/groups/abelian_gps/element_base.py +++ b/src/sage/groups/abelian_gps/element_base.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Base class for abelian group elements diff --git a/src/sage/groups/abelian_gps/values.py b/src/sage/groups/abelian_gps/values.py index 43f9e29cb75..99ed8e91d9b 100644 --- a/src/sage/groups/abelian_gps/values.py +++ b/src/sage/groups/abelian_gps/values.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Multiplicative Abelian Groups With Values diff --git a/src/sage/groups/additive_abelian/additive_abelian_group.py b/src/sage/groups/additive_abelian/additive_abelian_group.py index b88fdb4846e..45d46b27ef6 100644 --- a/src/sage/groups/additive_abelian/additive_abelian_group.py +++ b/src/sage/groups/additive_abelian/additive_abelian_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Additive Abelian Groups diff --git a/src/sage/groups/additive_abelian/additive_abelian_wrapper.py b/src/sage/groups/additive_abelian/additive_abelian_wrapper.py index 75488f0772d..0e0dea10aac 100644 --- a/src/sage/groups/additive_abelian/additive_abelian_wrapper.py +++ b/src/sage/groups/additive_abelian/additive_abelian_wrapper.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Wrapper class for abelian groups diff --git a/src/sage/groups/additive_abelian/all.py b/src/sage/groups/additive_abelian/all.py index e65582f51b2..6b2648bb3dc 100644 --- a/src/sage/groups/additive_abelian/all.py +++ b/src/sage/groups/additive_abelian/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.groups.additive_abelian.additive_abelian_group import AdditiveAbelianGroup from sage.groups.additive_abelian.additive_abelian_wrapper import * diff --git a/src/sage/groups/additive_abelian/qmodnz.py b/src/sage/groups/additive_abelian/qmodnz.py index 8bca7cbb460..8c71aeb3e6d 100644 --- a/src/sage/groups/additive_abelian/qmodnz.py +++ b/src/sage/groups/additive_abelian/qmodnz.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" This module implements `\Q/n\Z` for `n \in \Q`. diff --git a/src/sage/groups/additive_abelian/qmodnz_element.py b/src/sage/groups/additive_abelian/qmodnz_element.py index 2978a665a36..720fb913831 100644 --- a/src/sage/groups/additive_abelian/qmodnz_element.py +++ b/src/sage/groups/additive_abelian/qmodnz_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Elements of `\Q/n\Z`. diff --git a/src/sage/groups/affine_gps/affine_group.py b/src/sage/groups/affine_gps/affine_group.py index d20f209788f..7fb6762d1c4 100644 --- a/src/sage/groups/affine_gps/affine_group.py +++ b/src/sage/groups/affine_gps/affine_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Affine Groups diff --git a/src/sage/groups/affine_gps/all.py b/src/sage/groups/affine_gps/all.py index e69de29bb2d..6f6ab52d0f2 100644 --- a/src/sage/groups/affine_gps/all.py +++ b/src/sage/groups/affine_gps/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/groups/affine_gps/catalog.py b/src/sage/groups/affine_gps/catalog.py index cefcfeb97bf..5e86c8ded23 100644 --- a/src/sage/groups/affine_gps/catalog.py +++ b/src/sage/groups/affine_gps/catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Type ``groups.affine.`` to access examples of groups implemented as affine groups. diff --git a/src/sage/groups/affine_gps/euclidean_group.py b/src/sage/groups/affine_gps/euclidean_group.py index 97677c777d1..1ecf23828e0 100644 --- a/src/sage/groups/affine_gps/euclidean_group.py +++ b/src/sage/groups/affine_gps/euclidean_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Euclidean Groups diff --git a/src/sage/groups/affine_gps/group_element.py b/src/sage/groups/affine_gps/group_element.py index fff5881868f..e7cd72db74c 100644 --- a/src/sage/groups/affine_gps/group_element.py +++ b/src/sage/groups/affine_gps/group_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Elements of Affine Groups diff --git a/src/sage/groups/all.py b/src/sage/groups/all.py index 601ba6c7ec0..eda2cdcbe5b 100644 --- a/src/sage/groups/all.py +++ b/src/sage/groups/all.py @@ -1,41 +1,6 @@ -from sage.misc.lazy_import import lazy_import +# sage_setup: distribution = sagemath-groups -from sage.groups.pari_group import PariGroup - -from sage.groups.matrix_gps.all import * -from sage.groups.abelian_gps.all import * - -from sage.groups.perm_gps.all import * - -from sage.groups.generic import (discrete_log, discrete_log_rho, discrete_log_lambda, - linear_relation, multiple, multiples, order_from_multiple) - -lazy_import('sage.groups.class_function', 'ClassFunction') - -from sage.groups.additive_abelian.all import * - -lazy_import('sage.groups.conjugacy_classes', ['ConjugacyClass', 'ConjugacyClassGAP']) - -lazy_import('sage.groups.free_group', 'FreeGroup') -lazy_import('sage.groups.braid', 'BraidGroup') -lazy_import('sage.groups.cubic_braid', 'CubicBraidGroup') -lazy_import('sage.groups.cubic_braid', 'AssionGroupU') -lazy_import('sage.groups.cubic_braid', 'AssionGroupS') - -lazy_import('sage.groups.affine_gps.affine_group', 'AffineGroup') -lazy_import('sage.groups.affine_gps.euclidean_group', 'EuclideanGroup') - -lazy_import('sage.groups.artin', 'ArtinGroup') -lazy_import('sage.groups.raag', 'RightAngledArtinGroup') - -lazy_import('sage.groups', 'groups_catalog', 'groups') - -lazy_import('sage.groups.semimonomial_transformations.semimonomial_transformation_group', 'SemimonomialTransformationGroup') - -lazy_import('sage.groups.group_exp', 'GroupExp') -lazy_import('sage.groups.group_exp', ['GroupExp_Class', 'GroupExpElement'], - deprecation=38238) - -lazy_import('sage.groups.group_semidirect_product', 'GroupSemidirectProduct') -lazy_import('sage.groups.group_semidirect_product', 'GroupSemidirectProductElement', - deprecation=38238) +from sage.groups.all__sagemath_modules import * +from sage.groups.all__sagemath_gap import * +from sage.groups.all__sagemath_pari import * +from sage.groups.all__sagemath_groups import * diff --git a/src/sage/groups/all__sagemath_categories.py b/src/sage/groups/all__sagemath_categories.py new file mode 100644 index 00000000000..497fe29bfed --- /dev/null +++ b/src/sage/groups/all__sagemath_categories.py @@ -0,0 +1,11 @@ +# sage_setup: distribution = sagemath-categories +from sage.groups.all__sagemath_objects import * + +from sage.groups.generic import (discrete_log, discrete_log_rho, discrete_log_lambda, + linear_relation, multiple, multiples, order_from_multiple) + +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.groups', 'groups_catalog', 'groups') + +del lazy_import diff --git a/src/sage/groups/all__sagemath_combinat.py b/src/sage/groups/all__sagemath_combinat.py new file mode 100644 index 00000000000..28c48d66b20 --- /dev/null +++ b/src/sage/groups/all__sagemath_combinat.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-combinat diff --git a/src/sage/groups/all__sagemath_gap.py b/src/sage/groups/all__sagemath_gap.py new file mode 100644 index 00000000000..8ac832660e1 --- /dev/null +++ b/src/sage/groups/all__sagemath_gap.py @@ -0,0 +1,4 @@ +# sage_setup: distribution = sagemath-gap + +from sage.groups.perm_gps.all import * +from sage.groups.abelian_gps.all__sagemath_gap import * diff --git a/src/sage/groups/all__sagemath_graphs.py b/src/sage/groups/all__sagemath_graphs.py new file mode 100644 index 00000000000..9d0d23c0337 --- /dev/null +++ b/src/sage/groups/all__sagemath_graphs.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-graphs diff --git a/src/sage/groups/all__sagemath_groups.py b/src/sage/groups/all__sagemath_groups.py new file mode 100644 index 00000000000..4acee36237c --- /dev/null +++ b/src/sage/groups/all__sagemath_groups.py @@ -0,0 +1,36 @@ +# sage_setup: distribution = sagemath-groups +from sage.groups.all__sagemath_modules import * + +try: + from sage.groups.all__sagemath_pari import * +except ImportError: + pass + +from sage.groups.all__sagemath_gap import * + +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.groups.class_function', 'ClassFunction') + +lazy_import('sage.groups.conjugacy_classes', ['ConjugacyClass', 'ConjugacyClassGAP']) + +lazy_import('sage.groups.free_group', 'FreeGroup') +lazy_import('sage.groups.braid', 'BraidGroup') +lazy_import('sage.groups.cubic_braid', 'CubicBraidGroup') +lazy_import('sage.groups.cubic_braid', 'AssionGroupU') +lazy_import('sage.groups.cubic_braid', 'AssionGroupS') + +lazy_import('sage.groups.artin', 'ArtinGroup') +lazy_import('sage.groups.raag', 'RightAngledArtinGroup') + +lazy_import('sage.groups.semimonomial_transformations.semimonomial_transformation_group', + 'SemimonomialTransformationGroup') + +lazy_import('sage.groups.group_exp', 'GroupExp') +lazy_import('sage.groups.group_exp', ['GroupExp_Class', 'GroupExpElement'], + deprecation=38238) +lazy_import('sage.groups.group_semidirect_product', 'GroupSemidirectProduct') +lazy_import('sage.groups.group_semidirect_product', 'GroupSemidirectProductElement', + deprecation=38238) + +del lazy_import diff --git a/src/sage/groups/all__sagemath_modules.py b/src/sage/groups/all__sagemath_modules.py new file mode 100644 index 00000000000..c6bc2d68aef --- /dev/null +++ b/src/sage/groups/all__sagemath_modules.py @@ -0,0 +1,12 @@ +# sage_setup: distribution = sagemath-modules +from sage.groups.all__sagemath_categories import * + +from sage.groups.additive_abelian.all import * +from sage.groups.abelian_gps.all__sagemath_modules import * +from sage.groups.matrix_gps.all__sagemath_modules import * + +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.groups.affine_gps.affine_group', 'AffineGroup') +lazy_import('sage.groups.affine_gps.euclidean_group', 'EuclideanGroup') +del lazy_import diff --git a/src/sage/groups/all__sagemath_objects.py b/src/sage/groups/all__sagemath_objects.py new file mode 100644 index 00000000000..f9b8167c3cd --- /dev/null +++ b/src/sage/groups/all__sagemath_objects.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-objects diff --git a/src/sage/groups/all__sagemath_pari.py b/src/sage/groups/all__sagemath_pari.py new file mode 100644 index 00000000000..60641034422 --- /dev/null +++ b/src/sage/groups/all__sagemath_pari.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-pari + +from sage.groups.pari_group import PariGroup diff --git a/src/sage/groups/artin.py b/src/sage/groups/artin.py index 2339394224e..fca0ba1e6fe 100644 --- a/src/sage/groups/artin.py +++ b/src/sage/groups/artin.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups """ Artin Groups @@ -61,6 +62,7 @@ def _latex_(self): sage: b._latex_() # needs sage.rings.number_field '\\sigma_{1}\\sigma_{2}\\sigma_{3}\\sigma_{1}^{-1}\\sigma_{2}\\sigma_{3}^{-1}' + sage: # needs sage.graphs sage: B = BraidGroup(4) sage: b = B([1, 2, 3, -1, 2, -3]) sage: b._latex_() @@ -91,6 +93,7 @@ def exponent_sum(self): sage: b.exponent_sum() 0 + sage: # needs sage.graphs sage: B = BraidGroup(5) sage: b = B([1, 4, -3, 2]) sage: b.exponent_sum() @@ -132,6 +135,8 @@ def coxeter_group_element(self, W=None): [3, 2, 1] sage: c.coxeter_group_element(W=SymmetricGroup(4)) (1,4,3,2) + + sage: # needs sage.graphs sage: A. = BraidGroup(4) sage: c = s1 * s2 * s3^-1 sage: c0 = c.coxeter_group_element(); c0 @@ -145,6 +150,8 @@ def coxeter_group_element(self, W=None): sage: # needs sage.rings.number_field sage: B(b1) s1*s2*s3*s2 + + sage: # needs sage.graphs sage: A(c0) s1*s2*s3 sage: A(c0) == A(c1) @@ -243,10 +250,10 @@ def left_normal_form(self): sage: B = BraidGroup(4) sage: b = B([1, 2, 3, -1, 2, -3]) - sage: b.left_normal_form() + sage: b.left_normal_form() # needs sage.libs.braiding (s0^-1*s1^-1*s0^-1*s2^-1*s1^-1*s0^-1, s0*s1*s2*s1*s0, s0*s2*s1) sage: c = B([1]) - sage: c.left_normal_form() + sage: c.left_normal_form() # needs sage.libs.braiding (1, s0) """ lnfp = self._left_normal_form_coxeter() @@ -430,11 +437,12 @@ def __classcall_private__(cls, coxeter_data, names=None): sage: ArtinGroup(['A',3]) is BraidGroup(4, 's1,s2,s3') # needs sage.rings.number_field True + sage: # needs sage.graphs sage.rings.number_field sage: G = graphs.PathGraph(3) sage: CM = CoxeterMatrix([[1,-1,2],[-1,1,-1],[2,-1,1]], index_set=G.vertices(sort=True)) - sage: A = groups.misc.Artin(CM) # needs sage.rings.number_field - sage: Ap = groups.misc.RightAngledArtin(G, 's') # needs sage.rings.number_field - sage: A is Ap # needs sage.rings.number_field + sage: A = groups.misc.Artin(CM) + sage: Ap = groups.misc.RightAngledArtin(G, 's') + sage: A is Ap True """ coxeter_data = CoxeterMatrix(coxeter_data) @@ -513,6 +521,7 @@ def cardinality(self): EXAMPLES:: + sage: # needs sage.graphs sage: Gamma = graphs.CycleGraph(5) sage: G = RightAngledArtinGroup(Gamma) sage: G.cardinality() diff --git a/src/sage/groups/braid.py b/src/sage/groups/braid.py index 8945175cf7a..fd1b8a703ab 100644 --- a/src/sage/groups/braid.py +++ b/src/sage/groups/braid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups """ Braid groups @@ -1190,7 +1191,6 @@ def _enhanced_states(self): [(2, [((1, 1), [], [([(0, 0), (1, 2)], 0), ([(0, 2), (1, 0)], 0)])])])] """ from sage.graphs.graph import Graph - from sage.functions.generalized import sgn crossinglist = self.Tietze() ncross = len(crossinglist) writhe = 0 @@ -1201,7 +1201,7 @@ def _enhanced_states(self): first_crossing_in_row = [None] * self.strands() crossings = [None] * ncross for i, cr in enumerate(crossinglist): - writhe = writhe + sgn(cr) + writhe = writhe + cr.sign() prevabove = last_crossing_in_row[abs(cr) - 1] prevbelow = last_crossing_in_row[abs(cr)] if prevabove is None: @@ -1246,7 +1246,7 @@ def _enhanced_states(self): v = v + [0]*(ncross - len(v)) G = Graph() for j, cr in enumerate(crossings): - if (v[j]*2-1)*sgn(cr["cr"]) == -1: # oriented resolution + if (v[j]*2-1) * cr["cr"].sign() == -1: # oriented resolution G.add_edge((j, cr["next_above"], abs(cr["cr"]) - 1), (j, 1)) G.add_edge((cr["prev_above"], j, abs(cr["cr"]) - 1), (j, 1)) G.add_edge((j, cr["next_below"], abs(cr["cr"])), (j, 3)) diff --git a/src/sage/groups/cactus_group.py b/src/sage/groups/cactus_group.py index c1c1f696992..c735909fafe 100644 --- a/src/sage/groups/cactus_group.py +++ b/src/sage/groups/cactus_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups # sage.doctest: needs sage.rings.number_field r""" Cactus Groups diff --git a/src/sage/groups/class_function.py b/src/sage/groups/class_function.py index 1e69c3d6080..49bf03febbb 100644 --- a/src/sage/groups/class_function.py +++ b/src/sage/groups/class_function.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups # sage.doctest: needs sage.rings.number_field r""" Class functions of groups. diff --git a/src/sage/groups/conjugacy_classes.py b/src/sage/groups/conjugacy_classes.py index 2208389e17d..c90421790de 100644 --- a/src/sage/groups/conjugacy_classes.py +++ b/src/sage/groups/conjugacy_classes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Conjugacy classes of groups diff --git a/src/sage/groups/cubic_braid.py b/src/sage/groups/cubic_braid.py index d607435337a..52259e472dc 100644 --- a/src/sage/groups/cubic_braid.py +++ b/src/sage/groups/cubic_braid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Cubic Braid Groups diff --git a/src/sage/groups/finitely_presented.py b/src/sage/groups/finitely_presented.py index 8eb469118d3..3ddd24206d1 100644 --- a/src/sage/groups/finitely_presented.py +++ b/src/sage/groups/finitely_presented.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups """ Finitely Presented Groups diff --git a/src/sage/groups/finitely_presented_catalog.py b/src/sage/groups/finitely_presented_catalog.py index 512e851628b..a21d3e582cb 100644 --- a/src/sage/groups/finitely_presented_catalog.py +++ b/src/sage/groups/finitely_presented_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups """ Type ``groups.presentation.`` to access examples of groups implemented as finite presentations (quotients of diff --git a/src/sage/groups/finitely_presented_named.py b/src/sage/groups/finitely_presented_named.py index 8b07c5af7df..9c6938424eb 100644 --- a/src/sage/groups/finitely_presented_named.py +++ b/src/sage/groups/finitely_presented_named.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Named Finitely Presented Groups diff --git a/src/sage/groups/fqf_orthogonal.py b/src/sage/groups/fqf_orthogonal.py index 5da64f03212..8174eada56b 100644 --- a/src/sage/groups/fqf_orthogonal.py +++ b/src/sage/groups/fqf_orthogonal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Orthogonal Groups of Torsion Quadratic Forms diff --git a/src/sage/groups/free_group.py b/src/sage/groups/free_group.py index bc952896e67..9543388571f 100644 --- a/src/sage/groups/free_group.py +++ b/src/sage/groups/free_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups """ Free Groups diff --git a/src/sage/groups/galois_group.py b/src/sage/groups/galois_group.py index 5a4e706272d..a75e46d9815 100644 --- a/src/sage/groups/galois_group.py +++ b/src/sage/groups/galois_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Galois groups of field extensions. diff --git a/src/sage/groups/galois_group_perm.py b/src/sage/groups/galois_group_perm.py index 61a6e709c01..0f42cf59f26 100644 --- a/src/sage/groups/galois_group_perm.py +++ b/src/sage/groups/galois_group_perm.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Galois groups of field extensions as permutation groups """ diff --git a/src/sage/groups/generic.py b/src/sage/groups/generic.py index 69acc7c654d..9af53419a67 100644 --- a/src/sage/groups/generic.py +++ b/src/sage/groups/generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Miscellaneous generic functions @@ -1332,7 +1333,7 @@ def _order_from_multiple_helper(Q, L, S): for k in range(l): p, e = L[k] # multiplying by p**e require roughly 'e log_2(p) / 2' additions - v = e * sage.functions.log.log(float(p)) + v = e * log(float(p)) if abs(sum_left + v - (S / 2)) > abs(sum_left - (S / 2)): break sum_left += v @@ -1346,7 +1347,7 @@ def _order_from_multiple_helper(Q, L, S): o2 = _order_from_multiple_helper(_multiple(Q, o1), L2, S - sum_left) return o1 * o2 - return _order_from_multiple_helper(P, F, sage.functions.log.log(float(M))) + return _order_from_multiple_helper(P, F, log(float(M))) def order_from_bounds(P, bounds, d=None, operation='+', diff --git a/src/sage/groups/group.pxd b/src/sage/groups/group.pxd index 8a38ba4b583..771408df9ab 100644 --- a/src/sage/groups/group.pxd +++ b/src/sage/groups/group.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects from sage.structure.parent cimport Parent cdef class Group(Parent): diff --git a/src/sage/groups/group.pyx b/src/sage/groups/group.pyx index b5047594a9c..151da010951 100644 --- a/src/sage/groups/group.pyx +++ b/src/sage/groups/group.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects """ Base class for groups """ diff --git a/src/sage/groups/group_exp.py b/src/sage/groups/group_exp.py index a8677c05e4c..69c08ea1d0f 100644 --- a/src/sage/groups/group_exp.py +++ b/src/sage/groups/group_exp.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Functor that converts a commutative additive group into a multiplicative group. diff --git a/src/sage/groups/group_semidirect_product.py b/src/sage/groups/group_semidirect_product.py index 7287a79f614..89ed0d42e04 100644 --- a/src/sage/groups/group_semidirect_product.py +++ b/src/sage/groups/group_semidirect_product.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Semidirect product of groups diff --git a/src/sage/groups/groups_catalog.py b/src/sage/groups/groups_catalog.py index afb8adafa50..b72758cf964 100644 --- a/src/sage/groups/groups_catalog.py +++ b/src/sage/groups/groups_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Examples of Groups diff --git a/src/sage/groups/indexed_free_group.py b/src/sage/groups/indexed_free_group.py index ad484532f13..4fd62ad60c7 100644 --- a/src/sage/groups/indexed_free_group.py +++ b/src/sage/groups/indexed_free_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.combinat """ Indexed Free Groups diff --git a/src/sage/groups/kernel_subgroup.py b/src/sage/groups/kernel_subgroup.py index 6a20b673c57..9a8887d5612 100644 --- a/src/sage/groups/kernel_subgroup.py +++ b/src/sage/groups/kernel_subgroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Kernel Subgroups diff --git a/src/sage/groups/libgap_group.py b/src/sage/groups/libgap_group.py index 09889de4af5..3a181ff46ba 100644 --- a/src/sage/groups/libgap_group.py +++ b/src/sage/groups/libgap_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ Generic LibGAP-based Group diff --git a/src/sage/groups/libgap_mixin.py b/src/sage/groups/libgap_mixin.py index 3491c9f9db0..9062b1d4a0a 100644 --- a/src/sage/groups/libgap_mixin.py +++ b/src/sage/groups/libgap_mixin.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: needs sage.modules """ Mix-in Class for GAP-based Groups diff --git a/src/sage/groups/libgap_morphism.py b/src/sage/groups/libgap_morphism.py index 3bcb28c1f94..1f19657c8e5 100644 --- a/src/sage/groups/libgap_morphism.py +++ b/src/sage/groups/libgap_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Group homomorphisms for groups with a GAP backend diff --git a/src/sage/groups/libgap_wrapper.pxd b/src/sage/groups/libgap_wrapper.pxd index 2f76d978afd..11ff32b1d9a 100644 --- a/src/sage/groups/libgap_wrapper.pxd +++ b/src/sage/groups/libgap_wrapper.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap from sage.structure.element cimport MultiplicativeGroupElement from sage.libs.gap.element cimport GapElement diff --git a/src/sage/groups/libgap_wrapper.pyx b/src/sage/groups/libgap_wrapper.pyx index fe09dc080c1..2ef5cb338fe 100644 --- a/src/sage/groups/libgap_wrapper.pyx +++ b/src/sage/groups/libgap_wrapper.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ LibGAP-based Groups diff --git a/src/sage/groups/lie_gps/all.py b/src/sage/groups/lie_gps/all.py index e69de29bb2d..11f290a2a34 100644 --- a/src/sage/groups/lie_gps/all.py +++ b/src/sage/groups/lie_gps/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-groups diff --git a/src/sage/groups/lie_gps/catalog.py b/src/sage/groups/lie_gps/catalog.py index 1b35d31d6b7..d0f386c50b5 100644 --- a/src/sage/groups/lie_gps/catalog.py +++ b/src/sage/groups/lie_gps/catalog.py @@ -1,5 +1,8 @@ +# sage_setup: distribution = sagemath-groups r""" Type ``groups.lie.`` to access examples of Lie groups. """ +from sage.misc.lazy_import import lazy_import as _lazy_import -from sage.groups.lie_gps.nilpotent_lie_group import NilpotentLieGroup as Nilpotent +# We use lazy import because the module depends on sage.manifolds and thus on sage.symbolic +_lazy_import('sage.groups.lie_gps.nilpotent_lie_group', 'NilpotentLieGroup', as_='Nilpotent') diff --git a/src/sage/groups/lie_gps/nilpotent_lie_group.py b/src/sage/groups/lie_gps/nilpotent_lie_group.py index aa9f6bd0dc8..7492bfb259b 100644 --- a/src/sage/groups/lie_gps/nilpotent_lie_group.py +++ b/src/sage/groups/lie_gps/nilpotent_lie_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Nilpotent Lie groups diff --git a/src/sage/groups/matrix_gps/all.py b/src/sage/groups/matrix_gps/all.py index c6360cd6a03..503b377f675 100644 --- a/src/sage/groups/matrix_gps/all.py +++ b/src/sage/groups/matrix_gps/all.py @@ -1,13 +1,5 @@ -from sage.misc.lazy_import import lazy_import +# sage_setup: distribution = sagemath-modules -lazy_import('sage.groups.matrix_gps.linear', 'GL') -lazy_import('sage.groups.matrix_gps.linear', 'SL') -lazy_import('sage.groups.matrix_gps.symplectic', 'Sp') -lazy_import('sage.groups.matrix_gps.unitary', 'SU') -lazy_import('sage.groups.matrix_gps.unitary', 'GU') -lazy_import('sage.groups.matrix_gps.orthogonal', 'GO') -lazy_import('sage.groups.matrix_gps.orthogonal', 'SO') -lazy_import('sage.groups.matrix_gps.finitely_generated', 'MatrixGroup') -lazy_import('sage.groups.matrix_gps.finitely_generated', 'QuaternionMatrixGroupGF3') +from sage.groups.matrix_gps.all__sagemath_modules import * import sage.groups.matrix_gps.pickling_overrides diff --git a/src/sage/groups/matrix_gps/all__sagemath_gap.py b/src/sage/groups/matrix_gps/all__sagemath_gap.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/groups/matrix_gps/all__sagemath_gap.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/groups/matrix_gps/all__sagemath_modules.py b/src/sage/groups/matrix_gps/all__sagemath_modules.py new file mode 100644 index 00000000000..d8f62909ffd --- /dev/null +++ b/src/sage/groups/matrix_gps/all__sagemath_modules.py @@ -0,0 +1,13 @@ +# sage_setup: distribution = sagemath-modules +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.groups.matrix_gps.linear', 'GL') +lazy_import('sage.groups.matrix_gps.linear', 'SL') +lazy_import('sage.groups.matrix_gps.symplectic', 'Sp') +lazy_import('sage.groups.matrix_gps.unitary', 'SU') +lazy_import('sage.groups.matrix_gps.unitary', 'GU') +lazy_import('sage.groups.matrix_gps.orthogonal', 'GO') +lazy_import('sage.groups.matrix_gps.orthogonal', 'SO') +lazy_import('sage.groups.matrix_gps.finitely_generated', 'MatrixGroup') +lazy_import('sage.groups.matrix_gps.finitely_generated', 'QuaternionMatrixGroupGF3') +del lazy_import diff --git a/src/sage/groups/matrix_gps/binary_dihedral.py b/src/sage/groups/matrix_gps/binary_dihedral.py index ccce9eeb17b..bf2a1b69342 100644 --- a/src/sage/groups/matrix_gps/binary_dihedral.py +++ b/src/sage/groups/matrix_gps/binary_dihedral.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: needs sage.libs.gap sage.modules sage.rings.number_field """ Binary Dihedral Groups diff --git a/src/sage/groups/matrix_gps/catalog.py b/src/sage/groups/matrix_gps/catalog.py index a9687740649..89bcc140bd8 100644 --- a/src/sage/groups/matrix_gps/catalog.py +++ b/src/sage/groups/matrix_gps/catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Library of Interesting Groups @@ -14,7 +15,12 @@ # entry to the list in the module-level # docstring of groups/groups_catalog.py -from .all import GL, SL, Sp, SU, GU, SO, GO -from .all import QuaternionMatrixGroupGF3 as QuaternionGF3 -from sage.groups.matrix_gps.binary_dihedral import BinaryDihedralGroup as BinaryDihedral -from sage.groups.matrix_gps.heisenberg import HeisenbergGroup as Heisenberg +from .all__sagemath_modules import GL, SL, Sp, SU, GU, SO, GO +from .all__sagemath_modules import QuaternionMatrixGroupGF3 as QuaternionGF3 + +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.groups.matrix_gps.binary_dihedral', 'BinaryDihedralGroup', as_='BinaryDihedral') +lazy_import('sage.groups.matrix_gps.heisenberg', 'HeisenbergGroup', as_='Heisenberg') + +del lazy_import diff --git a/src/sage/groups/matrix_gps/coxeter_group.py b/src/sage/groups/matrix_gps/coxeter_group.py index 1fc089d94c4..9b89bfcdff5 100644 --- a/src/sage/groups/matrix_gps/coxeter_group.py +++ b/src/sage/groups/matrix_gps/coxeter_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs """ Coxeter Groups As Matrix Groups diff --git a/src/sage/groups/matrix_gps/finitely_generated.py b/src/sage/groups/matrix_gps/finitely_generated.py index b8dd5b8c01d..7cb44911754 100644 --- a/src/sage/groups/matrix_gps/finitely_generated.py +++ b/src/sage/groups/matrix_gps/finitely_generated.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Finitely Generated Matrix Groups @@ -19,8 +20,8 @@ subgroups of matrix groups:: sage: SL2Z = SL(2, ZZ) - sage: S, T = SL2Z.gens() - sage: SL2Z.subgroup([T^2]) + sage: S, T = SL2Z.gens() # needs sage.libs.gap + sage: SL2Z.subgroup([T^2]) # needs sage.libs.gap Subgroup with 1 generators ( [1 2] [0 1] @@ -159,6 +160,7 @@ def QuaternionMatrixGroupGF3(): elements commonly called `I` and `J`, while `K` is the product of `I` and `J`. :: + sage: # needs sage.libs.gap sage: from sage.groups.matrix_gps.finitely_generated import QuaternionMatrixGroupGF3 sage: # needs sage.libs.gap diff --git a/src/sage/groups/matrix_gps/finitely_generated_gap.py b/src/sage/groups/matrix_gps/finitely_generated_gap.py index d3403f22f40..1fd772f79e2 100644 --- a/src/sage/groups/matrix_gps/finitely_generated_gap.py +++ b/src/sage/groups/matrix_gps/finitely_generated_gap.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-gap + """ Finitely Generated Matrix Groups with GAP """ diff --git a/src/sage/groups/matrix_gps/group_element.pxd b/src/sage/groups/matrix_gps/group_element.pxd index 36a5a9fc4ce..fadcded4ef9 100644 --- a/src/sage/groups/matrix_gps/group_element.pxd +++ b/src/sage/groups/matrix_gps/group_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport MultiplicativeGroupElement, Element, MonoidElement, Matrix cpdef is_MatrixGroupElement(x) diff --git a/src/sage/groups/matrix_gps/group_element.pyx b/src/sage/groups/matrix_gps/group_element.pyx index 5d00aa727bf..effcf9f962c 100644 --- a/src/sage/groups/matrix_gps/group_element.pyx +++ b/src/sage/groups/matrix_gps/group_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Matrix Group Elements diff --git a/src/sage/groups/matrix_gps/group_element_gap.pxd b/src/sage/groups/matrix_gps/group_element_gap.pxd index e0ecbefea5c..2c99c0d4e9a 100644 --- a/src/sage/groups/matrix_gps/group_element_gap.pxd +++ b/src/sage/groups/matrix_gps/group_element_gap.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap from sage.groups.libgap_wrapper cimport ElementLibGAP cdef class MatrixGroupElement_gap(ElementLibGAP): diff --git a/src/sage/groups/matrix_gps/group_element_gap.pyx b/src/sage/groups/matrix_gps/group_element_gap.pyx index e5d7d637fdf..38eccde2a17 100644 --- a/src/sage/groups/matrix_gps/group_element_gap.pyx +++ b/src/sage/groups/matrix_gps/group_element_gap.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-gap + r""" Matrix group elements implemented in GAP """ diff --git a/src/sage/groups/matrix_gps/heisenberg.py b/src/sage/groups/matrix_gps/heisenberg.py index f101c27153b..cdc1d80fcea 100644 --- a/src/sage/groups/matrix_gps/heisenberg.py +++ b/src/sage/groups/matrix_gps/heisenberg.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: needs sage.libs.gap sage.modules """ Heisenberg Group diff --git a/src/sage/groups/matrix_gps/isometries.py b/src/sage/groups/matrix_gps/isometries.py index 8e0df5f154b..1916670a960 100644 --- a/src/sage/groups/matrix_gps/isometries.py +++ b/src/sage/groups/matrix_gps/isometries.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Groups of isometries diff --git a/src/sage/groups/matrix_gps/linear.py b/src/sage/groups/matrix_gps/linear.py index 113a93cca44..3a6a36de13c 100644 --- a/src/sage/groups/matrix_gps/linear.py +++ b/src/sage/groups/matrix_gps/linear.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Linear Groups @@ -236,7 +237,7 @@ def SL(n, R, var='a'): Special Linear Group of degree 2 over Integer Ring sage: G.category() Category of infinite groups - sage: G.gens() + sage: G.gens() # needs sage.libs.gap ( [ 0 1] [1 1] [-1 0], [0 1] diff --git a/src/sage/groups/matrix_gps/linear_gap.py b/src/sage/groups/matrix_gps/linear_gap.py index f5c16f1c9fe..5195ae87bc9 100644 --- a/src/sage/groups/matrix_gps/linear_gap.py +++ b/src/sage/groups/matrix_gps/linear_gap.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-gap + """ Linear Groups with GAP """ diff --git a/src/sage/groups/matrix_gps/matrix_group.py b/src/sage/groups/matrix_gps/matrix_group.py index a11ca5a4448..6f950b8488d 100644 --- a/src/sage/groups/matrix_gps/matrix_group.py +++ b/src/sage/groups/matrix_gps/matrix_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Base classes for Matrix Groups @@ -16,7 +17,7 @@ We test that :issue:`9437` is fixed:: - sage: len(list(SL(2, Zmod(4)))) + sage: len(list(SL(2, Zmod(4)))) # needs sage.libs.gap 48 AUTHORS: diff --git a/src/sage/groups/matrix_gps/matrix_group_gap.py b/src/sage/groups/matrix_gps/matrix_group_gap.py index 552fcde3ff6..987e5cfb438 100644 --- a/src/sage/groups/matrix_gps/matrix_group_gap.py +++ b/src/sage/groups/matrix_gps/matrix_group_gap.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-gap + r""" Matrix group over a ring that GAP understands """ diff --git a/src/sage/groups/matrix_gps/named_group.py b/src/sage/groups/matrix_gps/named_group.py index 64d2b932662..5f65be5f667 100644 --- a/src/sage/groups/matrix_gps/named_group.py +++ b/src/sage/groups/matrix_gps/named_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Base for Classical Matrix Groups diff --git a/src/sage/groups/matrix_gps/named_group_gap.py b/src/sage/groups/matrix_gps/named_group_gap.py index 699e351f06d..be23d728d36 100644 --- a/src/sage/groups/matrix_gps/named_group_gap.py +++ b/src/sage/groups/matrix_gps/named_group_gap.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-gap + """ Base for Classical Matrix Groups with GAP """ diff --git a/src/sage/groups/matrix_gps/orthogonal.py b/src/sage/groups/matrix_gps/orthogonal.py index 0e8536fed5f..e428034000c 100644 --- a/src/sage/groups/matrix_gps/orthogonal.py +++ b/src/sage/groups/matrix_gps/orthogonal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Orthogonal Linear Groups @@ -325,7 +326,7 @@ def GO(n, R, e=0, var='a', invariant_form=None): sage: # needs sage.libs.gap sage: TestSuite(GO3).run() - sage: groups.matrix.GO(2, 3, e=-1) + sage: groups.matrix.GO(2, 3, e=-1) # needs sage.rings.finite_rings General Orthogonal Group of degree 2 and form parameter -1 over Finite Field of size 3 """ return _OG(n, R, False, e=e, var=var, invariant_form=invariant_form) diff --git a/src/sage/groups/matrix_gps/orthogonal_gap.py b/src/sage/groups/matrix_gps/orthogonal_gap.py index 39947bda211..64d1bcb2cef 100644 --- a/src/sage/groups/matrix_gps/orthogonal_gap.py +++ b/src/sage/groups/matrix_gps/orthogonal_gap.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-gap + r""" Orthogonal Linear Groups with GAP """ diff --git a/src/sage/groups/matrix_gps/symplectic.py b/src/sage/groups/matrix_gps/symplectic.py index bbcf92b1bcf..286a7eba18c 100644 --- a/src/sage/groups/matrix_gps/symplectic.py +++ b/src/sage/groups/matrix_gps/symplectic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Symplectic Linear Groups diff --git a/src/sage/groups/matrix_gps/symplectic_gap.py b/src/sage/groups/matrix_gps/symplectic_gap.py index b0d05c3be6e..7c8a4a966b3 100644 --- a/src/sage/groups/matrix_gps/symplectic_gap.py +++ b/src/sage/groups/matrix_gps/symplectic_gap.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-gap + """ Symplectic Linear Groups with GAP """ diff --git a/src/sage/groups/matrix_gps/unitary.py b/src/sage/groups/matrix_gps/unitary.py index e16ffb6a46b..922b0b279ff 100644 --- a/src/sage/groups/matrix_gps/unitary.py +++ b/src/sage/groups/matrix_gps/unitary.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Unitary Groups `GU(n,q)` and `SU(n,q)` diff --git a/src/sage/groups/matrix_gps/unitary_gap.py b/src/sage/groups/matrix_gps/unitary_gap.py index ab0512a4803..6a720185f89 100644 --- a/src/sage/groups/matrix_gps/unitary_gap.py +++ b/src/sage/groups/matrix_gps/unitary_gap.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: needs sage.rings.finite_rings r""" Unitary Groups `GU(n,q)` and `SU(n,q)` with GAP diff --git a/src/sage/groups/misc_gps/all.py b/src/sage/groups/misc_gps/all.py index e69de29bb2d..11f290a2a34 100644 --- a/src/sage/groups/misc_gps/all.py +++ b/src/sage/groups/misc_gps/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-groups diff --git a/src/sage/groups/misc_gps/argument_groups.py b/src/sage/groups/misc_gps/argument_groups.py index 43c2ef98770..f8f281f186c 100644 --- a/src/sage/groups/misc_gps/argument_groups.py +++ b/src/sage/groups/misc_gps/argument_groups.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Groups of elements representing (complex) arguments. diff --git a/src/sage/groups/misc_gps/imaginary_groups.py b/src/sage/groups/misc_gps/imaginary_groups.py index 428db810921..20f6dca3b19 100644 --- a/src/sage/groups/misc_gps/imaginary_groups.py +++ b/src/sage/groups/misc_gps/imaginary_groups.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Groups of imaginary elements diff --git a/src/sage/groups/misc_gps/misc_groups.py b/src/sage/groups/misc_gps/misc_groups.py index fb6bcb30fb7..7b695bb6fab 100644 --- a/src/sage/groups/misc_gps/misc_groups.py +++ b/src/sage/groups/misc_gps/misc_groups.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Miscellaneous Groups diff --git a/src/sage/groups/misc_gps/misc_groups_catalog.py b/src/sage/groups/misc_gps/misc_groups_catalog.py index c41a5d8b49c..c2bb4cb9154 100644 --- a/src/sage/groups/misc_gps/misc_groups_catalog.py +++ b/src/sage/groups/misc_gps/misc_groups_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups r""" Type ``groups.misc.`` to access examples of various groups not listed elsewhere. diff --git a/src/sage/groups/old.pxd b/src/sage/groups/old.pxd index 3409c5b1764..87b029a4992 100644 --- a/src/sage/groups/old.pxd +++ b/src/sage/groups/old.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects cimport sage.structure.parent_gens cdef class Group(sage.structure.parent.Parent): diff --git a/src/sage/groups/old.pyx b/src/sage/groups/old.pyx index 564dbd75c23..673c4613679 100644 --- a/src/sage/groups/old.pyx +++ b/src/sage/groups/old.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects """ Deprecated base class for groups """ diff --git a/src/sage/groups/pari_group.py b/src/sage/groups/pari_group.py index fb460e5b902..f5610833db0 100644 --- a/src/sage/groups/pari_group.py +++ b/src/sage/groups/pari_group.py @@ -1,4 +1,5 @@ -# sage.doctest: needs sage.libs.pari +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.groups sage.libs.pari r""" PARI Groups diff --git a/src/sage/groups/perm_gps/all.py b/src/sage/groups/perm_gps/all.py index 2cda7602d8c..56571fafe06 100644 --- a/src/sage/groups/perm_gps/all.py +++ b/src/sage/groups/perm_gps/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-gap + from sage.groups.perm_gps.permgroup_named import (SymmetricGroup, AlternatingGroup, DihedralGroup, SplitMetacyclicGroup, SemidihedralGroup, CyclicPermutationGroup, diff --git a/src/sage/groups/perm_gps/all__sagemath_categories.py b/src/sage/groups/perm_gps/all__sagemath_categories.py new file mode 100644 index 00000000000..b230a6a2ad9 --- /dev/null +++ b/src/sage/groups/perm_gps/all__sagemath_categories.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/groups/perm_gps/all__sagemath_graphs.py b/src/sage/groups/perm_gps/all__sagemath_graphs.py new file mode 100644 index 00000000000..9d0d23c0337 --- /dev/null +++ b/src/sage/groups/perm_gps/all__sagemath_graphs.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-graphs diff --git a/src/sage/groups/perm_gps/all__sagemath_modules.py b/src/sage/groups/perm_gps/all__sagemath_modules.py new file mode 100644 index 00000000000..6f6ab52d0f2 --- /dev/null +++ b/src/sage/groups/perm_gps/all__sagemath_modules.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/groups/perm_gps/constructor.py b/src/sage/groups/perm_gps/constructor.py index 63c9aecd5d3..32bd31fd8eb 100644 --- a/src/sage/groups/perm_gps/constructor.py +++ b/src/sage/groups/perm_gps/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ Constructor for permutations diff --git a/src/sage/groups/perm_gps/cubegroup.py b/src/sage/groups/perm_gps/cubegroup.py index 8eadbac39f1..fc9eac042c3 100644 --- a/src/sage/groups/perm_gps/cubegroup.py +++ b/src/sage/groups/perm_gps/cubegroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Rubik's cube group functions diff --git a/src/sage/groups/perm_gps/partn_ref/all.py b/src/sage/groups/perm_gps/partn_ref/all.py index e69de29bb2d..b230a6a2ad9 100644 --- a/src/sage/groups/perm_gps/partn_ref/all.py +++ b/src/sage/groups/perm_gps/partn_ref/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/groups/perm_gps/partn_ref/all__sagemath_categories.py b/src/sage/groups/perm_gps/partn_ref/all__sagemath_categories.py new file mode 100644 index 00000000000..b230a6a2ad9 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref/all__sagemath_categories.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/groups/perm_gps/partn_ref/all__sagemath_gap.py b/src/sage/groups/perm_gps/partn_ref/all__sagemath_gap.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref/all__sagemath_gap.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/groups/perm_gps/partn_ref/all__sagemath_graphs.py b/src/sage/groups/perm_gps/partn_ref/all__sagemath_graphs.py new file mode 100644 index 00000000000..9d0d23c0337 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref/all__sagemath_graphs.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-graphs diff --git a/src/sage/groups/perm_gps/partn_ref/all__sagemath_modules.py b/src/sage/groups/perm_gps/partn_ref/all__sagemath_modules.py new file mode 100644 index 00000000000..6f6ab52d0f2 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref/all__sagemath_modules.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pxd b/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pxd index 8e2c03f85de..faa56ef469a 100644 --- a/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pxd +++ b/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2006 - 2011 Robert L. Miller # diff --git a/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx b/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx index f8d9aaf2c1b..d3a96d55d91 100644 --- a/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx +++ b/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.groups r""" Automorphism groups and canonical labels diff --git a/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pxd b/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pxd index 8996dcaf509..45a03cc6c21 100644 --- a/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pxd +++ b/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Declaration file for canonical augmentation diff --git a/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx b/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx index 2775842c09d..60dd9417738 100644 --- a/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx +++ b/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Canonical augmentation diff --git a/src/sage/groups/perm_gps/partn_ref/data_structures.pxd b/src/sage/groups/perm_gps/partn_ref/data_structures.pxd index 1cbb95231d5..932386317a3 100644 --- a/src/sage/groups/perm_gps/partn_ref/data_structures.pxd +++ b/src/sage/groups/perm_gps/partn_ref/data_structures.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2006 - 2011 Robert L. Miller # diff --git a/src/sage/groups/perm_gps/partn_ref/data_structures.pyx b/src/sage/groups/perm_gps/partn_ref/data_structures.pyx index 28672d00038..0cddab0d36a 100644 --- a/src/sage/groups/perm_gps/partn_ref/data_structures.pyx +++ b/src/sage/groups/perm_gps/partn_ref/data_structures.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Data structures diff --git a/src/sage/groups/perm_gps/partn_ref/double_coset.pxd b/src/sage/groups/perm_gps/partn_ref/double_coset.pxd index 6c5d9e0f279..a0c86f1bcb5 100644 --- a/src/sage/groups/perm_gps/partn_ref/double_coset.pxd +++ b/src/sage/groups/perm_gps/partn_ref/double_coset.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2006 - 2011 Robert L. Miller # diff --git a/src/sage/groups/perm_gps/partn_ref/double_coset.pyx b/src/sage/groups/perm_gps/partn_ref/double_coset.pyx index d4cedec1f3c..06e294fea52 100644 --- a/src/sage/groups/perm_gps/partn_ref/double_coset.pyx +++ b/src/sage/groups/perm_gps/partn_ref/double_coset.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.groups r""" Double cosets diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_binary.pxd b/src/sage/groups/perm_gps/partn_ref/refinement_binary.pxd index 4af69f4b5f5..dbcaa574b8e 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_binary.pxd +++ b/src/sage/groups/perm_gps/partn_ref/refinement_binary.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules #***************************************************************************** # Copyright (C) 2006 - 2011 Robert L. Miller # diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx b/src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx index 1b8ace1cae0..a5de5c9f964 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx +++ b/src/sage/groups/perm_gps/partn_ref/refinement_binary.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - sage.modules sage.rings.finite_rings """ Partition backtrack functions for binary codes diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pxd b/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pxd index 464ddde015d..3dbbb6f8c5a 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pxd +++ b/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs #***************************************************************************** # Copyright (C) 2006 - 2011 Robert L. Miller # diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pyx b/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pyx index 1258ea280ab..004af2476ab 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pyx +++ b/src/sage/groups/perm_gps/partn_ref/refinement_graphs.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Graph-theoretic partition backtrack functions diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_lists.pxd b/src/sage/groups/perm_gps/partn_ref/refinement_lists.pxd index 43cf567dc40..bbf2f28ab45 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_lists.pxd +++ b/src/sage/groups/perm_gps/partn_ref/refinement_lists.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2006 - 2011 Robert L. Miller # Copyright (C) 2009 Nicolas Borie diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_lists.pyx b/src/sage/groups/perm_gps/partn_ref/refinement_lists.pyx index e15683bdd77..0af457aa9d8 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_lists.pyx +++ b/src/sage/groups/perm_gps/partn_ref/refinement_lists.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Partition backtrack functions for lists -- a simple example of using partn_ref diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pxd b/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pxd index 2cf087e9915..15a8c8a045b 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pxd +++ b/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules #***************************************************************************** # Copyright (C) 2006 - 2011 Robert L. Miller # diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pyx b/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pyx index 57bf05e2e6d..973e2198330 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pyx +++ b/src/sage/groups/perm_gps/partn_ref/refinement_matrices.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Partition backtrack functions for matrices diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_python.pxd b/src/sage/groups/perm_gps/partn_ref/refinement_python.pxd index 9f46107a1c1..96e68132042 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_python.pxd +++ b/src/sage/groups/perm_gps/partn_ref/refinement_python.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2006 - 2011 Robert L. Miller # diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_python.pyx b/src/sage/groups/perm_gps/partn_ref/refinement_python.pyx index 0623c237b76..cbc1e13f98c 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_python.pyx +++ b/src/sage/groups/perm_gps/partn_ref/refinement_python.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Python interface to partition backtrack functions diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_sets.pxd b/src/sage/groups/perm_gps/partn_ref/refinement_sets.pxd index 8a869dd9a52..bd3fa2f0e89 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_sets.pxd +++ b/src/sage/groups/perm_gps/partn_ref/refinement_sets.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Declaration file for simple set datastructures diff --git a/src/sage/groups/perm_gps/partn_ref/refinement_sets.pyx b/src/sage/groups/perm_gps/partn_ref/refinement_sets.pyx index 669e149ff09..6fc8e16eeda 100644 --- a/src/sage/groups/perm_gps/partn_ref/refinement_sets.pyx +++ b/src/sage/groups/perm_gps/partn_ref/refinement_sets.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Partition backtrack functions for sets diff --git a/src/sage/groups/perm_gps/partn_ref2/all.py b/src/sage/groups/perm_gps/partn_ref2/all.py index e69de29bb2d..dd59a6da735 100644 --- a/src/sage/groups/perm_gps/partn_ref2/all.py +++ b/src/sage/groups/perm_gps/partn_ref2/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/groups/perm_gps/partn_ref2/refinement_generic.pxd b/src/sage/groups/perm_gps/partn_ref2/refinement_generic.pxd index 9ba66caff70..bef4ff59121 100644 --- a/src/sage/groups/perm_gps/partn_ref2/refinement_generic.pxd +++ b/src/sage/groups/perm_gps/partn_ref2/refinement_generic.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap #******************************************************************************* # Copyright (C) 2012 Thomas Feulner # diff --git a/src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx b/src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx index af1960e4632..cc7fd9ed457 100644 --- a/src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx +++ b/src/sage/groups/perm_gps/partn_ref2/refinement_generic.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Automorphism groups and canonical labels diff --git a/src/sage/groups/perm_gps/permgroup.py b/src/sage/groups/perm_gps/permgroup.py index 1d3b0bab92c..6bc273e615f 100644 --- a/src/sage/groups/perm_gps/permgroup.py +++ b/src/sage/groups/perm_gps/permgroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Permutation groups @@ -3441,14 +3442,15 @@ def homology(self, n, p=0): EXAMPLES:: + sage: # optional - gap_package_hap sage: G = SymmetricGroup(5) - sage: G.homology(7) # optional - gap_package_hap + sage: G.homology(7) Multiplicative Abelian group isomorphic to C2 x C2 x C4 x C3 x C5 - sage: G.homology(7,2) # optional - gap_package_hap + sage: G.homology(7,2) Multiplicative Abelian group isomorphic to C2 x C2 x C2 x C2 x C2 - sage: G.homology(7,3) # optional - gap_package_hap + sage: G.homology(7,3) Multiplicative Abelian group isomorphic to C3 - sage: G.homology(7,5) # optional - gap_package_hap + sage: G.homology(7,5) Multiplicative Abelian group isomorphic to C5 REFERENCES: diff --git a/src/sage/groups/perm_gps/permgroup_element.pxd b/src/sage/groups/perm_gps/permgroup_element.pxd index 21b509f06d1..81f767526b1 100644 --- a/src/sage/groups/perm_gps/permgroup_element.pxd +++ b/src/sage/groups/perm_gps/permgroup_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap from sage.structure.element cimport MultiplicativeGroupElement, MonoidElement, Element from sage.structure.list_clone cimport ClonableIntArray from sage.rings.polynomial.polydict cimport ETuple diff --git a/src/sage/groups/perm_gps/permgroup_element.pyx b/src/sage/groups/perm_gps/permgroup_element.pyx index 86b3ced83ea..0cb1f897986 100644 --- a/src/sage/groups/perm_gps/permgroup_element.pyx +++ b/src/sage/groups/perm_gps/permgroup_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Permutation group elements @@ -132,6 +133,19 @@ from sage.structure.element import Matrix from sage.structure.richcmp cimport richcmp_not_equal, rich_to_bool import sage.interfaces.abc +import sage.groups.old as group +import sage.structure.coerce as coerce + +from sage.ext.stdsage cimport HAS_DICTIONARY +from sage.interfaces.abc import GpElement +from sage.rings.integer import Integer +from sage.rings.integer_ring import ZZ +from sage.rings.polynomial.multi_polynomial import MPolynomial +from sage.rings.polynomial.polynomial_element import Polynomial +from sage.sets.finite_enumerated_set import FiniteEnumeratedSet +from sage.structure.coerce cimport coercion_model +from sage.structure.element import is_Matrix +from sage.structure.richcmp cimport richcmp_not_equal, rich_to_bool from sage.libs.gap.libgap import libgap from sage.libs.gap.gap_includes cimport (UInt, UInt2, UInt4, T_PERM2, T_PERM4, diff --git a/src/sage/groups/perm_gps/permgroup_morphism.py b/src/sage/groups/perm_gps/permgroup_morphism.py index 69f12016e60..0cb33ad3501 100644 --- a/src/sage/groups/perm_gps/permgroup_morphism.py +++ b/src/sage/groups/perm_gps/permgroup_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Permutation group homomorphisms diff --git a/src/sage/groups/perm_gps/permgroup_named.py b/src/sage/groups/perm_gps/permgroup_named.py index 943c3113579..1ddf0e0271b 100644 --- a/src/sage/groups/perm_gps/permgroup_named.py +++ b/src/sage/groups/perm_gps/permgroup_named.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" "Named" Permutation groups (such as the symmetric group, S_n) @@ -95,6 +96,7 @@ from sage.libs.gap.libgap import libgap from sage.misc.cachefunc import cached_method, weak_cached_function from sage.misc.functional import is_even +from sage.misc.lazy_import import lazy_import from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF from sage.rings.integer import Integer from sage.sets.disjoint_union_enumerated_sets import DisjointUnionEnumeratedSets @@ -106,6 +108,8 @@ from sage.structure.richcmp import richcmp from sage.structure.unique_representation import CachedRepresentation +lazy_import('sage.groups.cactus_group', 'CactusGroup') + class PermutationGroup_unique(CachedRepresentation, PermutationGroup_generic): """ @@ -358,7 +362,6 @@ def _coerce_map_from_(self, G): sage: S2._coerce_map_from_(J3) is None # needs sage.rings.number_field True """ - from sage.groups.cactus_group import CactusGroup if isinstance(G, CactusGroup) and G._n <= self._deg: return self._from_cactus_group_element return super()._coerce_map_from_(G) diff --git a/src/sage/groups/perm_gps/permutation_groups_catalog.py b/src/sage/groups/perm_gps/permutation_groups_catalog.py index 52f99920307..e91742a3e11 100644 --- a/src/sage/groups/perm_gps/permutation_groups_catalog.py +++ b/src/sage/groups/perm_gps/permutation_groups_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Catalog of permutation groups diff --git a/src/sage/groups/perm_gps/symgp_conjugacy_class.py b/src/sage/groups/perm_gps/symgp_conjugacy_class.py index 62ac792c9c9..51dd4e01198 100644 --- a/src/sage/groups/perm_gps/symgp_conjugacy_class.py +++ b/src/sage/groups/perm_gps/symgp_conjugacy_class.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Conjugacy Classes Of The Symmetric Group diff --git a/src/sage/groups/raag.py b/src/sage/groups/raag.py index 4313f500319..6af1d9421b5 100644 --- a/src/sage/groups/raag.py +++ b/src/sage/groups/raag.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups # sage.doctest: needs sage.graphs sage.rings.number_field r""" Right-Angled Artin Groups diff --git a/src/sage/groups/semimonomial_transformations/all.py b/src/sage/groups/semimonomial_transformations/all.py index e69de29bb2d..11f290a2a34 100644 --- a/src/sage/groups/semimonomial_transformations/all.py +++ b/src/sage/groups/semimonomial_transformations/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-groups diff --git a/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pxd b/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pxd index bd4f62d497f..178bd872df8 100644 --- a/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pxd +++ b/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups from sage.structure.element cimport Element, MonoidElement, MultiplicativeGroupElement cdef class SemimonomialTransformation(MultiplicativeGroupElement): diff --git a/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pyx b/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pyx index 72042533883..dff677fa9b6 100644 --- a/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pyx +++ b/src/sage/groups/semimonomial_transformations/semimonomial_transformation.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups # sage.doctest: needs sage.rings.finite_rings r""" Elements of a semimonomial transformation group diff --git a/src/sage/groups/semimonomial_transformations/semimonomial_transformation_group.py b/src/sage/groups/semimonomial_transformations/semimonomial_transformation_group.py index 108d8542c87..c6901af44e1 100644 --- a/src/sage/groups/semimonomial_transformations/semimonomial_transformation_group.py +++ b/src/sage/groups/semimonomial_transformations/semimonomial_transformation_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-groups # sage.doctest: needs sage.rings.finite_rings r""" Semimonomial transformation group diff --git a/src/sage/homology/algebraic_topological_model.py b/src/sage/homology/algebraic_topological_model.py index c7856836f28..caab0e0e6a7 100644 --- a/src/sage/homology/algebraic_topological_model.py +++ b/src/sage/homology/algebraic_topological_model.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs r""" Algebraic topological model for a cell complex diff --git a/src/sage/homology/all.py b/src/sage/homology/all.py index 21a95c6c4af..4be53743f0a 100644 --- a/src/sage/homology/all.py +++ b/src/sage/homology/all.py @@ -1,6 +1,3 @@ -from sage.homology.chain_complex import ChainComplex +# sage_setup: distribution = sagemath-modules -from sage.homology.chain_complex_morphism import ChainComplexMorphism - -from sage.misc.lazy_import import lazy_import -lazy_import('sage.homology.koszul_complex', 'KoszulComplex') +from sage.homology.all__sagemath_modules import * diff --git a/src/sage/homology/all__sagemath_modules.py b/src/sage/homology/all__sagemath_modules.py new file mode 100644 index 00000000000..43781d765e3 --- /dev/null +++ b/src/sage/homology/all__sagemath_modules.py @@ -0,0 +1,8 @@ +# sage_setup: distribution = sagemath-modules +from sage.homology.chain_complex import ChainComplex + +from sage.homology.chain_complex_morphism import ChainComplexMorphism + +from sage.misc.lazy_import import lazy_import +lazy_import('sage.homology.koszul_complex', 'KoszulComplex') +del lazy_import diff --git a/src/sage/homology/chain_complex.py b/src/sage/homology/chain_complex.py index 97111a0cbfa..ed8b73384d3 100644 --- a/src/sage/homology/chain_complex.py +++ b/src/sage/homology/chain_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Chain complexes diff --git a/src/sage/homology/chain_complex_homspace.py b/src/sage/homology/chain_complex_homspace.py index 00fa8f1671a..900335d1100 100644 --- a/src/sage/homology/chain_complex_homspace.py +++ b/src/sage/homology/chain_complex_homspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs (because all doctests use SimplicialComplex) r""" Homspaces between chain complexes diff --git a/src/sage/homology/chain_complex_morphism.py b/src/sage/homology/chain_complex_morphism.py index 96080c9e33b..08b5fc20559 100644 --- a/src/sage/homology/chain_complex_morphism.py +++ b/src/sage/homology/chain_complex_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Morphisms of chain complexes diff --git a/src/sage/homology/chain_homotopy.py b/src/sage/homology/chain_homotopy.py index ae3324623f2..38c8e65031a 100644 --- a/src/sage/homology/chain_homotopy.py +++ b/src/sage/homology/chain_homotopy.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Chain homotopies and chain contractions diff --git a/src/sage/homology/chains.py b/src/sage/homology/chains.py index 3489d69286c..73e7a1a9d4e 100644 --- a/src/sage/homology/chains.py +++ b/src/sage/homology/chains.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs (because all doctests use the catalogs simplicial_complexes, cubical_complexes) r""" Chains and cochains diff --git a/src/sage/homology/free_resolution.py b/src/sage/homology/free_resolution.py index 89b3352c560..1443642adc3 100644 --- a/src/sage/homology/free_resolution.py +++ b/src/sage/homology/free_resolution.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.singular r""" Free resolutions diff --git a/src/sage/homology/graded_resolution.py b/src/sage/homology/graded_resolution.py index 76361480d8e..5fb905c4459 100644 --- a/src/sage/homology/graded_resolution.py +++ b/src/sage/homology/graded_resolution.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.singular r""" Graded free resolutions diff --git a/src/sage/homology/hochschild_complex.py b/src/sage/homology/hochschild_complex.py index a6412a1afc8..7db799414ee 100644 --- a/src/sage/homology/hochschild_complex.py +++ b/src/sage/homology/hochschild_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat (because all doctests use FreeAlgebra, SymmetricGroupAlgebra, etc.) """ Hochschild Complexes diff --git a/src/sage/homology/homology_group.py b/src/sage/homology/homology_group.py index 8d86d477ad8..12e07b61c07 100644 --- a/src/sage/homology/homology_group.py +++ b/src/sage/homology/homology_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Homology Groups diff --git a/src/sage/homology/homology_morphism.py b/src/sage/homology/homology_morphism.py index 6db0315945f..6a4035f824f 100644 --- a/src/sage/homology/homology_morphism.py +++ b/src/sage/homology/homology_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs (because all doctests use the catalog simplicial_complexes) r""" Induced morphisms on homology diff --git a/src/sage/homology/homology_vector_space_with_basis.py b/src/sage/homology/homology_vector_space_with_basis.py index 64d3186fea7..01b2782298b 100644 --- a/src/sage/homology/homology_vector_space_with_basis.py +++ b/src/sage/homology/homology_vector_space_with_basis.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.graphs (because all doctests use the catalogs simplicial_complexes, cubical_complexes) """ Homology and cohomology with a basis diff --git a/src/sage/homology/koszul_complex.py b/src/sage/homology/koszul_complex.py index 005d876a04c..69b1933f0e2 100644 --- a/src/sage/homology/koszul_complex.py +++ b/src/sage/homology/koszul_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Koszul Complexes """ diff --git a/src/sage/homology/matrix_utils.py b/src/sage/homology/matrix_utils.py index b44a25060d5..7bcec030802 100644 --- a/src/sage/homology/matrix_utils.py +++ b/src/sage/homology/matrix_utils.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Utility Functions for Matrices diff --git a/src/sage/interacts/library.py b/src/sage/interacts/library.py index 7aa5ac779d9..7d59e1a50bf 100644 --- a/src/sage/interacts/library.py +++ b/src/sage/interacts/library.py @@ -39,19 +39,19 @@ from sage.arith.misc import factor from sage.arith.srange import srange -from sage.calculus.all import symbolic_expression -from sage.calculus.functional import derivative -from sage.calculus.integration import numerical_integral as integral_numerical +from sage.misc.lazy_import import lazy_import +lazy_import("sage.calculus.all", "symbolic_expression") +lazy_import("sage.calculus.functional", "derivative") +lazy_import("sage.calculus.integration", "numerical_integral", as_="integral_numerical") from sage.ext.fast_callable import fast_callable -from sage.functions.log import exp +lazy_import("sage.functions.log", "exp") +lazy_import("sage.functions.trig", ["acos", "cos", "sin", "tan"]) from sage.misc.functional import sqrt -from sage.functions.trig import (acos, cos, sin, tan) from sage.misc.decorators import sage_wraps from sage.misc.functional import N from sage.misc.latex import latex from sage.misc.sage_eval import sage_eval from sage.misc.table import table -from sage.misc.lazy_import import lazy_import lazy_import("sage.plot.circle", "circle") lazy_import("sage.plot.complex_plot", "complex_plot") lazy_import("sage.plot.disk", "disk") @@ -65,9 +65,10 @@ from sage.repl.rich_output.pretty_print import (pretty_print, show) from sage.rings.complex_double import CDF from sage.rings.integer import Integer -from sage.symbolic.constants import pi -from sage.symbolic.relation import solve -from sage.symbolic.ring import SR +lazy_import("sage.symbolic.constants", "pi") +lazy_import("sage.symbolic.relation", "solve") +lazy_import("sage.symbolic.ring", "SR") +import math x = SR.var('x') diff --git a/src/sage/interfaces/abc.py b/src/sage/interfaces/abc.py index 9c451733631..e285fc0218b 100644 --- a/src/sage/interfaces/abc.py +++ b/src/sage/interfaces/abc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Abstract base classes for interface elements """ diff --git a/src/sage/interfaces/all.py b/src/sage/interfaces/all.py index 0ef74630304..ba49156a29c 100644 --- a/src/sage/interfaces/all.py +++ b/src/sage/interfaces/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # interfaces to other interpreters # import problems diff --git a/src/sage/interfaces/all__sagemath_categories.py b/src/sage/interfaces/all__sagemath_categories.py new file mode 100644 index 00000000000..b230a6a2ad9 --- /dev/null +++ b/src/sage/interfaces/all__sagemath_categories.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/interfaces/all__sagemath_gap.py b/src/sage/interfaces/all__sagemath_gap.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/interfaces/all__sagemath_gap.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/interfaces/all__sagemath_libecm.py b/src/sage/interfaces/all__sagemath_libecm.py new file mode 100644 index 00000000000..4a8953a3163 --- /dev/null +++ b/src/sage/interfaces/all__sagemath_libecm.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-libecm diff --git a/src/sage/interfaces/all__sagemath_pari.py b/src/sage/interfaces/all__sagemath_pari.py new file mode 100644 index 00000000000..01c9cb07cd5 --- /dev/null +++ b/src/sage/interfaces/all__sagemath_pari.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-pari diff --git a/src/sage/interfaces/all__sagemath_plot.py b/src/sage/interfaces/all__sagemath_plot.py new file mode 100644 index 00000000000..602b65aae88 --- /dev/null +++ b/src/sage/interfaces/all__sagemath_plot.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-plot diff --git a/src/sage/interfaces/all__sagemath_polyhedra.py b/src/sage/interfaces/all__sagemath_polyhedra.py index e69de29bb2d..ca4c26e905d 100644 --- a/src/sage/interfaces/all__sagemath_polyhedra.py +++ b/src/sage/interfaces/all__sagemath_polyhedra.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-polyhedra diff --git a/src/sage/interfaces/all__sagemath_symbolics.py b/src/sage/interfaces/all__sagemath_symbolics.py new file mode 100644 index 00000000000..332eaf1cdb6 --- /dev/null +++ b/src/sage/interfaces/all__sagemath_symbolics.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-symbolics diff --git a/src/sage/interfaces/cleaner.py b/src/sage/interfaces/cleaner.py index 54bfac779ac..2d72be495e1 100644 --- a/src/sage/interfaces/cleaner.py +++ b/src/sage/interfaces/cleaner.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Interface to the Sage cleaner diff --git a/src/sage/interfaces/ecm.py b/src/sage/interfaces/ecm.py index 7d1ac74b7c1..6d593f99253 100644 --- a/src/sage/interfaces/ecm.py +++ b/src/sage/interfaces/ecm.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-libecm r""" The Elliptic Curve Factorization Method diff --git a/src/sage/interfaces/expect.py b/src/sage/interfaces/expect.py index dddebf0d1df..66fc5d3edce 100644 --- a/src/sage/interfaces/expect.py +++ b/src/sage/interfaces/expect.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.gap sage.libs.pari sage.libs.singular sage.symbolic """ Common Interface Functionality through Pexpect diff --git a/src/sage/interfaces/four_ti_2.py b/src/sage/interfaces/four_ti_2.py index 6776a9cc512..bf92173fd5d 100644 --- a/src/sage/interfaces/four_ti_2.py +++ b/src/sage/interfaces/four_ti_2.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Interface to 4ti2 diff --git a/src/sage/interfaces/fricas.py b/src/sage/interfaces/fricas.py index 5982c225439..a5c530947f5 100644 --- a/src/sage/interfaces/fricas.py +++ b/src/sage/interfaces/fricas.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # sage.doctest: optional - fricas r""" Interface to FriCAS diff --git a/src/sage/interfaces/gap.py b/src/sage/interfaces/gap.py index 139f8b3acf5..13596cd65de 100644 --- a/src/sage/interfaces/gap.py +++ b/src/sage/interfaces/gap.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Interface to GAP diff --git a/src/sage/interfaces/gap3.py b/src/sage/interfaces/gap3.py index de6a35586e3..f68d0b48fae 100644 --- a/src/sage/interfaces/gap3.py +++ b/src/sage/interfaces/gap3.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Interface to GAP3 diff --git a/src/sage/interfaces/gap_workspace.py b/src/sage/interfaces/gap_workspace.py index c7df7ffaed1..9d3c28b9374 100644 --- a/src/sage/interfaces/gap_workspace.py +++ b/src/sage/interfaces/gap_workspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Support for (lib)GAP workspace files """ diff --git a/src/sage/interfaces/giac.py b/src/sage/interfaces/giac.py index 00c9ff429c3..8ef0fa81693 100644 --- a/src/sage/interfaces/giac.py +++ b/src/sage/interfaces/giac.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Pexpect Interface to Giac diff --git a/src/sage/interfaces/gnuplot.py b/src/sage/interfaces/gnuplot.py index f9ddc8da914..282e35f02cd 100644 --- a/src/sage/interfaces/gnuplot.py +++ b/src/sage/interfaces/gnuplot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Interface to the Gnuplot interpreter """ diff --git a/src/sage/interfaces/gp.py b/src/sage/interfaces/gp.py index b98c050d889..19d42ccb63e 100644 --- a/src/sage/interfaces/gp.py +++ b/src/sage/interfaces/gp.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.pari r""" Interface to the GP calculator of PARI/GP diff --git a/src/sage/interfaces/interface.py b/src/sage/interfaces/interface.py index c15f0342de4..5d7fb5ee946 100644 --- a/src/sage/interfaces/interface.py +++ b/src/sage/interfaces/interface.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.gap sage.libs.pari sage.libs.singular sage.symbolic r""" Common Interface Functionality diff --git a/src/sage/interfaces/jmoldata.py b/src/sage/interfaces/jmoldata.py index f8f497172b9..0a3abaf114f 100644 --- a/src/sage/interfaces/jmoldata.py +++ b/src/sage/interfaces/jmoldata.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Interface for extracting data and generating images from Jmol readable files. diff --git a/src/sage/interfaces/latte.py b/src/sage/interfaces/latte.py index 775b8cff908..0406ce6b182 100644 --- a/src/sage/interfaces/latte.py +++ b/src/sage/interfaces/latte.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Interface to LattE integrale programs """ diff --git a/src/sage/interfaces/magma.py b/src/sage/interfaces/magma.py index 3ec584931cc..4ba2b990f5b 100644 --- a/src/sage/interfaces/magma.py +++ b/src/sage/interfaces/magma.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Interface to Magma diff --git a/src/sage/interfaces/magma_free.py b/src/sage/interfaces/magma_free.py index 5938e9fa4af..0d0884cd051 100644 --- a/src/sage/interfaces/magma_free.py +++ b/src/sage/interfaces/magma_free.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics "Interface to the free online MAGMA calculator" # **************************************************************************** diff --git a/src/sage/interfaces/maple.py b/src/sage/interfaces/maple.py index 5929582742e..0bef42eefa5 100644 --- a/src/sage/interfaces/maple.py +++ b/src/sage/interfaces/maple.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Interface to Maple diff --git a/src/sage/interfaces/mathematica.py b/src/sage/interfaces/mathematica.py index 71f233746e7..58dcd0c9bed 100644 --- a/src/sage/interfaces/mathematica.py +++ b/src/sage/interfaces/mathematica.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Interface to Mathematica diff --git a/src/sage/interfaces/mathics.py b/src/sage/interfaces/mathics.py index 3104fefe665..749a664c8c3 100644 --- a/src/sage/interfaces/mathics.py +++ b/src/sage/interfaces/mathics.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Interface to Mathics @@ -1058,7 +1059,7 @@ def _sage_(self, locals={}): if self.is_inexact(): m = self.to_mpmath() if self is not m and m is not None: - from sage.libs.mpmath.utils import mpmath_to_sage + from sage.libs.mpmath.sage_utils import mpmath_to_sage return mpmath_to_sage(m, self.get_precision()) s = self.to_sympy() if self is not s and s is not None: diff --git a/src/sage/interfaces/maxima.py b/src/sage/interfaces/maxima.py index 96158d73039..3ba4185884d 100644 --- a/src/sage/interfaces/maxima.py +++ b/src/sage/interfaces/maxima.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Pexpect interface to Maxima diff --git a/src/sage/interfaces/maxima_abstract.py b/src/sage/interfaces/maxima_abstract.py index b8df280857c..d38eb6d3dd5 100644 --- a/src/sage/interfaces/maxima_abstract.py +++ b/src/sage/interfaces/maxima_abstract.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Abstract interface to Maxima diff --git a/src/sage/interfaces/maxima_lib.py b/src/sage/interfaces/maxima_lib.py index 499b2565236..489b68a62fa 100644 --- a/src/sage/interfaces/maxima_lib.py +++ b/src/sage/interfaces/maxima_lib.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Library interface to Maxima diff --git a/src/sage/interfaces/povray.py b/src/sage/interfaces/povray.py index 6e7a6c8ef94..f381a96509d 100644 --- a/src/sage/interfaces/povray.py +++ b/src/sage/interfaces/povray.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" POV-Ray, The Persistence of Vision Ray Tracer """ diff --git a/src/sage/interfaces/process.pxd b/src/sage/interfaces/process.pxd index 3f1ae3f0dc8..99a14e6bb43 100644 --- a/src/sage/interfaces/process.pxd +++ b/src/sage/interfaces/process.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories cdef class ContainChildren(): cdef int parentpid cdef int exitcode, exceptcode diff --git a/src/sage/interfaces/process.pyx b/src/sage/interfaces/process.pyx index 4003324f7aa..24dc42abd58 100644 --- a/src/sage/interfaces/process.pyx +++ b/src/sage/interfaces/process.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Utilities for subprocess management """ diff --git a/src/sage/interfaces/qepcad.py b/src/sage/interfaces/qepcad.py index df9f1583c86..24977047295 100644 --- a/src/sage/interfaces/qepcad.py +++ b/src/sage/interfaces/qepcad.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Interface to QEPCAD =================== diff --git a/src/sage/interfaces/quit.py b/src/sage/interfaces/quit.py index 9392ffe094f..cc70422b0b5 100644 --- a/src/sage/interfaces/quit.py +++ b/src/sage/interfaces/quit.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Quitting interfaces """ diff --git a/src/sage/interfaces/sage-maxima.lisp b/src/sage/interfaces/sage-maxima.lisp index 886a628cb18..8e6e4aafb3d 100644 --- a/src/sage/interfaces/sage-maxima.lisp +++ b/src/sage/interfaces/sage-maxima.lisp @@ -1,3 +1,5 @@ +; sage_setup: distribution = sagemath-symbolics + ;(setf *prompt-prefix* "") ;(setf *prompt-suffix* "") ;(setf *general-display-prefix* "") diff --git a/src/sage/interfaces/sage0.py b/src/sage/interfaces/sage0.py index eb72c0a7186..af84e73fa21 100644 --- a/src/sage/interfaces/sage0.py +++ b/src/sage/interfaces/sage0.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.all r""" Interface to Sage diff --git a/src/sage/interfaces/sagespawn.pyx b/src/sage/interfaces/sagespawn.pyx index 9cd5bf799c1..2c99faf9026 100644 --- a/src/sage/interfaces/sagespawn.pyx +++ b/src/sage/interfaces/sagespawn.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: optional - ptyprocess """ Sage wrapper around pexpect's ``spawn`` class and diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py index ed883b07105..21724fb45cb 100644 --- a/src/sage/interfaces/singular.py +++ b/src/sage/interfaces/singular.py @@ -1639,14 +1639,14 @@ def sage_global_ring(self): br = QQ elif charstr[0].startswith('Float'): from sage.rings.real_mpfr import RealField - from sage.functions.other import ceil + from sage.arith.misc import integer_ceil as ceil from sage.misc.functional import log prec = singular.eval('ringlist(basering)[1][2][1]') br = RealField(ceil((ZZ(prec) + 1) / log(2, 10))) is_extension = False elif charstr[0] == 'complex': from sage.rings.complex_mpfr import ComplexField - from sage.functions.other import ceil + from sage.arith.misc import integer_ceil as ceil from sage.misc.functional import log prec = singular.eval('ringlist(basering)[1][2][1]') br = ComplexField(ceil((ZZ(prec) + 1) / log(2, 10))) diff --git a/src/sage/interfaces/sympy.py b/src/sage/interfaces/sympy.py index 2ccaf13035d..5a5afdfc521 100644 --- a/src/sage/interfaces/sympy.py +++ b/src/sage/interfaces/sympy.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # sage.doctest: optional - sympy """ SymPy --> Sage conversion diff --git a/src/sage/interfaces/sympy_wrapper.py b/src/sage/interfaces/sympy_wrapper.py index 40c96d60d26..282b4e606df 100644 --- a/src/sage/interfaces/sympy_wrapper.py +++ b/src/sage/interfaces/sympy_wrapper.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # sage.doctest: optional - sympy """ Wrapper Class for Sage Sets as SymPy Sets diff --git a/src/sage/interfaces/tab_completion.py b/src/sage/interfaces/tab_completion.py index d0e8bc11309..9b895f79292 100644 --- a/src/sage/interfaces/tab_completion.py +++ b/src/sage/interfaces/tab_completion.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Mixin For Extra Tab Completions diff --git a/src/sage/interfaces/tachyon.py b/src/sage/interfaces/tachyon.py index c4596c825d3..01c7afee6f2 100644 --- a/src/sage/interfaces/tachyon.py +++ b/src/sage/interfaces/tachyon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" The Tachyon Ray Tracer diff --git a/src/sage/interfaces/tides.py b/src/sage/interfaces/tides.py index c1076496cea..6260b0638e4 100644 --- a/src/sage/interfaces/tides.py +++ b/src/sage/interfaces/tides.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Interface to TIDES @@ -44,8 +45,8 @@ from sage.misc.flatten import flatten from sage.ext.fast_callable import fast_callable from sage.rings.semirings.non_negative_integer_semiring import NN -from sage.functions.log import log, exp -from sage.functions.other import floor, ceil +lazy_import("sage.functions.log", ["log", "exp"]) +lazy_import("sage.functions.other", ["floor", "ceil"]) from sage.misc.functional import sqrt diff --git a/src/sage/knots/all.py b/src/sage/knots/all.py index 5e456b752b3..af2ef723b54 100644 --- a/src/sage/knots/all.py +++ b/src/sage/knots/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from sage.misc.lazy_import import lazy_import lazy_import('sage.knots.knot', ['Knot', 'Knots']) diff --git a/src/sage/knots/gauss_code.py b/src/sage/knots/gauss_code.py index 560b6831bfc..7bf64635533 100644 --- a/src/sage/knots/gauss_code.py +++ b/src/sage/knots/gauss_code.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs """ Helper functions related to Gauss codes of knots diff --git a/src/sage/knots/knot.py b/src/sage/knots/knot.py index 21dd0b59f12..e9b28be900e 100644 --- a/src/sage/knots/knot.py +++ b/src/sage/knots/knot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs sage.groups r""" Knots diff --git a/src/sage/knots/knot_table.py b/src/sage/knots/knot_table.py index 8defab899c4..85e1a156574 100644 --- a/src/sage/knots/knot_table.py +++ b/src/sage/knots/knot_table.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs r""" Rolfsen database of knots with at most 10 crossings. diff --git a/src/sage/knots/knotinfo.py b/src/sage/knots/knotinfo.py index 235ba1fddef..562c673efa6 100644 --- a/src/sage/knots/knotinfo.py +++ b/src/sage/knots/knotinfo.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs sage.groups r""" Access to the KnotInfo database @@ -1603,6 +1604,7 @@ def jones_polynomial(self, variab=None, skein_normalization=False, puiseux=False Check the skein-relation from the KnotInfo description page (applied to one of the positive crossings of the right-handed trefoil):: + sage: # needs sage.symbolic sage: K3_1 = KnotInfo.K3_1 sage: # needs sage.symbolic diff --git a/src/sage/knots/link.py b/src/sage/knots/link.py index 0e6158c924b..6852e7ecc9c 100644 --- a/src/sage/knots/link.py +++ b/src/sage/knots/link.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs sage.groups r""" Links @@ -1244,7 +1245,6 @@ def khovanov_homology(self, ring=ZZ, height=None, degree=None): The Hopf link:: - sage: # needs sage.modules sage: B = BraidGroup(2) sage: b = B([1, 1]) sage: K = Link(b) @@ -1662,7 +1662,6 @@ def _homology_generators(self): EXAMPLES:: - sage: # needs sage.modules sage: B = BraidGroup(4) sage: L = Link(B([-1, 3, 1, 3])) sage: L._homology_generators() @@ -1702,7 +1701,6 @@ def seifert_matrix(self): EXAMPLES:: - sage: # needs sage.modules sage: B = BraidGroup(4) sage: L = Link(B([-1, 3, 1, 3])) sage: L.seifert_matrix() @@ -1865,7 +1863,6 @@ def signature(self): EXAMPLES:: - sage: # needs sage.modules sage: B = BraidGroup(4) sage: L = Link(B([-1, 3, 1, 3])) sage: L.signature() @@ -1908,7 +1905,7 @@ def omega_signature(self, omega): EXAMPLES:: - sage: # needs sage.modules sage.rings.number_field + sage: # needs sage.rings.number_field sage: B = BraidGroup(4) sage: K = Knot(B([1,1,1,2,-1,2,-3,2,-3])) sage: omega = QQbar.zeta(3) @@ -1934,7 +1931,6 @@ def alexander_polynomial(self, var='t'): We begin by computing the Alexander polynomial for the figure-eight knot:: - sage: # needs sage.modules sage: B = BraidGroup(3) sage: L = Link(B([1, -2, 1, -2])) sage: L.alexander_polynomial() @@ -1945,12 +1941,11 @@ def alexander_polynomial(self, var='t'): sage: L = Link([[3,1,2,4],[8,9,1,7],[5,6,7,3],[4,18,6,5], ....: [17,19,8,18],[9,10,11,14],[10,12,13,11], ....: [12,19,15,13],[20,16,14,15],[16,20,17,2]]) - sage: L.alexander_polynomial() # needs sage.modules + sage: L.alexander_polynomial() 1 Some additional examples:: - sage: # needs sage.modules sage: B = BraidGroup(2) sage: L = Link(B([1])) sage: L.alexander_polynomial() @@ -1966,7 +1961,6 @@ def alexander_polynomial(self, var='t'): When the Seifert surface is disconnected, the Alexander polynomial is defined to be `0`:: - sage: # needs sage.modules sage: B = BraidGroup(4) sage: L = Link(B([1,3])) sage: L.alexander_polynomial() @@ -1974,7 +1968,6 @@ def alexander_polynomial(self, var='t'): TESTS:: - sage: # needs sage.modules sage: B = BraidGroup(4) sage: L = Link(B([-1, 3, 1, 3])) sage: L.alexander_polynomial() @@ -2012,7 +2005,6 @@ def conway_polynomial(self): EXAMPLES:: - sage: # needs sage.modules sage: B = BraidGroup(3) sage: L = Link(B([1, -2, 1, -2])) sage: L.conway_polynomial() @@ -2116,7 +2108,6 @@ def determinant(self): EXAMPLES:: - sage: # needs sage.modules sage: B = BraidGroup(4) sage: L = Link(B([-1, 2, 1, 2])) sage: L.determinant() @@ -2134,7 +2125,6 @@ def determinant(self): TESTS:: - sage: # needs sage.modules sage: B = BraidGroup(3) sage: Link(B([1, 2, 1, -2, -1])).determinant() 0 diff --git a/src/sage/lfunctions/all__sagemath_lcalc.py b/src/sage/lfunctions/all__sagemath_lcalc.py new file mode 100644 index 00000000000..35fac988d13 --- /dev/null +++ b/src/sage/lfunctions/all__sagemath_lcalc.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-lcalc diff --git a/src/sage/lfunctions/lcalc.py b/src/sage/lfunctions/lcalc.py index f695712abc1..a108e915ac8 100644 --- a/src/sage/lfunctions/lcalc.py +++ b/src/sage/lfunctions/lcalc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-lcalc r""" Rubinstein's `L`-function calculator diff --git a/src/sage/lfunctions/zero_sums.pyx b/src/sage/lfunctions/zero_sums.pyx index cefed0fd4ef..fe312651d87 100644 --- a/src/sage/lfunctions/zero_sums.pyx +++ b/src/sage/lfunctions/zero_sums.pyx @@ -930,6 +930,7 @@ cdef class LFunctionZeroSum_EllipticCurve(LFunctionZeroSum_abstract): # PARI minicurve for computing a_p coefficients self._e = E.pari_mincurve() + from sage.symbolic.constants import pi, euler_gamma self._pi = RDF(pi) self._euler_gamma = RDF(euler_gamma) diff --git a/src/sage/libs/all.py b/src/sage/libs/all.py index f85115a4da2..7c6e14767cf 100644 --- a/src/sage/libs/all.py +++ b/src/sage/libs/all.py @@ -1,19 +1,11 @@ - -import sage.libs.ntl.all as ntl - -from sage.libs.pari.all import pari, pari_gen, PariError - -import sage.libs.symmetrica.all as symmetrica - -from sage.misc.lazy_import import lazy_import -lazy_import('sage.libs.gap.libgap', 'libgap') - -lazy_import('sage.libs.eclib.constructor', 'CremonaModularSymbols') -lazy_import('sage.libs.eclib.interface', ['mwrank_EllipticCurve', 'mwrank_MordellWeil']) -lazy_import('sage.libs.eclib.mwrank', 'get_precision', 'mwrank_get_precision') -lazy_import('sage.libs.eclib.mwrank', 'set_precision', 'mwrank_set_precision') -lazy_import('sage.libs.eclib.mwrank', 'initprimes', 'mwrank_initprimes') - -lazy_import('sage.libs.flint.qsieve_sage', 'qsieve') - -lazy_import('sage.libs.giac.giac', 'libgiac') +from sage.libs.all__sagemath_combinat import * +from sage.libs.all__sagemath_gap import * +from sage.libs.all__sagemath_flint import * +from sage.libs.all__sagemath_ntl import * +from sage.libs.all__sagemath_pari import * +from sage.libs.all__sagemath_eclib import * + +try: + from sage.libs.all__sagemath_symbolics import * +except ImportError: + pass diff --git a/src/sage/libs/all__sagemath_brial.py b/src/sage/libs/all__sagemath_brial.py new file mode 100644 index 00000000000..016ca38a057 --- /dev/null +++ b/src/sage/libs/all__sagemath_brial.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-brial diff --git a/src/sage/libs/all__sagemath_combinat.py b/src/sage/libs/all__sagemath_combinat.py new file mode 100644 index 00000000000..70a2482da4f --- /dev/null +++ b/src/sage/libs/all__sagemath_combinat.py @@ -0,0 +1,6 @@ +# sage_setup: distribution = sagemath-combinat +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.libs.symmetrica', 'all', as_='symmetrica') + +del lazy_import diff --git a/src/sage/libs/all__sagemath_eclib.py b/src/sage/libs/all__sagemath_eclib.py new file mode 100644 index 00000000000..a48c3641b79 --- /dev/null +++ b/src/sage/libs/all__sagemath_eclib.py @@ -0,0 +1,11 @@ +# sage_setup: distribution = sagemath-eclib + +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.libs.eclib.constructor', 'CremonaModularSymbols') +lazy_import('sage.libs.eclib.interface', ['mwrank_EllipticCurve', 'mwrank_MordellWeil']) +lazy_import('sage.libs.eclib.mwrank', 'get_precision', 'mwrank_get_precision') +lazy_import('sage.libs.eclib.mwrank', 'set_precision', 'mwrank_set_precision') +lazy_import('sage.libs.eclib.mwrank', 'initprimes', 'mwrank_initprimes') + +del lazy_import diff --git a/src/sage/libs/all__sagemath_flint.py b/src/sage/libs/all__sagemath_flint.py new file mode 100644 index 00000000000..f062746f833 --- /dev/null +++ b/src/sage/libs/all__sagemath_flint.py @@ -0,0 +1,17 @@ +# sage_setup: distribution = sagemath-flint + +try: + from sage.libs.all__sagemath_pari import * +except ImportError: + pass + +try: + from sage.libs.all__sagemath_ntl import * +except ImportError: + pass + +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.libs.flint.qsieve_sage', 'qsieve') + +del lazy_import diff --git a/src/sage/libs/all__sagemath_gap.py b/src/sage/libs/all__sagemath_gap.py new file mode 100644 index 00000000000..e5c688b0ebe --- /dev/null +++ b/src/sage/libs/all__sagemath_gap.py @@ -0,0 +1,4 @@ +# sage_setup: distribution = sagemath-gap +from sage.misc.lazy_import import lazy_import +lazy_import('sage.libs.gap.libgap', 'libgap') +del lazy_import diff --git a/src/sage/libs/all__sagemath_giac.py b/src/sage/libs/all__sagemath_giac.py new file mode 100644 index 00000000000..43f71d83e8b --- /dev/null +++ b/src/sage/libs/all__sagemath_giac.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-giac diff --git a/src/sage/libs/all__sagemath_glpk.py b/src/sage/libs/all__sagemath_glpk.py new file mode 100644 index 00000000000..b555a29542b --- /dev/null +++ b/src/sage/libs/all__sagemath_glpk.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-glpk diff --git a/src/sage/libs/all__sagemath_homfly.py b/src/sage/libs/all__sagemath_homfly.py new file mode 100644 index 00000000000..8a8d066959a --- /dev/null +++ b/src/sage/libs/all__sagemath_homfly.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-homfly diff --git a/src/sage/libs/all__sagemath_lcalc.py b/src/sage/libs/all__sagemath_lcalc.py new file mode 100644 index 00000000000..35fac988d13 --- /dev/null +++ b/src/sage/libs/all__sagemath_lcalc.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-lcalc diff --git a/src/sage/libs/all__sagemath_libbraiding.py b/src/sage/libs/all__sagemath_libbraiding.py new file mode 100644 index 00000000000..50a02932e7a --- /dev/null +++ b/src/sage/libs/all__sagemath_libbraiding.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-libbraiding diff --git a/src/sage/libs/all__sagemath_libecm.py b/src/sage/libs/all__sagemath_libecm.py new file mode 100644 index 00000000000..4a8953a3163 --- /dev/null +++ b/src/sage/libs/all__sagemath_libecm.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-libecm diff --git a/src/sage/libs/all__sagemath_linbox.py b/src/sage/libs/all__sagemath_linbox.py new file mode 100644 index 00000000000..d3fe8dc3de9 --- /dev/null +++ b/src/sage/libs/all__sagemath_linbox.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-linbox diff --git a/src/sage/libs/all__sagemath_modules.py b/src/sage/libs/all__sagemath_modules.py new file mode 100644 index 00000000000..6f6ab52d0f2 --- /dev/null +++ b/src/sage/libs/all__sagemath_modules.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/libs/all__sagemath_mpmath.py b/src/sage/libs/all__sagemath_mpmath.py new file mode 100644 index 00000000000..5cfb921f187 --- /dev/null +++ b/src/sage/libs/all__sagemath_mpmath.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-mpmath diff --git a/src/sage/libs/all__sagemath_ntl.py b/src/sage/libs/all__sagemath_ntl.py new file mode 100644 index 00000000000..da67ce26bd3 --- /dev/null +++ b/src/sage/libs/all__sagemath_ntl.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-ntl + +import sage.libs.ntl.all as ntl diff --git a/src/sage/libs/all__sagemath_pari.py b/src/sage/libs/all__sagemath_pari.py new file mode 100644 index 00000000000..9a16437829b --- /dev/null +++ b/src/sage/libs/all__sagemath_pari.py @@ -0,0 +1,2 @@ +# sage_setup: distribution = sagemath-pari +from sage.libs.pari.all import pari, pari_gen, PariError diff --git a/src/sage/libs/all__sagemath_singular.py b/src/sage/libs/all__sagemath_singular.py new file mode 100644 index 00000000000..84ec2b51067 --- /dev/null +++ b/src/sage/libs/all__sagemath_singular.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-singular diff --git a/src/sage/libs/all__sagemath_symbolics.py b/src/sage/libs/all__sagemath_symbolics.py new file mode 100644 index 00000000000..69040cf25e1 --- /dev/null +++ b/src/sage/libs/all__sagemath_symbolics.py @@ -0,0 +1,5 @@ +# sage_setup: distribution = sagemath-symbolics +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.libs.giac.giac', 'libgiac') +del lazy_import diff --git a/src/sage/libs/arb/__init__.py b/src/sage/libs/arb/__init__.py index e69de29bb2d..d31bae41036 100644 --- a/src/sage/libs/arb/__init__.py +++ b/src/sage/libs/arb/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/libs/arb/acb.pxd b/src/sage/libs/arb/acb.pxd index 9dac39b52a6..212ae927fcf 100644 --- a/src/sage/libs/arb/acb.pxd +++ b/src/sage/libs/arb/acb.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/acb.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/acb_calc.pxd b/src/sage/libs/arb/acb_calc.pxd index c06d7c5ad39..b2d79e9416d 100644 --- a/src/sage/libs/arb/acb_calc.pxd +++ b/src/sage/libs/arb/acb_calc.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/acb_calc.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/acb_elliptic.pxd b/src/sage/libs/arb/acb_elliptic.pxd index d1899d64b94..4bbd36ab55b 100644 --- a/src/sage/libs/arb/acb_elliptic.pxd +++ b/src/sage/libs/arb/acb_elliptic.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/acb_elliptic.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/acb_hypgeom.pxd b/src/sage/libs/arb/acb_hypgeom.pxd index 641dd595004..240a71df996 100644 --- a/src/sage/libs/arb/acb_hypgeom.pxd +++ b/src/sage/libs/arb/acb_hypgeom.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/acb_hypgeom.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/acb_mat.pxd b/src/sage/libs/arb/acb_mat.pxd index 5c16b9481a4..eab8badd5f8 100644 --- a/src/sage/libs/arb/acb_mat.pxd +++ b/src/sage/libs/arb/acb_mat.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/acb_mat.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/acb_modular.pxd b/src/sage/libs/arb/acb_modular.pxd index 46ef451ddd4..fcab53d4124 100644 --- a/src/sage/libs/arb/acb_modular.pxd +++ b/src/sage/libs/arb/acb_modular.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/acb_modular.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/acb_poly.pxd b/src/sage/libs/arb/acb_poly.pxd index 42f4eae1ad4..1fa3dee2c7d 100644 --- a/src/sage/libs/arb/acb_poly.pxd +++ b/src/sage/libs/arb/acb_poly.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/acb_poly.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/arb.pxd b/src/sage/libs/arb/arb.pxd index 704a5419c2f..acc5bdc5cde 100644 --- a/src/sage/libs/arb/arb.pxd +++ b/src/sage/libs/arb/arb.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/arb.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/arb_fmpz_poly.pxd b/src/sage/libs/arb/arb_fmpz_poly.pxd index a1de902aeb4..f0b3750967e 100644 --- a/src/sage/libs/arb/arb_fmpz_poly.pxd +++ b/src/sage/libs/arb/arb_fmpz_poly.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/arb_fmpz_poly.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/arb_hypgeom.pxd b/src/sage/libs/arb/arb_hypgeom.pxd index 09ef72742a1..e7e0389f5c6 100644 --- a/src/sage/libs/arb/arb_hypgeom.pxd +++ b/src/sage/libs/arb/arb_hypgeom.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/arb_hypgeom.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/arb_wrap.h b/src/sage/libs/arb/arb_wrap.h index 488bb376d5e..e6ab8eeb4df 100644 --- a/src/sage/libs/arb/arb_wrap.h +++ b/src/sage/libs/arb/arb_wrap.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-flint + */ #ifndef SAGE_ARB_WRAP_H #define SAGE_ARB_WRAP_H /* diff --git a/src/sage/libs/arb/arf.pxd b/src/sage/libs/arb/arf.pxd index bfdca642bc9..92a71f24bba 100644 --- a/src/sage/libs/arb/arf.pxd +++ b/src/sage/libs/arb/arf.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/arf.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/arith.pyx b/src/sage/libs/arb/arith.pyx index bd498f13f43..b50d3060d00 100644 --- a/src/sage/libs/arb/arith.pyx +++ b/src/sage/libs/arb/arith.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Arithmetic functions using the arb library """ diff --git a/src/sage/libs/arb/bernoulli.pxd b/src/sage/libs/arb/bernoulli.pxd index a347f8e8378..4b9901c4895 100644 --- a/src/sage/libs/arb/bernoulli.pxd +++ b/src/sage/libs/arb/bernoulli.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/bernoulli.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/mag.pxd b/src/sage/libs/arb/mag.pxd index 7c75a4343cc..4a65282aaa6 100644 --- a/src/sage/libs/arb/mag.pxd +++ b/src/sage/libs/arb/mag.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/mag.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/arb/types.pxd b/src/sage/libs/arb/types.pxd index 85969f380b8..7582aa556e8 100644 --- a/src/sage/libs/arb/types.pxd +++ b/src/sage/libs/arb/types.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + # Deprecated header file; use sage/libs/flint/types.pxd instead # See https://github.com/sagemath/sage/pull/36449 diff --git a/src/sage/libs/braiding.pyx b/src/sage/libs/braiding.pyx index fb856c918c9..ab85039d828 100644 --- a/src/sage/libs/braiding.pyx +++ b/src/sage/libs/braiding.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-libbraiding # distutils: libraries = braiding # distutils: language = c++ r""" diff --git a/src/sage/libs/coxeter3/meson.build.in b/src/sage/libs/coxeter3/meson.build.in new file mode 100644 index 00000000000..eebd9806621 --- /dev/null +++ b/src/sage/libs/coxeter3/meson.build.in @@ -0,0 +1 @@ +coxeter3 = cc.find_library('coxeter3', required: false) diff --git a/src/sage/libs/ecl.pxd b/src/sage/libs/ecl.pxd index 202d0824e37..ebc773c5af8 100644 --- a/src/sage/libs/ecl.pxd +++ b/src/sage/libs/ecl.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # distutils: extra_compile_args = ECL_CFLAGS # distutils: include_dirs = ECL_INCDIR # distutils: libraries = ECL_LIBRARIES diff --git a/src/sage/libs/ecl.pyx b/src/sage/libs/ecl.pyx index aaede566da6..624d7b8ee4d 100644 --- a/src/sage/libs/ecl.pyx +++ b/src/sage/libs/ecl.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Library interface to Embeddable Common Lisp (ECL) """ diff --git a/src/sage/libs/eclib/__init__.pxd b/src/sage/libs/eclib/__init__.pxd index d44d4fba865..8bade99e170 100644 --- a/src/sage/libs/eclib/__init__.pxd +++ b/src/sage/libs/eclib/__init__.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib # distutils: language = c++ # distutils: libraries = ec NTL_LIBRARIES pari gmp m # distutils: extra_compile_args = NTL_CFLAGS diff --git a/src/sage/libs/eclib/__init__.py b/src/sage/libs/eclib/__init__.py index e69de29bb2d..95995325cb0 100644 --- a/src/sage/libs/eclib/__init__.py +++ b/src/sage/libs/eclib/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-eclib diff --git a/src/sage/libs/eclib/all.py b/src/sage/libs/eclib/all.py index 500cdfd1192..0be330b09e4 100644 --- a/src/sage/libs/eclib/all.py +++ b/src/sage/libs/eclib/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-eclib + from sage.libs.eclib.constructor import CremonaModularSymbols from sage.libs.eclib.interface import mwrank_EllipticCurve, mwrank_MordellWeil from sage.libs.eclib.mwrank import get_precision, set_precision diff --git a/src/sage/libs/eclib/constructor.py b/src/sage/libs/eclib/constructor.py index 79d28b90c1c..f9ccba04e31 100644 --- a/src/sage/libs/eclib/constructor.py +++ b/src/sage/libs/eclib/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib "Cremona modular symbols" def CremonaModularSymbols(level, sign=0, cuspidal=False, verbose=0): diff --git a/src/sage/libs/eclib/homspace.pxd b/src/sage/libs/eclib/homspace.pxd index d3600547f1e..f9fdefe66f4 100644 --- a/src/sage/libs/eclib/homspace.pxd +++ b/src/sage/libs/eclib/homspace.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib from sage.libs.eclib cimport homspace cdef class ModularSymbols: diff --git a/src/sage/libs/eclib/homspace.pyx b/src/sage/libs/eclib/homspace.pyx index a502062ff79..9652edab32e 100644 --- a/src/sage/libs/eclib/homspace.pyx +++ b/src/sage/libs/eclib/homspace.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib "Cremona modular symbols" from cysignals.signals cimport sig_on, sig_off diff --git a/src/sage/libs/eclib/interface.py b/src/sage/libs/eclib/interface.py index a5e65a37d4d..f86fdf7073d 100644 --- a/src/sage/libs/eclib/interface.py +++ b/src/sage/libs/eclib/interface.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib r""" Sage interface to Cremona's ``eclib`` library (also known as ``mwrank``) diff --git a/src/sage/libs/eclib/mat.pxd b/src/sage/libs/eclib/mat.pxd index 509bd4d0ce8..f582ab4a21f 100644 --- a/src/sage/libs/eclib/mat.pxd +++ b/src/sage/libs/eclib/mat.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib from sage.libs.eclib cimport mat cdef class Matrix: diff --git a/src/sage/libs/eclib/mat.pyx b/src/sage/libs/eclib/mat.pyx index a5ef4f45c68..fedd0b52f48 100644 --- a/src/sage/libs/eclib/mat.pyx +++ b/src/sage/libs/eclib/mat.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib """ Cremona matrices """ diff --git a/src/sage/libs/eclib/mwrank.pyx b/src/sage/libs/eclib/mwrank.pyx index 6765ac296ed..d086264f102 100644 --- a/src/sage/libs/eclib/mwrank.pyx +++ b/src/sage/libs/eclib/mwrank.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib """ Cython interface to Cremona's ``eclib`` library (also known as ``mwrank``) diff --git a/src/sage/libs/eclib/newforms.pxd b/src/sage/libs/eclib/newforms.pxd index 7f78a4f9f63..04398ec7748 100644 --- a/src/sage/libs/eclib/newforms.pxd +++ b/src/sage/libs/eclib/newforms.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib from sage.libs.eclib cimport newforms cdef class ECModularSymbol: diff --git a/src/sage/libs/eclib/newforms.pyx b/src/sage/libs/eclib/newforms.pyx index d2af433a801..c5a24630c46 100644 --- a/src/sage/libs/eclib/newforms.pyx +++ b/src/sage/libs/eclib/newforms.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-eclib """ Modular symbols using eclib newforms """ diff --git a/src/sage/libs/eclib/wrap.cpp b/src/sage/libs/eclib/wrap.cpp index 28e6da869b4..ac2ae616cc8 100644 --- a/src/sage/libs/eclib/wrap.cpp +++ b/src/sage/libs/eclib/wrap.cpp @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-eclib + */ #include #include using namespace std; diff --git a/src/sage/libs/eclsig.h b/src/sage/libs/eclsig.h index 005b2d99d0b..f555f762e5d 100644 --- a/src/sage/libs/eclsig.h +++ b/src/sage/libs/eclsig.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-symbolics + */ /* * eclsig.h: included from ecl.pyx * diff --git a/src/sage/libs/flint/__init__.py b/src/sage/libs/flint/__init__.py index e69de29bb2d..d31bae41036 100644 --- a/src/sage/libs/flint/__init__.py +++ b/src/sage/libs/flint/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/libs/flint/arith.pxd b/src/sage/libs/flint/arith.pxd index fe58c2183f4..f8e9a6989a7 100644 --- a/src/sage/libs/flint/arith.pxd +++ b/src/sage/libs/flint/arith.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/arith.h diff --git a/src/sage/libs/flint/arith.pyx b/src/sage/libs/flint/arith.pyx index fe599af4dfc..1ecabf5c1da 100644 --- a/src/sage/libs/flint/arith.pyx +++ b/src/sage/libs/flint/arith.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + r""" Deprecated module. diff --git a/src/sage/libs/flint/flint.pxd b/src/sage/libs/flint/flint.pxd index 434e4d624ad..ed580c72bfe 100644 --- a/src/sage/libs/flint/flint.pxd +++ b/src/sage/libs/flint/flint.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/flint.h diff --git a/src/sage/libs/flint/flint_ntl_wrap.h b/src/sage/libs/flint/flint_ntl_wrap.h index c0ac48af7aa..81e75493338 100644 --- a/src/sage/libs/flint/flint_ntl_wrap.h +++ b/src/sage/libs/flint/flint_ntl_wrap.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-flint + */ #ifndef SAGE_FLINT_NTL_WRAP_H #define SAGE_FLINT_NTL_WRAP_H /* diff --git a/src/sage/libs/flint/flint_wrap.h b/src/sage/libs/flint/flint_wrap.h index 1302973779e..960aa149525 100644 --- a/src/sage/libs/flint/flint_wrap.h +++ b/src/sage/libs/flint/flint_wrap.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-flint + */ /* WARNING: src/sage/libs/flint/flint_wrap.h is generated from * src/sage_setup/autogen/flint/templates/flint_wrap.h.template * please make sure that you are modifying the correct file! */ diff --git a/src/sage/libs/flint/fmpq.pxd b/src/sage/libs/flint/fmpq.pxd index be665bc0953..95c8f805323 100644 --- a/src/sage/libs/flint/fmpq.pxd +++ b/src/sage/libs/flint/fmpq.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpq.h diff --git a/src/sage/libs/flint/fmpq_mat.pxd b/src/sage/libs/flint/fmpq_mat.pxd index 949ff967246..d7024838928 100644 --- a/src/sage/libs/flint/fmpq_mat.pxd +++ b/src/sage/libs/flint/fmpq_mat.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpq_mat.h diff --git a/src/sage/libs/flint/fmpq_poly.pxd b/src/sage/libs/flint/fmpq_poly.pxd index 9982cbca879..3fcfa3dba6e 100644 --- a/src/sage/libs/flint/fmpq_poly.pxd +++ b/src/sage/libs/flint/fmpq_poly.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpq_poly.h diff --git a/src/sage/libs/flint/fmpq_poly_sage.pyx b/src/sage/libs/flint/fmpq_poly_sage.pyx index fcaf6407bfc..0c6813cf7b9 100644 --- a/src/sage/libs/flint/fmpq_poly_sage.pyx +++ b/src/sage/libs/flint/fmpq_poly_sage.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # Functions removed from flint but still needed in Sage. Code adapted from # earlier versions of flint. diff --git a/src/sage/libs/flint/fmpz.pxd b/src/sage/libs/flint/fmpz.pxd index 3553025d602..e065535f360 100644 --- a/src/sage/libs/flint/fmpz.pxd +++ b/src/sage/libs/flint/fmpz.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpz.h diff --git a/src/sage/libs/flint/fmpz_factor.pxd b/src/sage/libs/flint/fmpz_factor.pxd index 1b0851d0b14..f1b9e189d44 100644 --- a/src/sage/libs/flint/fmpz_factor.pxd +++ b/src/sage/libs/flint/fmpz_factor.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpz_factor.h diff --git a/src/sage/libs/flint/fmpz_factor_sage.pyx b/src/sage/libs/flint/fmpz_factor_sage.pyx index 330ba3d4d4e..71a898fa15c 100644 --- a/src/sage/libs/flint/fmpz_factor_sage.pyx +++ b/src/sage/libs/flint/fmpz_factor_sage.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from cysignals.signals cimport sig_check from sage.libs.flint.fmpz cimport fmpz_get_mpz from sage.rings.integer cimport Integer diff --git a/src/sage/libs/flint/fmpz_mat.pxd b/src/sage/libs/flint/fmpz_mat.pxd index 76b14823e08..72ebbd88e4f 100644 --- a/src/sage/libs/flint/fmpz_mat.pxd +++ b/src/sage/libs/flint/fmpz_mat.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpz_mat.h diff --git a/src/sage/libs/flint/fmpz_mod.pxd b/src/sage/libs/flint/fmpz_mod.pxd index ee031a6e6ac..7ca09130e73 100644 --- a/src/sage/libs/flint/fmpz_mod.pxd +++ b/src/sage/libs/flint/fmpz_mod.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpz_mod.h diff --git a/src/sage/libs/flint/fmpz_mod_poly.pxd b/src/sage/libs/flint/fmpz_mod_poly.pxd index f9b2d05e11e..44fbe0dee32 100644 --- a/src/sage/libs/flint/fmpz_mod_poly.pxd +++ b/src/sage/libs/flint/fmpz_mod_poly.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpz_mod_poly.h diff --git a/src/sage/libs/flint/fmpz_poly.pxd b/src/sage/libs/flint/fmpz_poly.pxd index da9a1ce72be..3819b044256 100644 --- a/src/sage/libs/flint/fmpz_poly.pxd +++ b/src/sage/libs/flint/fmpz_poly.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpz_poly.h diff --git a/src/sage/libs/flint/fmpz_poly.pyx b/src/sage/libs/flint/fmpz_poly.pyx index ca3997316e7..d33c23cad33 100644 --- a/src/sage/libs/flint/fmpz_poly.pyx +++ b/src/sage/libs/flint/fmpz_poly.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + r""" Deprecated module diff --git a/src/sage/libs/flint/fmpz_poly_mat.pxd b/src/sage/libs/flint/fmpz_poly_mat.pxd index 440290464cc..d991d2e16ba 100644 --- a/src/sage/libs/flint/fmpz_poly_mat.pxd +++ b/src/sage/libs/flint/fmpz_poly_mat.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpz_poly_mat.h diff --git a/src/sage/libs/flint/fmpz_poly_q.pxd b/src/sage/libs/flint/fmpz_poly_q.pxd index 7422a568882..921268b04d1 100644 --- a/src/sage/libs/flint/fmpz_poly_q.pxd +++ b/src/sage/libs/flint/fmpz_poly_q.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpz_poly_q.h diff --git a/src/sage/libs/flint/fmpz_vec.pxd b/src/sage/libs/flint/fmpz_vec.pxd index 11ab3e56ad4..cfc6bb26999 100644 --- a/src/sage/libs/flint/fmpz_vec.pxd +++ b/src/sage/libs/flint/fmpz_vec.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fmpz_vec.h diff --git a/src/sage/libs/flint/fq.pxd b/src/sage/libs/flint/fq.pxd index aa087889862..414444aee1a 100644 --- a/src/sage/libs/flint/fq.pxd +++ b/src/sage/libs/flint/fq.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fq.h diff --git a/src/sage/libs/flint/fq_nmod.pxd b/src/sage/libs/flint/fq_nmod.pxd index 2a796c1939d..4268ebda863 100644 --- a/src/sage/libs/flint/fq_nmod.pxd +++ b/src/sage/libs/flint/fq_nmod.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/fq_nmod.h diff --git a/src/sage/libs/flint/nmod_poly.pxd b/src/sage/libs/flint/nmod_poly.pxd index eb518d5b7d3..23506536152 100644 --- a/src/sage/libs/flint/nmod_poly.pxd +++ b/src/sage/libs/flint/nmod_poly.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/nmod_poly.h diff --git a/src/sage/libs/flint/nmod_poly_linkage.pxi b/src/sage/libs/flint/nmod_poly_linkage.pxi index b1be0216a2e..819826ad1dd 100644 --- a/src/sage/libs/flint/nmod_poly_linkage.pxi +++ b/src/sage/libs/flint/nmod_poly_linkage.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Linkage for arithmetic with FLINT's nmod_poly_t elements. diff --git a/src/sage/libs/flint/nmod_vec.pxd b/src/sage/libs/flint/nmod_vec.pxd index 6faf0bd7d82..c0cc0e7c201 100644 --- a/src/sage/libs/flint/nmod_vec.pxd +++ b/src/sage/libs/flint/nmod_vec.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/nmod_vec.h diff --git a/src/sage/libs/flint/ntl_interface.pxd b/src/sage/libs/flint/ntl_interface.pxd index d6112383330..cf25aa73004 100644 --- a/src/sage/libs/flint/ntl_interface.pxd +++ b/src/sage/libs/flint/ntl_interface.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: language = c++ # distutils: libraries = flint # distutils: depends = flint/NTL-interface.h diff --git a/src/sage/libs/flint/padic.pxd b/src/sage/libs/flint/padic.pxd index 7fe76c7c1b7..d4e4becccd7 100644 --- a/src/sage/libs/flint/padic.pxd +++ b/src/sage/libs/flint/padic.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/padic.h diff --git a/src/sage/libs/flint/padic_poly.pxd b/src/sage/libs/flint/padic_poly.pxd index 47aab0d6238..ca0f2abc9c7 100644 --- a/src/sage/libs/flint/padic_poly.pxd +++ b/src/sage/libs/flint/padic_poly.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/padic_poly.h diff --git a/src/sage/libs/flint/qadic.pxd b/src/sage/libs/flint/qadic.pxd index 1ee8e65e1b4..730f0f27e7f 100644 --- a/src/sage/libs/flint/qadic.pxd +++ b/src/sage/libs/flint/qadic.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/qadic.h diff --git a/src/sage/libs/flint/qsieve.pxd b/src/sage/libs/flint/qsieve.pxd index 9f40fb53daa..a5c77030937 100644 --- a/src/sage/libs/flint/qsieve.pxd +++ b/src/sage/libs/flint/qsieve.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/qsieve.h diff --git a/src/sage/libs/flint/qsieve.pyx b/src/sage/libs/flint/qsieve.pyx index 7168a3beac8..3a405dfa316 100644 --- a/src/sage/libs/flint/qsieve.pyx +++ b/src/sage/libs/flint/qsieve.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + r""" Deprecated module. diff --git a/src/sage/libs/flint/thread_pool.pxd b/src/sage/libs/flint/thread_pool.pxd index 9a697f8d7c0..fa9dda3a9c3 100644 --- a/src/sage/libs/flint/thread_pool.pxd +++ b/src/sage/libs/flint/thread_pool.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/thread_pool.h diff --git a/src/sage/libs/flint/types.pxd b/src/sage/libs/flint/types.pxd index b9f3e55a2ac..e15d73159c7 100644 --- a/src/sage/libs/flint/types.pxd +++ b/src/sage/libs/flint/types.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: depends = flint/acb.h flint/acb_calc.h flint/acb_dft.h flint/acb_dirichlet.h flint/acb_elliptic.h flint/acb_hypgeom.h flint/acb_mat.h flint/acb_modular.h flint/acb_poly.h flint/acf.h flint/aprcl.h flint/arb.h flint/arb_calc.h flint/arb_fmpz_poly.h flint/arb_fpwrap.h flint/arb_hypgeom.h flint/arb_mat.h flint/arb_poly.h flint/arf.h flint/arith.h flint/bernoulli.h flint/bool_mat.h flint/ca.h flint/ca_ext.h flint/ca_field.h flint/ca_mat.h flint/ca_poly.h flint/ca_vec.h flint/calcium.h flint/d_mat.h flint/d_vec.h flint/dirichlet.h flint/dlog.h flint/double_extras.h flint/double_interval.h flint/fexpr.h flint/fexpr_builtin.h flint/fft.h flint/flint.h flint/fmpq.h flint/fmpq_mat.h flint/fmpq_mpoly.h flint/fmpq_mpoly_factor.h flint/fmpq_poly.h flint/fmpq_vec.h flint/fmpz.h flint/fmpz_extras.h flint/fmpz_factor.h flint/fmpz_lll.h flint/fmpz_mat.h flint/fmpz_mod.h flint/fmpz_mod_mat.h flint/fmpz_mod_mpoly.h flint/fmpz_mod_mpoly_factor.h flint/fmpz_mod_poly.h flint/fmpz_mod_poly_factor.h flint/fmpz_mod_vec.h flint/fmpz_mpoly.h flint/fmpz_mpoly_factor.h flint/fmpz_mpoly_q.h flint/fmpz_poly.h flint/fmpz_poly_factor.h flint/fmpz_poly_mat.h flint/fmpz_poly_q.h flint/fmpz_vec.h flint/fmpzi.h flint/fq.h flint/fq_default.h flint/fq_default_mat.h flint/fq_default_poly.h flint/fq_default_poly_factor.h flint/fq_embed.h flint/fq_mat.h flint/fq_nmod.h flint/fq_nmod_embed.h flint/fq_nmod_mat.h flint/fq_nmod_mpoly.h flint/fq_nmod_mpoly_factor.h flint/fq_nmod_poly.h flint/fq_nmod_poly_factor.h flint/fq_nmod_vec.h flint/fq_poly.h flint/fq_poly_factor.h flint/fq_vec.h flint/fq_zech.h flint/fq_zech_embed.h flint/fq_zech_mat.h flint/fq_zech_poly.h flint/fq_zech_poly_factor.h flint/fq_zech_vec.h flint/gr.h flint/gr_generic.h flint/gr_mat.h flint/gr_mpoly.h flint/gr_poly.h flint/gr_special.h flint/gr_vec.h flint/hypgeom.h flint/long_extras.h flint/mag.h flint/mpf_mat.h flint/mpf_vec.h flint/mpfr_mat.h flint/mpfr_vec.h flint/mpn_extras.h flint/mpoly.h flint/nf.h flint/nf_elem.h flint/nmod.h flint/nmod_mat.h flint/nmod_mpoly.h flint/nmod_mpoly_factor.h flint/nmod_poly.h flint/nmod_poly_factor.h flint/nmod_poly_mat.h flint/nmod_types.h flint/nmod_vec.h flint/padic.h flint/padic_mat.h flint/padic_poly.h flint/partitions.h flint/perm.h flint/profiler.h flint/qadic.h flint/qfb.h flint/qqbar.h flint/qsieve.h flint/thread_pool.h flint/ulong_extras.h # WARNING: src/sage/libs/flint/types.pxd is generated from diff --git a/src/sage/libs/flint/ulong_extras.pxd b/src/sage/libs/flint/ulong_extras.pxd index e4c4ab06a97..e20be594174 100644 --- a/src/sage/libs/flint/ulong_extras.pxd +++ b/src/sage/libs/flint/ulong_extras.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint # distutils: depends = flint/ulong_extras.h diff --git a/src/sage/libs/flint/ulong_extras.pyx b/src/sage/libs/flint/ulong_extras.pyx index e4eee95b119..7a414d9ceb9 100644 --- a/src/sage/libs/flint/ulong_extras.pyx +++ b/src/sage/libs/flint/ulong_extras.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + r""" Deprecated modules. diff --git a/src/sage/libs/gap/__init__.py b/src/sage/libs/gap/__init__.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/libs/gap/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/libs/gap/all.py b/src/sage/libs/gap/all.py index e69de29bb2d..dd59a6da735 100644 --- a/src/sage/libs/gap/all.py +++ b/src/sage/libs/gap/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/libs/gap/all_documented_functions.py b/src/sage/libs/gap/all_documented_functions.py index 0820dc71064..f680ddff75a 100644 --- a/src/sage/libs/gap/all_documented_functions.py +++ b/src/sage/libs/gap/all_documented_functions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """nodoctest All Documented GAP Functions diff --git a/src/sage/libs/gap/assigned_names.py b/src/sage/libs/gap/assigned_names.py index 216bee639ec..23071c0d7e6 100644 --- a/src/sage/libs/gap/assigned_names.py +++ b/src/sage/libs/gap/assigned_names.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """nodoctest List of assigned names in GAP diff --git a/src/sage/libs/gap/context_managers.py b/src/sage/libs/gap/context_managers.py index 539b721af83..e20f9b58945 100644 --- a/src/sage/libs/gap/context_managers.py +++ b/src/sage/libs/gap/context_managers.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ Context Managers for LibGAP diff --git a/src/sage/libs/gap/element.pxd b/src/sage/libs/gap/element.pxd index ba4028cd91c..db7ac3be9f9 100644 --- a/src/sage/libs/gap/element.pxd +++ b/src/sage/libs/gap/element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap #***************************************************************************** # Copyright (C) 2012 Volker Braun # diff --git a/src/sage/libs/gap/element.pyx b/src/sage/libs/gap/element.pyx index c24408f401a..fae7b04ef81 100644 --- a/src/sage/libs/gap/element.pyx +++ b/src/sage/libs/gap/element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ GAP element wrapper diff --git a/src/sage/libs/gap/gap_functions.py b/src/sage/libs/gap/gap_functions.py index 5e35ca672bf..7df65a0db51 100644 --- a/src/sage/libs/gap/gap_functions.py +++ b/src/sage/libs/gap/gap_functions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """Common global functions defined by GAP.""" ############################################################################### diff --git a/src/sage/libs/gap/gap_globals.py b/src/sage/libs/gap/gap_globals.py index 4c3e6eb3aae..b2a413c06d9 100644 --- a/src/sage/libs/gap/gap_globals.py +++ b/src/sage/libs/gap/gap_globals.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """Common globals defined by GAP.""" ############################################################################### diff --git a/src/sage/libs/gap/gap_includes.pxd b/src/sage/libs/gap/gap_includes.pxd index 35107d3d4a0..dbc2d51360b 100644 --- a/src/sage/libs/gap/gap_includes.pxd +++ b/src/sage/libs/gap/gap_includes.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # distutils: libraries = gap gmp m ############################################################################### # Copyright (C) 2009, William Stein diff --git a/src/sage/libs/gap/libgap.pyx b/src/sage/libs/gap/libgap.pyx index f5b58a929f3..9903eeefe40 100644 --- a/src/sage/libs/gap/libgap.pyx +++ b/src/sage/libs/gap/libgap.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ Library Interface to GAP diff --git a/src/sage/libs/gap/operations.py b/src/sage/libs/gap/operations.py index b2106583f0b..e3f910c50f2 100644 --- a/src/sage/libs/gap/operations.py +++ b/src/sage/libs/gap/operations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ Operations for LibGAP Elements diff --git a/src/sage/libs/gap/sage.gaprc b/src/sage/libs/gap/sage.gaprc index f709a680fe8..a1a3a89e48a 100644 --- a/src/sage/libs/gap/sage.gaprc +++ b/src/sage/libs/gap/sage.gaprc @@ -1,3 +1,4 @@ +# # This file is run by Sage when initializing libgap via GAP_Initialize, and may # contain bug fixes/workarounds and/or any Sage-specific patches necessary for # Sage's libgap interface. diff --git a/src/sage/libs/gap/saved_workspace.py b/src/sage/libs/gap/saved_workspace.py index c26993ac638..91667de1e32 100644 --- a/src/sage/libs/gap/saved_workspace.py +++ b/src/sage/libs/gap/saved_workspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ LibGAP Workspace Support diff --git a/src/sage/libs/gap/test.py b/src/sage/libs/gap/test.py index 73dad049dc9..428ef00613d 100644 --- a/src/sage/libs/gap/test.py +++ b/src/sage/libs/gap/test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ Short tests for GAP """ diff --git a/src/sage/libs/gap/test_long.py b/src/sage/libs/gap/test_long.py index 262db5ad287..a365b2c4a4a 100644 --- a/src/sage/libs/gap/test_long.py +++ b/src/sage/libs/gap/test_long.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ Long tests for GAP diff --git a/src/sage/libs/gap/util.pxd b/src/sage/libs/gap/util.pxd index bb559f7c6a3..eb5d5711ad3 100644 --- a/src/sage/libs/gap/util.pxd +++ b/src/sage/libs/gap/util.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap #***************************************************************************** # Copyright (C) 2012 Volker Braun # diff --git a/src/sage/libs/gap/util.pyx b/src/sage/libs/gap/util.pyx index 29fa347ff30..b96c3fe51f3 100644 --- a/src/sage/libs/gap/util.pyx +++ b/src/sage/libs/gap/util.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap """ Utility functions for GAP """ diff --git a/src/sage/libs/giac/__init__.py b/src/sage/libs/giac/__init__.py index ab62e2a21db..726eeb4a3b3 100644 --- a/src/sage/libs/giac/__init__.py +++ b/src/sage/libs/giac/__init__.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-giac """ Wrappers for Giac functions @@ -164,6 +165,8 @@ def groebner_basis(gens, proba_epsilon=None, threads=None, prot=False, EXAMPLES:: sage: from sage.libs.giac import groebner_basis as gb_giac + + sage: # needs sage.rings.finite_rings sage: P = PolynomialRing(GF(previous_prime(2**31)), 6, 'x') sage: I = sage.rings.ideal.Cyclic(P) sage: B = gb_giac(I.gens()) @@ -175,6 +178,7 @@ def groebner_basis(gens, proba_epsilon=None, threads=None, prot=False, Elimination ideals can be computed by passing ``elim_variables``:: + sage: # needs sage.rings.finite_rings sage: P = PolynomialRing(GF(previous_prime(2**31)), 5, 'x') sage: I = sage.rings.ideal.Cyclic(P) sage: B = gb_giac(I.gens(), elim_variables=[P.gen(0), P.gen(2)]) diff --git a/src/sage/libs/giac/auto-methods.pxi b/src/sage/libs/giac/auto-methods.pxi index 478c9c21bed..c32d6e64525 100644 --- a/src/sage/libs/giac/auto-methods.pxi +++ b/src/sage/libs/giac/auto-methods.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-giac # file auto generated by mkkeywords.py cdef class GiacMethods_base: """ diff --git a/src/sage/libs/giac/giac.pxd b/src/sage/libs/giac/giac.pxd index d069c04a8a1..bc709eb5e56 100644 --- a/src/sage/libs/giac/giac.pxd +++ b/src/sage/libs/giac/giac.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-giac # distutils: language = c++ # **************************************************************************** # Copyright (C) 2012, Frederic Han diff --git a/src/sage/libs/giac/giac.pyx b/src/sage/libs/giac/giac.pyx index 30e6fdd56ed..573de65ba0d 100644 --- a/src/sage/libs/giac/giac.pyx +++ b/src/sage/libs/giac/giac.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-giac # distutils: libraries = giac # distutils: language = c++ # distutils: extra_compile_args = -std=c++11 diff --git a/src/sage/libs/giac/keywords.pxi b/src/sage/libs/giac/keywords.pxi index 9bc7eebe0b5..e1253b9746a 100644 --- a/src/sage/libs/giac/keywords.pxi +++ b/src/sage/libs/giac/keywords.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-giac # file auto generated by mkkeywords.py blacklist = ['eval', 'cas_setup', 'i', 'list', 'input', 'in', 'sto', 'string', 'and', 'break', 'continue', 'else', 'for', 'from', 'if', 'not', 'or', 'pow', 'print', 'return', 'set[]', 'try', 'while', 'open', 'output', 'do', 'of', 'Request', 'i[]', '[]', 'ffunction', 'sleep', '[..]'] diff --git a/src/sage/libs/giac/meson.build.in b/src/sage/libs/giac/meson.build.in new file mode 100644 index 00000000000..94990555c4c --- /dev/null +++ b/src/sage/libs/giac/meson.build.in @@ -0,0 +1,5 @@ +giac = declare_dependency( + dependencies: [ + cc.find_library('giac', required: false), + ] +) diff --git a/src/sage/libs/giac/misc.h b/src/sage/libs/giac/misc.h index af92cf93c9a..5c2ac2c994d 100644 --- a/src/sage/libs/giac/misc.h +++ b/src/sage/libs/giac/misc.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-giac + */ #ifndef GIACPYMISC_H #define GIACPYMISC_H #include diff --git a/src/sage/libs/glpk/__init__.py b/src/sage/libs/glpk/__init__.py index e69de29bb2d..b555a29542b 100644 --- a/src/sage/libs/glpk/__init__.py +++ b/src/sage/libs/glpk/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-glpk diff --git a/src/sage/libs/glpk/constants.pxd b/src/sage/libs/glpk/constants.pxd index 55fd165dcd3..f75107a9ae6 100644 --- a/src/sage/libs/glpk/constants.pxd +++ b/src/sage/libs/glpk/constants.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk #***************************************************************************** # Copyright (C) 2010 Nathann Cohen # Copyright (C) 2015 Jeroen Demeyer diff --git a/src/sage/libs/glpk/env.pxd b/src/sage/libs/glpk/env.pxd index 80d5153d3c9..8da2da5c261 100644 --- a/src/sage/libs/glpk/env.pxd +++ b/src/sage/libs/glpk/env.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk # distutils: libraries = glpk z gmp cdef extern from "glpk.h": diff --git a/src/sage/libs/glpk/graph.pxd b/src/sage/libs/glpk/graph.pxd index 2266952444c..94ebbb91c47 100644 --- a/src/sage/libs/glpk/graph.pxd +++ b/src/sage/libs/glpk/graph.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk # distutils: libraries = glpk z gmp #***************************************************************************** diff --git a/src/sage/libs/glpk/lp.pxd b/src/sage/libs/glpk/lp.pxd index cc4f05e5368..d3260e30f60 100644 --- a/src/sage/libs/glpk/lp.pxd +++ b/src/sage/libs/glpk/lp.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk # distutils: libraries = glpk z gmp #***************************************************************************** diff --git a/src/sage/libs/glpk/types.pxd b/src/sage/libs/glpk/types.pxd index 2d02df5dad4..33db76589d4 100644 --- a/src/sage/libs/glpk/types.pxd +++ b/src/sage/libs/glpk/types.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk #***************************************************************************** # Copyright (C) 2010 Nathann Cohen # Copyright (C) 2015 Jeroen Demeyer diff --git a/src/sage/libs/gmpxx.pxd b/src/sage/libs/gmpxx.pxd index 8ad41212dbf..227e62fe9c3 100644 --- a/src/sage/libs/gmpxx.pxd +++ b/src/sage/libs/gmpxx.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects # distutils: language = c++ # distutils: libraries = gmpxx gmp diff --git a/src/sage/libs/gsl/__init__.py b/src/sage/libs/gsl/__init__.py index e69de29bb2d..6f6ab52d0f2 100644 --- a/src/sage/libs/gsl/__init__.py +++ b/src/sage/libs/gsl/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/libs/gsl/airy.pxd b/src/sage/libs/gsl/airy.pxd index 7e996d5af81..d4f8c8806ee 100644 --- a/src/sage/libs/gsl/airy.pxd +++ b/src/sage/libs/gsl/airy.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/all.pxd b/src/sage/libs/gsl/all.pxd index 099399d9f3f..5d90292969a 100644 --- a/src/sage/libs/gsl/all.pxd +++ b/src/sage/libs/gsl/all.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.libs.gsl.types cimport * from sage.libs.gsl.math cimport * diff --git a/src/sage/libs/gsl/array.pxd b/src/sage/libs/gsl/array.pxd index 45ed04e45d0..0860ade618f 100644 --- a/src/sage/libs/gsl/array.pxd +++ b/src/sage/libs/gsl/array.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules cdef class GSLDoubleArray: cdef size_t n cdef size_t stride diff --git a/src/sage/libs/gsl/array.pyx b/src/sage/libs/gsl/array.pyx index 3916929cca4..ac01868f01e 100644 --- a/src/sage/libs/gsl/array.pyx +++ b/src/sage/libs/gsl/array.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ GSL arrays """ diff --git a/src/sage/libs/gsl/bessel.pxd b/src/sage/libs/gsl/bessel.pxd index 8a0a521aa3d..64f06a36db9 100644 --- a/src/sage/libs/gsl/bessel.pxd +++ b/src/sage/libs/gsl/bessel.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/blas.pxd b/src/sage/libs/gsl/blas.pxd index 7b195751993..0648ecf42a2 100644 --- a/src/sage/libs/gsl/blas.pxd +++ b/src/sage/libs/gsl/blas.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/blas_types.pxd b/src/sage/libs/gsl/blas_types.pxd index 7292912a641..9b09ddc36c4 100644 --- a/src/sage/libs/gsl/blas_types.pxd +++ b/src/sage/libs/gsl/blas_types.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: include_dirs = GSL_INCDIR cdef extern from "gsl/gsl_cblas.h": cdef enum CBLAS_ORDER: diff --git a/src/sage/libs/gsl/block.pxd b/src/sage/libs/gsl/block.pxd index 69ee5251dda..f0ddd7ecb52 100644 --- a/src/sage/libs/gsl/block.pxd +++ b/src/sage/libs/gsl/block.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/chebyshev.pxd b/src/sage/libs/gsl/chebyshev.pxd index 4978eb5af31..007ea19eab9 100644 --- a/src/sage/libs/gsl/chebyshev.pxd +++ b/src/sage/libs/gsl/chebyshev.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/clausen.pxd b/src/sage/libs/gsl/clausen.pxd index 2f92518e171..f45676f2673 100644 --- a/src/sage/libs/gsl/clausen.pxd +++ b/src/sage/libs/gsl/clausen.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/combination.pxd b/src/sage/libs/gsl/combination.pxd index 6072fb2417a..8e382d71d97 100644 --- a/src/sage/libs/gsl/combination.pxd +++ b/src/sage/libs/gsl/combination.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/complex.pxd b/src/sage/libs/gsl/complex.pxd index fbdccf67988..ddaf8d61fba 100644 --- a/src/sage/libs/gsl/complex.pxd +++ b/src/sage/libs/gsl/complex.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/coulomb.pxd b/src/sage/libs/gsl/coulomb.pxd index 7941dff093d..7b6d8be0640 100644 --- a/src/sage/libs/gsl/coulomb.pxd +++ b/src/sage/libs/gsl/coulomb.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/coupling.pxd b/src/sage/libs/gsl/coupling.pxd index cd5f4d301a6..29a3fc89ce9 100644 --- a/src/sage/libs/gsl/coupling.pxd +++ b/src/sage/libs/gsl/coupling.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/dawson.pxd b/src/sage/libs/gsl/dawson.pxd index 9eccc6c4485..553527d588a 100644 --- a/src/sage/libs/gsl/dawson.pxd +++ b/src/sage/libs/gsl/dawson.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/debye.pxd b/src/sage/libs/gsl/debye.pxd index ca6d5722e56..07273be89a6 100644 --- a/src/sage/libs/gsl/debye.pxd +++ b/src/sage/libs/gsl/debye.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/dilog.pxd b/src/sage/libs/gsl/dilog.pxd index 30f633dd5d2..3af4655c653 100644 --- a/src/sage/libs/gsl/dilog.pxd +++ b/src/sage/libs/gsl/dilog.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/eigen.pxd b/src/sage/libs/gsl/eigen.pxd index a0568b1f464..11f849b3715 100644 --- a/src/sage/libs/gsl/eigen.pxd +++ b/src/sage/libs/gsl/eigen.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/elementary.pxd b/src/sage/libs/gsl/elementary.pxd index 66e3d39b1e9..da6f0dcae56 100644 --- a/src/sage/libs/gsl/elementary.pxd +++ b/src/sage/libs/gsl/elementary.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/ellint.pxd b/src/sage/libs/gsl/ellint.pxd index 2c6cdfb9662..49bda769ce4 100644 --- a/src/sage/libs/gsl/ellint.pxd +++ b/src/sage/libs/gsl/ellint.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/elljac.pxd b/src/sage/libs/gsl/elljac.pxd index b343222e1a0..ace72b4ec73 100644 --- a/src/sage/libs/gsl/elljac.pxd +++ b/src/sage/libs/gsl/elljac.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/erf.pxd b/src/sage/libs/gsl/erf.pxd index 3035944ae47..836629ec3f5 100644 --- a/src/sage/libs/gsl/erf.pxd +++ b/src/sage/libs/gsl/erf.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/errno.pxd b/src/sage/libs/gsl/errno.pxd index 02d599289fd..d273be21303 100644 --- a/src/sage/libs/gsl/errno.pxd +++ b/src/sage/libs/gsl/errno.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/exp.pxd b/src/sage/libs/gsl/exp.pxd index 875f5564053..9c47c1a8237 100644 --- a/src/sage/libs/gsl/exp.pxd +++ b/src/sage/libs/gsl/exp.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/expint.pxd b/src/sage/libs/gsl/expint.pxd index 66e2e7b2091..5bb6c70cf52 100644 --- a/src/sage/libs/gsl/expint.pxd +++ b/src/sage/libs/gsl/expint.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/fermi_dirac.pxd b/src/sage/libs/gsl/fermi_dirac.pxd index 367fe60f293..af5ca2d2ec7 100644 --- a/src/sage/libs/gsl/fermi_dirac.pxd +++ b/src/sage/libs/gsl/fermi_dirac.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/fft.pxd b/src/sage/libs/gsl/fft.pxd index 8d0bbff58c1..d798b153755 100644 --- a/src/sage/libs/gsl/fft.pxd +++ b/src/sage/libs/gsl/fft.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/fit.pxd b/src/sage/libs/gsl/fit.pxd index 581b2423838..9c36d9136d2 100644 --- a/src/sage/libs/gsl/fit.pxd +++ b/src/sage/libs/gsl/fit.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/gamma.pxd b/src/sage/libs/gsl/gamma.pxd index 59bcced37be..aae7e4228dc 100644 --- a/src/sage/libs/gsl/gamma.pxd +++ b/src/sage/libs/gsl/gamma.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/gegenbauer.pxd b/src/sage/libs/gsl/gegenbauer.pxd index 8b3c802a9b9..b9affccfb27 100644 --- a/src/sage/libs/gsl/gegenbauer.pxd +++ b/src/sage/libs/gsl/gegenbauer.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/histogram.pxd b/src/sage/libs/gsl/histogram.pxd index 57cf2cca7bb..3ba61005fb3 100644 --- a/src/sage/libs/gsl/histogram.pxd +++ b/src/sage/libs/gsl/histogram.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/hyperg.pxd b/src/sage/libs/gsl/hyperg.pxd index 3e85ebfb0e4..e80953d372c 100644 --- a/src/sage/libs/gsl/hyperg.pxd +++ b/src/sage/libs/gsl/hyperg.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/integration.pxd b/src/sage/libs/gsl/integration.pxd index 0a584a90ecd..8542bf36b56 100644 --- a/src/sage/libs/gsl/integration.pxd +++ b/src/sage/libs/gsl/integration.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/interp.pxd b/src/sage/libs/gsl/interp.pxd index 1dbbef6a4ba..8643edb39f2 100644 --- a/src/sage/libs/gsl/interp.pxd +++ b/src/sage/libs/gsl/interp.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/laguerre.pxd b/src/sage/libs/gsl/laguerre.pxd index 14a2bcbee83..c7505bc7475 100644 --- a/src/sage/libs/gsl/laguerre.pxd +++ b/src/sage/libs/gsl/laguerre.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/lambert.pxd b/src/sage/libs/gsl/lambert.pxd index e30e41f0bd9..850279a8c36 100644 --- a/src/sage/libs/gsl/lambert.pxd +++ b/src/sage/libs/gsl/lambert.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/legendre.pxd b/src/sage/libs/gsl/legendre.pxd index f9a69910bc2..62a61a9cf63 100644 --- a/src/sage/libs/gsl/legendre.pxd +++ b/src/sage/libs/gsl/legendre.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/linalg.pxd b/src/sage/libs/gsl/linalg.pxd index 039a456174c..881a9c77e6f 100644 --- a/src/sage/libs/gsl/linalg.pxd +++ b/src/sage/libs/gsl/linalg.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/log.pxd b/src/sage/libs/gsl/log.pxd index 35798b2b150..64877bf51a7 100644 --- a/src/sage/libs/gsl/log.pxd +++ b/src/sage/libs/gsl/log.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/math.pxd b/src/sage/libs/gsl/math.pxd index 0f0a27a58e1..6e71fca54bf 100644 --- a/src/sage/libs/gsl/math.pxd +++ b/src/sage/libs/gsl/math.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/matrix.pxd b/src/sage/libs/gsl/matrix.pxd index e1e2009b609..4e5ab16ed79 100644 --- a/src/sage/libs/gsl/matrix.pxd +++ b/src/sage/libs/gsl/matrix.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/matrix_complex.pxd b/src/sage/libs/gsl/matrix_complex.pxd index 651887f47f5..ff0b82c4632 100644 --- a/src/sage/libs/gsl/matrix_complex.pxd +++ b/src/sage/libs/gsl/matrix_complex.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/min.pxd b/src/sage/libs/gsl/min.pxd index 25a9770eba0..67982bde2b5 100644 --- a/src/sage/libs/gsl/min.pxd +++ b/src/sage/libs/gsl/min.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/monte.pxd b/src/sage/libs/gsl/monte.pxd index 92142abdbcc..8d9ba8cd657 100644 --- a/src/sage/libs/gsl/monte.pxd +++ b/src/sage/libs/gsl/monte.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/ntuple.pxd b/src/sage/libs/gsl/ntuple.pxd index c47ab38d289..c94f3a2211f 100644 --- a/src/sage/libs/gsl/ntuple.pxd +++ b/src/sage/libs/gsl/ntuple.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/odeiv.pxd b/src/sage/libs/gsl/odeiv.pxd index 38044949298..ea473fb40d3 100644 --- a/src/sage/libs/gsl/odeiv.pxd +++ b/src/sage/libs/gsl/odeiv.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/permutation.pxd b/src/sage/libs/gsl/permutation.pxd index 3419d33576a..e5576c04ec1 100644 --- a/src/sage/libs/gsl/permutation.pxd +++ b/src/sage/libs/gsl/permutation.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/poly.pxd b/src/sage/libs/gsl/poly.pxd index ae172cbf07f..8ad7eb86ed2 100644 --- a/src/sage/libs/gsl/poly.pxd +++ b/src/sage/libs/gsl/poly.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/pow_int.pxd b/src/sage/libs/gsl/pow_int.pxd index af5de0263b8..155f1bc0629 100644 --- a/src/sage/libs/gsl/pow_int.pxd +++ b/src/sage/libs/gsl/pow_int.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/psi.pxd b/src/sage/libs/gsl/psi.pxd index fd33ccd636c..885f4001489 100644 --- a/src/sage/libs/gsl/psi.pxd +++ b/src/sage/libs/gsl/psi.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/qrng.pxd b/src/sage/libs/gsl/qrng.pxd index 24f0702f6c1..6987fb3f5e7 100644 --- a/src/sage/libs/gsl/qrng.pxd +++ b/src/sage/libs/gsl/qrng.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/random.pxd b/src/sage/libs/gsl/random.pxd index 21f531265bc..89f792cdbb1 100644 --- a/src/sage/libs/gsl/random.pxd +++ b/src/sage/libs/gsl/random.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/rng.pxd b/src/sage/libs/gsl/rng.pxd index b1ab233715e..0b976df3586 100644 --- a/src/sage/libs/gsl/rng.pxd +++ b/src/sage/libs/gsl/rng.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/roots.pxd b/src/sage/libs/gsl/roots.pxd index 2bf1ccf9403..4380949a3ba 100644 --- a/src/sage/libs/gsl/roots.pxd +++ b/src/sage/libs/gsl/roots.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/sort.pxd b/src/sage/libs/gsl/sort.pxd index 68493a8a1a8..bc1932a57db 100644 --- a/src/sage/libs/gsl/sort.pxd +++ b/src/sage/libs/gsl/sort.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/statistics.pxd b/src/sage/libs/gsl/statistics.pxd index 5f5dcaa426e..62ef3dbde6c 100644 --- a/src/sage/libs/gsl/statistics.pxd +++ b/src/sage/libs/gsl/statistics.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/sum.pxd b/src/sage/libs/gsl/sum.pxd index 83966b8eb34..3a75e8fc666 100644 --- a/src/sage/libs/gsl/sum.pxd +++ b/src/sage/libs/gsl/sum.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/synchrotron.pxd b/src/sage/libs/gsl/synchrotron.pxd index a02c9964fc2..fd642e85113 100644 --- a/src/sage/libs/gsl/synchrotron.pxd +++ b/src/sage/libs/gsl/synchrotron.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/transport.pxd b/src/sage/libs/gsl/transport.pxd index 6700511a9c9..86691a48b05 100644 --- a/src/sage/libs/gsl/transport.pxd +++ b/src/sage/libs/gsl/transport.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/trig.pxd b/src/sage/libs/gsl/trig.pxd index c9da72206af..b7ebe9e14f2 100644 --- a/src/sage/libs/gsl/trig.pxd +++ b/src/sage/libs/gsl/trig.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/types.pxd b/src/sage/libs/gsl/types.pxd index 7076e2f8861..00ffe3fb4ea 100644 --- a/src/sage/libs/gsl/types.pxd +++ b/src/sage/libs/gsl/types.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: include_dirs = GSL_INCDIR from libc.stdio cimport FILE diff --git a/src/sage/libs/gsl/vector.pxd b/src/sage/libs/gsl/vector.pxd index 30960a2d1ef..a00611fced0 100644 --- a/src/sage/libs/gsl/vector.pxd +++ b/src/sage/libs/gsl/vector.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/vector_complex.pxd b/src/sage/libs/gsl/vector_complex.pxd index a784c32880a..7629f946720 100644 --- a/src/sage/libs/gsl/vector_complex.pxd +++ b/src/sage/libs/gsl/vector_complex.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/wavelet.pxd b/src/sage/libs/gsl/wavelet.pxd index c74052e8bfc..2f94e13e6d9 100644 --- a/src/sage/libs/gsl/wavelet.pxd +++ b/src/sage/libs/gsl/wavelet.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/gsl/zeta.pxd b/src/sage/libs/gsl/zeta.pxd index 9b6edbd74b9..b89442a28fa 100644 --- a/src/sage/libs/gsl/zeta.pxd +++ b/src/sage/libs/gsl/zeta.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = GSL_LIBRARIES # distutils: library_dirs = GSL_LIBDIR # distutils: include_dirs = GSL_INCDIR diff --git a/src/sage/libs/homfly.pyx b/src/sage/libs/homfly.pyx index b051e67cc63..39c4f44f043 100644 --- a/src/sage/libs/homfly.pyx +++ b/src/sage/libs/homfly.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-homfly # distutils: libraries = homfly gc r""" Cython wrapper for libhomfly library diff --git a/src/sage/libs/iml.pxd b/src/sage/libs/iml.pxd index 274a05f4313..9796c931db4 100644 --- a/src/sage/libs/iml.pxd +++ b/src/sage/libs/iml.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox from sage.libs.gmp.types cimport mpz_t cdef extern from "iml.h": @@ -6,4 +7,4 @@ cdef extern from "iml.h": RightSolu cdef long nullspaceMP(long n, long m, const mpz_t *A, mpz_t * *mp_N_pass) - cdef void nonsingSolvLlhsMM(SOLU_POS solupos, long n, long m, mpz_t *mp_A, mpz_t *mp_B, mpz_t *mp_N, mpz_t mp_D) \ No newline at end of file + cdef void nonsingSolvLlhsMM(SOLU_POS solupos, long n, long m, mpz_t *mp_A, mpz_t *mp_B, mpz_t *mp_N, mpz_t mp_D) diff --git a/src/sage/libs/lcalc/__init__.py b/src/sage/libs/lcalc/__init__.py index e69de29bb2d..35fac988d13 100644 --- a/src/sage/libs/lcalc/__init__.py +++ b/src/sage/libs/lcalc/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-lcalc diff --git a/src/sage/libs/lcalc/lcalc_Lfunction.pxd b/src/sage/libs/lcalc/lcalc_Lfunction.pxd index 715fa46bba0..1da49c00755 100644 --- a/src/sage/libs/lcalc/lcalc_Lfunction.pxd +++ b/src/sage/libs/lcalc/lcalc_Lfunction.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-lcalc cdef extern from "lcalc_sage.h": ctypedef struct doublevec "std::vector": int (*size)() diff --git a/src/sage/libs/lcalc/lcalc_Lfunction.pyx b/src/sage/libs/lcalc/lcalc_Lfunction.pyx index f1173543ab1..a3ff1f6c247 100644 --- a/src/sage/libs/lcalc/lcalc_Lfunction.pyx +++ b/src/sage/libs/lcalc/lcalc_Lfunction.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-lcalc # distutils: libraries = m NTL_LIBRARIES Lfunction # distutils: extra_compile_args = NTL_CFLAGS -O3 -ffast-math # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/lcalc/lcalc_sage.h b/src/sage/libs/lcalc/lcalc_sage.h index 891a40c403e..70c9e3280c0 100644 --- a/src/sage/libs/lcalc/lcalc_sage.h +++ b/src/sage/libs/lcalc/lcalc_sage.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-lcalc + */ #include "lcalc/L.h" int *new_ints(int l) { diff --git a/src/sage/libs/libecm.pyx b/src/sage/libs/libecm.pyx index 9d53d7284d4..6b20b857ea7 100644 --- a/src/sage/libs/libecm.pyx +++ b/src/sage/libs/libecm.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-libecm # distutils: libraries = ecm # distutils: extra_link_args = LINUX_NOEXECSTACK r""" diff --git a/src/sage/libs/linbox/__init__.py b/src/sage/libs/linbox/__init__.py index e69de29bb2d..d3fe8dc3de9 100644 --- a/src/sage/libs/linbox/__init__.py +++ b/src/sage/libs/linbox/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-linbox diff --git a/src/sage/libs/linbox/conversion.pxd b/src/sage/libs/linbox/conversion.pxd index 9ca94ce79fd..91c49b6d925 100644 --- a/src/sage/libs/linbox/conversion.pxd +++ b/src/sage/libs/linbox/conversion.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox r""" Inline conversions between LinBox and Sage diff --git a/src/sage/libs/linbox/fflas.pxd b/src/sage/libs/linbox/fflas.pxd index 886f5c44cfa..43938125d4d 100644 --- a/src/sage/libs/linbox/fflas.pxd +++ b/src/sage/libs/linbox/fflas.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # Issue #33153: fflas-ffpack-2.4.3 is missing a return value in one of # its functions and runs afoul of -Werror=return-type. Compounding the # problem on openSUSE tumbleweed, the CFLAGS in python's sysconfig diff --git a/src/sage/libs/linbox/givaro.pxd b/src/sage/libs/linbox/givaro.pxd index e6b5a06c3b0..4a1fa3beebc 100644 --- a/src/sage/libs/linbox/givaro.pxd +++ b/src/sage/libs/linbox/givaro.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: extra_compile_args = GIVARO_CFLAGS # distutils: include_dirs = GIVARO_INCDIR # distutils: libraries = GIVARO_LIBRARIES FFLASFFPACK_LIBRARIES diff --git a/src/sage/libs/linbox/linbox.pxd b/src/sage/libs/linbox/linbox.pxd index 6792e260a34..e4064118461 100644 --- a/src/sage/libs/linbox/linbox.pxd +++ b/src/sage/libs/linbox/linbox.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: extra_compile_args = LINBOX_CFLAGS # distutils: include_dirs = LINBOX_INCDIR # distutils: libraries = LINBOX_LIBRARIES diff --git a/src/sage/libs/linbox/linbox_flint_interface.pxd b/src/sage/libs/linbox/linbox_flint_interface.pxd index f47d5386a01..72cf727e886 100644 --- a/src/sage/libs/linbox/linbox_flint_interface.pxd +++ b/src/sage/libs/linbox/linbox_flint_interface.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: libraries = LINBOX_LIBRARIES # distutils: library_dirs = LINBOX_LIBDIR # distutils: extra_link_args = LINBOX_LIBEXTRA diff --git a/src/sage/libs/linbox/linbox_flint_interface.pyx b/src/sage/libs/linbox/linbox_flint_interface.pyx index ed3fa183032..e508685c9ca 100644 --- a/src/sage/libs/linbox/linbox_flint_interface.pyx +++ b/src/sage/libs/linbox/linbox_flint_interface.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox r""" Interface between flint matrices and linbox diff --git a/src/sage/libs/linkages/__init__.py b/src/sage/libs/linkages/__init__.py index e69de29bb2d..d31bae41036 100644 --- a/src/sage/libs/linkages/__init__.py +++ b/src/sage/libs/linkages/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/libs/linkages/padics/API.pxi b/src/sage/libs/linkages/padics/API.pxi index 62e61551e07..c055ad2a659 100644 --- a/src/sage/libs/linkages/padics/API.pxi +++ b/src/sage/libs/linkages/padics/API.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This file defines the common API for p-adic elements. Elements using different precision models (e.g. capped relative, diff --git a/src/sage/libs/linkages/padics/Polynomial_ram.pxi b/src/sage/libs/linkages/padics/Polynomial_ram.pxi index 6863b4156c5..5081052fb9c 100644 --- a/src/sage/libs/linkages/padics/Polynomial_ram.pxi +++ b/src/sage/libs/linkages/padics/Polynomial_ram.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" This linkage file implements the padics API for ramified extensions using Sage Polynomials. diff --git a/src/sage/libs/linkages/padics/Polynomial_shared.pxi b/src/sage/libs/linkages/padics/Polynomial_shared.pxi index e471ce947ad..af4f6702696 100644 --- a/src/sage/libs/linkages/padics/Polynomial_shared.pxi +++ b/src/sage/libs/linkages/padics/Polynomial_shared.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" This linkage file implements the padics API using Sage Polynomials. diff --git a/src/sage/libs/linkages/padics/__init__.py b/src/sage/libs/linkages/padics/__init__.py index e69de29bb2d..d31bae41036 100644 --- a/src/sage/libs/linkages/padics/__init__.py +++ b/src/sage/libs/linkages/padics/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/libs/linkages/padics/fmpz_poly_unram.pxi b/src/sage/libs/linkages/padics/fmpz_poly_unram.pxi index 69cde5e4074..b379064b3c4 100644 --- a/src/sage/libs/linkages/padics/fmpz_poly_unram.pxi +++ b/src/sage/libs/linkages/padics/fmpz_poly_unram.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This linkage file implements the API for unramified extensions of the padics using FLINT's fmpz_poly_t. diff --git a/src/sage/libs/linkages/padics/mpz.pxi b/src/sage/libs/linkages/padics/mpz.pxi index 01ff197488e..4c3f724f00f 100644 --- a/src/sage/libs/linkages/padics/mpz.pxi +++ b/src/sage/libs/linkages/padics/mpz.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This linkage file implements the padics API using MPIR mpz_t multiprecision integers. diff --git a/src/sage/libs/linkages/padics/relaxed/API.pxi b/src/sage/libs/linkages/padics/relaxed/API.pxi index 07934c1322d..9b166f717f3 100644 --- a/src/sage/libs/linkages/padics/relaxed/API.pxi +++ b/src/sage/libs/linkages/padics/relaxed/API.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" This file defines the common API for relaxed `p`-adic numbers. diff --git a/src/sage/libs/linkages/padics/relaxed/__init__.py b/src/sage/libs/linkages/padics/relaxed/__init__.py index e69de29bb2d..d31bae41036 100644 --- a/src/sage/libs/linkages/padics/relaxed/__init__.py +++ b/src/sage/libs/linkages/padics/relaxed/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/libs/linkages/padics/relaxed/flint.pxi b/src/sage/libs/linkages/padics/relaxed/flint.pxi index 11ead5edef5..91e65292d20 100644 --- a/src/sage/libs/linkages/padics/relaxed/flint.pxi +++ b/src/sage/libs/linkages/padics/relaxed/flint.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" This linkage file implements the relaxed padics API using flint. @@ -21,7 +22,7 @@ from sage.libs.flint.fmpz cimport * from sage.libs.flint.fmpz_poly cimport * from sage.libs.flint.fmpz_poly_sage cimport * -cdef extern from "sage/libs/linkages/padics/relaxed/flint_helper.c": +cdef extern from "flint_helper.c": cdef void flint_randseed(flint_rand_t state, ulong seed1, ulong seed2) cdef fmpz* get_coeff(fmpz_poly_t poly, slong i) cdef void get_slice(fmpz_poly_t slice, fmpz_poly_t poly, slong start, slong length) diff --git a/src/sage/libs/linkages/padics/unram_shared.pxi b/src/sage/libs/linkages/padics/unram_shared.pxi index e3edc87bc39..976dceb8a8f 100644 --- a/src/sage/libs/linkages/padics/unram_shared.pxi +++ b/src/sage/libs/linkages/padics/unram_shared.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari cimport cython diff --git a/src/sage/libs/lrcalc/__init__.py b/src/sage/libs/lrcalc/__init__.py index e69de29bb2d..28c48d66b20 100644 --- a/src/sage/libs/lrcalc/__init__.py +++ b/src/sage/libs/lrcalc/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-combinat diff --git a/src/sage/libs/lrcalc/lrcalc.py b/src/sage/libs/lrcalc/lrcalc.py index 2a5144c0934..a31a131f036 100644 --- a/src/sage/libs/lrcalc/lrcalc.py +++ b/src/sage/libs/lrcalc/lrcalc.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-combinat +# sage.doctest: optional - lrcalc_python, needs sage.combinat r""" An interface to Anders Buch's Littlewood-Richardson Calculator ``lrcalc`` diff --git a/src/sage/libs/m4ri.pxd b/src/sage/libs/m4ri.pxd index 7fbdd35b856..9af2d9d8cd8 100644 --- a/src/sage/libs/m4ri.pxd +++ b/src/sage/libs/m4ri.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: extra_compile_args = -std=c++11 # distutils: language = c++ diff --git a/src/sage/libs/m4rie.pxd b/src/sage/libs/m4rie.pxd index c56e33b6945..f5db9a2a568 100644 --- a/src/sage/libs/m4rie.pxd +++ b/src/sage/libs/m4rie.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox ############################################################################## # Copyright (C) 2010 Martin Albrecht # Distributed under the terms of the GNU General Public License (GPL) diff --git a/src/sage/libs/meataxe.pyx b/src/sage/libs/meataxe.pyx index 09c25b45155..2466a6cd7e0 100644 --- a/src/sage/libs/meataxe.pyx +++ b/src/sage/libs/meataxe.pyx @@ -1,5 +1,5 @@ -# distutils: libraries = mtx # sage_setup: distribution = sagemath-meataxe +# distutils: libraries = mtx # **************************************************************************** # Copyright (C) 2017 Simon King diff --git a/src/sage/libs/meson.build.in b/src/sage/libs/meson.build.in new file mode 100644 index 00000000000..a465e2cdd32 --- /dev/null +++ b/src/sage/libs/meson.build.in @@ -0,0 +1,7 @@ +sirocco = declare_dependency( + dependencies: [ + cc.find_library('sirocco', required: false), + ] +) +# cannot be found via pkg-config +ecl = cc.find_library('ecl') diff --git a/src/sage/libs/mpc/__init__.pxd b/src/sage/libs/mpc/__init__.pxd index 4930a636c41..7f27ba719e8 100644 --- a/src/sage/libs/mpc/__init__.pxd +++ b/src/sage/libs/mpc/__init__.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = gmp mpfr mpc from sage.libs.gmp.types cimport * diff --git a/src/sage/libs/mpc/types.pxd b/src/sage/libs/mpc/types.pxd index 72565c08630..2221e931726 100644 --- a/src/sage/libs/mpc/types.pxd +++ b/src/sage/libs/mpc/types.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.libs.mpfr.types cimport mpfr_t cdef extern from "mpc.h": diff --git a/src/sage/libs/mpfi/__init__.pxd b/src/sage/libs/mpfi/__init__.pxd index b55a5129d18..1c83243299e 100644 --- a/src/sage/libs/mpfi/__init__.pxd +++ b/src/sage/libs/mpfi/__init__.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = gmp mpfr mpfi from sage.libs.gmp.types cimport * diff --git a/src/sage/libs/mpfi/types.pxd b/src/sage/libs/mpfi/types.pxd index 073a2e719ac..efc8552675e 100644 --- a/src/sage/libs/mpfi/types.pxd +++ b/src/sage/libs/mpfi/types.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.mpfr.types cimport __mpfr_struct cdef extern from "mpfi.h": diff --git a/src/sage/libs/mpfr/__init__.pxd b/src/sage/libs/mpfr/__init__.pxd index facac9aa6c7..a6c222d600f 100644 --- a/src/sage/libs/mpfr/__init__.pxd +++ b/src/sage/libs/mpfr/__init__.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: libraries = gmp mpfr from sage.libs.gmp.types cimport * diff --git a/src/sage/libs/mpfr/types.pxd b/src/sage/libs/mpfr/types.pxd index 45f8a161361..9cfbc0e96fd 100644 --- a/src/sage/libs/mpfr/types.pxd +++ b/src/sage/libs/mpfr/types.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.libs.gmp.types cimport mp_limb_t cdef extern from "mpfr.h": diff --git a/src/sage/libs/mpmath/_vendor/__init__.py b/src/sage/libs/mpmath/_vendor/__init__.py new file mode 100644 index 00000000000..5cee9a2b761 --- /dev/null +++ b/src/sage/libs/mpmath/_vendor/__init__.py @@ -0,0 +1,8 @@ +# sage_setup: distribution = sagemath-mpmath + +from .mpmath import * +from .mpmath.libmp.backend import BACKEND as _BACKEND + +assert _BACKEND == 'sage' + +del _BACKEND diff --git a/src/sage/libs/mpmath/_vendor/nodoctest.py b/src/sage/libs/mpmath/_vendor/nodoctest.py new file mode 100644 index 00000000000..5cfb921f187 --- /dev/null +++ b/src/sage/libs/mpmath/_vendor/nodoctest.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-mpmath diff --git a/src/sage/libs/mpmath/all.py b/src/sage/libs/mpmath/all.py index ea35faeb721..c1f2e127af9 100644 --- a/src/sage/libs/mpmath/all.py +++ b/src/sage/libs/mpmath/all.py @@ -1,16 +1,16 @@ -import mpmath +# sage_setup: distribution = sagemath-mpmath # Patch mpmath to use Cythonized functions from sage.libs.mpmath import utils as _utils # Also import internal functions -from mpmath.libmp import * +from sage.libs.mpmath._vendor.mpmath.libmp import * # Main namespace -from mpmath import * +from sage.libs.mpmath._vendor.mpmath import * -# Utilities -from sage.libs.mpmath.utils import call, mpmath_to_sage, sage_to_mpmath +# Utilities used by the Sage library +from sage.libs.mpmath.sage_utils import call, mpmath_to_sage, sage_to_mpmath # Use mpmath internal functions for constants, to avoid unnecessary overhead _constants_funcs = { diff --git a/src/sage/libs/mpmath/ext_impl.pxd b/src/sage/libs/mpmath/ext_impl.pxd index 586d10d17f2..d4ff28112f2 100644 --- a/src/sage/libs/mpmath/ext_impl.pxd +++ b/src/sage/libs/mpmath/ext_impl.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-mpmath from sage.libs.gmp.all cimport mpz_t ctypedef struct MPopts: diff --git a/src/sage/libs/mpmath/ext_impl.pyx b/src/sage/libs/mpmath/ext_impl.pyx index fdbbfa80a3a..89a8ef4109d 100644 --- a/src/sage/libs/mpmath/ext_impl.pyx +++ b/src/sage/libs/mpmath/ext_impl.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-mpmath """ This module provides the core implementation of multiprecision floating-point arithmetic. Operations are done in-place. @@ -6,7 +7,7 @@ TESTS: See if :issue:`15118` is fixed:: - sage: import mpmath + sage: import sage.libs.mpmath.all as mpmath sage: mpmath.mpf(0)^(-2) Traceback (most recent call last): ... @@ -1063,9 +1064,9 @@ cdef MPF_pow_int(MPF *r, MPF *x, mpz_t n, MPopts opts): mpz_mul(r.exp, x.exp, n) return # TODO: implement efficiently here - import mpmath.libmp + import sage.libs.mpmath._vendor.mpmath.libmp MPF_set_tuple(r, - mpmath.libmp.mpf_pow_int(MPF_to_tuple(x), mpzi(n), + sage.libs.mpmath._vendor.mpmath.libmp.mpf_pow_int(MPF_to_tuple(x), mpzi(n), opts.prec, rndmode_to_python(opts.rounding))) cdef mpz_t _pi_value @@ -1083,7 +1084,7 @@ cdef mpz_set_pi(mpz_t x, int prec): if prec <= _pi_prec: mpz_tdiv_q_2exp(x, _pi_value, _pi_prec-prec) else: - from mpmath.libmp import pi_fixed + from sage.libs.mpmath._vendor.mpmath.libmp import pi_fixed if _pi_prec < 0: mpz_init(_pi_value) mpz_set_integer(_pi_value, pi_fixed(prec)) @@ -1099,7 +1100,7 @@ cdef mpz_set_ln2(mpz_t x, int prec): if prec <= _ln2_prec: mpz_tdiv_q_2exp(x, _ln2_value, _ln2_prec-prec) else: - from mpmath.libmp import ln2_fixed + from sage.libs.mpmath._vendor.mpmath.libmp import ln2_fixed if _ln2_prec < 0: mpz_init(_ln2_value) mpz_set_integer(_ln2_value, ln2_fixed(prec)) @@ -1547,7 +1548,7 @@ cdef _MPF_cos_python(MPF *c, MPF *x, MPopts opts): """ Compute c = cos(x) by calling the mpmath.libmp Python implementation. """ - from mpmath.libmp.libelefun import mpf_cos_sin + from sage.libs.mpmath._vendor.mpmath.libmp.libelefun import mpf_cos_sin ct = mpf_cos_sin(MPF_to_tuple(x), opts.prec, rndmode_to_python(opts.rounding), 1, False) MPF_set_tuple(c, ct) @@ -1556,7 +1557,7 @@ cdef _MPF_sin_python(MPF *s, MPF *x, MPopts opts): """ Compute s = sin(x) by calling the mpmath.libmp Python implementation. """ - from mpmath.libmp.libelefun import mpf_cos_sin + from sage.libs.mpmath._vendor.mpmath.libmp.libelefun import mpf_cos_sin st = mpf_cos_sin(MPF_to_tuple(x), opts.prec, rndmode_to_python(opts.rounding), 2, False) MPF_set_tuple(s, st) @@ -1852,7 +1853,7 @@ cdef MPF_complex_pow_int(MPF *zre, MPF *zim, MPF *xre, MPF *xim, mpz_t n, MPopts xret = MPF_to_tuple(xre) ximt = MPF_to_tuple(xim) - from mpmath.libmp import mpc_pow_int + from sage.libs.mpmath._vendor.mpmath.libmp import mpc_pow_int vr, vi = mpc_pow_int((xret, ximt), mpzi(n), opts.prec, rndmode_to_python(opts.rounding)) MPF_set_tuple(zre, vr) @@ -1897,7 +1898,7 @@ cdef MPF_complex_pow_re(MPF *zre, MPF *zim, MPF *xre, MPF *xim, MPF *y, MPopts o xret = MPF_to_tuple(xre) ximt = MPF_to_tuple(xim) yret = MPF_to_tuple(y) - from mpmath.libmp import mpc_pow_mpf + from sage.libs.mpmath._vendor.mpmath.libmp import mpc_pow_mpf vr, vi = mpc_pow_mpf((xret, ximt), yret, opts.prec, rndmode_to_python(opts.rounding)) MPF_set_tuple(zre, vr) @@ -1915,7 +1916,7 @@ cdef MPF_complex_pow(MPF *zre, MPF *zim, MPF *xre, MPF *xim, MPF *yre, MPF *yim, ximt = MPF_to_tuple(xim) yret = MPF_to_tuple(yre) yimt = MPF_to_tuple(yim) - from mpmath.libmp import mpc_pow + from sage.libs.mpmath._vendor.mpmath.libmp import mpc_pow vr, vi = mpc_pow((xret, ximt), (yret, yimt), opts.prec, rndmode_to_python(opts.rounding)) MPF_set_tuple(zre, vr) @@ -2210,7 +2211,7 @@ cdef MPF_hypsum(MPF *a, MPF *b, int p, int q, param_types, str ztype, coeffs, z, break if n > MAX: - from mpmath.libmp import NoConvergence + from sage.libs.mpmath._vendor.mpmath.libmp import NoConvergence raise NoConvergence('Hypergeometric series converges too slowly. Try increasing maxterms.') # +1 all parameters for next iteration diff --git a/src/sage/libs/mpmath/ext_libmp.pyx b/src/sage/libs/mpmath/ext_libmp.pyx index 487a12d45bc..cddddc55b69 100644 --- a/src/sage/libs/mpmath/ext_libmp.pyx +++ b/src/sage/libs/mpmath/ext_libmp.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-mpmath """ Faster versions of some key functions in mpmath.libmp """ @@ -60,14 +61,14 @@ def mpf_sqrt(tuple x, int prec, str rnd='d'): EXAMPLES:: - sage: from mpmath.libmp import mpf_sqrt, from_float, to_float + sage: from sage.libs.mpmath._vendor.mpmath.libmp import mpf_sqrt, from_float, to_float sage: x = from_float(2) sage: y = mpf_sqrt(x, 53, 'n') sage: to_float(y) 1.4142135623730951 """ if x[0]: - import mpmath.libmp as libmp + import sage.libs.mpmath._vendor.mpmath.libmp as libmp raise libmp.ComplexResult("square root of a negative number") cdef MPopts opts MPF_set_tuple(&tmp1, x) @@ -83,14 +84,14 @@ def mpf_log(tuple x, int prec, str rnd='d'): EXAMPLES:: - sage: from mpmath.libmp import mpf_log, from_float, to_float + sage: from sage.libs.mpmath._vendor.mpmath.libmp import mpf_log, from_float, to_float sage: x = from_float(2) sage: y = mpf_log(x, 53, 'n') sage: to_float(y) 0.6931471805599453 """ if x[0]: - import mpmath.libmp as libmp + import sage.libs.mpmath._vendor.mpmath.libmp as libmp raise libmp.ComplexResult("logarithm of a negative number") cdef MPopts opts MPF_set_tuple(&tmp1, x) @@ -106,7 +107,7 @@ def mpf_exp(tuple x, int prec, str rnd='d'): EXAMPLES:: - sage: from mpmath.libmp import mpf_exp, from_float, to_float + sage: from sage.libs.mpmath._vendor.mpmath.libmp import mpf_exp, from_float, to_float sage: x = from_float(2) sage: z = mpf_exp(x, 53, 'n') sage: to_float(z) @@ -126,7 +127,7 @@ def mpf_cos(tuple x, int prec, str rnd='d'): EXAMPLES:: - sage: from mpmath.libmp import mpf_cos, from_float, to_float + sage: from sage.libs.mpmath._vendor.mpmath.libmp import mpf_cos, from_float, to_float sage: x = from_float(1) sage: y = mpf_cos(x, 53, 'n') sage: to_float(y) @@ -146,7 +147,7 @@ def mpf_sin(tuple x, int prec, str rnd='d'): EXAMPLES:: - sage: from mpmath.libmp import mpf_sin, from_float, to_float + sage: from sage.libs.mpmath._vendor.mpmath.libmp import mpf_sin, from_float, to_float sage: x = from_float(1) sage: y = mpf_sin(x, 53, 'n') sage: to_float(y) @@ -166,7 +167,7 @@ def mpc_sqrt(tuple z, int prec, str rnd='d'): EXAMPLES:: - sage: from mpmath.libmp import mpc_sqrt, from_float, to_float + sage: from sage.libs.mpmath._vendor.mpmath.libmp import mpc_sqrt, from_float, to_float sage: z = from_float(-2), from_float(0) sage: re, im = mpc_sqrt(z, 53, 'n') sage: to_float(re), to_float(im) @@ -189,7 +190,7 @@ def mpc_exp(tuple z, int prec, str rnd='d'): EXAMPLES:: - sage: from mpmath.libmp import mpc_exp, from_float, to_float + sage: from sage.libs.mpmath._vendor.mpmath.libmp import mpc_exp, from_float, to_float sage: z = from_float(0), from_float(1) sage: re, im = mpc_exp(z, 53, 'n') sage: to_float(re), to_float(im) @@ -212,7 +213,7 @@ def mpf_pow(tuple x, tuple y, int prec, str rnd='d'): EXAMPLES:: - sage: from mpmath.libmp import mpf_pow, from_float, to_float + sage: from sage.libs.mpmath._vendor.mpmath.libmp import mpf_pow, from_float, to_float sage: x = from_float(2) sage: y = from_float(3) sage: z = mpf_pow(x, y, 53, 'n') @@ -225,6 +226,6 @@ def mpf_pow(tuple x, tuple y, int prec, str rnd='d'): opts.rounding = rndmode_from_python(rnd) opts.prec = prec if MPF_pow(&tmp1, &tmp1, &tmp2, opts): - import mpmath.libmp as libmp + import sage.libs.mpmath._vendor.mpmath.libmp as libmp raise libmp.ComplexResult("negative number raised to a fractional power") return MPF_to_tuple(&tmp1) diff --git a/src/sage/libs/mpmath/ext_main.pxd b/src/sage/libs/mpmath/ext_main.pxd index 8a3bf740b0e..ea3f7bba6d4 100644 --- a/src/sage/libs/mpmath/ext_main.pxd +++ b/src/sage/libs/mpmath/ext_main.pxd @@ -1 +1,2 @@ +# sage_setup: distribution = sagemath-mpmath from sage.libs.mpmath.ext_impl cimport * diff --git a/src/sage/libs/mpmath/ext_main.pyx b/src/sage/libs/mpmath/ext_main.pyx index 96111f7b942..33b8fb29c64 100644 --- a/src/sage/libs/mpmath/ext_main.pyx +++ b/src/sage/libs/mpmath/ext_main.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-mpmath """ mpmath floating-point numbers @@ -40,11 +41,11 @@ DEF S_NAN = 5 from sage.libs.mpmath.ext_impl cimport * -import mpmath.rational as rationallib -import mpmath.libmp as libmp -import mpmath.function_docs as function_docs -from mpmath.libmp import to_str -from mpmath.libmp import repr_dps, prec_to_dps, dps_to_prec +import sage.libs.mpmath._vendor.mpmath.rational as rationallib +import sage.libs.mpmath._vendor.mpmath.libmp as libmp +import sage.libs.mpmath._vendor.mpmath.function_docs as function_docs +from sage.libs.mpmath._vendor.mpmath.libmp import to_str +from sage.libs.mpmath._vendor.mpmath.libmp import repr_dps, prec_to_dps, dps_to_prec DEF OP_ADD = 0 DEF OP_SUB = 1 @@ -394,9 +395,9 @@ cdef class Context: """ At present, only a single global context should exist:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: type(mp) - + """ global global_opts, global_context global_opts = opts_double_precision @@ -413,10 +414,10 @@ cdef class Context: TESTS:: - sage: import mpmath - sage: mpmath.mp.prec = 100 - sage: mpmath.mp.default() - sage: mpmath.mp.prec + sage: import sage.libs.mpmath + sage: sage.libs.mpmath.all.mp.prec = 100 + sage: sage.libs.mpmath.all.mp.default() + sage: sage.libs.mpmath.all.mp.prec 53 """ global global_opts @@ -428,7 +429,7 @@ cdef class Context: """ Controls the working precision in bits:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.prec = 100 sage: mp.prec 100 @@ -442,7 +443,7 @@ cdef class Context: """ Controls the working precision in bits:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.prec = 100 sage: mp.prec 100 @@ -456,7 +457,7 @@ cdef class Context: """ Controls the working precision in decimal digits:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.dps = 100 sage: mp.prec 336 @@ -470,7 +471,7 @@ cdef class Context: """ Controls the working precision in decimal digits:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.dps = 100 sage: mp.prec 336 @@ -489,7 +490,7 @@ cdef class Context: """ Return the precision and rounding mode:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp._get_prec_rounding() (53, 'n') """ @@ -501,8 +502,8 @@ cdef class Context: """ Create an mpf from tuple data:: - sage: import mpmath - sage: float(mpmath.mp.make_mpf((0,1,-1,1))) + sage: import sage.libs.mpmath + sage: float(sage.libs.mpmath.all.mp.make_mpf((0,1,-1,1))) 0.5 """ cdef mpf x @@ -514,8 +515,8 @@ cdef class Context: """ Create an mpc from tuple data:: - sage: import mpmath - sage: complex(mpmath.mp.make_mpc(((0,1,-1,1), (1,1,-2,1)))) + sage: import sage.libs.mpmath + sage: complex(sage.libs.mpmath.all.mp.make_mpc(((0,1,-1,1), (1,1,-2,1)))) (0.5-0.25j) """ cdef mpc x @@ -536,7 +537,7 @@ cdef class Context: TESTS:: - sage: from mpmath import mp, convert + sage: from sage.libs.mpmath.all import mp, convert sage: mp.dps = 15; mp.pretty = False sage: convert(3.5) mpf('3.5') @@ -569,7 +570,7 @@ cdef class Context: TESTS:: - sage: from mpmath import isnan, nan + sage: from sage.libs.mpmath.all import isnan, nan sage: isnan(nan), isnan(3) (True, False) """ @@ -600,7 +601,7 @@ cdef class Context: TESTS:: - sage: from mpmath import isinf, inf, mpc + sage: from sage.libs.mpmath.all import isinf, inf, mpc sage: isinf(inf) True sage: isinf(-inf) @@ -645,7 +646,7 @@ cdef class Context: TESTS:: - sage: from mpmath import isnormal, inf, nan, mpc + sage: from sage.libs.mpmath.all import isnormal, inf, nan, mpc sage: isnormal(3) True sage: isnormal(0) @@ -686,7 +687,7 @@ cdef class Context: TESTS:: - sage: from mpmath import isint, mpf, inf + sage: from sage.libs.mpmath.all import isint, mpf, inf sage: isint(3) True sage: isint(mpf(3)) @@ -746,7 +747,7 @@ cdef class Context: TESTS:: - sage: from mpmath import mp, fsum + sage: from sage.libs.mpmath.all import mp, fsum sage: mp.dps = 15; mp.pretty = False sage: fsum([1, 2, 0.5, 7]) mpf('10.5') @@ -870,7 +871,7 @@ cdef class Context: TESTS:: - sage: from mpmath import mp, fdot + sage: from sage.libs.mpmath.all import mp, fdot sage: mp.dps = 15; mp.pretty = False sage: A = [2, 1.5r, 3] sage: B = [1, -1, 2] @@ -982,7 +983,7 @@ cdef class Context: TESTS:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: (x, T) = mp._convert_param(3) sage: (x, type(x).__name__, T) (3, 'int', 'Z') @@ -1054,7 +1055,7 @@ cdef class Context: TESTS:: - sage: from mpmath import * + sage: from sage.libs.mpmath.all import * sage: mag(10), mag(10.0), mag(mpf(10)), int(ceil(log(10,2))) (4, 4, 4, 4) sage: mag(10j), mag(10+10j) @@ -1129,7 +1130,7 @@ cdef class Context: TESTS:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.pretty = False sage: f = lambda x, prec, rnd: x sage: g = mp._wrap_libmp_function(f) @@ -1153,7 +1154,7 @@ cdef class Context: TESTS:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp._wrap_specfun("foo", lambda ctx, x: ctx.prec + x, True) sage: mp.pretty = False; mp.prec = 53 sage: mp.foo(5) # 53 + 10 guard bits + 5 @@ -1193,7 +1194,7 @@ cdef class Context: TESTS:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.dps = 15 sage: print(mp.sqrt(2)) # indirect doctest 1.4142135623731 @@ -1230,7 +1231,7 @@ cdef class Context: EXAMPLES:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.dps = 15 sage: print(mp.exp(2)) # indirect doctest 7.38905609893065 @@ -1261,7 +1262,7 @@ cdef class Context: EXAMPLES:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.dps = 15 sage: print(mp.cos(2)) # indirect doctest -0.416146836547142 @@ -1297,7 +1298,7 @@ cdef class Context: EXAMPLES:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.dps = 15 sage: print(mp.sin(2)) # indirect doctest 0.909297426825682 @@ -1333,7 +1334,7 @@ cdef class Context: EXAMPLES:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: print(mp.ln(2)) # indirect doctest 0.693147180559945 sage: print(mp.ln(-2)) @@ -1393,8 +1394,8 @@ cdef class wrapped_libmp_function: TESTS:: sage: from sage.libs.mpmath.ext_main import wrapped_libmp_function - sage: from mpmath import mp - sage: from mpmath.libmp import mpf_exp, mpf_sqrt + sage: from sage.libs.mpmath.all import mp + sage: from sage.libs.mpmath._vendor.mpmath.libmp import mpf_exp, mpf_sqrt sage: f = lambda x, prec, rnd: mpf_exp(mpf_sqrt(x, prec, rnd), prec, rnd) sage: g = wrapped_libmp_function(f) sage: g(mp.mpf(3)) @@ -1420,7 +1421,7 @@ cdef class wrapped_libmp_function: conversions and uses the default working precision unless overridden:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.sinh(2) mpf('3.6268604078470186') sage: mp.sinh(2, prec=10) @@ -1483,7 +1484,7 @@ cdef class wrapped_specfun: TESTS:: - sage: import mpmath + sage: import sage.libs.mpmath sage: from sage.libs.mpmath.ext_main import wrapped_specfun sage: f = wrapped_specfun("f", lambda ctx, x: x) sage: f.name @@ -1499,7 +1500,7 @@ cdef class wrapped_specfun: to mpmath number, and the internal working precision is increased by a few bits to suppress typical rounding errors:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: from sage.libs.mpmath.ext_main import wrapped_specfun sage: f = wrapped_specfun("f", lambda ctx, x: x + ctx.prec) sage: f("1") # 53 + 10 guard bits + 1 @@ -1523,7 +1524,7 @@ cdef class mpnumber: Comparison of mpmath numbers. Compatible numerical types are automatically converted to mpmath numbers:: - sage: from mpmath import mpf, mpc + sage: from sage.libs.mpmath.all import mpf, mpc sage: mpf(3) == mpc(3) True sage: mpf(3) == mpc(4) @@ -1544,7 +1545,7 @@ cdef class mpnumber: Addition of mpmath numbers. Compatible numerical types are automatically converted to mpmath numbers:: - sage: from mpmath import mpf, mpc + sage: from sage.libs.mpmath.all import mpf, mpc sage: mpf(3) + mpc(3) mpc(real='6.0', imag='0.0') sage: float(4) + mpf(3) @@ -1557,7 +1558,7 @@ cdef class mpnumber: Subtraction of mpmath numbers. Compatible numerical types are automatically converted to mpmath numbers:: - sage: from mpmath import mpf, mpc + sage: from sage.libs.mpmath.all import mpf, mpc sage: mpf(5) - mpc(3) mpc(real='2.0', imag='0.0') sage: float(4) - mpf(3) @@ -1570,7 +1571,7 @@ cdef class mpnumber: Multiplication of mpmath numbers. Compatible numerical types are automatically converted to mpmath numbers:: - sage: from mpmath import mpf, mpc + sage: from sage.libs.mpmath.all import mpf, mpc sage: mpf(5) * mpc(3) mpc(real='15.0', imag='0.0') sage: float(4) * mpf(3) @@ -1583,7 +1584,7 @@ cdef class mpnumber: Division of mpmath numbers. Compatible numerical types are automatically converted to mpmath numbers:: - sage: from mpmath import mpf, mpc + sage: from sage.libs.mpmath.all import mpf, mpc sage: mpf(10) / mpc(5) mpc(real='2.0', imag='0.0') sage: float(9) / mpf(3) @@ -1596,7 +1597,7 @@ cdef class mpnumber: Remainder of mpmath numbers. Compatible numerical types are automatically converted to mpmath numbers:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(12) % float(7) mpf('5.0') """ @@ -1607,7 +1608,7 @@ cdef class mpnumber: Exponentiation of mpmath numbers. Compatible numerical types are automatically converted to mpmath numbers:: - sage: from mpmath import mpf, mpc + sage: from sage.libs.mpmath.all import mpf, mpc sage: mpf(10) ** mpc(3) mpc(real='1000.0', imag='0.0') sage: mpf(3) ** float(2) @@ -1622,7 +1623,7 @@ cdef class mpnumber: Check if two numbers are approximately equal to within the specified tolerance (see mp.almosteq for documentation):: - sage: from mpmath import mpf, mpc + sage: from sage.libs.mpmath.all import mpf, mpc sage: mpf(3).ae(mpc(3,1e-10)) False sage: mpf(3).ae(mpc(3,1e-10), rel_eps=1e-5) @@ -1641,7 +1642,7 @@ cdef class mpf_base(mpnumber): """ Support hashing of derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: hash(X()) == hash(float(X())) @@ -1653,7 +1654,7 @@ cdef class mpf_base(mpnumber): """ Support repr() of derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: repr(X()) @@ -1668,7 +1669,7 @@ cdef class mpf_base(mpnumber): """ Support str() of derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: str(X()) @@ -1681,7 +1682,7 @@ cdef class mpf_base(mpnumber): """ Support real part of derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: X().real @@ -1694,7 +1695,7 @@ cdef class mpf_base(mpnumber): """ Support imaginary part of derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: X().imag @@ -1706,7 +1707,7 @@ cdef class mpf_base(mpnumber): """ Support complex conjugate of derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: X().conjugate() @@ -1719,7 +1720,7 @@ cdef class mpf_base(mpnumber): """ Support mantissa extraction of derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: X().man @@ -1732,7 +1733,7 @@ cdef class mpf_base(mpnumber): """ Support exponent extraction of derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: X().exp @@ -1745,7 +1746,7 @@ cdef class mpf_base(mpnumber): """ Support bitcount extraction of derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: X().bc @@ -1758,7 +1759,7 @@ cdef class mpf_base(mpnumber): """ Support integer conversion for derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: int(X()) @@ -1770,7 +1771,7 @@ cdef class mpf_base(mpnumber): """ Support float conversion for derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: float(X()) @@ -1782,7 +1783,7 @@ cdef class mpf_base(mpnumber): """ Support complex conversion for derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: complex(X()) @@ -1794,7 +1795,7 @@ cdef class mpf_base(mpnumber): """ Support conversion to a fixed-point integer for derived classes:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: from sage.libs.mpmath.ext_main import mpf_base sage: class X(mpf_base): _mpf_ = mpf(3.25)._mpf_ sage: X().to_fixed(30) @@ -1825,7 +1826,7 @@ cdef class mpf(mpf_base): TESTS:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf() mpf('0.0') sage: mpf(5) @@ -1858,7 +1859,7 @@ cdef class mpf(mpf_base): """ Support pickling:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: loads(dumps(mpf(0.5))) == mpf(0.5) True """ @@ -1869,7 +1870,7 @@ cdef class mpf(mpf_base): Return internal representation of ``self`` as a tuple of (sign bit, mantissa, exponent, bitcount):: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.mpf(-3)._mpf_ (1, 3, 0, 2) """ @@ -1879,7 +1880,7 @@ cdef class mpf(mpf_base): """ Set tuple value of ``self`` (warning: unsafe):: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: x = mp.mpf(-3) sage: x._mpf_ = (1, 3, -1, 2) sage: x @@ -1893,7 +1894,7 @@ cdef class mpf(mpf_base): """ Return whether the number is nonzero:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: bool(mpf(3.5)) True sage: bool(mpf(0.0)) @@ -1906,7 +1907,7 @@ cdef class mpf(mpf_base): Hash values are compatible with builtin Python floats when the precision is small enough:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: hash(mpf(2.5)) == hash(float(2.5)) True sage: hash(mpf('inf')) == hash(float(Infinity)) @@ -1919,7 +1920,7 @@ cdef class mpf(mpf_base): """ Real part, leaves ``self`` unchanged:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(2.5).real mpf('2.5') """ @@ -1930,7 +1931,7 @@ cdef class mpf(mpf_base): """ Imaginary part, equal to zero:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(2.5).imag mpf('0.0') """ @@ -1940,7 +1941,7 @@ cdef class mpf(mpf_base): """ Complex conjugate, leaves ``self`` unchanged:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(2.5).conjugate() mpf('2.5') """ @@ -1952,7 +1953,7 @@ cdef class mpf(mpf_base): Return the binary mantissa of ``self``. The result is a Sage integer:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(-500.5).man 1001 sage: type(_) @@ -1965,7 +1966,7 @@ cdef class mpf(mpf_base): """ Return the binary exponent of ``self``:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(1/64.).exp -6 """ @@ -1976,7 +1977,7 @@ cdef class mpf(mpf_base): """ Return the number of bits in the mantissa of ``self``:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(-256).bc 1 sage: mpf(-255).bc @@ -1988,7 +1989,7 @@ cdef class mpf(mpf_base): """ Convert to a fixed-point integer of the given precision:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(7.25).to_fixed(30) 7784628224 sage: ZZ(7.25 * 2**30) @@ -2005,7 +2006,7 @@ cdef class mpf(mpf_base): """ Convert to a Python integer (truncating if necessary):: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: int(mpf(2.5)) 2 sage: type(_) @@ -2018,7 +2019,7 @@ cdef class mpf(mpf_base): """ Convert to a double-precision Python float:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: float(mpf(2.5)) 2.5 sage: type(_) @@ -2030,7 +2031,7 @@ cdef class mpf(mpf_base): """ Support pickling:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: loads(dumps(mpf(3))) == mpf(3) True """ @@ -2040,7 +2041,7 @@ cdef class mpf(mpf_base): """ Support pickling:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: loads(dumps(mpf(3))) == mpf(3) True """ @@ -2050,7 +2051,7 @@ cdef class mpf(mpf_base): """ Create a new mpf:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: x = mpf() """ MPF_init(&self.value) @@ -2062,7 +2063,7 @@ cdef class mpf(mpf_base): """ Negate ``self``, rounded to the current working precision:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: -mpf(2) mpf('-2.0') """ @@ -2075,7 +2076,7 @@ cdef class mpf(mpf_base): """ Round the number to the current working precision:: - sage: from mpmath import mp, mpf + sage: from sage.libs.mpmath.all import mp, mpf sage: mp.prec = 200 sage: x = mpf(1) / 3 sage: x.man @@ -2096,7 +2097,7 @@ cdef class mpf(mpf_base): Compute the absolute value, rounded to the current working precision:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: abs(mpf(-2)) mpf('2.0') """ @@ -2110,7 +2111,7 @@ cdef class mpf(mpf_base): Compute the square root, rounded to the current working precision:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(2).sqrt() mpf('1.4142135623730951') """ @@ -2125,7 +2126,7 @@ cdef class mpf(mpf_base): """ Compare numbers:: - sage: from mpmath import mpf + sage: from sage.libs.mpmath.all import mpf sage: mpf(3) > 2 True sage: mpf(3) == 3 @@ -2151,7 +2152,7 @@ cdef class constant(mpf_base): Create a constant from a function computing an mpf tuple value:: - sage: from mpmath import mp, mpf + sage: from sage.libs.mpmath.all import mp, mpf sage: q = mp.constant(lambda prec, rnd: mpf(0.25)._mpf_, "quarter", "q") sage: q @@ -2167,7 +2168,7 @@ cdef class constant(mpf_base): Calling a constant is equivalent to rounding it. A custom precision and rounding direction can also be passed:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: print(pi(dps=5, rounding='d')) 3.1415901184082 sage: print(pi(dps=5, rounding='u')) @@ -2186,7 +2187,7 @@ cdef class constant(mpf_base): Return the tuple value of the constant as if rounded to an mpf at the present working precision:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: pi._mpf_ (0, 884279719003555, -48, 50) sage: 884279719003555 / 2.0**48 @@ -2201,7 +2202,7 @@ cdef class constant(mpf_base): Represent ``self`` as a string. With mp.pretty=False, the representation differs from that of an ordinary mpf:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp, pi sage: mp2 = mp.clone() sage: mp2.pretty = True sage: repr(mp2.pi) @@ -2218,7 +2219,7 @@ cdef class constant(mpf_base): """ Return whether the constant is nonzero:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: bool(pi) True """ @@ -2228,7 +2229,7 @@ cdef class constant(mpf_base): """ Negate the constant:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: -pi mpf('-3.1415926535897931') """ @@ -2238,7 +2239,7 @@ cdef class constant(mpf_base): """ Instantiate the constant as an mpf:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: +pi mpf('3.1415926535897931') """ @@ -2248,7 +2249,7 @@ cdef class constant(mpf_base): """ Compute the absolute value of the constant:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: abs(pi) mpf('3.1415926535897931') """ @@ -2258,7 +2259,7 @@ cdef class constant(mpf_base): """ Compute the square root of the constant:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: print(pi.sqrt()) 1.77245385090552 """ @@ -2269,7 +2270,7 @@ cdef class constant(mpf_base): """ Convert to a fixed-point integer:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: float(pi.to_fixed(10) / 2.0**10) 3.140625 """ @@ -2286,7 +2287,7 @@ cdef class constant(mpf_base): """ A constant hashes as if instantiated to a number:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: hash(pi) == hash(+pi) True """ @@ -2296,7 +2297,7 @@ cdef class constant(mpf_base): """ A constant hashes as if instantiated to a number:: - sage: from mpmath import pi + sage: from sage.libs.mpmath.all import pi sage: pi == pi True sage: pi > 3.14 @@ -2321,7 +2322,7 @@ cdef class mpc(mpnumber): """ Create a new mpc:: - sage: from mpmath import mpc + sage: from sage.libs.mpmath.all import mpc sage: mpc() == mpc(0,0) == mpc(1,0)-1 == 0 True """ @@ -2338,7 +2339,7 @@ cdef class mpc(mpnumber): """ Create a new mpc:: - sage: from mpmath import mpc + sage: from sage.libs.mpmath.all import mpc sage: x = mpc() """ MPF_init(&self.re) @@ -2352,7 +2353,7 @@ cdef class mpc(mpnumber): """ Support pickling:: - sage: from mpmath import mpc + sage: from sage.libs.mpmath.all import mpc sage: loads(dumps(mpc(1,3))) == mpc(1,3) True """ @@ -2362,7 +2363,7 @@ cdef class mpc(mpnumber): """ Support pickling:: - sage: from mpmath import mpc + sage: from sage.libs.mpmath.all import mpc sage: loads(dumps(mpc(1,3))) == mpc(1,3) True """ @@ -2372,7 +2373,7 @@ cdef class mpc(mpnumber): """ TESTS:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp2 = mp.clone() sage: mp2.pretty = True sage: repr(mp2.mpc(2,3)) @@ -2391,7 +2392,7 @@ cdef class mpc(mpnumber): """ TESTS:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: str(mp.mpc(2,3)) '(2.0 + 3.0j)' """ @@ -2401,7 +2402,7 @@ cdef class mpc(mpnumber): """ TESTS:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: bool(mp.mpc(0,1)) True sage: bool(mp.mpc(1,0)) @@ -2419,7 +2420,7 @@ cdef class mpc(mpnumber): """ TESTS:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: complex(mp.mpc(1,2)) == complex(1,2) True """ @@ -2429,7 +2430,7 @@ cdef class mpc(mpnumber): """ Return tuple value of ``self``:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.mpc(2,3)._mpc_ ((0, 1, 1, 1), (0, 3, 0, 2)) """ @@ -2439,7 +2440,7 @@ cdef class mpc(mpnumber): """ Set tuple value of ``self`` (warning: unsafe):: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: x = mp.mpc(2,3) sage: x._mpc_ = (x._mpc_[1], x._mpc_[0]) sage: x @@ -2455,7 +2456,7 @@ cdef class mpc(mpnumber): """ Return the real part of ``self`` as an mpf:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.mpc(1,2).real mpf('1.0') """ @@ -2468,7 +2469,7 @@ cdef class mpc(mpnumber): """ Return the imaginary part of ``self`` as an mpf:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.mpc(1,2).imag mpf('2.0') """ @@ -2482,7 +2483,7 @@ cdef class mpc(mpnumber): EXAMPLES:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: hash(mp.mpc(2,3)) == hash(complex(2,3)) True @@ -2490,7 +2491,7 @@ cdef class mpc(mpnumber): Check that :issue:`31676` is fixed:: - sage: from mpmath import mpc + sage: from sage.libs.mpmath.all import mpc sage: hash(mpc(1, -1)) == hash(mpc(-1, -1)) # should not return OverflowError: Python int too large to convert to C ssize_t False """ @@ -2500,7 +2501,7 @@ cdef class mpc(mpnumber): """ Negate the number:: - sage: from mpmath import mpc + sage: from sage.libs.mpmath.all import mpc sage: -mpc(1,2) mpc(real='-1.0', imag='-2.0') """ @@ -2515,7 +2516,7 @@ cdef class mpc(mpnumber): """ Return the complex conjugate:: - sage: from mpmath import mpc + sage: from sage.libs.mpmath.all import mpc sage: mpc(1,2).conjugate() mpc(real='1.0', imag='-2.0') """ @@ -2530,7 +2531,7 @@ cdef class mpc(mpnumber): """ Round the number to the current working precision:: - sage: from mpmath import mp + sage: from sage.libs.mpmath.all import mp sage: mp.prec = 200 sage: x = mp.mpc(1) / 3 sage: x.real.man @@ -2552,7 +2553,7 @@ cdef class mpc(mpnumber): """ Return the absolute value of ``self``:: - sage: from mpmath import mpc + sage: from sage.libs.mpmath.all import mpc sage: abs(mpc(3,4)) mpf('5.0') """ @@ -2564,7 +2565,7 @@ cdef class mpc(mpnumber): """ Complex numbers can be compared for equality:: - sage: from mpmath import mpc + sage: from sage.libs.mpmath.all import mpc sage: mpc(2,3) == complex(2,3) True sage: mpc(-2,3) == complex(2,3) @@ -2583,7 +2584,7 @@ def hypsum_internal(int p, int q, param_types, str ztype, coeffs, z, EXAMPLES:: - sage: from mpmath import mp # indirect doctest + sage: from sage.libs.mpmath.all import mp # indirect doctest sage: mp.dps = 15 sage: print(mp.hyp1f1(1,2,3)) 6.36184564106256 diff --git a/src/sage/libs/mpmath/hooks.py b/src/sage/libs/mpmath/hooks.py new file mode 100644 index 00000000000..df9ff64c82b --- /dev/null +++ b/src/sage/libs/mpmath/hooks.py @@ -0,0 +1,13 @@ +# sage_setup: distribution = sagemath-mpmath +r""" +Sage functions called by the vendored copy of mpmath + +Upstream mpmath imports these functions from :mod:`sage.all`. + +Our vendored copy of mpmath, :mod:`sage.libs.mpmath._vendor.mpmath`, +imports them from this module instead, see +``SAGE_ROOT/pkgs/sagemath-mpmath/pyproject.toml``. +""" +from sage.arith.misc import factorial, primes +from sage.combinat.combinat import fibonacci +from sage.rings.integer import Integer diff --git a/src/sage/libs/mpmath/utils.pxd b/src/sage/libs/mpmath/sage_utils.pxd similarity index 60% rename from src/sage/libs/mpmath/utils.pxd rename to src/sage/libs/mpmath/sage_utils.pxd index 686b108da9a..e88bfd58f38 100644 --- a/src/sage/libs/mpmath/utils.pxd +++ b/src/sage/libs/mpmath/sage_utils.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-mpmath from sage.libs.mpfr.types cimport mpfr_t cdef mpfr_to_mpfval(mpfr_t) diff --git a/src/sage/libs/mpmath/sage_utils.pyx b/src/sage/libs/mpmath/sage_utils.pyx new file mode 100644 index 00000000000..a681d3f89df --- /dev/null +++ b/src/sage/libs/mpmath/sage_utils.pyx @@ -0,0 +1,310 @@ +# sage_setup: distribution = sagemath-mpmath +r""" +Utility functions called by the Sage library +""" + +from sage.ext.stdsage cimport PY_NEW +from sage.libs.mpfr cimport * +from sage.libs.gmp.all cimport * +from sage.libs.mpmath._vendor.mpmath import mp +from sage.libs.mpmath._vendor.mpmath.libmp import finf, fnan, fninf, fzero +from sage.rings.complex_mpfr cimport ComplexNumber +from sage.rings.complex_mpfr import ComplexField +from sage.rings.integer cimport Integer +from sage.rings.real_mpfr cimport RealField, RealNumber +from sage.structure.element cimport Element + + +cdef mpfr_from_mpfval(mpfr_t res, tuple x): + """ + Set value of an MPFR number (in place) to that of a given mpmath mpf + data tuple. + """ + cdef int sign + cdef Integer man + cdef long exp + cdef long bc + sign, man, exp, bc = x + if man: + mpfr_set_z(res, man.value, MPFR_RNDZ) + if sign: + mpfr_neg(res, res, MPFR_RNDZ) + mpfr_mul_2si(res, res, exp, MPFR_RNDZ) + return + if exp == 0: + mpfr_set_ui(res, 0, MPFR_RNDZ) + elif x == finf: + mpfr_set_inf(res, 1) + elif x == fninf: + mpfr_set_inf(res, -1) + else: + mpfr_set_nan(res) + + +cdef mpfr_to_mpfval(mpfr_t value): + """ + Given an MPFR value, return an mpmath mpf data tuple representing + the same number. + """ + if mpfr_nan_p(value): + return fnan + if mpfr_inf_p(value): + if mpfr_sgn(value) > 0: + return finf + else: + return fninf + if mpfr_sgn(value) == 0: + return fzero + sign = 0 + cdef Integer man = PY_NEW(Integer) + exp = mpfr_get_z_exp(man.value, value) + if mpz_sgn(man.value) < 0: + mpz_neg(man.value, man.value) + sign = 1 + cdef unsigned long trailing + trailing = mpz_scan1(man.value, 0) + if trailing: + mpz_tdiv_q_2exp(man.value, man.value, trailing) + exp += trailing + bc = mpz_sizeinbase(man.value, 2) + return (sign, man, int(exp), bc) + + +def mpmath_to_sage(x, prec): + """ + Convert any mpmath number (mpf or mpc) to a Sage RealNumber or + ComplexNumber of the given precision. + + EXAMPLES:: + + sage: import sage.libs.mpmath.all as a + sage: a.mpmath_to_sage(a.mpf('2.5'), 53) + 2.50000000000000 + sage: a.mpmath_to_sage(a.mpc('2.5','-3.5'), 53) + 2.50000000000000 - 3.50000000000000*I + sage: a.mpmath_to_sage(a.mpf('inf'), 53) + +infinity + sage: a.mpmath_to_sage(a.mpf('-inf'), 53) + -infinity + sage: a.mpmath_to_sage(a.mpf('nan'), 53) + NaN + sage: a.mpmath_to_sage(a.mpf('0'), 53) + 0.000000000000000 + + A real example:: + + sage: RealField(100)(pi) # needs sage.symbolic + 3.1415926535897932384626433833 + sage: t = RealField(100)(pi)._mpmath_(); t # needs sage.symbolic + mpf('3.1415926535897932') + sage: a.mpmath_to_sage(t, 100) # needs sage.symbolic + 3.1415926535897932384626433833 + + We can ask for more precision, but the result is undefined:: + + sage: a.mpmath_to_sage(t, 140) # random # needs sage.symbolic + 3.1415926535897932384626433832793333156440 + sage: ComplexField(140)(pi) # needs sage.symbolic + 3.1415926535897932384626433832795028841972 + + A complex example:: + + sage: ComplexField(100)([0, pi]) # needs sage.symbolic + 3.1415926535897932384626433833*I + sage: t = ComplexField(100)([0, pi])._mpmath_(); t # needs sage.symbolic + mpc(real='0.0', imag='3.1415926535897932') + sage: sage.libs.mpmath.all.mpmath_to_sage(t, 100) # needs sage.symbolic + 3.1415926535897932384626433833*I + + Again, we can ask for more precision, but the result is undefined:: + + sage: sage.libs.mpmath.all.mpmath_to_sage(t, 140) # random # needs sage.symbolic + 3.1415926535897932384626433832793333156440*I + sage: ComplexField(140)([0, pi]) # needs sage.symbolic + 3.1415926535897932384626433832795028841972*I + """ + cdef RealNumber y + cdef ComplexNumber z + if hasattr(x, "_mpf_"): + y = RealField(prec)() + mpfr_from_mpfval(y.value, x._mpf_) + return y + elif hasattr(x, "_mpc_"): + z = ComplexField(prec)(0) + re, im = x._mpc_ + mpfr_from_mpfval(z.__re, re) + mpfr_from_mpfval(z.__im, im) + return z + else: + raise TypeError("cannot convert %r to Sage", x) + + +def sage_to_mpmath(x, prec): + """ + Convert any Sage number that can be coerced into a RealNumber + or ComplexNumber of the given precision into an mpmath mpf or mpc. + Integers are currently converted to int. + + Lists, tuples and dicts passed as input are converted + recursively. + + EXAMPLES:: + + sage: import sage.libs.mpmath.all as a + sage: a.mp.dps = 15 + sage: print(a.sage_to_mpmath(2/3, 53)) + 0.666666666666667 + sage: print(a.sage_to_mpmath(2./3, 53)) + 0.666666666666667 + sage: print(a.sage_to_mpmath(3+4*I, 53)) # needs sage.symbolic + (3.0 + 4.0j) + sage: print(a.sage_to_mpmath(1+pi, 53)) # needs sage.symbolic + 4.14159265358979 + sage: a.sage_to_mpmath(infinity, 53) + mpf('+inf') + sage: a.sage_to_mpmath(-infinity, 53) + mpf('-inf') + sage: a.sage_to_mpmath(NaN, 53) # needs sage.symbolic + mpf('nan') + sage: a.sage_to_mpmath(0, 53) + 0 + sage: a.sage_to_mpmath([0.5, 1.5], 53) + [mpf('0.5'), mpf('1.5')] + sage: a.sage_to_mpmath((0.5, 1.5), 53) + (mpf('0.5'), mpf('1.5')) + sage: a.sage_to_mpmath({'n':0.5}, 53) + {'n': mpf('0.5')} + + """ + cdef RealNumber y + if isinstance(x, Element): + if isinstance(x, Integer): + return int(x) + try: + if isinstance(x, RealNumber): + return x._mpmath_() + else: + x = RealField(prec)(x) + return x._mpmath_() + except TypeError: + if isinstance(x, ComplexNumber): + return x._mpmath_() + else: + x = ComplexField(prec)(x) + return x._mpmath_() + if isinstance(x, (tuple, list)): + return type(x)([sage_to_mpmath(v, prec) for v in x]) + if isinstance(x, dict): + return dict([(k, sage_to_mpmath(v, prec)) for (k, v) in x.items()]) + return x + + +def call(func, *args, **kwargs): + """ + Call an mpmath function with Sage objects as inputs and + convert the result back to a Sage real or complex number. + + By default, a RealNumber or ComplexNumber with the current + working precision of mpmath (mpmath.mp.prec) will be returned. + + If prec=n is passed among the keyword arguments, the temporary + working precision will be set to n and the result will also + have this precision. + + If parent=P is passed, P.prec() will be used as working + precision and the result will be coerced to P (or the + corresponding complex field if necessary). + + Arguments should be Sage objects that can be coerced into RealField + or ComplexField elements. Arguments may also be tuples, lists or + dicts (which are converted recursively), or any type that mpmath + understands natively (e.g. Python floats, strings for options). + + EXAMPLES:: + + sage: import sage.libs.mpmath.all as a + sage: a.mp.prec = 53 + sage: a.call(a.erf, 3+4*I) # needs sage.symbolic + -120.186991395079 - 27.7503372936239*I + sage: a.call(a.polylog, 2, 1/3+4/5*I) # needs sage.symbolic + 0.153548951541433 + 0.875114412499637*I + sage: a.call(a.barnesg, 3+4*I) # needs sage.symbolic + -0.000676375932234244 - 0.0000442236140124728*I + sage: a.call(a.barnesg, -4) + 0.000000000000000 + sage: a.call(a.hyper, [2,3], [4,5], 1/3) + 1.10703578162508 + sage: a.call(a.hyper, [2,3], [4,(2,3)], 1/3) + 1.95762943509305 + sage: a.call(a.quad, a.erf, [0,1]) + 0.486064958112256 + sage: a.call(a.gammainc, 3+4*I, 2/3, 1-pi*I, prec=100) # needs sage.symbolic + -274.18871130777160922270612331 + 101.59521032382593402947725236*I + sage: x = (3+4*I).n(100) # needs sage.symbolic + sage: y = (2/3).n(100) # needs sage.symbolic + sage: z = (1-pi*I).n(100) # needs sage.symbolic + sage: a.call(a.gammainc, x, y, z, prec=100) # needs sage.symbolic + -274.18871130777160922270612331 + 101.59521032382593402947725236*I + sage: a.call(a.erf, infinity) + 1.00000000000000 + sage: a.call(a.erf, -infinity) + -1.00000000000000 + sage: a.call(a.gamma, infinity) + +infinity + sage: a.call(a.polylog, 2, 1/2, parent=RR) + 0.582240526465012 + sage: a.call(a.polylog, 2, 2, parent=RR) + 2.46740110027234 - 2.17758609030360*I + sage: a.call(a.polylog, 2, 1/2, parent=RealField(100)) + 0.58224052646501250590265632016 + sage: a.call(a.polylog, 2, 2, parent=RealField(100)) + 2.4674011002723396547086227500 - 2.1775860903036021305006888982*I + sage: a.call(a.polylog, 2, 1/2, parent=CC) + 0.582240526465012 + sage: type(_) + + sage: a.call(a.polylog, 2, 1/2, parent=RDF) + 0.5822405264650125 + sage: type(_) + + + Check that :issue:`11885` is fixed:: + + sage: a.call(a.ei, 1.0r, parent=float) + 1.8951178163559366 + + Check that :issue:`14984` is fixed:: + + sage: a.call(a.log, -1.0r, parent=float) + 3.141592653589793j + + """ + orig = mp.prec + prec = kwargs.pop('prec', orig) + parent = kwargs.pop('parent', None) + if parent is not None: + try: + prec = parent.prec() + except AttributeError: + pass + prec2 = prec + 20 + args = sage_to_mpmath(args, prec2) + kwargs = sage_to_mpmath(kwargs, prec2) + try: + mp.prec = prec + y = func(*args, **kwargs) + finally: + mp.prec = orig + y = mpmath_to_sage(y, prec) + if parent is None: + return y + try: + return parent(y) + except TypeError as error: + try: + return parent.complex_field()(y) + except AttributeError: + if parent is float: + return complex(y) + else: + raise TypeError(error) diff --git a/src/sage/libs/mpmath/utils.pyx b/src/sage/libs/mpmath/utils.pyx index 0123d4190be..a732befda16 100644 --- a/src/sage/libs/mpmath/utils.pyx +++ b/src/sage/libs/mpmath/utils.pyx @@ -1,28 +1,28 @@ +# sage_setup: distribution = sagemath-mpmath """ -Utilities for Sage-mpmath interaction +Utility functions called by mpmath -Also patches some mpmath functions for speed +Upstream mpmath uses these functions when it detects Sage. + +Our vendored copy of mpmath, :mod:`sage.libs.mpmath._vendor.mpmath`, +uses these functions unconditionally, +see ``SAGE_ROOT/pkgs/sagemath-mpmath/pyproject.toml``. """ from sage.ext.stdsage cimport PY_NEW from sage.rings.integer cimport Integer -from sage.rings.real_mpfr cimport RealNumber -from sage.rings.complex_mpfr cimport ComplexNumber -from sage.structure.element cimport Element from sage.libs.mpfr cimport * from sage.libs.gmp.all cimport * -from sage.rings.real_mpfr cimport RealField - cpdef int bitcount(n) noexcept: """ Bitcount of a Sage Integer or Python int/long. EXAMPLES:: - sage: from mpmath.libmp import bitcount + sage: from sage.libs.mpmath._vendor.mpmath.libmp import bitcount sage: bitcount(0) 0 sage: bitcount(1) @@ -52,7 +52,7 @@ cpdef isqrt(n): EXAMPLES:: - sage: from mpmath.libmp import isqrt + sage: from sage.libs.mpmath._vendor.mpmath.libmp import isqrt sage: isqrt(0) 0 sage: isqrt(100) @@ -84,7 +84,7 @@ cpdef from_man_exp(man, exp, long prec = 0, str rnd = 'd'): EXAMPLES:: - sage: from mpmath.libmp import from_man_exp + sage: from sage.libs.mpmath._vendor.mpmath.libmp import from_man_exp sage: from_man_exp(-6, -1) (1, 3, 0, 2) sage: from_man_exp(-6, -1, 1, 'd') @@ -110,7 +110,7 @@ cpdef normalize(long sign, Integer man, exp, long bc, long prec, str rnd): EXAMPLES:: - sage: from mpmath.libmp import normalize + sage: from sage.libs.mpmath._vendor.mpmath.libmp import normalize sage: normalize(0, 4, 5, 3, 53, 'n') (0, 1, 7, 1) """ @@ -118,7 +118,7 @@ cpdef normalize(long sign, Integer man, exp, long bc, long prec, str rnd): cdef Integer res cdef unsigned long trail if mpz_sgn(man.value) == 0: - from mpmath.libmp import fzero + from sage.libs.mpmath._vendor.mpmath.libmp import fzero return fzero if bc <= prec and mpz_odd_p(man.value): return (sign, man, exp, bc) @@ -151,301 +151,3 @@ cpdef normalize(long sign, Integer man, exp, long bc, long prec, str rnd): exp += trail bc = mpz_sizeinbase(res.value, 2) return (sign, res, int(exp), bc) - -cdef mpfr_from_mpfval(mpfr_t res, tuple x): - """ - Set value of an MPFR number (in place) to that of a given mpmath mpf - data tuple. - """ - cdef int sign - cdef Integer man - cdef long exp - cdef long bc - sign, man, exp, bc = x - if man: - mpfr_set_z(res, man.value, MPFR_RNDZ) - if sign: - mpfr_neg(res, res, MPFR_RNDZ) - mpfr_mul_2si(res, res, exp, MPFR_RNDZ) - return - from mpmath.libmp import finf, fninf - if exp == 0: - mpfr_set_ui(res, 0, MPFR_RNDZ) - elif x == finf: - mpfr_set_inf(res, 1) - elif x == fninf: - mpfr_set_inf(res, -1) - else: - mpfr_set_nan(res) - -cdef mpfr_to_mpfval(mpfr_t value): - """ - Given an MPFR value, return an mpmath mpf data tuple representing - the same number. - """ - if mpfr_nan_p(value): - from mpmath.libmp import fnan - return fnan - if mpfr_inf_p(value): - from mpmath.libmp import finf, fninf - if mpfr_sgn(value) > 0: - return finf - else: - return fninf - if mpfr_sgn(value) == 0: - from mpmath.libmp import fzero - return fzero - sign = 0 - cdef Integer man = PY_NEW(Integer) - exp = mpfr_get_z_exp(man.value, value) - if mpz_sgn(man.value) < 0: - mpz_neg(man.value, man.value) - sign = 1 - cdef unsigned long trailing - trailing = mpz_scan1(man.value, 0) - if trailing: - mpz_tdiv_q_2exp(man.value, man.value, trailing) - exp += trailing - bc = mpz_sizeinbase(man.value, 2) - return (sign, man, int(exp), bc) - - -def mpmath_to_sage(x, prec): - """ - Convert any mpmath number (mpf or mpc) to a Sage RealNumber or - ComplexNumber of the given precision. - - EXAMPLES:: - - sage: import sage.libs.mpmath.all as a - sage: a.mpmath_to_sage(a.mpf('2.5'), 53) - 2.50000000000000 - sage: a.mpmath_to_sage(a.mpc('2.5','-3.5'), 53) - 2.50000000000000 - 3.50000000000000*I - sage: a.mpmath_to_sage(a.mpf('inf'), 53) - +infinity - sage: a.mpmath_to_sage(a.mpf('-inf'), 53) - -infinity - sage: a.mpmath_to_sage(a.mpf('nan'), 53) - NaN - sage: a.mpmath_to_sage(a.mpf('0'), 53) - 0.000000000000000 - - A real example:: - - sage: RealField(100)(pi) - 3.1415926535897932384626433833 - sage: t = RealField(100)(pi)._mpmath_(); t - mpf('3.1415926535897932') - sage: a.mpmath_to_sage(t, 100) - 3.1415926535897932384626433833 - - We can ask for more precision, but the result is undefined:: - - sage: a.mpmath_to_sage(t, 140) # random - 3.1415926535897932384626433832793333156440 - sage: ComplexField(140)(pi) - 3.1415926535897932384626433832795028841972 - - A complex example:: - - sage: ComplexField(100)([0, pi]) - 3.1415926535897932384626433833*I - sage: t = ComplexField(100)([0, pi])._mpmath_(); t - mpc(real='0.0', imag='3.1415926535897932') - sage: sage.libs.mpmath.all.mpmath_to_sage(t, 100) - 3.1415926535897932384626433833*I - - Again, we can ask for more precision, but the result is undefined:: - - sage: sage.libs.mpmath.all.mpmath_to_sage(t, 140) # random - 3.1415926535897932384626433832793333156440*I - sage: ComplexField(140)([0, pi]) - 3.1415926535897932384626433832795028841972*I - """ - cdef RealNumber y - cdef ComplexNumber z - if hasattr(x, "_mpf_"): - y = RealField(prec)() - mpfr_from_mpfval(y.value, x._mpf_) - return y - elif hasattr(x, "_mpc_"): - from sage.rings.complex_mpfr import ComplexField - z = ComplexField(prec)(0) - re, im = x._mpc_ - mpfr_from_mpfval(z.__re, re) - mpfr_from_mpfval(z.__im, im) - return z - else: - raise TypeError("cannot convert %r to Sage", x) - - -def sage_to_mpmath(x, prec): - """ - Convert any Sage number that can be coerced into a RealNumber - or ComplexNumber of the given precision into an mpmath mpf or mpc. - Integers are currently converted to int. - - Lists, tuples and dicts passed as input are converted - recursively. - - EXAMPLES:: - - sage: import sage.libs.mpmath.all as a - sage: a.mp.dps = 15 - sage: print(a.sage_to_mpmath(2/3, 53)) - 0.666666666666667 - sage: print(a.sage_to_mpmath(2./3, 53)) - 0.666666666666667 - sage: print(a.sage_to_mpmath(3+4*I, 53)) - (3.0 + 4.0j) - sage: print(a.sage_to_mpmath(1+pi, 53)) - 4.14159265358979 - sage: a.sage_to_mpmath(infinity, 53) - mpf('+inf') - sage: a.sage_to_mpmath(-infinity, 53) - mpf('-inf') - sage: a.sage_to_mpmath(NaN, 53) - mpf('nan') - sage: a.sage_to_mpmath(0, 53) - 0 - sage: a.sage_to_mpmath([0.5, 1.5], 53) - [mpf('0.5'), mpf('1.5')] - sage: a.sage_to_mpmath((0.5, 1.5), 53) - (mpf('0.5'), mpf('1.5')) - sage: a.sage_to_mpmath({'n':0.5}, 53) - {'n': mpf('0.5')} - """ - cdef RealNumber y - if isinstance(x, Element): - if isinstance(x, Integer): - return int(x) - try: - if isinstance(x, RealNumber): - return x._mpmath_() - else: - x = RealField(prec)(x) - return x._mpmath_() - except TypeError: - if isinstance(x, ComplexNumber): - return x._mpmath_() - else: - from sage.rings.complex_mpfr import ComplexField - x = ComplexField(prec)(x) - return x._mpmath_() - if isinstance(x, (tuple, list)): - return type(x)([sage_to_mpmath(v, prec) for v in x]) - if isinstance(x, dict): - return dict([(k, sage_to_mpmath(v, prec)) for (k, v) in x.items()]) - return x - - -def call(func, *args, **kwargs): - """ - Call an mpmath function with Sage objects as inputs and - convert the result back to a Sage real or complex number. - - By default, a RealNumber or ComplexNumber with the current - working precision of mpmath (mpmath.mp.prec) will be returned. - - If prec=n is passed among the keyword arguments, the temporary - working precision will be set to n and the result will also - have this precision. - - If parent=P is passed, P.prec() will be used as working - precision and the result will be coerced to P (or the - corresponding complex field if necessary). - - Arguments should be Sage objects that can be coerced into RealField - or ComplexField elements. Arguments may also be tuples, lists or - dicts (which are converted recursively), or any type that mpmath - understands natively (e.g. Python floats, strings for options). - - EXAMPLES:: - - sage: import sage.libs.mpmath.all as a - sage: a.mp.prec = 53 - sage: a.call(a.erf, 3+4*I) - -120.186991395079 - 27.7503372936239*I - sage: a.call(a.polylog, 2, 1/3+4/5*I) - 0.153548951541433 + 0.875114412499637*I - sage: a.call(a.barnesg, 3+4*I) - -0.000676375932234244 - 0.0000442236140124728*I - sage: a.call(a.barnesg, -4) - 0.000000000000000 - sage: a.call(a.hyper, [2,3], [4,5], 1/3) - 1.10703578162508 - sage: a.call(a.hyper, [2,3], [4,(2,3)], 1/3) - 1.95762943509305 - sage: a.call(a.quad, a.erf, [0,1]) - 0.486064958112256 - sage: a.call(a.gammainc, 3+4*I, 2/3, 1-pi*I, prec=100) - -274.18871130777160922270612331 + 101.59521032382593402947725236*I - sage: x = (3+4*I).n(100) - sage: y = (2/3).n(100) - sage: z = (1-pi*I).n(100) - sage: a.call(a.gammainc, x, y, z, prec=100) - -274.18871130777160922270612331 + 101.59521032382593402947725236*I - sage: a.call(a.erf, infinity) - 1.00000000000000 - sage: a.call(a.erf, -infinity) - -1.00000000000000 - sage: a.call(a.gamma, infinity) - +infinity - sage: a.call(a.polylog, 2, 1/2, parent=RR) - 0.582240526465012 - sage: a.call(a.polylog, 2, 2, parent=RR) - 2.46740110027234 - 2.17758609030360*I - sage: a.call(a.polylog, 2, 1/2, parent=RealField(100)) - 0.58224052646501250590265632016 - sage: a.call(a.polylog, 2, 2, parent=RealField(100)) - 2.4674011002723396547086227500 - 2.1775860903036021305006888982*I - sage: a.call(a.polylog, 2, 1/2, parent=CC) - 0.582240526465012 - sage: type(_) - - sage: a.call(a.polylog, 2, 1/2, parent=RDF) - 0.5822405264650125 - sage: type(_) - - - Check that :issue:`11885` is fixed:: - - sage: a.call(a.ei, 1.0r, parent=float) - 1.8951178163559366 - - Check that :issue:`14984` is fixed:: - - sage: a.call(a.log, -1.0r, parent=float) - 3.141592653589793j - """ - from mpmath import mp - orig = mp.prec - prec = kwargs.pop('prec', orig) - parent = kwargs.pop('parent', None) - if parent is not None: - try: - prec = parent.prec() - except AttributeError: - pass - prec2 = prec + 20 - args = sage_to_mpmath(args, prec2) - kwargs = sage_to_mpmath(kwargs, prec2) - try: - mp.prec = prec - y = func(*args, **kwargs) - finally: - mp.prec = orig - y = mpmath_to_sage(y, prec) - if parent is None: - return y - try: - return parent(y) - except TypeError as error: - try: - return parent.complex_field()(y) - except AttributeError: - if parent is float: - return complex(y) - else: - raise TypeError(error) diff --git a/src/sage/libs/ntl/GF2.pxd b/src/sage/libs/ntl/GF2.pxd index 5be7f496766..1d5d9ea49d7 100644 --- a/src/sage/libs/ntl/GF2.pxd +++ b/src/sage/libs/ntl/GF2.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2_c diff --git a/src/sage/libs/ntl/GF2E.pxd b/src/sage/libs/ntl/GF2E.pxd index 5a72efec6a4..901df87a4ef 100644 --- a/src/sage/libs/ntl/GF2E.pxd +++ b/src/sage/libs/ntl/GF2E.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2E_c, GF2X_c, GF2_c, GF2XModulus_c, ZZ_c diff --git a/src/sage/libs/ntl/GF2EX.pxd b/src/sage/libs/ntl/GF2EX.pxd index 4a0df45c9f1..4648aaa7429 100644 --- a/src/sage/libs/ntl/GF2EX.pxd +++ b/src/sage/libs/ntl/GF2EX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2EX_c diff --git a/src/sage/libs/ntl/GF2X.pxd b/src/sage/libs/ntl/GF2X.pxd index 2d3b5edafad..4443b3cefd4 100644 --- a/src/sage/libs/ntl/GF2X.pxd +++ b/src/sage/libs/ntl/GF2X.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2X_c, GF2_c, GF2XModulus_c, vec_GF2_c, ZZ_c diff --git a/src/sage/libs/ntl/ZZ.pxd b/src/sage/libs/ntl/ZZ.pxd index fc8901fc31a..faf139e6848 100644 --- a/src/sage/libs/ntl/ZZ.pxd +++ b/src/sage/libs/ntl/ZZ.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h from sage.libs.ntl.types cimport ZZ_c diff --git a/src/sage/libs/ntl/ZZX.pxd b/src/sage/libs/ntl/ZZX.pxd index bc2780e3a83..e5511934cca 100644 --- a/src/sage/libs/ntl/ZZX.pxd +++ b/src/sage/libs/ntl/ZZX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h from sage.libs.gmp.types cimport mpz_t diff --git a/src/sage/libs/ntl/ZZ_p.pxd b/src/sage/libs/ntl/ZZ_p.pxd index 1d7d95e4007..0611bc4e1b6 100644 --- a/src/sage/libs/ntl/ZZ_p.pxd +++ b/src/sage/libs/ntl/ZZ_p.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h from sage.libs.ntl.types cimport ZZ_c, ZZ_p_c diff --git a/src/sage/libs/ntl/ZZ_pE.pxd b/src/sage/libs/ntl/ZZ_pE.pxd index bdfb04cb783..f8842659911 100644 --- a/src/sage/libs/ntl/ZZ_pE.pxd +++ b/src/sage/libs/ntl/ZZ_pE.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h from sage.libs.ntl.types cimport ZZ_c, ZZ_p_c, ZZ_pX_c, ZZ_pE_c diff --git a/src/sage/libs/ntl/ZZ_pEX.pxd b/src/sage/libs/ntl/ZZ_pEX.pxd index df3a38602ff..776824a4034 100644 --- a/src/sage/libs/ntl/ZZ_pEX.pxd +++ b/src/sage/libs/ntl/ZZ_pEX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h from sage.libs.ntl.types cimport (ZZ_c, ZZ_p_c, ZZ_pContext_c, ZZ_pE_c, vec_ZZ_p_c, diff --git a/src/sage/libs/ntl/ZZ_pX.pxd b/src/sage/libs/ntl/ZZ_pX.pxd index 8c9f609f1cd..d54625fcebf 100644 --- a/src/sage/libs/ntl/ZZ_pX.pxd +++ b/src/sage/libs/ntl/ZZ_pX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h from sage.libs.ntl.types cimport (ZZ_c, ZZX_c, ZZ_p_c, vec_ZZ_p_c, ZZ_pContext_c, diff --git a/src/sage/libs/ntl/__init__.py b/src/sage/libs/ntl/__init__.py index 0ab0a2c43e7..8d4d84e21b8 100644 --- a/src/sage/libs/ntl/__init__.py +++ b/src/sage/libs/ntl/__init__.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-ntl + from sage.libs.ntl.error import setup_NTL_error_callback setup_NTL_error_callback() diff --git a/src/sage/libs/ntl/all.py b/src/sage/libs/ntl/all.py index 752ddf03899..ade13735e1f 100644 --- a/src/sage/libs/ntl/all.py +++ b/src/sage/libs/ntl/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl r""" Victor Shoup's NTL C++ Library diff --git a/src/sage/libs/ntl/conversion.pxd b/src/sage/libs/ntl/conversion.pxd index 8988399d2b2..71ef823c351 100644 --- a/src/sage/libs/ntl/conversion.pxd +++ b/src/sage/libs/ntl/conversion.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl r""" Inline conversions between NTL and Sage diff --git a/src/sage/libs/ntl/convert.pxd b/src/sage/libs/ntl/convert.pxd index 58420abb94c..42d2f01dc1b 100644 --- a/src/sage/libs/ntl/convert.pxd +++ b/src/sage/libs/ntl/convert.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZ_c from sage.libs.gmp.types cimport mpz_t, mpz_srcptr diff --git a/src/sage/libs/ntl/convert.pyx b/src/sage/libs/ntl/convert.pyx index e3ccfce819d..36ff0ef5339 100644 --- a/src/sage/libs/ntl/convert.pyx +++ b/src/sage/libs/ntl/convert.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h # distutils: libraries = NTL_LIBRARIES gmp # distutils: extra_compile_args = NTL_CFLAGS diff --git a/src/sage/libs/ntl/decl.pxi b/src/sage/libs/ntl/decl.pxi index ae4eb5500f5..79b9592d199 100644 --- a/src/sage/libs/ntl/decl.pxi +++ b/src/sage/libs/ntl/decl.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport * from sage.libs.ntl.ZZ cimport * from sage.libs.ntl.ZZ_pX cimport * diff --git a/src/sage/libs/ntl/error.pyx b/src/sage/libs/ntl/error.pyx index 325995f0706..2f8cf35da31 100644 --- a/src/sage/libs/ntl/error.pyx +++ b/src/sage/libs/ntl/error.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = ntl gmp # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/lzz_p.pxd b/src/sage/libs/ntl/lzz_p.pxd index 14d81bc8ab0..3d30b2f38c4 100644 --- a/src/sage/libs/ntl/lzz_p.pxd +++ b/src/sage/libs/ntl/lzz_p.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h from sage.libs.ntl.types cimport zz_p_c diff --git a/src/sage/libs/ntl/lzz_pX.pxd b/src/sage/libs/ntl/lzz_pX.pxd index 72905fd1d54..e747309ceb9 100644 --- a/src/sage/libs/ntl/lzz_pX.pxd +++ b/src/sage/libs/ntl/lzz_pX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h from sage.libs.ntl.types cimport ZZ_c, zz_p_c, zz_pX_c, zz_pX_Modulus_c diff --git a/src/sage/libs/ntl/mat_GF2.pxd b/src/sage/libs/ntl/mat_GF2.pxd index db535d800fc..0405a90c646 100644 --- a/src/sage/libs/ntl/mat_GF2.pxd +++ b/src/sage/libs/ntl/mat_GF2.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport mat_GF2_c, vec_GF2_c, GF2_c diff --git a/src/sage/libs/ntl/mat_GF2E.pxd b/src/sage/libs/ntl/mat_GF2E.pxd index e6c3b5fc622..c6d2c615dbd 100644 --- a/src/sage/libs/ntl/mat_GF2E.pxd +++ b/src/sage/libs/ntl/mat_GF2E.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport mat_GF2E_c, vec_GF2E_c, GF2E_c diff --git a/src/sage/libs/ntl/mat_ZZ.pxd b/src/sage/libs/ntl/mat_ZZ.pxd index a676c90fb1b..a33fc2b1a1a 100644 --- a/src/sage/libs/ntl/mat_ZZ.pxd +++ b/src/sage/libs/ntl/mat_ZZ.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport mat_ZZ_c, ZZ_c, ZZX_c diff --git a/src/sage/libs/ntl/misc.pxi b/src/sage/libs/ntl/misc.pxi index 1724dccf1ea..8571d6f6289 100644 --- a/src/sage/libs/ntl/misc.pxi +++ b/src/sage/libs/ntl/misc.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h from cysignals.memory cimport sig_free diff --git a/src/sage/libs/ntl/ntl_GF2.pxd b/src/sage/libs/ntl/ntl_GF2.pxd index 2be873c950c..1f388a00ff0 100644 --- a/src/sage/libs/ntl/ntl_GF2.pxd +++ b/src/sage/libs/ntl/ntl_GF2.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2_c cdef class ntl_GF2(): diff --git a/src/sage/libs/ntl/ntl_GF2.pyx b/src/sage/libs/ntl/ntl_GF2.pyx index ab45f95dae3..42fe4b143d2 100644 --- a/src/sage/libs/ntl/ntl_GF2.pyx +++ b/src/sage/libs/ntl/ntl_GF2.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_GF2E.pxd b/src/sage/libs/ntl/ntl_GF2E.pxd index c36292c8748..fd3825f9b37 100644 --- a/src/sage/libs/ntl/ntl_GF2E.pxd +++ b/src/sage/libs/ntl/ntl_GF2E.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2E_c from sage.libs.ntl.ntl_GF2EContext cimport ntl_GF2EContext_class diff --git a/src/sage/libs/ntl/ntl_GF2E.pyx b/src/sage/libs/ntl/ntl_GF2E.pyx index f0a576bd693..c03392ca4ac 100644 --- a/src/sage/libs/ntl/ntl_GF2E.pyx +++ b/src/sage/libs/ntl/ntl_GF2E.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_GF2EContext.pxd b/src/sage/libs/ntl/ntl_GF2EContext.pxd index 01fc4676e58..c7256683a56 100644 --- a/src/sage/libs/ntl/ntl_GF2EContext.pxd +++ b/src/sage/libs/ntl/ntl_GF2EContext.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2EContext_c from sage.libs.ntl.ntl_GF2X cimport ntl_GF2X diff --git a/src/sage/libs/ntl/ntl_GF2EContext.pyx b/src/sage/libs/ntl/ntl_GF2EContext.pyx index 03c02253eb7..444287d8016 100644 --- a/src/sage/libs/ntl/ntl_GF2EContext.pyx +++ b/src/sage/libs/ntl/ntl_GF2EContext.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_GF2EX.pxd b/src/sage/libs/ntl/ntl_GF2EX.pxd index becd89a9c57..5113ee1f612 100644 --- a/src/sage/libs/ntl/ntl_GF2EX.pxd +++ b/src/sage/libs/ntl/ntl_GF2EX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2EX_c from sage.libs.ntl.ntl_GF2EContext cimport ntl_GF2EContext_class from sage.libs.ntl.ntl_GF2E cimport ntl_GF2E diff --git a/src/sage/libs/ntl/ntl_GF2EX.pyx b/src/sage/libs/ntl/ntl_GF2EX.pyx index 152d8885f72..bcd82b458a2 100644 --- a/src/sage/libs/ntl/ntl_GF2EX.pyx +++ b/src/sage/libs/ntl/ntl_GF2EX.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_GF2X.pxd b/src/sage/libs/ntl/ntl_GF2X.pxd index 8d50c9d17d8..f72db7c0404 100644 --- a/src/sage/libs/ntl/ntl_GF2X.pxd +++ b/src/sage/libs/ntl/ntl_GF2X.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2X_c cdef class ntl_GF2X(): diff --git a/src/sage/libs/ntl/ntl_GF2X.pyx b/src/sage/libs/ntl/ntl_GF2X.pyx index 7f790b540e0..f53de12c591 100644 --- a/src/sage/libs/ntl/ntl_GF2X.pyx +++ b/src/sage/libs/ntl/ntl_GF2X.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_GF2X_linkage.pxi b/src/sage/libs/ntl/ntl_GF2X_linkage.pxi index 7d7af70f36f..e9e9d636256 100644 --- a/src/sage/libs/ntl/ntl_GF2X_linkage.pxi +++ b/src/sage/libs/ntl/ntl_GF2X_linkage.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl r""" Linkage for arithmetic with NTL's GF2X elements. diff --git a/src/sage/libs/ntl/ntl_ZZ.pxd b/src/sage/libs/ntl/ntl_ZZ.pxd index 2ada3d8398c..bab369973a5 100644 --- a/src/sage/libs/ntl/ntl_ZZ.pxd +++ b/src/sage/libs/ntl/ntl_ZZ.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZ_c cdef class ntl_ZZ(): diff --git a/src/sage/libs/ntl/ntl_ZZ.pyx b/src/sage/libs/ntl/ntl_ZZ.pyx index c424defd38d..de7bcec0784 100644 --- a/src/sage/libs/ntl/ntl_ZZ.pyx +++ b/src/sage/libs/ntl/ntl_ZZ.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_ZZX.pxd b/src/sage/libs/ntl/ntl_ZZX.pxd index 63e588c1d42..287d3fec8af 100644 --- a/src/sage/libs/ntl/ntl_ZZX.pxd +++ b/src/sage/libs/ntl/ntl_ZZX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZX_c cdef class ntl_ZZX(): diff --git a/src/sage/libs/ntl/ntl_ZZX.pyx b/src/sage/libs/ntl/ntl_ZZX.pyx index 3606aa27997..2372ac0b098 100644 --- a/src/sage/libs/ntl/ntl_ZZX.pyx +++ b/src/sage/libs/ntl/ntl_ZZX.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_ZZ_p.pxd b/src/sage/libs/ntl/ntl_ZZ_p.pxd index 8bac6e012e4..9a15f92452c 100644 --- a/src/sage/libs/ntl/ntl_ZZ_p.pxd +++ b/src/sage/libs/ntl/ntl_ZZ_p.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZ_p_c from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class diff --git a/src/sage/libs/ntl/ntl_ZZ_p.pyx b/src/sage/libs/ntl/ntl_ZZ_p.pyx index 3dea1323680..5470d9634a1 100644 --- a/src/sage/libs/ntl/ntl_ZZ_p.pyx +++ b/src/sage/libs/ntl/ntl_ZZ_p.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_ZZ_pContext.pxd b/src/sage/libs/ntl/ntl_ZZ_pContext.pxd index 1cab7b77e35..1224b0900b8 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pContext.pxd +++ b/src/sage/libs/ntl/ntl_ZZ_pContext.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZ_pContext_c from sage.libs.ntl.ntl_ZZ cimport ntl_ZZ from sage.libs.ntl.types cimport ZZ_c diff --git a/src/sage/libs/ntl/ntl_ZZ_pContext.pyx b/src/sage/libs/ntl/ntl_ZZ_pContext.pyx index 0a4d5b14e68..cc82b6d2856 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pContext.pyx +++ b/src/sage/libs/ntl/ntl_ZZ_pContext.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_ZZ_pE.pxd b/src/sage/libs/ntl/ntl_ZZ_pE.pxd index c60eaba4ad5..965b531d702 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pE.pxd +++ b/src/sage/libs/ntl/ntl_ZZ_pE.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZ_pE_c from sage.libs.ntl.ntl_ZZ_pEContext cimport ntl_ZZ_pEContext_class from sage.libs.ntl.ntl_ZZ_pX cimport ntl_ZZ_pX diff --git a/src/sage/libs/ntl/ntl_ZZ_pE.pyx b/src/sage/libs/ntl/ntl_ZZ_pE.pyx index 2763c41cb54..da3604e723a 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pE.pyx +++ b/src/sage/libs/ntl/ntl_ZZ_pE.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_ZZ_pEContext.pxd b/src/sage/libs/ntl/ntl_ZZ_pEContext.pxd index 70041817a63..8db9e1e8741 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pEContext.pxd +++ b/src/sage/libs/ntl/ntl_ZZ_pEContext.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZ_pContext_c, ZZ_pEContext_c from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.libs.ntl.ntl_ZZ_pX cimport ntl_ZZ_pX diff --git a/src/sage/libs/ntl/ntl_ZZ_pEContext.pyx b/src/sage/libs/ntl/ntl_ZZ_pEContext.pyx index 84f5f55f9ec..a5861481541 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pEContext.pyx +++ b/src/sage/libs/ntl/ntl_ZZ_pEContext.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_ZZ_pEX.pxd b/src/sage/libs/ntl/ntl_ZZ_pEX.pxd index b56b85519a3..10c3b0a4627 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pEX.pxd +++ b/src/sage/libs/ntl/ntl_ZZ_pEX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZ_pEX_c from sage.libs.ntl.ntl_ZZ_pEContext cimport ntl_ZZ_pEContext_class diff --git a/src/sage/libs/ntl/ntl_ZZ_pEX.pyx b/src/sage/libs/ntl/ntl_ZZ_pEX.pyx index caeaa26e984..343d37cdc0f 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pEX.pyx +++ b/src/sage/libs/ntl/ntl_ZZ_pEX.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_ZZ_pEX_linkage.pxi b/src/sage/libs/ntl/ntl_ZZ_pEX_linkage.pxi index 76ec8770f3f..62027822f20 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pEX_linkage.pxi +++ b/src/sage/libs/ntl/ntl_ZZ_pEX_linkage.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl r""" Linkage for arithmetic with NTL's ZZ_pEX elements. diff --git a/src/sage/libs/ntl/ntl_ZZ_pX.pxd b/src/sage/libs/ntl/ntl_ZZ_pX.pxd index 6c0e227621f..6003cad7958 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pX.pxd +++ b/src/sage/libs/ntl/ntl_ZZ_pX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.ZZ_pX cimport * from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.rings.integer cimport Integer diff --git a/src/sage/libs/ntl/ntl_ZZ_pX.pyx b/src/sage/libs/ntl/ntl_ZZ_pX.pyx index f7e69c52128..eaa619a29dd 100644 --- a/src/sage/libs/ntl/ntl_ZZ_pX.pyx +++ b/src/sage/libs/ntl/ntl_ZZ_pX.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_lzz_p.pxd b/src/sage/libs/ntl/ntl_lzz_p.pxd index 6e8c43d8997..dd35d65da88 100644 --- a/src/sage/libs/ntl/ntl_lzz_p.pxd +++ b/src/sage/libs/ntl/ntl_lzz_p.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.lzz_p cimport * from sage.libs.ntl.ntl_lzz_pContext cimport ntl_zz_pContext_class diff --git a/src/sage/libs/ntl/ntl_lzz_p.pyx b/src/sage/libs/ntl/ntl_lzz_p.pyx index e364e105c68..9b87d47f4c7 100644 --- a/src/sage/libs/ntl/ntl_lzz_p.pyx +++ b/src/sage/libs/ntl/ntl_lzz_p.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_lzz_pContext.pxd b/src/sage/libs/ntl/ntl_lzz_pContext.pxd index 3fd7452197d..075f7dfbfdf 100644 --- a/src/sage/libs/ntl/ntl_lzz_pContext.pxd +++ b/src/sage/libs/ntl/ntl_lzz_pContext.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport zz_pContext_c cdef class ntl_zz_pContext_class(): diff --git a/src/sage/libs/ntl/ntl_lzz_pContext.pyx b/src/sage/libs/ntl/ntl_lzz_pContext.pyx index 9b0065332cf..54144234897 100644 --- a/src/sage/libs/ntl/ntl_lzz_pContext.pyx +++ b/src/sage/libs/ntl/ntl_lzz_pContext.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_lzz_pX.pxd b/src/sage/libs/ntl/ntl_lzz_pX.pxd index 3ab79084299..5684627847d 100644 --- a/src/sage/libs/ntl/ntl_lzz_pX.pxd +++ b/src/sage/libs/ntl/ntl_lzz_pX.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.lzz_p cimport * from sage.libs.ntl.lzz_pX cimport * diff --git a/src/sage/libs/ntl/ntl_lzz_pX.pyx b/src/sage/libs/ntl/ntl_lzz_pX.pyx index 4df5df47a3c..75a88de15eb 100644 --- a/src/sage/libs/ntl/ntl_lzz_pX.pyx +++ b/src/sage/libs/ntl/ntl_lzz_pX.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_mat_GF2.pxd b/src/sage/libs/ntl/ntl_mat_GF2.pxd index 5617ef98915..63fdbdd41b9 100644 --- a/src/sage/libs/ntl/ntl_mat_GF2.pxd +++ b/src/sage/libs/ntl/ntl_mat_GF2.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport mat_GF2_c from sage.libs.ntl.ntl_GF2 cimport ntl_GF2 diff --git a/src/sage/libs/ntl/ntl_mat_GF2.pyx b/src/sage/libs/ntl/ntl_mat_GF2.pyx index 2eee4fe34f2..4b0471d0f97 100644 --- a/src/sage/libs/ntl/ntl_mat_GF2.pyx +++ b/src/sage/libs/ntl/ntl_mat_GF2.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_mat_GF2E.pxd b/src/sage/libs/ntl/ntl_mat_GF2E.pxd index fbb58382368..47748a341b7 100644 --- a/src/sage/libs/ntl/ntl_mat_GF2E.pxd +++ b/src/sage/libs/ntl/ntl_mat_GF2E.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport mat_GF2E_c from sage.libs.ntl.ntl_GF2EContext cimport ntl_GF2EContext_class from sage.libs.ntl.ntl_GF2E cimport ntl_GF2E diff --git a/src/sage/libs/ntl/ntl_mat_GF2E.pyx b/src/sage/libs/ntl/ntl_mat_GF2E.pyx index 795ad9674fa..f141093c826 100644 --- a/src/sage/libs/ntl/ntl_mat_GF2E.pyx +++ b/src/sage/libs/ntl/ntl_mat_GF2E.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_mat_ZZ.pxd b/src/sage/libs/ntl/ntl_mat_ZZ.pxd index 472ef698704..bb51160564a 100644 --- a/src/sage/libs/ntl/ntl_mat_ZZ.pxd +++ b/src/sage/libs/ntl/ntl_mat_ZZ.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport mat_ZZ_c cdef class ntl_mat_ZZ(): diff --git a/src/sage/libs/ntl/ntl_mat_ZZ.pyx b/src/sage/libs/ntl/ntl_mat_ZZ.pyx index 310bbb0006c..6faabcd1d0e 100644 --- a/src/sage/libs/ntl/ntl_mat_ZZ.pyx +++ b/src/sage/libs/ntl/ntl_mat_ZZ.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/libs/ntl/ntl_tools.pxd b/src/sage/libs/ntl/ntl_tools.pxd index 3cb8c0567f2..ae88c987f42 100644 --- a/src/sage/libs/ntl/ntl_tools.pxd +++ b/src/sage/libs/ntl/ntl_tools.pxd @@ -1,2 +1,3 @@ +# sage_setup: distribution = sagemath-ntl cdef extern from "NTL/tools.h" namespace "NTL": void (*ErrorMsgCallback)(const char *) except * diff --git a/src/sage/libs/ntl/ntlwrap.h b/src/sage/libs/ntl/ntlwrap.h index 9141862a171..54b9ec23c67 100644 --- a/src/sage/libs/ntl/ntlwrap.h +++ b/src/sage/libs/ntl/ntlwrap.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-ntl + */ #ifndef SAGE_NTLWRAP_H #define SAGE_NTLWRAP_H diff --git a/src/sage/libs/ntl/ntlwrap_impl.h b/src/sage/libs/ntl/ntlwrap_impl.h index 083bab824cc..82741a5e59f 100644 --- a/src/sage/libs/ntl/ntlwrap_impl.h +++ b/src/sage/libs/ntl/ntlwrap_impl.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-ntl + */ #ifndef _SAGE_NTLWRAP_CPP #define _SAGE_NTLWRAP_CPP #include "ntlwrap.h" diff --git a/src/sage/libs/ntl/types.pxd b/src/sage/libs/ntl/types.pxd index 22e16968943..ed7f61beddb 100644 --- a/src/sage/libs/ntl/types.pxd +++ b/src/sage/libs/ntl/types.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: depends = NTL/ZZ.h cdef extern from "ntlwrap.h": diff --git a/src/sage/libs/ntl/vec_GF2.pxd b/src/sage/libs/ntl/vec_GF2.pxd index 81a3736b49f..38d1751410d 100644 --- a/src/sage/libs/ntl/vec_GF2.pxd +++ b/src/sage/libs/ntl/vec_GF2.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport vec_GF2_c, GF2_c diff --git a/src/sage/libs/ntl/vec_GF2E.pxd b/src/sage/libs/ntl/vec_GF2E.pxd index 8e53bad0517..2d0d6436d51 100644 --- a/src/sage/libs/ntl/vec_GF2E.pxd +++ b/src/sage/libs/ntl/vec_GF2E.pxd @@ -1 +1,2 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport vec_GF2E_c diff --git a/src/sage/libs/pari/__init__.py b/src/sage/libs/pari/__init__.py index ccb18792918..3be8ce527c0 100644 --- a/src/sage/libs/pari/__init__.py +++ b/src/sage/libs/pari/__init__.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.rings.real_mpfr """ Interface between Sage and PARI diff --git a/src/sage/libs/pari/all.py b/src/sage/libs/pari/all.py index 6cef5978cc1..dff1eaf985f 100644 --- a/src/sage/libs/pari/all.py +++ b/src/sage/libs/pari/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from cypari2.gen import Gen as pari_gen from cypari2 import PariError from sage.libs.pari import pari diff --git a/src/sage/libs/pari/all__sagemath_flint.py b/src/sage/libs/pari/all__sagemath_flint.py new file mode 100644 index 00000000000..d31bae41036 --- /dev/null +++ b/src/sage/libs/pari/all__sagemath_flint.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/libs/pari/convert_flint.pxd b/src/sage/libs/pari/convert_flint.pxd index c139703b9a5..cce1636463a 100644 --- a/src/sage/libs/pari/convert_flint.pxd +++ b/src/sage/libs/pari/convert_flint.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from cypari2.types cimport GEN from cypari2.gen cimport Gen from sage.libs.flint.types cimport fmpz_t, fmpz_mat_t, fmpq_t, fmpq_mat_t diff --git a/src/sage/libs/pari/convert_flint.pyx b/src/sage/libs/pari/convert_flint.pyx index fe0e4f7648d..59aee3b93f9 100644 --- a/src/sage/libs/pari/convert_flint.pyx +++ b/src/sage/libs/pari/convert_flint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Convert PARI objects to/from Flint objects diff --git a/src/sage/libs/pari/convert_gmp.pxd b/src/sage/libs/pari/convert_gmp.pxd index 8e984eedce8..7e71abbb4dc 100644 --- a/src/sage/libs/pari/convert_gmp.pxd +++ b/src/sage/libs/pari/convert_gmp.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cypari2.types cimport GEN from cypari2.gen cimport Gen from sage.libs.gmp.types cimport mpz_t, mpq_t, mpz_ptr, mpq_ptr diff --git a/src/sage/libs/pari/convert_gmp.pyx b/src/sage/libs/pari/convert_gmp.pyx index 9162f7d9a27..8e4973dbc3f 100644 --- a/src/sage/libs/pari/convert_gmp.pyx +++ b/src/sage/libs/pari/convert_gmp.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + """ Convert PARI objects to/from GMP objects diff --git a/src/sage/libs/pari/convert_sage.pxd b/src/sage/libs/pari/convert_sage.pxd index ef80ff4030f..4e99c9af951 100644 --- a/src/sage/libs/pari/convert_sage.pxd +++ b/src/sage/libs/pari/convert_sage.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cypari2.gen cimport Gen from sage.rings.integer cimport Integer from sage.rings.rational cimport Rational diff --git a/src/sage/libs/pari/convert_sage.pyx b/src/sage/libs/pari/convert_sage.pyx index 64386bcf632..115eafedeb9 100644 --- a/src/sage/libs/pari/convert_sage.pyx +++ b/src/sage/libs/pari/convert_sage.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Convert PARI objects to Sage types """ @@ -317,7 +318,7 @@ cpdef gen_to_sage(Gen z, locals=None): elif t == t_VECSMALL: return z.python_list_small() elif t == t_MAT: - from .convert_sage_matrix import gen_to_sage_matrix + from sage.libs.pari.convert_sage_matrix import gen_to_sage_matrix return gen_to_sage_matrix(z, locals) elif t == t_PADIC: p = z.padicprime() diff --git a/src/sage/libs/pari/convert_sage_complex_double.pxd b/src/sage/libs/pari/convert_sage_complex_double.pxd index 51299d77759..a1c02e19aea 100644 --- a/src/sage/libs/pari/convert_sage_complex_double.pxd +++ b/src/sage/libs/pari/convert_sage_complex_double.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cypari2.gen cimport Gen from sage.rings.complex_double cimport ComplexDoubleElement diff --git a/src/sage/libs/pari/convert_sage_complex_double.pyx b/src/sage/libs/pari/convert_sage_complex_double.pyx index d7d7c5333a1..ed645b61f46 100644 --- a/src/sage/libs/pari/convert_sage_complex_double.pyx +++ b/src/sage/libs/pari/convert_sage_complex_double.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.rings.complex_double from cysignals.signals cimport sig_on, sig_off @@ -23,7 +24,7 @@ cpdef ComplexDoubleElement pari_to_cdf(Gen g): Check that we handle PARI errors gracefully, see :issue:`17329`:: - sage: CDF(-151.386325246 + 992.34771962*I).zeta() + sage: CDF(-151.386325246 + 992.34771962*I).zeta() # needs sage.symbolic Traceback (most recent call last): ... PariError: overflow in t_REAL->double conversion diff --git a/src/sage/libs/pari/convert_sage_matrix.pyx b/src/sage/libs/pari/convert_sage_matrix.pyx index 1efcea03e72..c279e02f5da 100644 --- a/src/sage/libs/pari/convert_sage_matrix.pyx +++ b/src/sage/libs/pari/convert_sage_matrix.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.modules from cypari2.gen cimport Gen @@ -11,7 +12,7 @@ from sage.matrix.args cimport (MatrixArgs, MA_ENTRIES_SEQ_SEQ, MA_ENTRIES_SEQ_FLAT, MA_ENTRIES_CALLABLE, MA_ENTRIES_UNKNOWN, MA_ENTRIES_SCALAR) -from .convert_sage cimport gen_to_sage +from sage.libs.pari.convert_sage cimport gen_to_sage def gen_to_sage_matrix(Gen z, locals=None): diff --git a/src/sage/libs/pari/convert_sage_real_double.pxd b/src/sage/libs/pari/convert_sage_real_double.pxd index 12fa7418e69..6cd0dacbd0c 100644 --- a/src/sage/libs/pari/convert_sage_real_double.pxd +++ b/src/sage/libs/pari/convert_sage_real_double.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cypari2.gen cimport Gen from sage.rings.real_double cimport RealDoubleElement diff --git a/src/sage/libs/pari/convert_sage_real_double.pyx b/src/sage/libs/pari/convert_sage_real_double.pyx index 6d7ffe7038e..5bd92103114 100644 --- a/src/sage/libs/pari/convert_sage_real_double.pyx +++ b/src/sage/libs/pari/convert_sage_real_double.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cypari2.convert cimport new_gen_from_double cpdef Gen new_gen_from_real_double_element(RealDoubleElement self): diff --git a/src/sage/libs/pari/convert_sage_real_mpfr.pxd b/src/sage/libs/pari/convert_sage_real_mpfr.pxd index 34fbd2bbe45..d28c31b696e 100644 --- a/src/sage/libs/pari/convert_sage_real_mpfr.pxd +++ b/src/sage/libs/pari/convert_sage_real_mpfr.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cypari2.gen cimport Gen from sage.rings.real_mpfr cimport RealNumber diff --git a/src/sage/libs/pari/convert_sage_real_mpfr.pyx b/src/sage/libs/pari/convert_sage_real_mpfr.pyx index 98db6023dc9..e4e4af6457f 100644 --- a/src/sage/libs/pari/convert_sage_real_mpfr.pyx +++ b/src/sage/libs/pari/convert_sage_real_mpfr.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.rings.real_mpfr from cypari2.stack cimport new_gen diff --git a/src/sage/libs/pari/misc.pxd b/src/sage/libs/pari/misc.pxd index ae89aff0b84..ee62e0fd8e4 100644 --- a/src/sage/libs/pari/misc.pxd +++ b/src/sage/libs/pari/misc.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cypari2.gen cimport Gen cdef Gen new_t_POL_from_int_star(int* vals, unsigned long length, long varnum) diff --git a/src/sage/libs/pari/misc.pyx b/src/sage/libs/pari/misc.pyx index 1ed774d417c..f8cc4bc9cdc 100644 --- a/src/sage/libs/pari/misc.pyx +++ b/src/sage/libs/pari/misc.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cysignals.signals cimport sig_on from cypari2.paridecl cimport * from cypari2.stack cimport new_gen diff --git a/src/sage/libs/pari/tests.py b/src/sage/libs/pari/tests.py index 1ed571cd4b9..f3b044e1672 100644 --- a/src/sage/libs/pari/tests.py +++ b/src/sage/libs/pari/tests.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + r""" Tests for the Sage <-> PARI interface diff --git a/src/sage/libs/polybori/__init__.pxd b/src/sage/libs/polybori/__init__.pxd index 361d7520c13..bc6ce2d1ff6 100644 --- a/src/sage/libs/polybori/__init__.pxd +++ b/src/sage/libs/polybori/__init__.pxd @@ -1 +1,2 @@ +# sage_setup: distribution = sagemath-brial # Insert a comment here to prevent repo corruption. diff --git a/src/sage/libs/polybori/decl.pxd b/src/sage/libs/polybori/decl.pxd index dd6a3aaf0b6..b516710851c 100644 --- a/src/sage/libs/polybori/decl.pxd +++ b/src/sage/libs/polybori/decl.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial # distutils: language = c++ # distutils: extra_compile_args = -std=c++11 diff --git a/src/sage/libs/polybori/pb_wrap.h b/src/sage/libs/polybori/pb_wrap.h index e32b2b412b5..2fb8f908a99 100644 --- a/src/sage/libs/polybori/pb_wrap.h +++ b/src/sage/libs/polybori/pb_wrap.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-brial + */ #include #include #include diff --git a/src/sage/libs/singular/__init__.py b/src/sage/libs/singular/__init__.py index e69de29bb2d..84ec2b51067 100644 --- a/src/sage/libs/singular/__init__.py +++ b/src/sage/libs/singular/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-singular diff --git a/src/sage/libs/singular/decl.pxd b/src/sage/libs/singular/decl.pxd index dddc452fd98..371d821ad37 100644 --- a/src/sage/libs/singular/decl.pxd +++ b/src/sage/libs/singular/decl.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular # distutils: include_dirs = SINGULAR_INCDIR # distutils: extra_compile_args = SINGULAR_CFLAGS # distutils: libraries = SINGULAR_LIBRARIES diff --git a/src/sage/libs/singular/function.pxd b/src/sage/libs/singular/function.pxd index facdcae674a..1f680cafcfb 100644 --- a/src/sage/libs/singular/function.pxd +++ b/src/sage/libs/singular/function.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Direct Access to Singular's Functions via libSingular diff --git a/src/sage/libs/singular/function.pyx b/src/sage/libs/singular/function.pyx index c6f65eb718a..0d3ad985556 100644 --- a/src/sage/libs/singular/function.pyx +++ b/src/sage/libs/singular/function.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ libSingular: Functions diff --git a/src/sage/libs/singular/function_factory.py b/src/sage/libs/singular/function_factory.py index c4b0b52372f..09d45a85e97 100644 --- a/src/sage/libs/singular/function_factory.py +++ b/src/sage/libs/singular/function_factory.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ libSingular: Function Factory diff --git a/src/sage/libs/singular/groebner_strategy.pxd b/src/sage/libs/singular/groebner_strategy.pxd index 605e2679228..342c4e0955f 100644 --- a/src/sage/libs/singular/groebner_strategy.pxd +++ b/src/sage/libs/singular/groebner_strategy.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular from sage.libs.singular.decl cimport skStrategy, ring from sage.rings.polynomial.multi_polynomial_libsingular cimport \ diff --git a/src/sage/libs/singular/groebner_strategy.pyx b/src/sage/libs/singular/groebner_strategy.pyx index 4861527e697..cd1fe70bc88 100644 --- a/src/sage/libs/singular/groebner_strategy.pyx +++ b/src/sage/libs/singular/groebner_strategy.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Singular's Groebner Strategy Objects diff --git a/src/sage/libs/singular/option.pyx b/src/sage/libs/singular/option.pyx index 3855fb2f732..335d2905ddc 100644 --- a/src/sage/libs/singular/option.pyx +++ b/src/sage/libs/singular/option.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ libSingular: Options diff --git a/src/sage/libs/singular/polynomial.pxd b/src/sage/libs/singular/polynomial.pxd index 52b19fbba75..0b7dd0079e0 100644 --- a/src/sage/libs/singular/polynomial.pxd +++ b/src/sage/libs/singular/polynomial.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Wrapper for Singular's Polynomial Arithmetic diff --git a/src/sage/libs/singular/polynomial.pyx b/src/sage/libs/singular/polynomial.pyx index 6f7f576cb02..1ec64d3b06f 100644 --- a/src/sage/libs/singular/polynomial.pyx +++ b/src/sage/libs/singular/polynomial.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Wrapper for Singular's Polynomial Arithmetic @@ -470,6 +471,7 @@ cdef object singular_polynomial_latex(poly *p, ring *r, object base, object late Demonstrate that coefficients over non-atomic represented rings are properly parenthesized (:issue:`11186`):: + sage: # needs sage.symbolic sage: x = var('x') sage: K. = QQ.extension(x^2 + x + 1) sage: P. = K[] diff --git a/src/sage/libs/singular/ring.pxd b/src/sage/libs/singular/ring.pxd index 09bfe5fc8a9..b91e057eb21 100644 --- a/src/sage/libs/singular/ring.pxd +++ b/src/sage/libs/singular/ring.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Wrapper for Singular's Rings diff --git a/src/sage/libs/singular/ring.pyx b/src/sage/libs/singular/ring.pyx index f770cc483a5..8ee5c49adc1 100644 --- a/src/sage/libs/singular/ring.pyx +++ b/src/sage/libs/singular/ring.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Wrapper for Singular's Rings diff --git a/src/sage/libs/singular/singular.pxd b/src/sage/libs/singular/singular.pxd index ca31d02456c..03825b13b42 100644 --- a/src/sage/libs/singular/singular.pxd +++ b/src/sage/libs/singular/singular.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular from sage.libs.singular.decl cimport ring, poly, number, intvec, bigintmat from sage.libs.singular.function cimport Resolution diff --git a/src/sage/libs/singular/singular.pyx b/src/sage/libs/singular/singular.pyx index 9c7b4078583..a10adf84389 100644 --- a/src/sage/libs/singular/singular.pyx +++ b/src/sage/libs/singular/singular.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ libSingular: Conversion Routines and Initialisation diff --git a/src/sage/libs/singular/standard_options.py b/src/sage/libs/singular/standard_options.py index 476961b2f09..f287e391280 100644 --- a/src/sage/libs/singular/standard_options.py +++ b/src/sage/libs/singular/standard_options.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Highlevel functions for managing options of the libSingular interface diff --git a/src/sage/libs/symmetrica/__init__.py b/src/sage/libs/symmetrica/__init__.py index e69de29bb2d..5cbe1f38a45 100644 --- a/src/sage/libs/symmetrica/__init__.py +++ b/src/sage/libs/symmetrica/__init__.py @@ -0,0 +1,6 @@ +# sage_setup: distribution = sagemath-combinat +# Fail early if runtime deps of symmetrica are not available; +# symmetrica does not handle this well. + +import sage.combinat.tableau +import sage.matrix.constructor diff --git a/src/sage/libs/symmetrica/all.py b/src/sage/libs/symmetrica/all.py index f69490654af..817d568b03e 100644 --- a/src/sage/libs/symmetrica/all.py +++ b/src/sage/libs/symmetrica/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-combinat + # from symmetrica import * from sage.libs.symmetrica.symmetrica import start diff --git a/src/sage/libs/symmetrica/kostka.pxi b/src/sage/libs/symmetrica/kostka.pxi index 52806829eab..c682d4a47c3 100644 --- a/src/sage/libs/symmetrica/kostka.pxi +++ b/src/sage/libs/symmetrica/kostka.pxi @@ -1,3 +1,6 @@ +# sage_setup: distribution = sagemath-combinat +# sage.doctest: needs sage.combinat sage.modules + from cpython.object cimport * from cysignals.signals cimport sig_on, sig_off diff --git a/src/sage/libs/symmetrica/meson.build.in b/src/sage/libs/symmetrica/meson.build.in new file mode 100644 index 00000000000..e208969ecfc --- /dev/null +++ b/src/sage/libs/symmetrica/meson.build.in @@ -0,0 +1,6 @@ +# Cannot be found by pkg-config +symmetrica = declare_dependency( + dependencies: [ + cc.find_library('symmetrica'), + ] +) diff --git a/src/sage/libs/symmetrica/part.pxi b/src/sage/libs/symmetrica/part.pxi index a6c1a1e2fa2..478143f4df9 100644 --- a/src/sage/libs/symmetrica/part.pxi +++ b/src/sage/libs/symmetrica/part.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat cdef extern from 'symmetrica/def.h': INT strict_to_odd_part(OP s, OP o) INT odd_to_strict_part(OP o, OP s) diff --git a/src/sage/libs/symmetrica/plet.pxi b/src/sage/libs/symmetrica/plet.pxi index 39cfbbe7d87..831be1c6402 100644 --- a/src/sage/libs/symmetrica/plet.pxi +++ b/src/sage/libs/symmetrica/plet.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat cdef extern from 'symmetrica/def.h': INT plethysm(OP s1, OP s2, OP res) INT schur_schur_plet(OP p1, OP p2, OP res) diff --git a/src/sage/libs/symmetrica/sab.pxi b/src/sage/libs/symmetrica/sab.pxi index 1d5506d7bd4..87a036b0585 100644 --- a/src/sage/libs/symmetrica/sab.pxi +++ b/src/sage/libs/symmetrica/sab.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat cdef extern from 'symmetrica/def.h': INT dimension_symmetrization(OP n, OP part, OP a) INT bdg(OP part, OP perm, OP D) diff --git a/src/sage/libs/symmetrica/sb.pxi b/src/sage/libs/symmetrica/sb.pxi index b3bbb061596..3372370577e 100644 --- a/src/sage/libs/symmetrica/sb.pxi +++ b/src/sage/libs/symmetrica/sb.pxi @@ -1,3 +1,6 @@ +# sage_setup: distribution = sagemath-combinat +# sage.doctest: needs sage.combinat sage.modules + cdef extern from 'symmetrica/def.h': INT mult_schubert_schubert(OP a, OP b, OP result) INT m_perm_sch(OP a, OP b) diff --git a/src/sage/libs/symmetrica/sc.pxi b/src/sage/libs/symmetrica/sc.pxi index 77fe02802a1..189ce0aa84a 100644 --- a/src/sage/libs/symmetrica/sc.pxi +++ b/src/sage/libs/symmetrica/sc.pxi @@ -1,3 +1,6 @@ +# sage_setup: distribution = sagemath-combinat +# sage.doctest: needs sage.combinat sage.modules + cdef extern from 'symmetrica/def.h': INT chartafel(OP degree, OP result) INT charvalue(OP irred, OP cls, OP result, OP table) @@ -55,14 +58,16 @@ def charvalue_symmetrica(irred, cls, table=None): EXAMPLES:: sage: n = 3 - sage: m = matrix([[symmetrica.charvalue(irred, cls) for cls in Partitions(n)] for irred in Partitions(n)]); m + sage: m = matrix([[symmetrica.charvalue(irred, cls) for cls in Partitions(n)] + ....: for irred in Partitions(n)]); m [ 1 1 1] [-1 0 2] [ 1 -1 1] sage: m == symmetrica.chartafel(n) True sage: n = 4 - sage: m = matrix([[symmetrica.charvalue(irred, cls) for cls in Partitions(n)] for irred in Partitions(n)]) + sage: m = matrix([[symmetrica.charvalue(irred, cls) for cls in Partitions(n)] + ....: for irred in Partitions(n)]) sage: m == symmetrica.chartafel(n) True """ diff --git a/src/sage/libs/symmetrica/schur.pxi b/src/sage/libs/symmetrica/schur.pxi index 4fe867ce93a..ab6f38afb33 100644 --- a/src/sage/libs/symmetrica/schur.pxi +++ b/src/sage/libs/symmetrica/schur.pxi @@ -1,3 +1,6 @@ +# sage_setup: distribution = sagemath-combinat +# sage.doctest: needs sage.combinat sage.modules + cdef extern from 'symmetrica/def.h': INT outerproduct_schur(OP parta, OP partb, OP result) INT dimension_schur(OP a, OP result) diff --git a/src/sage/libs/symmetrica/symmetrica.pxi b/src/sage/libs/symmetrica/symmetrica.pxi index def9544e2c6..1df7249ab04 100644 --- a/src/sage/libs/symmetrica/symmetrica.pxi +++ b/src/sage/libs/symmetrica/symmetrica.pxi @@ -1,3 +1,6 @@ +# sage_setup: distribution = sagemath-combinat +# sage.doctest: needs sage.combinat sage.modules + # We put all definitions together, whether they appear in def.h or # macro.h cdef extern from 'symmetrica/def.h': @@ -404,12 +407,9 @@ cdef void late_import() noexcept: SchubertPolynomialRing, SchubertPolynomial_class,\ two, fifteen, thirty, zero, sage_maxint - if matrix_constructor is not None: + if Integer is not None: return - import sage.matrix.constructor - matrix_constructor = sage.matrix.constructor.matrix - import sage.rings.integer Integer = sage.rings.integer.Integer @@ -429,23 +429,12 @@ cdef void late_import() noexcept: Permutation = sage.combinat.permutation.Permutation Permutations = sage.combinat.permutation.Permutations - import sage.functions.all - sqrt = sage.functions.all.sqrt - - import sage.misc.all - prod = sage.misc.all.prod - - import sage.rings.polynomial.polynomial_ring_constructor - PolynomialRing = sage.rings.polynomial.polynomial_ring_constructor.PolynomialRing - - import sage.rings.all - QQ = sage.rings.all.QQ - Rational = sage.rings.all.Rational - ZZ = sage.rings.all.ZZ - - #Symmetric Functions - import sage.combinat.sf.sf - SymmetricFunctions = sage.combinat.sf.sf.SymmetricFunctions + from sage.misc.functional import sqrt + from sage.misc.misc_c import prod + from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing + from sage.rings.rational_field import QQ + from sage.rings.rational import Rational + from sage.rings.integer_ring import ZZ import builtins builtinlist = builtins.list @@ -455,16 +444,25 @@ cdef void late_import() noexcept: import sage.rings.polynomial.multi_polynomial MPolynomial = sage.rings.polynomial.multi_polynomial.MPolynomial - import sage.combinat.schubert_polynomial - SchubertPolynomialRing = sage.combinat.schubert_polynomial.SchubertPolynomialRing - SchubertPolynomial_class = sage.combinat.schubert_polynomial.SchubertPolynomial_class - two = Integer(2) fifteen = Integer(15) thirty = Integer(30) zero = Integer(0) sage_maxint = Integer(maxint) + + #Symmetric Functions + import sage.combinat.sf.sf + SymmetricFunctions = sage.combinat.sf.sf.SymmetricFunctions + + import sage.matrix.constructor + matrix_constructor = sage.matrix.constructor.matrix + + import sage.combinat.schubert_polynomial + SchubertPolynomialRing = sage.combinat.schubert_polynomial.SchubertPolynomialRing + SchubertPolynomial_class = sage.combinat.schubert_polynomial.SchubertPolynomial_class + + ########################################## cdef object _py(OP a): cdef OBJECTKIND objk diff --git a/src/sage/libs/symmetrica/symmetrica.pyx b/src/sage/libs/symmetrica/symmetrica.pyx index 7ca41fbc82b..56e3ede0bf3 100644 --- a/src/sage/libs/symmetrica/symmetrica.pyx +++ b/src/sage/libs/symmetrica/symmetrica.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # distutils: libraries = symmetrica """ Symmetrica library diff --git a/src/sage/manifolds/all.py b/src/sage/manifolds/all.py index e219a98dc32..a4a4fc82242 100644 --- a/src/sage/manifolds/all.py +++ b/src/sage/manifolds/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics from sage.misc.lazy_import import lazy_import lazy_import('sage.manifolds.manifold', 'Manifold') lazy_import('sage.manifolds.differentiable.examples.euclidean', 'EuclideanSpace') diff --git a/src/sage/manifolds/calculus_method.py b/src/sage/manifolds/calculus_method.py index a4888559c0f..906a327bb98 100644 --- a/src/sage/manifolds/calculus_method.py +++ b/src/sage/manifolds/calculus_method.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Coordinate calculus methods diff --git a/src/sage/manifolds/catalog.py b/src/sage/manifolds/catalog.py index 0cbd69b6768..03e1c393a01 100644 --- a/src/sage/manifolds/catalog.py +++ b/src/sage/manifolds/catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Manifolds Catalog diff --git a/src/sage/manifolds/chart.py b/src/sage/manifolds/chart.py index 86c3087d101..ede3c42e8ea 100644 --- a/src/sage/manifolds/chart.py +++ b/src/sage/manifolds/chart.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Coordinate Charts diff --git a/src/sage/manifolds/chart_func.py b/src/sage/manifolds/chart_func.py index fed078a2baa..1e2204e1633 100644 --- a/src/sage/manifolds/chart_func.py +++ b/src/sage/manifolds/chart_func.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Chart Functions diff --git a/src/sage/manifolds/continuous_map.py b/src/sage/manifolds/continuous_map.py index f715d2e5738..3af9f4baddc 100644 --- a/src/sage/manifolds/continuous_map.py +++ b/src/sage/manifolds/continuous_map.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Continuous Maps Between Topological Manifolds diff --git a/src/sage/manifolds/continuous_map_image.py b/src/sage/manifolds/continuous_map_image.py index cf3b073e875..43627ce8e76 100644 --- a/src/sage/manifolds/continuous_map_image.py +++ b/src/sage/manifolds/continuous_map_image.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Images of Manifold Subsets under Continuous Maps as Subsets of the Codomain diff --git a/src/sage/manifolds/differentiable/affine_connection.py b/src/sage/manifolds/differentiable/affine_connection.py index 2c24b7c3ba9..6b1e5c31a4d 100644 --- a/src/sage/manifolds/differentiable/affine_connection.py +++ b/src/sage/manifolds/differentiable/affine_connection.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Affine Connections diff --git a/src/sage/manifolds/differentiable/all.py b/src/sage/manifolds/differentiable/all.py index e69de29bb2d..332eaf1cdb6 100644 --- a/src/sage/manifolds/differentiable/all.py +++ b/src/sage/manifolds/differentiable/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-symbolics diff --git a/src/sage/manifolds/differentiable/automorphismfield.py b/src/sage/manifolds/differentiable/automorphismfield.py index 4143e29228a..f6e8112911b 100644 --- a/src/sage/manifolds/differentiable/automorphismfield.py +++ b/src/sage/manifolds/differentiable/automorphismfield.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Tangent-Space Automorphism Fields diff --git a/src/sage/manifolds/differentiable/automorphismfield_group.py b/src/sage/manifolds/differentiable/automorphismfield_group.py index 78a906466b3..c7f501fee9e 100644 --- a/src/sage/manifolds/differentiable/automorphismfield_group.py +++ b/src/sage/manifolds/differentiable/automorphismfield_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Group of Tangent-Space Automorphism Fields diff --git a/src/sage/manifolds/differentiable/bundle_connection.py b/src/sage/manifolds/differentiable/bundle_connection.py index 184e9641eeb..0655a1ac20e 100644 --- a/src/sage/manifolds/differentiable/bundle_connection.py +++ b/src/sage/manifolds/differentiable/bundle_connection.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Bundle Connections diff --git a/src/sage/manifolds/differentiable/characteristic_cohomology_class.py b/src/sage/manifolds/differentiable/characteristic_cohomology_class.py index 51f32ffb4b8..c236e2a09f8 100644 --- a/src/sage/manifolds/differentiable/characteristic_cohomology_class.py +++ b/src/sage/manifolds/differentiable/characteristic_cohomology_class.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Characteristic cohomology classes diff --git a/src/sage/manifolds/differentiable/chart.py b/src/sage/manifolds/differentiable/chart.py index af74ac85669..42e4f20ec31 100644 --- a/src/sage/manifolds/differentiable/chart.py +++ b/src/sage/manifolds/differentiable/chart.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Coordinate Charts on Differentiable Manifolds diff --git a/src/sage/manifolds/differentiable/curve.py b/src/sage/manifolds/differentiable/curve.py index 8b88a0351eb..c41828bd943 100644 --- a/src/sage/manifolds/differentiable/curve.py +++ b/src/sage/manifolds/differentiable/curve.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Curves in Manifolds diff --git a/src/sage/manifolds/differentiable/de_rham_cohomology.py b/src/sage/manifolds/differentiable/de_rham_cohomology.py index 53a5b50aaa0..aed7311de8d 100644 --- a/src/sage/manifolds/differentiable/de_rham_cohomology.py +++ b/src/sage/manifolds/differentiable/de_rham_cohomology.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" De Rham Cohomology diff --git a/src/sage/manifolds/differentiable/degenerate.py b/src/sage/manifolds/differentiable/degenerate.py index da83139ed6e..fa41a767dac 100644 --- a/src/sage/manifolds/differentiable/degenerate.py +++ b/src/sage/manifolds/differentiable/degenerate.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Degenerate manifolds """ diff --git a/src/sage/manifolds/differentiable/degenerate_submanifold.py b/src/sage/manifolds/differentiable/degenerate_submanifold.py index 7608c97612b..4d9a7d3075f 100644 --- a/src/sage/manifolds/differentiable/degenerate_submanifold.py +++ b/src/sage/manifolds/differentiable/degenerate_submanifold.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Degenerate submanifolds diff --git a/src/sage/manifolds/differentiable/diff_form.py b/src/sage/manifolds/differentiable/diff_form.py index fb58189796e..643338046a8 100644 --- a/src/sage/manifolds/differentiable/diff_form.py +++ b/src/sage/manifolds/differentiable/diff_form.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Differential Forms diff --git a/src/sage/manifolds/differentiable/diff_form_module.py b/src/sage/manifolds/differentiable/diff_form_module.py index 291893b6cc9..216c32a06fe 100644 --- a/src/sage/manifolds/differentiable/diff_form_module.py +++ b/src/sage/manifolds/differentiable/diff_form_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Differential Form Modules diff --git a/src/sage/manifolds/differentiable/diff_map.py b/src/sage/manifolds/differentiable/diff_map.py index ac9a7f74e99..1131401cd41 100644 --- a/src/sage/manifolds/differentiable/diff_map.py +++ b/src/sage/manifolds/differentiable/diff_map.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Differentiable Maps between Differentiable Manifolds diff --git a/src/sage/manifolds/differentiable/differentiable_submanifold.py b/src/sage/manifolds/differentiable/differentiable_submanifold.py index 51dd2962557..e83602314dd 100644 --- a/src/sage/manifolds/differentiable/differentiable_submanifold.py +++ b/src/sage/manifolds/differentiable/differentiable_submanifold.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Submanifolds of differentiable manifolds diff --git a/src/sage/manifolds/differentiable/examples/all.py b/src/sage/manifolds/differentiable/examples/all.py index e69de29bb2d..332eaf1cdb6 100644 --- a/src/sage/manifolds/differentiable/examples/all.py +++ b/src/sage/manifolds/differentiable/examples/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-symbolics diff --git a/src/sage/manifolds/differentiable/examples/euclidean.py b/src/sage/manifolds/differentiable/examples/euclidean.py index 08fef01cbda..ce2b00a1436 100644 --- a/src/sage/manifolds/differentiable/examples/euclidean.py +++ b/src/sage/manifolds/differentiable/examples/euclidean.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Euclidean Spaces diff --git a/src/sage/manifolds/differentiable/examples/real_line.py b/src/sage/manifolds/differentiable/examples/real_line.py index 746bae34c91..2fa52b841de 100644 --- a/src/sage/manifolds/differentiable/examples/real_line.py +++ b/src/sage/manifolds/differentiable/examples/real_line.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" The Real Line and Open Intervals diff --git a/src/sage/manifolds/differentiable/examples/sphere.py b/src/sage/manifolds/differentiable/examples/sphere.py index ceb9ad849e1..26e375f29a9 100644 --- a/src/sage/manifolds/differentiable/examples/sphere.py +++ b/src/sage/manifolds/differentiable/examples/sphere.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Spheres smoothly embedded in Euclidean Space diff --git a/src/sage/manifolds/differentiable/examples/symplectic_space.py b/src/sage/manifolds/differentiable/examples/symplectic_space.py index 5a78277d567..f06efe79cb0 100644 --- a/src/sage/manifolds/differentiable/examples/symplectic_space.py +++ b/src/sage/manifolds/differentiable/examples/symplectic_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Symplectic vector spaces diff --git a/src/sage/manifolds/differentiable/examples/symplectic_space_test.py b/src/sage/manifolds/differentiable/examples/symplectic_space_test.py index 9cfdf6da123..7ba13b52691 100644 --- a/src/sage/manifolds/differentiable/examples/symplectic_space_test.py +++ b/src/sage/manifolds/differentiable/examples/symplectic_space_test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics import sage.all from sage.manifolds.differentiable.symplectic_form import SymplecticForm from sage.manifolds.differentiable.examples.symplectic_space import ( diff --git a/src/sage/manifolds/differentiable/integrated_curve.py b/src/sage/manifolds/differentiable/integrated_curve.py index 2ce087ba3e8..c98a427bbd8 100644 --- a/src/sage/manifolds/differentiable/integrated_curve.py +++ b/src/sage/manifolds/differentiable/integrated_curve.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Integrated Curves and Geodesics in Manifolds diff --git a/src/sage/manifolds/differentiable/levi_civita_connection.py b/src/sage/manifolds/differentiable/levi_civita_connection.py index a995cf804cd..c526d435fa5 100644 --- a/src/sage/manifolds/differentiable/levi_civita_connection.py +++ b/src/sage/manifolds/differentiable/levi_civita_connection.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Levi-Civita Connections diff --git a/src/sage/manifolds/differentiable/manifold.py b/src/sage/manifolds/differentiable/manifold.py index 285a160e7ff..aa6bfc6138e 100644 --- a/src/sage/manifolds/differentiable/manifold.py +++ b/src/sage/manifolds/differentiable/manifold.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Differentiable Manifolds diff --git a/src/sage/manifolds/differentiable/manifold_homset.py b/src/sage/manifolds/differentiable/manifold_homset.py index 52a75ac61ad..58fee6c4d39 100644 --- a/src/sage/manifolds/differentiable/manifold_homset.py +++ b/src/sage/manifolds/differentiable/manifold_homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Sets of Morphisms between Differentiable Manifolds diff --git a/src/sage/manifolds/differentiable/metric.py b/src/sage/manifolds/differentiable/metric.py index e25033a8cb7..d494882aa56 100644 --- a/src/sage/manifolds/differentiable/metric.py +++ b/src/sage/manifolds/differentiable/metric.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Pseudo-Riemannian Metrics and Degenerate Metrics diff --git a/src/sage/manifolds/differentiable/mixed_form.py b/src/sage/manifolds/differentiable/mixed_form.py index 65e2a25891e..3e8b1168717 100644 --- a/src/sage/manifolds/differentiable/mixed_form.py +++ b/src/sage/manifolds/differentiable/mixed_form.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Mixed Differential Forms diff --git a/src/sage/manifolds/differentiable/mixed_form_algebra.py b/src/sage/manifolds/differentiable/mixed_form_algebra.py index c3ab8bbbbe9..8376685a8ce 100644 --- a/src/sage/manifolds/differentiable/mixed_form_algebra.py +++ b/src/sage/manifolds/differentiable/mixed_form_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Graded Algebra of Mixed Differential Forms diff --git a/src/sage/manifolds/differentiable/multivector_module.py b/src/sage/manifolds/differentiable/multivector_module.py index 2dc036a878c..76965b4e9c4 100644 --- a/src/sage/manifolds/differentiable/multivector_module.py +++ b/src/sage/manifolds/differentiable/multivector_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Multivector Field Modules diff --git a/src/sage/manifolds/differentiable/multivectorfield.py b/src/sage/manifolds/differentiable/multivectorfield.py index 08b6d4d75a8..fb6de0720cc 100644 --- a/src/sage/manifolds/differentiable/multivectorfield.py +++ b/src/sage/manifolds/differentiable/multivectorfield.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Multivector Fields diff --git a/src/sage/manifolds/differentiable/poisson_tensor.py b/src/sage/manifolds/differentiable/poisson_tensor.py index 51da2de5f90..1c7b6eae054 100644 --- a/src/sage/manifolds/differentiable/poisson_tensor.py +++ b/src/sage/manifolds/differentiable/poisson_tensor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Poisson tensors diff --git a/src/sage/manifolds/differentiable/pseudo_riemannian.py b/src/sage/manifolds/differentiable/pseudo_riemannian.py index 3ad49659de8..8b114cd428a 100644 --- a/src/sage/manifolds/differentiable/pseudo_riemannian.py +++ b/src/sage/manifolds/differentiable/pseudo_riemannian.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Pseudo-Riemannian Manifolds diff --git a/src/sage/manifolds/differentiable/pseudo_riemannian_submanifold.py b/src/sage/manifolds/differentiable/pseudo_riemannian_submanifold.py index e791cef6781..430e6e8b408 100644 --- a/src/sage/manifolds/differentiable/pseudo_riemannian_submanifold.py +++ b/src/sage/manifolds/differentiable/pseudo_riemannian_submanifold.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Pseudo-Riemannian submanifolds diff --git a/src/sage/manifolds/differentiable/scalarfield.py b/src/sage/manifolds/differentiable/scalarfield.py index be1d6d3b97e..69858020f68 100644 --- a/src/sage/manifolds/differentiable/scalarfield.py +++ b/src/sage/manifolds/differentiable/scalarfield.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Differentiable Scalar Fields diff --git a/src/sage/manifolds/differentiable/scalarfield_algebra.py b/src/sage/manifolds/differentiable/scalarfield_algebra.py index 205f8cef841..c6d88e3ba8b 100644 --- a/src/sage/manifolds/differentiable/scalarfield_algebra.py +++ b/src/sage/manifolds/differentiable/scalarfield_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Algebra of Differentiable Scalar Fields diff --git a/src/sage/manifolds/differentiable/symplectic_form.py b/src/sage/manifolds/differentiable/symplectic_form.py index 52a076bfbe8..8a435f9e21c 100644 --- a/src/sage/manifolds/differentiable/symplectic_form.py +++ b/src/sage/manifolds/differentiable/symplectic_form.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Symplectic structures diff --git a/src/sage/manifolds/differentiable/symplectic_form_test.py b/src/sage/manifolds/differentiable/symplectic_form_test.py index c38feb90cef..587c9871e86 100644 --- a/src/sage/manifolds/differentiable/symplectic_form_test.py +++ b/src/sage/manifolds/differentiable/symplectic_form_test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # pylint: disable=missing-function-docstring from _pytest.fixtures import FixtureRequest import pytest diff --git a/src/sage/manifolds/differentiable/tangent_space.py b/src/sage/manifolds/differentiable/tangent_space.py index fd2576f8917..3dca84c3b19 100644 --- a/src/sage/manifolds/differentiable/tangent_space.py +++ b/src/sage/manifolds/differentiable/tangent_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Tangent Spaces diff --git a/src/sage/manifolds/differentiable/tangent_vector.py b/src/sage/manifolds/differentiable/tangent_vector.py index 1bd1dd5c647..c88faa19953 100644 --- a/src/sage/manifolds/differentiable/tangent_vector.py +++ b/src/sage/manifolds/differentiable/tangent_vector.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Tangent Vectors @@ -394,7 +395,7 @@ def plot(self, chart=None, ambient_coords=None, mapping=None, This plot involves only the components `v^t`, `v^x` and `v^z` of `v`. A nice 3D view atop the coordinate grid is obtained via:: - sage: (X.plot(ambient_coords=(t,x,z)) # long time # needs sage.plot + sage: (X.plot(ambient_coords=(t,x,z)) # long time # needs sage.plot ....: + v.plot(ambient_coords=(t,x,z), ....: label_offset=0.5, width=6)) Graphics3d Object @@ -428,8 +429,8 @@ def plot(self, chart=None, ambient_coords=None, mapping=None, Tangent vector ∂/∂ph at Point p on the 2-dimensional differentiable manifold S^2 sage: graph_v = v.plot(mapping=F) # needs sage.plot - sage: graph_S2 = XS.plot(chart=X3, mapping=F, number_values=9) # long time, needs sage.plot - sage: graph_v + graph_S2 # long time, needs sage.plot + sage: graph_S2 = XS.plot(chart=X3, mapping=F, number_values=9) # long time, needs sage.plot + sage: graph_v + graph_S2 # long time # needs sage.plot Graphics3d Object .. PLOT:: diff --git a/src/sage/manifolds/differentiable/tensorfield.py b/src/sage/manifolds/differentiable/tensorfield.py index 562c62cefc8..aa0101ba83c 100644 --- a/src/sage/manifolds/differentiable/tensorfield.py +++ b/src/sage/manifolds/differentiable/tensorfield.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Tensor Fields diff --git a/src/sage/manifolds/differentiable/tensorfield_module.py b/src/sage/manifolds/differentiable/tensorfield_module.py index fcdd93a9f0f..c22798aa74f 100644 --- a/src/sage/manifolds/differentiable/tensorfield_module.py +++ b/src/sage/manifolds/differentiable/tensorfield_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Tensor Field Modules diff --git a/src/sage/manifolds/differentiable/tensorfield_paral.py b/src/sage/manifolds/differentiable/tensorfield_paral.py index cb0e1db14cd..b47be2ef582 100644 --- a/src/sage/manifolds/differentiable/tensorfield_paral.py +++ b/src/sage/manifolds/differentiable/tensorfield_paral.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Tensor Fields with Values on a Parallelizable Manifold diff --git a/src/sage/manifolds/differentiable/tensorfield_paral_test.py b/src/sage/manifolds/differentiable/tensorfield_paral_test.py index 7eda28c5c49..a71a5571fd9 100644 --- a/src/sage/manifolds/differentiable/tensorfield_paral_test.py +++ b/src/sage/manifolds/differentiable/tensorfield_paral_test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # pylint: disable=missing-function-docstring,missing-class-docstring import pytest diff --git a/src/sage/manifolds/differentiable/vector_bundle.py b/src/sage/manifolds/differentiable/vector_bundle.py index f65bba7a79d..28a7302c0cd 100644 --- a/src/sage/manifolds/differentiable/vector_bundle.py +++ b/src/sage/manifolds/differentiable/vector_bundle.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Differentiable Vector Bundles diff --git a/src/sage/manifolds/differentiable/vectorfield.py b/src/sage/manifolds/differentiable/vectorfield.py index 6b0b51582a3..52be92847d4 100644 --- a/src/sage/manifolds/differentiable/vectorfield.py +++ b/src/sage/manifolds/differentiable/vectorfield.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Vector Fields @@ -550,7 +551,7 @@ def plot(self, chart=None, ambient_coords=None, mapping=None, We cannot make a 4D plot directly:: - sage: v.plot() + sage: v.plot() # needs sage.plot Traceback (most recent call last): ... ValueError: the number of ambient coordinates must be either 2 or 3, not 4 diff --git a/src/sage/manifolds/differentiable/vectorfield_module.py b/src/sage/manifolds/differentiable/vectorfield_module.py index 43efcb19aa6..041e98c0752 100644 --- a/src/sage/manifolds/differentiable/vectorfield_module.py +++ b/src/sage/manifolds/differentiable/vectorfield_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Vector Field Modules diff --git a/src/sage/manifolds/differentiable/vectorframe.py b/src/sage/manifolds/differentiable/vectorframe.py index a284c6487b6..a90f0165bca 100644 --- a/src/sage/manifolds/differentiable/vectorframe.py +++ b/src/sage/manifolds/differentiable/vectorframe.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Vector Frames diff --git a/src/sage/manifolds/family.py b/src/sage/manifolds/family.py index f9c3404535e..8713bbbfed0 100644 --- a/src/sage/manifolds/family.py +++ b/src/sage/manifolds/family.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Families of Manifold Objects diff --git a/src/sage/manifolds/local_frame.py b/src/sage/manifolds/local_frame.py index 99fcbe4acff..bd2a23a72bc 100644 --- a/src/sage/manifolds/local_frame.py +++ b/src/sage/manifolds/local_frame.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Local Frames diff --git a/src/sage/manifolds/manifold.py b/src/sage/manifolds/manifold.py index c27cd0b6434..1448c2662b5 100644 --- a/src/sage/manifolds/manifold.py +++ b/src/sage/manifolds/manifold.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Topological Manifolds diff --git a/src/sage/manifolds/manifold_homset.py b/src/sage/manifolds/manifold_homset.py index 78c9bc9984c..16be7b63981 100644 --- a/src/sage/manifolds/manifold_homset.py +++ b/src/sage/manifolds/manifold_homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Set of Morphisms between Topological Manifolds diff --git a/src/sage/manifolds/operators.py b/src/sage/manifolds/operators.py index 636c11db149..2385d049887 100644 --- a/src/sage/manifolds/operators.py +++ b/src/sage/manifolds/operators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Operators for vector calculus diff --git a/src/sage/manifolds/point.py b/src/sage/manifolds/point.py index f50ae75f553..81c4d352d90 100644 --- a/src/sage/manifolds/point.py +++ b/src/sage/manifolds/point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Points of Topological Manifolds diff --git a/src/sage/manifolds/scalarfield.py b/src/sage/manifolds/scalarfield.py index 62c728ff5bb..e58ea2c1f75 100644 --- a/src/sage/manifolds/scalarfield.py +++ b/src/sage/manifolds/scalarfield.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Scalar Fields diff --git a/src/sage/manifolds/scalarfield_algebra.py b/src/sage/manifolds/scalarfield_algebra.py index 311f749adf3..291465f44d1 100644 --- a/src/sage/manifolds/scalarfield_algebra.py +++ b/src/sage/manifolds/scalarfield_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Algebra of Scalar Fields diff --git a/src/sage/manifolds/section.py b/src/sage/manifolds/section.py index 50ab4531cb6..c440ddc0460 100644 --- a/src/sage/manifolds/section.py +++ b/src/sage/manifolds/section.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Sections diff --git a/src/sage/manifolds/section_module.py b/src/sage/manifolds/section_module.py index 5c654762977..e1ea133305f 100644 --- a/src/sage/manifolds/section_module.py +++ b/src/sage/manifolds/section_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Section Modules diff --git a/src/sage/manifolds/structure.py b/src/sage/manifolds/structure.py index cf6a9466f9a..0daefb16f1c 100644 --- a/src/sage/manifolds/structure.py +++ b/src/sage/manifolds/structure.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Manifold Structures diff --git a/src/sage/manifolds/subset.py b/src/sage/manifolds/subset.py index 5a3f9238a9a..1e21bb072d4 100644 --- a/src/sage/manifolds/subset.py +++ b/src/sage/manifolds/subset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Subsets of Topological Manifolds diff --git a/src/sage/manifolds/subsets/all.py b/src/sage/manifolds/subsets/all.py index e69de29bb2d..332eaf1cdb6 100644 --- a/src/sage/manifolds/subsets/all.py +++ b/src/sage/manifolds/subsets/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-symbolics diff --git a/src/sage/manifolds/subsets/closure.py b/src/sage/manifolds/subsets/closure.py index 9be9f7f9939..3e5ddaa4eb5 100644 --- a/src/sage/manifolds/subsets/closure.py +++ b/src/sage/manifolds/subsets/closure.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Topological Closures of Manifold Subsets diff --git a/src/sage/manifolds/subsets/pullback.py b/src/sage/manifolds/subsets/pullback.py index d62f9936368..62b47a7f452 100644 --- a/src/sage/manifolds/subsets/pullback.py +++ b/src/sage/manifolds/subsets/pullback.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Manifold Subsets Defined as Pullbacks of Subsets under Continuous Maps """ diff --git a/src/sage/manifolds/topological_submanifold.py b/src/sage/manifolds/topological_submanifold.py index a99e6d1fca1..951def0e873 100644 --- a/src/sage/manifolds/topological_submanifold.py +++ b/src/sage/manifolds/topological_submanifold.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Submanifolds of topological manifolds diff --git a/src/sage/manifolds/trivialization.py b/src/sage/manifolds/trivialization.py index 940ce857132..403464fdf91 100644 --- a/src/sage/manifolds/trivialization.py +++ b/src/sage/manifolds/trivialization.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Trivializations diff --git a/src/sage/manifolds/utilities.py b/src/sage/manifolds/utilities.py index b51b7ace03d..73c71e0245c 100644 --- a/src/sage/manifolds/utilities.py +++ b/src/sage/manifolds/utilities.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Utilities for Calculus diff --git a/src/sage/manifolds/vector_bundle.py b/src/sage/manifolds/vector_bundle.py index fa2d277d012..58930b4947d 100644 --- a/src/sage/manifolds/vector_bundle.py +++ b/src/sage/manifolds/vector_bundle.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Topological Vector Bundle diff --git a/src/sage/manifolds/vector_bundle_fiber.py b/src/sage/manifolds/vector_bundle_fiber.py index da255d46fd7..a0d9eb82910 100644 --- a/src/sage/manifolds/vector_bundle_fiber.py +++ b/src/sage/manifolds/vector_bundle_fiber.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Vector Bundle Fibers diff --git a/src/sage/manifolds/vector_bundle_fiber_element.py b/src/sage/manifolds/vector_bundle_fiber_element.py index 19eaf08bb77..394995c3637 100644 --- a/src/sage/manifolds/vector_bundle_fiber_element.py +++ b/src/sage/manifolds/vector_bundle_fiber_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Vector Bundle Fiber Elements diff --git a/src/sage/matrix/action.pxd b/src/sage/matrix/action.pxd index d50965dc8f5..befbb54c2d1 100644 --- a/src/sage/matrix/action.pxd +++ b/src/sage/matrix/action.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport Element, Matrix, Vector from sage.structure.parent cimport Parent from sage.categories.action cimport Action diff --git a/src/sage/matrix/action.pyx b/src/sage/matrix/action.pyx index 732a1312ca1..d0b83d848e3 100644 --- a/src/sage/matrix/action.pyx +++ b/src/sage/matrix/action.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Actions used by the coercion model for matrix and vector multiplications diff --git a/src/sage/matrix/all.py b/src/sage/matrix/all.py index 0902e081afb..1e1b590dad6 100644 --- a/src/sage/matrix/all.py +++ b/src/sage/matrix/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import from sage.matrix.matrix_space import MatrixSpace from sage.matrix.constructor import (matrix, Matrix, column_matrix, random_matrix, diff --git a/src/sage/matrix/all__sagemath_flint.py b/src/sage/matrix/all__sagemath_flint.py new file mode 100644 index 00000000000..d31bae41036 --- /dev/null +++ b/src/sage/matrix/all__sagemath_flint.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/matrix/all__sagemath_gap.py b/src/sage/matrix/all__sagemath_gap.py new file mode 100644 index 00000000000..dd59a6da735 --- /dev/null +++ b/src/sage/matrix/all__sagemath_gap.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-gap diff --git a/src/sage/matrix/all__sagemath_linbox.py b/src/sage/matrix/all__sagemath_linbox.py new file mode 100644 index 00000000000..d3fe8dc3de9 --- /dev/null +++ b/src/sage/matrix/all__sagemath_linbox.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-linbox diff --git a/src/sage/matrix/all__sagemath_ntl.py b/src/sage/matrix/all__sagemath_ntl.py new file mode 100644 index 00000000000..4d8e422331a --- /dev/null +++ b/src/sage/matrix/all__sagemath_ntl.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-ntl diff --git a/src/sage/matrix/all__sagemath_singular.py b/src/sage/matrix/all__sagemath_singular.py new file mode 100644 index 00000000000..84ec2b51067 --- /dev/null +++ b/src/sage/matrix/all__sagemath_singular.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-singular diff --git a/src/sage/matrix/all__sagemath_symbolics.py b/src/sage/matrix/all__sagemath_symbolics.py new file mode 100644 index 00000000000..332eaf1cdb6 --- /dev/null +++ b/src/sage/matrix/all__sagemath_symbolics.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-symbolics diff --git a/src/sage/matrix/args.pxd b/src/sage/matrix/args.pxd index eda2e428801..ad445cd63fa 100644 --- a/src/sage/matrix/args.pxd +++ b/src/sage/matrix/args.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from cpython.object cimport PyObject from sage.structure.element cimport Element, Matrix from sage.structure.parent cimport Parent diff --git a/src/sage/matrix/args.pyx b/src/sage/matrix/args.pyx index 332eaf82df8..a3761345298 100644 --- a/src/sage/matrix/args.pyx +++ b/src/sage/matrix/args.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # cython: wraparound=False # cython: boundscheck=False """ @@ -750,6 +751,9 @@ cdef class MatrixArgs: break else: space = self.space + global MatrixSpace + if MatrixSpace is None: + from sage.matrix.matrix_space import MatrixSpace if not isinstance(space, MatrixSpace): space = space.zero().matrix(side='left').parent() M = space(self, coerce=convert) @@ -806,6 +810,9 @@ cdef class MatrixArgs: cdef Matrix M = self.matrix(convert=True) if immutable: M.set_immutable() + global MatrixSpace + if MatrixSpace is None: + from sage.matrix.matrix_space import MatrixSpace if isinstance(self.space, MatrixSpace): return M return self.space(matrix=M, side='left') diff --git a/src/sage/matrix/benchmark.py b/src/sage/matrix/benchmark.py index 8567f869511..51e718b5a59 100644 --- a/src/sage/matrix/benchmark.py +++ b/src/sage/matrix/benchmark.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.flint """ Benchmarks for matrices diff --git a/src/sage/matrix/berlekamp_massey.py b/src/sage/matrix/berlekamp_massey.py index e9284f3c08e..c9c0db9e594 100644 --- a/src/sage/matrix/berlekamp_massey.py +++ b/src/sage/matrix/berlekamp_massey.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Minimal Polynomials of Linear Recurrence Sequences diff --git a/src/sage/matrix/change_ring.pyx b/src/sage/matrix/change_ring.pyx index e5b5ee5c38f..2179718a986 100644 --- a/src/sage/matrix/change_ring.pyx +++ b/src/sage/matrix/change_ring.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox """ Functions for changing the base ring of matrices quickly """ diff --git a/src/sage/matrix/compute_J_ideal.py b/src/sage/matrix/compute_J_ideal.py index 4155745e856..1efbd3283bd 100644 --- a/src/sage/matrix/compute_J_ideal.py +++ b/src/sage/matrix/compute_J_ideal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.libs.pari (for charpoly, minimal_polynomial in __init__) r""" `J`-ideals of matrices diff --git a/src/sage/matrix/constructor.pyx b/src/sage/matrix/constructor.pyx index de060a11425..5c80434cbb6 100644 --- a/src/sage/matrix/constructor.pyx +++ b/src/sage/matrix/constructor.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # cython: binding=True """ General matrix Constructor and display options diff --git a/src/sage/matrix/docs.py b/src/sage/matrix/docs.py index 274796b1694..6026b349656 100644 --- a/src/sage/matrix/docs.py +++ b/src/sage/matrix/docs.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Matrices over an arbitrary ring diff --git a/src/sage/matrix/echelon_matrix.pyx b/src/sage/matrix/echelon_matrix.pyx index 526900e2a72..92f745b0538 100644 --- a/src/sage/matrix/echelon_matrix.pyx +++ b/src/sage/matrix/echelon_matrix.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Echelon matrices over finite fields. """ diff --git a/src/sage/matrix/matrix.pxd b/src/sage/matrix/matrix.pxd index b67ed5b4969..7899379dc45 100644 --- a/src/sage/matrix/matrix.pxd +++ b/src/sage/matrix/matrix.pxd @@ -1 +1,2 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix2 cimport Matrix diff --git a/src/sage/matrix/matrix0.pxd b/src/sage/matrix/matrix0.pxd index c18c7cdc4a3..3be1da7c607 100644 --- a/src/sage/matrix/matrix0.pxd +++ b/src/sage/matrix/matrix0.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Generic matrices """ diff --git a/src/sage/matrix/matrix0.pyx b/src/sage/matrix/matrix0.pyx index c0d9f93e804..743742246e0 100644 --- a/src/sage/matrix/matrix0.pyx +++ b/src/sage/matrix/matrix0.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Base class for matrices, part 0 diff --git a/src/sage/matrix/matrix1.pxd b/src/sage/matrix/matrix1.pxd index d24468b80e1..72226127f27 100644 --- a/src/sage/matrix/matrix1.pxd +++ b/src/sage/matrix/matrix1.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix0 cimport Matrix as Matrix0 cdef class Matrix(Matrix0): diff --git a/src/sage/matrix/matrix1.pyx b/src/sage/matrix/matrix1.pyx index 0940710150e..e107c004aeb 100644 --- a/src/sage/matrix/matrix1.pyx +++ b/src/sage/matrix/matrix1.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Base class for matrices, part 1 diff --git a/src/sage/matrix/matrix2.pxd b/src/sage/matrix/matrix2.pxd index a2e0297228c..dc1104dfdbe 100644 --- a/src/sage/matrix/matrix2.pxd +++ b/src/sage/matrix/matrix2.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Generic matrices """ diff --git a/src/sage/matrix/matrix2.pyx b/src/sage/matrix/matrix2.pyx index 0c257cfaf33..5e56c426eb4 100644 --- a/src/sage/matrix/matrix2.pyx +++ b/src/sage/matrix/matrix2.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Base class for matrices, part 2 @@ -2419,13 +2420,13 @@ cdef class Matrix(Matrix1): sage: R. = LaurentPolynomialRing(S) sage: MS = MatrixSpace(S, 3, sparse=True) sage: A = MS([[x, y, 3], [4, 2+y, x^2], [0, 1-x, x+y]]) - sage: A.det() + sage: A.det() # needs sage.rings.finite_rings x^4 - x^3 + x^2*y + x*y^2 + 2*x^2 - 2*x*y + 3*y^2 + 2*x - 2 - sage: A.quantum_determinant() + sage: A.quantum_determinant() # needs sage.rings.finite_rings (2*x - 2)*q^2 + (x^4 - x^3 + 3*x*y + 3*y^2)*q + x^2*y + x*y^2 + 2*x^2 + 2*x*y - sage: A.quantum_determinant(int(2)) + sage: A.quantum_determinant(int(2)) # needs sage.rings.finite_rings 2*x^4 - 2*x^3 + x^2*y + x*y^2 + 2*x^2 + x*y - y^2 + x - 1 - sage: A.quantum_determinant(q*x + q^-1*y) + sage: A.quantum_determinant(q*x + q^-1*y) # needs sage.rings.finite_rings (2*x*y^2 - 2*y^2)*q^-2 + (x^4*y - x^3*y + 3*x*y^2 + 3*y^3)*q^-1 + (-2*x^2*y + x*y^2 + 2*x^2 - 2*x*y) + (x^5 - x^4 + 3*x^2*y + 3*x*y^2)*q + (2*x^3 - 2*x^2)*q^2 @@ -3910,7 +3911,11 @@ cdef class Matrix(Matrix1): """ from sage.matrix.matrix_space import MatrixSpace tm = verbose("computing right kernel matrix over a number field for %sx%s matrix" % (self.nrows(), self.ncols()), level=2) - basis = self.__pari__().matker() + try: + self_pari = self.__pari__() + except ImportError: + return None, None + basis = self_pari.matker() # Coerce PARI representations into the number field R = self.base_ring() basis = [[R(x) for x in row] for row in basis] @@ -7763,7 +7768,10 @@ cdef class Matrix(Matrix1): cdef Matrix d, a cdef Py_ssize_t r, c cdef bint transformation = 'transformation' in kwds and kwds['transformation'] - if self._base_ring == ZZ: + + if self._base_ring == ZZ and self.dense_matrix() is not self: + # delegate to the specialized echelon form + # implemented in matrix_integer_dense if 'include_zero_rows' in kwds and not kwds['include_zero_rows']: raise ValueError("cannot echelonize in place and delete zero rows") if transformation: @@ -11440,9 +11448,9 @@ cdef class Matrix(Matrix1): [0 0|0 0|0 1|0] [---+---+---+-] [0 0|0 0|0 0|1] - sage: M * T == T * J + sage: M * T == T * J # needs sage.rings.finite_rings True - sage: T.rank() + sage: T.rank() # needs sage.rings.finite_rings 7 sage: M.rank() 7 diff --git a/src/sage/matrix/matrix_cdv.pxd b/src/sage/matrix/matrix_cdv.pxd index f7684da49f2..fb7f4b29b60 100644 --- a/src/sage/matrix/matrix_cdv.pxd +++ b/src/sage/matrix/matrix_cdv.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix_generic_dense cimport Matrix_generic_dense cpdef hessenbergize_cdvf(Matrix_generic_dense) diff --git a/src/sage/matrix/matrix_cdv.pyx b/src/sage/matrix/matrix_cdv.pyx index 238d875844f..52e9bc90eec 100644 --- a/src/sage/matrix/matrix_cdv.pyx +++ b/src/sage/matrix/matrix_cdv.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Special methods for matrices over discrete valuation rings/fields. """ diff --git a/src/sage/matrix/matrix_complex_ball_dense.pxd b/src/sage/matrix/matrix_complex_ball_dense.pxd index effa0413026..9d901f1c65c 100644 --- a/src/sage/matrix/matrix_complex_ball_dense.pxd +++ b/src/sage/matrix/matrix_complex_ball_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.flint.types cimport acb_mat_t from sage.matrix.matrix_dense cimport Matrix_dense from sage.matrix.matrix_generic_dense cimport Matrix_generic_dense diff --git a/src/sage/matrix/matrix_complex_ball_dense.pyx b/src/sage/matrix/matrix_complex_ball_dense.pyx index b8b193145c7..b4f70cd7570 100644 --- a/src/sage/matrix/matrix_complex_ball_dense.pyx +++ b/src/sage/matrix/matrix_complex_ball_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint r""" Arbitrary precision complex ball matrices diff --git a/src/sage/matrix/matrix_complex_double_dense.pxd b/src/sage/matrix/matrix_complex_double_dense.pxd index a9041564e43..1626912bb9d 100644 --- a/src/sage/matrix/matrix_complex_double_dense.pxd +++ b/src/sage/matrix/matrix_complex_double_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix_double_dense cimport Matrix_double_dense cdef class Matrix_complex_double_dense(Matrix_double_dense): diff --git a/src/sage/matrix/matrix_complex_double_dense.pyx b/src/sage/matrix/matrix_complex_double_dense.pyx index b86516fd121..e499dd9fa97 100644 --- a/src/sage/matrix/matrix_complex_double_dense.pyx +++ b/src/sage/matrix/matrix_complex_double_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy """ Dense matrices over the Complex Double Field using NumPy diff --git a/src/sage/matrix/matrix_cyclo_dense.pxd b/src/sage/matrix/matrix_cyclo_dense.pxd index 13f72389cf5..ebefa73cc8a 100644 --- a/src/sage/matrix/matrix_cyclo_dense.pxd +++ b/src/sage/matrix/matrix_cyclo_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-linbox + from sage.libs.gmp.types cimport mpz_t from sage.matrix.matrix_dense cimport Matrix_dense from sage.matrix.matrix_rational_dense cimport Matrix_rational_dense diff --git a/src/sage/matrix/matrix_cyclo_dense.pyx b/src/sage/matrix/matrix_cyclo_dense.pyx index f32d738df0d..4872e0d0481 100644 --- a/src/sage/matrix/matrix_cyclo_dense.pyx +++ b/src/sage/matrix/matrix_cyclo_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: language = c++ # distutils: libraries = NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS diff --git a/src/sage/matrix/matrix_dense.pxd b/src/sage/matrix/matrix_dense.pxd index 30c3effe02a..f8da138b44c 100644 --- a/src/sage/matrix/matrix_dense.pxd +++ b/src/sage/matrix/matrix_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix cimport Matrix cdef class Matrix_dense(Matrix): diff --git a/src/sage/matrix/matrix_dense.pyx b/src/sage/matrix/matrix_dense.pyx index f26078bde7e..46c8c2005b0 100644 --- a/src/sage/matrix/matrix_dense.pyx +++ b/src/sage/matrix/matrix_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Base class for dense matrices diff --git a/src/sage/matrix/matrix_domain_dense.pxd b/src/sage/matrix/matrix_domain_dense.pxd index 8a6e487c493..f924ac01457 100644 --- a/src/sage/matrix/matrix_domain_dense.pxd +++ b/src/sage/matrix/matrix_domain_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix cimport Matrix cdef class Matrix_domain_dense(Matrix): diff --git a/src/sage/matrix/matrix_domain_sparse.pxd b/src/sage/matrix/matrix_domain_sparse.pxd index c5882238632..4af5a3e5c91 100644 --- a/src/sage/matrix/matrix_domain_sparse.pxd +++ b/src/sage/matrix/matrix_domain_sparse.pxd @@ -1,4 +1,7 @@ +# sage_setup: distribution = sagemath-modules + from sage.matrix.matrix cimport Matrix + cdef class Matrix_domain_sparse(Matrix): pass diff --git a/src/sage/matrix/matrix_double_dense.pxd b/src/sage/matrix/matrix_double_dense.pxd index 3f2cb525b10..ac4ee7ce6b7 100644 --- a/src/sage/matrix/matrix_double_dense.pxd +++ b/src/sage/matrix/matrix_double_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix_numpy_dense cimport Matrix_numpy_dense diff --git a/src/sage/matrix/matrix_double_dense.pyx b/src/sage/matrix/matrix_double_dense.pyx index 714edb22b32..832ae984cd7 100644 --- a/src/sage/matrix/matrix_double_dense.pyx +++ b/src/sage/matrix/matrix_double_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy """ Dense matrices using a NumPy backend diff --git a/src/sage/matrix/matrix_double_sparse.pxd b/src/sage/matrix/matrix_double_sparse.pxd index 0a292404338..5518aae771a 100644 --- a/src/sage/matrix/matrix_double_sparse.pxd +++ b/src/sage/matrix/matrix_double_sparse.pxd @@ -1,5 +1,5 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix_generic_sparse cimport Matrix_generic_sparse - cdef class Matrix_double_sparse(Matrix_generic_sparse): pass diff --git a/src/sage/matrix/matrix_double_sparse.pyx b/src/sage/matrix/matrix_double_sparse.pyx index 0014121dcb8..f138cdc4746 100644 --- a/src/sage/matrix/matrix_double_sparse.pyx +++ b/src/sage/matrix/matrix_double_sparse.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix2 cimport Matrix from sage.matrix.matrix_generic_sparse cimport Matrix_generic_sparse diff --git a/src/sage/matrix/matrix_gap.pxd b/src/sage/matrix/matrix_gap.pxd index f378adbfc2a..19674a56d0a 100644 --- a/src/sage/matrix/matrix_gap.pxd +++ b/src/sage/matrix/matrix_gap.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap from sage.matrix.matrix_dense cimport Matrix_dense from sage.libs.gap.element cimport GapElement diff --git a/src/sage/matrix/matrix_gap.pyx b/src/sage/matrix/matrix_gap.pyx index f5a6e1d10e7..b4294c4f7ed 100644 --- a/src/sage/matrix/matrix_gap.pyx +++ b/src/sage/matrix/matrix_gap.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap r""" Wrappers on GAP matrices """ diff --git a/src/sage/matrix/matrix_generic_dense.pxd b/src/sage/matrix/matrix_generic_dense.pxd index ba37428cb1f..c962d987393 100644 --- a/src/sage/matrix/matrix_generic_dense.pxd +++ b/src/sage/matrix/matrix_generic_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.matrix.matrix_dense cimport Matrix_dense diff --git a/src/sage/matrix/matrix_generic_dense.pyx b/src/sage/matrix/matrix_generic_dense.pyx index 28603b5a930..0e00342d6b6 100644 --- a/src/sage/matrix/matrix_generic_dense.pyx +++ b/src/sage/matrix/matrix_generic_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Dense Matrices over a general ring """ diff --git a/src/sage/matrix/matrix_generic_sparse.pxd b/src/sage/matrix/matrix_generic_sparse.pxd index 461fb38e18b..f674a3b3a56 100644 --- a/src/sage/matrix/matrix_generic_sparse.pxd +++ b/src/sage/matrix/matrix_generic_sparse.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix_sparse cimport Matrix_sparse diff --git a/src/sage/matrix/matrix_generic_sparse.pyx b/src/sage/matrix/matrix_generic_sparse.pyx index 8c57e50b08a..1acef54e0b4 100644 --- a/src/sage/matrix/matrix_generic_sparse.pyx +++ b/src/sage/matrix/matrix_generic_sparse.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Sparse Matrices over a general ring diff --git a/src/sage/matrix/matrix_gf2e_dense.pxd b/src/sage/matrix/matrix_gf2e_dense.pxd index dcd1019f230..9357616496b 100644 --- a/src/sage/matrix/matrix_gf2e_dense.pxd +++ b/src/sage/matrix/matrix_gf2e_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox from sage.libs.m4rie cimport mzed_t from sage.libs.m4ri cimport m4ri_word from sage.matrix.matrix_dense cimport Matrix_dense diff --git a/src/sage/matrix/matrix_gf2e_dense.pyx b/src/sage/matrix/matrix_gf2e_dense.pyx index 5b7fd1fe2af..e720d7e1e5e 100644 --- a/src/sage/matrix/matrix_gf2e_dense.pyx +++ b/src/sage/matrix/matrix_gf2e_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: libraries = m4rie M4RI_LIBRARIES m # distutils: library_dirs = M4RI_LIBDIR # distutils: include_dirs = M4RI_INCDIR diff --git a/src/sage/matrix/matrix_gfpn_dense.pyx b/src/sage/matrix/matrix_gfpn_dense.pyx index 9d4e113e522..2e0ba78d649 100644 --- a/src/sage/matrix/matrix_gfpn_dense.pyx +++ b/src/sage/matrix/matrix_gfpn_dense.pyx @@ -1,5 +1,5 @@ -# distutils: libraries = mtx # sage_setup: distribution = sagemath-meataxe +# distutils: libraries = mtx # sage.doctest: optional - meataxe r""" diff --git a/src/sage/matrix/matrix_integer_dense.pxd b/src/sage/matrix/matrix_integer_dense.pxd index c60b4422e97..d644241bbc3 100644 --- a/src/sage/matrix/matrix_integer_dense.pxd +++ b/src/sage/matrix/matrix_integer_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.libs.gmp.types cimport * from sage.libs.flint.types cimport fmpz_mat_t diff --git a/src/sage/matrix/matrix_integer_dense.pyx b/src/sage/matrix/matrix_integer_dense.pyx index b6a832c38d9..aa7306bdd76 100644 --- a/src/sage/matrix/matrix_integer_dense.pyx +++ b/src/sage/matrix/matrix_integer_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: extra_compile_args = NTL_CFLAGS M4RI_CFLAGS # distutils: libraries = iml NTL_LIBRARIES gmp m CBLAS_LIBRARIES # distutils: library_dirs = NTL_LIBDIR CBLAS_LIBDIR @@ -2110,6 +2111,45 @@ cdef class Matrix_integer_dense(Matrix_dense): self.cache(key, ans) return ans + def _echelonize_ring(self, **kwds): + r""" + Echelonize self in place, where the base ring of self is assumed to + be a ring (not a field). + + EXAMPLES:: + + sage: a = matrix(ZZ, 3, 4, [1..12], sparse=False); a + [ 1 2 3 4] + [ 5 6 7 8] + [ 9 10 11 12] + sage: a._echelonize_ring() + sage: a + [ 1 2 3 4] + [ 0 4 8 12] + [ 0 0 0 0] + """ + self.check_mutability() + cdef Matrix d, a + cdef Py_ssize_t r, c + cdef bint transformation = 'transformation' in kwds and kwds['transformation'] + + if 'include_zero_rows' in kwds and not kwds['include_zero_rows']: + raise ValueError("cannot echelonize in place and delete zero rows") + if transformation: + d, a = self.echelon_form(**kwds) + else: + d = self.echelon_form(**kwds) + for c from 0 <= c < self.ncols(): + for r from 0 <= r < self.nrows(): + self.set_unsafe(r, c, d.get_unsafe(r,c)) + self.clear_cache() + self.cache('pivots', d.pivots()) + self.cache('in_echelon_form', True) + if transformation: + return a + else: + return + def saturation(self, p=0, proof=None, max_dets=5): r""" Return a saturation matrix of self, which is a matrix whose rows diff --git a/src/sage/matrix/matrix_integer_dense_hnf.py b/src/sage/matrix/matrix_integer_dense_hnf.py index e64134ea184..cb68a0186b7 100644 --- a/src/sage/matrix/matrix_integer_dense_hnf.py +++ b/src/sage/matrix/matrix_integer_dense_hnf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox """ Modular algorithm to compute Hermite normal forms of integer matrices diff --git a/src/sage/matrix/matrix_integer_dense_saturation.py b/src/sage/matrix/matrix_integer_dense_saturation.py index b537b041e08..c2cdfe26338 100644 --- a/src/sage/matrix/matrix_integer_dense_saturation.py +++ b/src/sage/matrix/matrix_integer_dense_saturation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox """ Saturation over ZZ """ diff --git a/src/sage/matrix/matrix_integer_sparse.pxd b/src/sage/matrix/matrix_integer_sparse.pxd index fbfa9c9a793..6d2ad42805e 100644 --- a/src/sage/matrix/matrix_integer_sparse.pxd +++ b/src/sage/matrix/matrix_integer_sparse.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.modules.vector_integer_sparse cimport mpz_vector from sage.ext.mod_int cimport mod_int from sage.matrix.matrix_sparse cimport Matrix_sparse diff --git a/src/sage/matrix/matrix_integer_sparse.pyx b/src/sage/matrix/matrix_integer_sparse.pyx index ca8949e5cad..ad302b470be 100644 --- a/src/sage/matrix/matrix_integer_sparse.pyx +++ b/src/sage/matrix/matrix_integer_sparse.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox r""" Sparse integer matrices diff --git a/src/sage/matrix/matrix_laurent_mpolynomial_dense.pxd b/src/sage/matrix/matrix_laurent_mpolynomial_dense.pxd index 2a1170d0bc5..5edd4f07346 100644 --- a/src/sage/matrix/matrix_laurent_mpolynomial_dense.pxd +++ b/src/sage/matrix/matrix_laurent_mpolynomial_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix_generic_dense cimport Matrix_generic_dense cdef class Matrix_Laurent_mpolynomial_dense(Matrix_generic_dense): diff --git a/src/sage/matrix/matrix_laurent_mpolynomial_dense.pyx b/src/sage/matrix/matrix_laurent_mpolynomial_dense.pyx index d18140c1ce8..450f6ea8ad1 100644 --- a/src/sage/matrix/matrix_laurent_mpolynomial_dense.pyx +++ b/src/sage/matrix/matrix_laurent_mpolynomial_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Dense matrices over multivariate polynomials over fields. diff --git a/src/sage/matrix/matrix_misc.py b/src/sage/matrix/matrix_misc.py index 35591735e57..c20afe38253 100644 --- a/src/sage/matrix/matrix_misc.py +++ b/src/sage/matrix/matrix_misc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Miscellaneous matrix functions """ diff --git a/src/sage/matrix/matrix_mod2_dense.pxd b/src/sage/matrix/matrix_mod2_dense.pxd index ea3575ef3be..e1278d8b19e 100644 --- a/src/sage/matrix/matrix_mod2_dense.pxd +++ b/src/sage/matrix/matrix_mod2_dense.pxd @@ -1,4 +1,6 @@ -from .matrix_dense cimport Matrix_dense +# sage_setup: distribution = sagemath-linbox + +from sage.matrix.matrix_dense cimport Matrix_dense from sage.libs.m4ri cimport * cdef class Matrix_mod2_dense(Matrix_dense): diff --git a/src/sage/matrix/matrix_mod2_dense.pyx b/src/sage/matrix/matrix_mod2_dense.pyx index 07c54d6add9..2aa98c2dac6 100644 --- a/src/sage/matrix/matrix_mod2_dense.pyx +++ b/src/sage/matrix/matrix_mod2_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: libraries = M4RI_LIBRARIES GDLIB_LIBRARIES LIBPNG_LIBRARIES ZLIB_LIBRARIES # distutils: library_dirs = M4RI_LIBDIR GDLIB_LIBDIR LIBPNG_LIBDIR ZLIB_LIBDIR # distutils: include_dirs = M4RI_INCDIR GDLIB_INCDIR LIBPNG_INCDIR ZLIB_INCDIR diff --git a/src/sage/matrix/matrix_modn_dense_double.pxd b/src/sage/matrix/matrix_modn_dense_double.pxd index 8cea9f2993b..33e60ee9660 100644 --- a/src/sage/matrix/matrix_modn_dense_double.pxd +++ b/src/sage/matrix/matrix_modn_dense_double.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl ctypedef double celement include "matrix_modn_dense_template_header.pxi" diff --git a/src/sage/matrix/matrix_modn_dense_double.pyx b/src/sage/matrix/matrix_modn_dense_double.pyx index ecb41e7d5dd..87299d5815b 100644 --- a/src/sage/matrix/matrix_modn_dense_double.pyx +++ b/src/sage/matrix/matrix_modn_dense_double.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: language = c++ # distutils: libraries = CBLAS_LIBRARIES # distutils: library_dirs = CBLAS_LIBDIR diff --git a/src/sage/matrix/matrix_modn_dense_float.pxd b/src/sage/matrix/matrix_modn_dense_float.pxd index 697e1e79e57..99d9e4ed1ca 100644 --- a/src/sage/matrix/matrix_modn_dense_float.pxd +++ b/src/sage/matrix/matrix_modn_dense_float.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl ctypedef float celement include "matrix_modn_dense_template_header.pxi" diff --git a/src/sage/matrix/matrix_modn_dense_float.pyx b/src/sage/matrix/matrix_modn_dense_float.pyx index 13dedf8441c..6248eb5736f 100644 --- a/src/sage/matrix/matrix_modn_dense_float.pyx +++ b/src/sage/matrix/matrix_modn_dense_float.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: language = c++ # distutils: libraries = CBLAS_LIBRARIES # distutils: library_dirs = CBLAS_LIBDIR diff --git a/src/sage/matrix/matrix_modn_dense_template.pxi b/src/sage/matrix/matrix_modn_dense_template.pxi index 36830da0549..3b2815508af 100644 --- a/src/sage/matrix/matrix_modn_dense_template.pxi +++ b/src/sage/matrix/matrix_modn_dense_template.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl r""" Dense matrices over `\ZZ/n\ZZ` for `n` small using the LinBox library (FFLAS/FFPACK) @@ -1692,13 +1693,13 @@ cdef class Matrix_modn_dense_template(Matrix_dense): sage: A = random_matrix(GF(16007), 0, 10) sage: A.echelon_form() [] - sage: A = random_matrix(GF(16007), 10, 0) + sage: A = random_matrix(GF(16007), 10, 0) # needs sage.libs.pari sage: A.echelon_form() [] - sage: A = random_matrix(GF(16007), 0, 0) + sage: A = random_matrix(GF(16007), 0, 0) # needs sage.libs.pari sage: A.echelon_form() [] - sage: A = matrix(GF(16007), 10, 10) + sage: A = matrix(GF(16007), 10, 10) # needs sage.libs.pari sage: A.echelon_form() [0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0] @@ -2155,10 +2156,10 @@ cdef class Matrix_modn_dense_template(Matrix_dense): sage: A = random_matrix(GF(16007), 0, 0) sage: A.rank() 0 - sage: A = random_matrix(GF(16007), 1, 0) + sage: A = random_matrix(GF(16007), 1, 0) # needs sage.libs.pari sage: A.rank() 0 - sage: A = random_matrix(GF(16007), 0, 1) + sage: A = random_matrix(GF(16007), 0, 1) # needs sage.libs.pari sage: A.rank() 0 """ @@ -2182,18 +2183,18 @@ cdef class Matrix_modn_dense_template(Matrix_dense): EXAMPLES:: sage: s = set() - sage: while s != set(GF(7)): + sage: while s != set(GF(7)): # needs sage.libs.pari ....: A = random_matrix(GF(7), 10, 10) ....: s.add(A.determinant()) :: sage: A = random_matrix(GF(7), 100, 100) - sage: A.determinant() == A.transpose().determinant() + sage: A.determinant() == A.transpose().determinant() # needs sage.libs.pari True sage: B = random_matrix(GF(7), 100, 100) - sage: (A*B).determinant() == A.determinant() * B.determinant() + sage: (A*B).determinant() == A.determinant() * B.determinant() # needs sage.libs.pari True :: @@ -2221,10 +2222,10 @@ cdef class Matrix_modn_dense_template(Matrix_dense): sage: A = random_matrix(GF(65521),200) sage: B = copy(A) sage: Parallelism().set('linbox', nproc=2) - sage: d = A.determinant() + sage: d = A.determinant() # needs sage.libs.pari sage: Parallelism().set('linbox', nproc=1) # switch off parallelization - sage: e = B.determinant() - sage: d==e + sage: e = B.determinant() # needs sage.libs.pari + sage: d==e # needs sage.libs.pari True TESTS:: diff --git a/src/sage/matrix/matrix_modn_dense_template_header.pxi b/src/sage/matrix/matrix_modn_dense_template_header.pxi index b5f12c69397..90ca36aaedd 100644 --- a/src/sage/matrix/matrix_modn_dense_template_header.pxi +++ b/src/sage/matrix/matrix_modn_dense_template_header.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl """ Dense Matrix Template for C/C++ Library Interfaces """ diff --git a/src/sage/matrix/matrix_modn_sparse.pxd b/src/sage/matrix/matrix_modn_sparse.pxd index dded069b3d8..c808458ab3a 100644 --- a/src/sage/matrix/matrix_modn_sparse.pxd +++ b/src/sage/matrix/matrix_modn_sparse.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.matrix.matrix_sparse cimport Matrix_sparse from sage.modules.vector_modn_sparse cimport * diff --git a/src/sage/matrix/matrix_modn_sparse.pyx b/src/sage/matrix/matrix_modn_sparse.pyx index 3334744500c..bcccb67dc7d 100644 --- a/src/sage/matrix/matrix_modn_sparse.pyx +++ b/src/sage/matrix/matrix_modn_sparse.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox r""" Sparse matrices over `\ZZ/n\ZZ` for `n` small diff --git a/src/sage/matrix/matrix_mpolynomial_dense.pxd b/src/sage/matrix/matrix_mpolynomial_dense.pxd index e4d70ba9dd0..0a4891f5e18 100644 --- a/src/sage/matrix/matrix_mpolynomial_dense.pxd +++ b/src/sage/matrix/matrix_mpolynomial_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular from sage.matrix.matrix_generic_dense cimport Matrix_generic_dense from sage.libs.singular.decl cimport ideal diff --git a/src/sage/matrix/matrix_mpolynomial_dense.pyx b/src/sage/matrix/matrix_mpolynomial_dense.pyx index a85918a003f..287c615bf2f 100644 --- a/src/sage/matrix/matrix_mpolynomial_dense.pyx +++ b/src/sage/matrix/matrix_mpolynomial_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Dense matrices over multivariate polynomials over fields diff --git a/src/sage/matrix/matrix_numpy_dense.pxd b/src/sage/matrix/matrix_numpy_dense.pxd index 4fe2c65e0fc..162ae943c6b 100644 --- a/src/sage/matrix/matrix_numpy_dense.pxd +++ b/src/sage/matrix/matrix_numpy_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + cimport numpy as cnumpy from sage.matrix.matrix_dense cimport Matrix_dense diff --git a/src/sage/matrix/matrix_numpy_dense.pyx b/src/sage/matrix/matrix_numpy_dense.pyx index e6420bf29c8..d8f4232fad2 100644 --- a/src/sage/matrix/matrix_numpy_dense.pyx +++ b/src/sage/matrix/matrix_numpy_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy """ Dense matrices using a NumPy backend diff --git a/src/sage/matrix/matrix_numpy_integer_dense.pxd b/src/sage/matrix/matrix_numpy_integer_dense.pxd index 3116f89d8e2..6d63f9808e4 100644 --- a/src/sage/matrix/matrix_numpy_integer_dense.pxd +++ b/src/sage/matrix/matrix_numpy_integer_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix_numpy_dense cimport Matrix_numpy_dense diff --git a/src/sage/matrix/matrix_numpy_integer_dense.pyx b/src/sage/matrix/matrix_numpy_integer_dense.pyx index d241ca57ac1..a8c2390c5c5 100644 --- a/src/sage/matrix/matrix_numpy_integer_dense.pyx +++ b/src/sage/matrix/matrix_numpy_integer_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy r""" Dense integer matrices using a NumPy backend diff --git a/src/sage/matrix/matrix_polynomial_dense.pxd b/src/sage/matrix/matrix_polynomial_dense.pxd index 14caadea50c..1ed11b24e3c 100644 --- a/src/sage/matrix/matrix_polynomial_dense.pxd +++ b/src/sage/matrix/matrix_polynomial_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.matrix.matrix_generic_dense cimport Matrix_generic_dense cdef class Matrix_polynomial_dense(Matrix_generic_dense): diff --git a/src/sage/matrix/matrix_polynomial_dense.pyx b/src/sage/matrix/matrix_polynomial_dense.pyx index 5b3c56ae573..987b0a66f44 100644 --- a/src/sage/matrix/matrix_polynomial_dense.pyx +++ b/src/sage/matrix/matrix_polynomial_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Dense matrices over univariate polynomials over fields @@ -894,13 +895,13 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): [5*x^2 + 2*x + 5 5*x + 5 2*x + 4] [5*x^3 + 2*x + 1 2*x^2 + 2*x + 5 4*x^2] - sage: V = Matrix([[3*x^2 + 4*x + 1, 4*x]]) - sage: A[:2,:].solve_left_series_trunc(V*A[:2,:], 4) == V + sage: V = Matrix([[3*x^2 + 4*x + 1, 4*x]]) # needs sage.rings.finite_rings + sage: A[:2,:].solve_left_series_trunc(V*A[:2,:], 4) == V # needs sage.rings.finite_rings True - sage: A[1,:] = (x+1) * A[0,:]; A[2,:] = (x+5) * A[0,:] - sage: B = (3*x^3+x^2+2)*A[0,:] - sage: A.solve_left_series_trunc(B, 6) + sage: A[1,:] = (x+1) * A[0,:]; A[2,:] = (x+5) * A[0,:] # needs sage.rings.finite_rings + sage: B = (3*x^3+x^2+2)*A[0,:] # needs sage.rings.finite_rings + sage: A.solve_left_series_trunc(B, 6) # needs sage.rings.finite_rings [4*x^2 + 6*x + 2 3*x^2 + x 0] .. SEEALSO:: @@ -2670,7 +2671,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): sage: A == B*Q+R and all(rdegR[i] < rdegB[i] for i in range(3)) True - sage: A[:2,:].left_quo_rem(B) + sage: A[:2,:].left_quo_rem(B) # needs sage.rings.finite_rings Traceback (most recent call last): ... ValueError: row dimension of self should be the row dimension of @@ -2692,7 +2693,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): sage: all([rdegR[i] < rdegB[i] for i in range(len(rdegR))]) True - sage: A.left_quo_rem(B[:,:2]) + sage: A.left_quo_rem(B[:,:2]) # needs sage.rings.finite_rings Traceback (most recent call last): ... ValueError: division of these matrices does not admit a remainder diff --git a/src/sage/matrix/matrix_rational_dense.pxd b/src/sage/matrix/matrix_rational_dense.pxd index d2d9955fefc..0f196e53f9e 100644 --- a/src/sage/matrix/matrix_rational_dense.pxd +++ b/src/sage/matrix/matrix_rational_dense.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.libs.flint.types cimport fmpz_t, fmpq_mat_t from sage.matrix.matrix_dense cimport Matrix_dense diff --git a/src/sage/matrix/matrix_rational_dense.pyx b/src/sage/matrix/matrix_rational_dense.pyx index ee22058d4fe..e5dc7db7b08 100644 --- a/src/sage/matrix/matrix_rational_dense.pyx +++ b/src/sage/matrix/matrix_rational_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: extra_compile_args = -D_XPG6 NTL_CFLAGS M4RI_CFLAGS # distutils: extra_link_args = NTL_LIBEXTRA # distutils: libraries = iml NTL_LIBRARIES m CBLAS_LIBRARIES diff --git a/src/sage/matrix/matrix_rational_sparse.pxd b/src/sage/matrix/matrix_rational_sparse.pxd index c754850bee9..e6753ac0f4d 100644 --- a/src/sage/matrix/matrix_rational_sparse.pxd +++ b/src/sage/matrix/matrix_rational_sparse.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.libs.gmp.types cimport mpz_t from sage.modules.vector_rational_sparse cimport mpq_vector from sage.matrix.matrix_sparse cimport Matrix_sparse diff --git a/src/sage/matrix/matrix_rational_sparse.pyx b/src/sage/matrix/matrix_rational_sparse.pyx index 8e9898642c3..d57eb470d36 100644 --- a/src/sage/matrix/matrix_rational_sparse.pyx +++ b/src/sage/matrix/matrix_rational_sparse.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox """ Sparse rational matrices diff --git a/src/sage/matrix/matrix_real_double_dense.pxd b/src/sage/matrix/matrix_real_double_dense.pxd index d781a84ce40..28d983ddbe0 100644 --- a/src/sage/matrix/matrix_real_double_dense.pxd +++ b/src/sage/matrix/matrix_real_double_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.matrix.matrix_double_dense cimport Matrix_double_dense diff --git a/src/sage/matrix/matrix_real_double_dense.pyx b/src/sage/matrix/matrix_real_double_dense.pyx index 10eaeac4e56..a24098bb2f6 100644 --- a/src/sage/matrix/matrix_real_double_dense.pyx +++ b/src/sage/matrix/matrix_real_double_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy """ Dense matrices over the Real Double Field using NumPy diff --git a/src/sage/matrix/matrix_space.py b/src/sage/matrix/matrix_space.py index 431cf6f5bd9..90b79732d44 100644 --- a/src/sage/matrix/matrix_space.py +++ b/src/sage/matrix/matrix_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Matrix Spaces @@ -145,7 +146,7 @@ def get_matrix_class(R, nrows, ncols, sparse, implementation): sage: get_matrix_class(CDF, 2, 3, False, 'numpy') # needs numpy sage.rings.complex_double - sage: get_matrix_class(GF(25,'x'), 4, 4, False, 'meataxe') # optional - meataxe, needs sage.rings.finite_rings + sage: get_matrix_class(GF(25,'x'), 4, 4, False, 'meataxe') # optional - meataxe, needs sage.rings.finite_rings sage: get_matrix_class(IntegerModRing(3), 4, 4, False, 'meataxe') # optional - meataxe @@ -190,7 +191,7 @@ def get_matrix_class(R, nrows, ncols, sparse, implementation): sage: type(matrix(GF(64, 'z'), 2, range(4))) # needs sage.libs.m4ri sage.rings.finite_rings - sage: type(matrix(GF(125, 'z'), 2, range(4))) # optional - meataxe, needs sage.rings.finite_rings + sage: type(matrix(GF(125, 'z'), 2, range(4))) # optional - meataxe # needs sage.rings.finite_rings """ if isinstance(implementation, type): @@ -1408,7 +1409,7 @@ def _coerce_map_from_(self, S): ....: else: ....: mult += ' ' ....: mult += '\n' - sage: print(mult) # needs sage.libs.linbox sage.libs.gap + sage: print(mult) # needs sage.libs.gap sage.libs.linbox XXXX X X XX diff --git a/src/sage/matrix/matrix_sparse.pxd b/src/sage/matrix/matrix_sparse.pxd index 7546645a6c9..e433a675d9b 100644 --- a/src/sage/matrix/matrix_sparse.pxd +++ b/src/sage/matrix/matrix_sparse.pxd @@ -1,4 +1,6 @@ -from .matrix cimport Matrix +# sage_setup: distribution = sagemath-modules + +from sage.matrix.matrix cimport Matrix cdef class Matrix_sparse(Matrix): pass diff --git a/src/sage/matrix/matrix_sparse.pyx b/src/sage/matrix/matrix_sparse.pyx index 95b8969e0aa..c95c2de8d40 100644 --- a/src/sage/matrix/matrix_sparse.pyx +++ b/src/sage/matrix/matrix_sparse.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + r""" Base class for sparse matrices """ diff --git a/src/sage/matrix/matrix_symbolic_dense.pxd b/src/sage/matrix/matrix_symbolic_dense.pxd index aa85e4c6a21..0b405e4d724 100644 --- a/src/sage/matrix/matrix_symbolic_dense.pxd +++ b/src/sage/matrix/matrix_symbolic_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-symbolics + from sage.matrix.matrix_generic_dense cimport Matrix_generic_dense diff --git a/src/sage/matrix/matrix_symbolic_dense.pyx b/src/sage/matrix/matrix_symbolic_dense.pyx index 4e64a22cd15..996f82ea5c9 100644 --- a/src/sage/matrix/matrix_symbolic_dense.pyx +++ b/src/sage/matrix/matrix_symbolic_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Symbolic dense matrices diff --git a/src/sage/matrix/matrix_symbolic_sparse.pxd b/src/sage/matrix/matrix_symbolic_sparse.pxd index c90e0161119..2c6c1fa567b 100644 --- a/src/sage/matrix/matrix_symbolic_sparse.pxd +++ b/src/sage/matrix/matrix_symbolic_sparse.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-symbolics + from sage.matrix.matrix_generic_sparse cimport Matrix_generic_sparse diff --git a/src/sage/matrix/matrix_symbolic_sparse.pyx b/src/sage/matrix/matrix_symbolic_sparse.pyx index a1acdc401b4..4e0824b54b6 100644 --- a/src/sage/matrix/matrix_symbolic_sparse.pyx +++ b/src/sage/matrix/matrix_symbolic_sparse.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Symbolic sparse matrices diff --git a/src/sage/matrix/matrix_window.pxd b/src/sage/matrix/matrix_window.pxd index 070f1deaf25..fcdc8b74274 100644 --- a/src/sage/matrix/matrix_window.pxd +++ b/src/sage/matrix/matrix_window.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.matrix.matrix cimport Matrix diff --git a/src/sage/matrix/matrix_window.pyx b/src/sage/matrix/matrix_window.pyx index 8c79540f6ef..c694219c642 100644 --- a/src/sage/matrix/matrix_window.pyx +++ b/src/sage/matrix/matrix_window.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Matrix windows """ diff --git a/src/sage/matrix/meson.build.in b/src/sage/matrix/meson.build.in new file mode 100644 index 00000000000..1551376f8d9 --- /dev/null +++ b/src/sage/matrix/meson.build.in @@ -0,0 +1,11 @@ +# Cannot be found via pkg-config +meataxe = declare_dependency( + dependencies: [ + cc.find_library('meataxe', required: false), + ] +) +iml = declare_dependency( + dependencies: [ + cc.find_library('iml'), + ] +) diff --git a/src/sage/matrix/misc.pyx b/src/sage/matrix/misc.pyx index 17277336e3c..e70b91f245d 100644 --- a/src/sage/matrix/misc.pyx +++ b/src/sage/matrix/misc.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox """ Misc matrix algorithms """ diff --git a/src/sage/matrix/misc_flint.pyx b/src/sage/matrix/misc_flint.pyx index 2d054c9e718..d4f26da6752 100644 --- a/src/sage/matrix/misc_flint.pyx +++ b/src/sage/matrix/misc_flint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Misc matrix algorithms using FLINT """ diff --git a/src/sage/matrix/misc_mpfr.pyx b/src/sage/matrix/misc_mpfr.pyx index 91613b16492..9e9905c6b47 100644 --- a/src/sage/matrix/misc_mpfr.pyx +++ b/src/sage/matrix/misc_mpfr.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Misc matrix algorithms using MPFR """ diff --git a/src/sage/matrix/operation_table.py b/src/sage/matrix/operation_table.py index 89943f90b3b..1148e897337 100644 --- a/src/sage/matrix/operation_table.py +++ b/src/sage/matrix/operation_table.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Operation Tables diff --git a/src/sage/matrix/special.py b/src/sage/matrix/special.py index b81703b6fe7..3c31cfcbe5c 100644 --- a/src/sage/matrix/special.py +++ b/src/sage/matrix/special.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Constructors for special matrices diff --git a/src/sage/matrix/strassen.pyx b/src/sage/matrix/strassen.pyx index 978773e3a27..ffd421c5236 100644 --- a/src/sage/matrix/strassen.pyx +++ b/src/sage/matrix/strassen.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Generic Asymptotically Fast Strassen Algorithms diff --git a/src/sage/matrix/symplectic_basis.py b/src/sage/matrix/symplectic_basis.py index 47dc053a9ce..7066d89f362 100644 --- a/src/sage/matrix/symplectic_basis.py +++ b/src/sage/matrix/symplectic_basis.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Calculate symplectic bases for matrices over fields and the integers. diff --git a/src/sage/matrix/template.pxd b/src/sage/matrix/template.pxd index 69123a38f2d..ba69060508e 100644 --- a/src/sage/matrix/template.pxd +++ b/src/sage/matrix/template.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.matrix.matrix_dense cimport Matrix_dense diff --git a/src/sage/matrix/tests.py b/src/sage/matrix/tests.py index 6de80f7ff03..40847bb8bef 100644 --- a/src/sage/matrix/tests.py +++ b/src/sage/matrix/tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ TESTS: diff --git a/src/sage/matroids/advanced.py b/src/sage/matroids/advanced.py index 65b30f1bc36..3b874f72130 100644 --- a/src/sage/matroids/advanced.py +++ b/src/sage/matroids/advanced.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Advanced matroid functionality diff --git a/src/sage/matroids/all.py b/src/sage/matroids/all.py index e40ab089e1c..5db14267535 100644 --- a/src/sage/matroids/all.py +++ b/src/sage/matroids/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Matroids """ diff --git a/src/sage/matroids/basis_exchange_matroid.pxd b/src/sage/matroids/basis_exchange_matroid.pxd index fdcfd82172f..1076382b28c 100644 --- a/src/sage/matroids/basis_exchange_matroid.pxd +++ b/src/sage/matroids/basis_exchange_matroid.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.data_structures.bitset cimport * from sage.data_structures.bitset_base cimport bitset_t, bitset_s from sage.matroids.matroid cimport Matroid diff --git a/src/sage/matroids/basis_exchange_matroid.pyx b/src/sage/matroids/basis_exchange_matroid.pyx index 8d0dbf1c834..4ec028efc8e 100644 --- a/src/sage/matroids/basis_exchange_matroid.pyx +++ b/src/sage/matroids/basis_exchange_matroid.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Basis exchange matroids diff --git a/src/sage/matroids/basis_matroid.pxd b/src/sage/matroids/basis_matroid.pxd index fd240b01a38..fa7db041206 100644 --- a/src/sage/matroids/basis_matroid.pxd +++ b/src/sage/matroids/basis_matroid.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.data_structures.bitset cimport bitset_t from sage.matroids.basis_exchange_matroid cimport BasisExchangeMatroid from sage.matroids.set_system cimport SetSystem diff --git a/src/sage/matroids/basis_matroid.pyx b/src/sage/matroids/basis_matroid.pyx index b74a76af956..e6c4db9087a 100644 --- a/src/sage/matroids/basis_matroid.pyx +++ b/src/sage/matroids/basis_matroid.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Basis matroids diff --git a/src/sage/matroids/catalog.py b/src/sage/matroids/catalog.py index e5b5c065fac..9e702aba61c 100644 --- a/src/sage/matroids/catalog.py +++ b/src/sage/matroids/catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Individual matroids in the catalog diff --git a/src/sage/matroids/circuit_closures_matroid.pxd b/src/sage/matroids/circuit_closures_matroid.pxd index b724a49faf4..2c427575ed8 100644 --- a/src/sage/matroids/circuit_closures_matroid.pxd +++ b/src/sage/matroids/circuit_closures_matroid.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.matroids.matroid cimport Matroid cdef class CircuitClosuresMatroid(Matroid): diff --git a/src/sage/matroids/circuit_closures_matroid.pyx b/src/sage/matroids/circuit_closures_matroid.pyx index a4251298ebc..57010799de9 100644 --- a/src/sage/matroids/circuit_closures_matroid.pyx +++ b/src/sage/matroids/circuit_closures_matroid.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Circuit closures matroids diff --git a/src/sage/matroids/constructor.py b/src/sage/matroids/constructor.py index a71674e2987..106683c1613 100644 --- a/src/sage/matroids/constructor.py +++ b/src/sage/matroids/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Matroid construction diff --git a/src/sage/matroids/database_matroids.py b/src/sage/matroids/database_matroids.py index b2c6ca5e055..793e4ebf585 100644 --- a/src/sage/matroids/database_matroids.py +++ b/src/sage/matroids/database_matroids.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Database of matroids diff --git a/src/sage/matroids/dual_matroid.py b/src/sage/matroids/dual_matroid.py index 76ad7aaa600..ad7856dfb3b 100644 --- a/src/sage/matroids/dual_matroid.py +++ b/src/sage/matroids/dual_matroid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Dual matroids diff --git a/src/sage/matroids/extension.pxd b/src/sage/matroids/extension.pxd index b48a9a7e02d..ad7e5899733 100644 --- a/src/sage/matroids/extension.pxd +++ b/src/sage/matroids/extension.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.data_structures.bitset cimport bitset_t from sage.matroids.basis_matroid cimport BasisMatroid diff --git a/src/sage/matroids/extension.pyx b/src/sage/matroids/extension.pyx index 778e6d6ef70..892eae0caa1 100644 --- a/src/sage/matroids/extension.pyx +++ b/src/sage/matroids/extension.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Iterators for linear subclasses diff --git a/src/sage/matroids/graphic_matroid.pyx b/src/sage/matroids/graphic_matroid.pyx index 5e740e78637..ed8b616bd64 100644 --- a/src/sage/matroids/graphic_matroid.pyx +++ b/src/sage/matroids/graphic_matroid.pyx @@ -1,4 +1,5 @@ -# sage.doctest: optional - sage.graphs +# sage_setup: distribution = sagemath-modules +# sage.doctest: needs sage.graphs r""" Graphic Matroids @@ -522,9 +523,9 @@ cdef class GraphicMatroid(Matroid): sage: Mp = M.minor(cert[0], cert[1]) sage: N.is_isomorphism(Mp, cert[2]) True - sage: M._has_minor(N) + sage: M._has_minor(N) # needs sage.numerical.mip True - sage: M._has_minor(N1) + sage: M._has_minor(N1) # needs sage.numerical.mip True sage: _, cert = M._has_minor(N, certificate=True) sage: Mp = M.minor(cert[0], cert[1]) @@ -535,13 +536,13 @@ cdef class GraphicMatroid(Matroid): sage: M = matroids.CompleteGraphic(6) sage: N = Matroid(range(8), graphs.WheelGraph(5)) - sage: M._has_minor(N) + sage: M._has_minor(N) # needs sage.numerical.mip True sage: _, cert = M._has_minor(N, certificate=True) sage: Mp = M.minor(cert[0], cert[1]) sage: N.is_isomorphism(Mp, cert[2]) True - sage: N.has_minor(M) + sage: N.has_minor(M) # needs sage.numerical.mip False sage: N.has_minor(M, certificate=True) (False, None) diff --git a/src/sage/matroids/lean_matrix.pxd b/src/sage/matroids/lean_matrix.pxd index 3091af107d0..26647ba3025 100644 --- a/src/sage/matroids/lean_matrix.pxd +++ b/src/sage/matroids/lean_matrix.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.data_structures.bitset cimport bitset_t from sage.libs.gmp.types cimport mpq_t diff --git a/src/sage/matroids/lean_matrix.pyx b/src/sage/matroids/lean_matrix.pyx index f7051f45c92..e24cdfa3d74 100644 --- a/src/sage/matroids/lean_matrix.pyx +++ b/src/sage/matroids/lean_matrix.pyx @@ -1,4 +1,5 @@ -# sage.doctest: optional - sage.rings.finite_rings +# sage_setup: distribution = sagemath-modules +# sage.doctest: needs sage.rings.finite_rings """ Lean matrices @@ -2749,6 +2750,7 @@ cdef class PlusMinusOneMatrix(LeanMatrix): EXAMPLES:: + sage: # needs sage.graphs sage: M = Matroid(graphs.CompleteGraph(4).incidence_matrix(oriented=True), # indirect doctest ....: regular=True) sage: M.is_isomorphic(matroids.Wheel(3)) @@ -3179,6 +3181,7 @@ cdef class RationalMatrix(LeanMatrix): EXAMPLES:: + sage: # needs sage.graphs sage: M = Matroid(graphs.CompleteGraph(4).incidence_matrix(oriented=True)) # indirect doctest sage: M.is_isomorphic(matroids.Wheel(3)) True diff --git a/src/sage/matroids/linear_matroid.pxd b/src/sage/matroids/linear_matroid.pxd index b0890a76148..926fba0d8e0 100644 --- a/src/sage/matroids/linear_matroid.pxd +++ b/src/sage/matroids/linear_matroid.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.data_structures.bitset cimport bitset_t from sage.matroids.matroid cimport Matroid diff --git a/src/sage/matroids/linear_matroid.pyx b/src/sage/matroids/linear_matroid.pyx index 6848604f0c8..7ba535c4e22 100644 --- a/src/sage/matroids/linear_matroid.pyx +++ b/src/sage/matroids/linear_matroid.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Linear matroids @@ -581,7 +582,7 @@ cdef class LinearMatroid(BasisExchangeMatroid): sage: R = GF(7) sage: A = Matrix(R, [[1, 0, 6, 1, 2],[6, 1, 0, 0, 1],[0, 6, 3, 6, 0]]) sage: M = LinearMatroid(reduced_matrix=A) - sage: M.representation(lift_map=lift_map('sru')) # needs sage.rings.finite_rings + sage: M.representation(lift_map=lift_map('sru')) # needs sage.rings.number_field [ 1 0 0 1 0 1 1 1] [ 0 1 0 -z + 1 1 0 0 1] [ 0 0 1 0 1 -1 z - 1 0] @@ -3709,7 +3710,7 @@ cdef class BinaryMatroid(LinearMatroid): 2 x 12 BinaryMatrix [110011001100] [001100110011] - sage: sorted(Npp._matrix_().rows()) # needs sage.rings.finite_rings + sage: sorted(Npp._matrix_().rows()) [(1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0), (0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1)] """ if self._eq_part is None: diff --git a/src/sage/matroids/matroid.pxd b/src/sage/matroids/matroid.pxd index 6218cb804f4..57b854e4635 100644 --- a/src/sage/matroids/matroid.pxd +++ b/src/sage/matroids/matroid.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.sage_object cimport SageObject from sage.matroids.set_system cimport SetSystem diff --git a/src/sage/matroids/matroid.pyx b/src/sage/matroids/matroid.pyx index 0384ff81a22..7c17e170b50 100644 --- a/src/sage/matroids/matroid.pyx +++ b/src/sage/matroids/matroid.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" The abstract Matroid class @@ -3797,9 +3798,9 @@ cdef class Matroid(SageObject): a function, and many other types of maps:: sage: M = matroids.catalog.Fano() - sage: P = PermutationGroup([[('a', 'b', 'c'), # needs sage.rings.finite_rings + sage: P = PermutationGroup([[('a', 'b', 'c'), # needs sage.groups ....: ('d', 'e', 'f'), ('g')]]).gen() - sage: M.is_isomorphism(M, P) # needs sage.rings.finite_rings + sage: M.is_isomorphism(M, P) # needs sage.groups True sage: M = matroids.catalog.Pappus() @@ -7999,7 +8000,7 @@ cdef class Matroid(SageObject): sage: from sage.matroids.advanced import setprint sage: M = matroids.catalog.Fano() - sage: setprint(M.flat_cover()) # needs sage.rings.finite_rings + sage: setprint(M.flat_cover()) # needs sage.numerical.mip [{'a', 'b', 'f'}, {'a', 'c', 'e'}, {'a', 'd', 'g'}, {'b', 'c', 'd'}, {'b', 'e', 'g'}, {'c', 'f', 'g'}, {'d', 'e', 'f'}] @@ -8225,11 +8226,11 @@ cdef class Matroid(SageObject): EXAMPLES:: sage: M = matroids.catalog.TernaryDowling3() - sage: M.show(B=['a','b','c']) # needs sage.plot sage.rings.finite_rings - sage: M.show(B=['a','b','c'], lineorders=[['f','e','i']]) # needs sage.plot sage.rings.finite_rings - sage: pos = {'a':(0,0), 'b': (0,1), 'c':(1,0), 'd':(1,1), # needs sage.plot + sage: M.show(B=['a','b','c']) # needs sage.plot + sage: M.show(B=['a','b','c'], lineorders=[['f','e','i']]) # needs sage.plot + sage: pos = {'a':(0,0), 'b': (0,1), 'c':(1,0), 'd':(1,1), ....: 'e':(1,-1), 'f':(-1,1), 'g':(-1,-1),'h':(2,0), 'i':(0,2)} - sage: M.show(pos_method=1, pos_dict=pos, lims=[-3,3,-3,3]) # needs sage.plot sage.rings.finite_rings + sage: M.show(pos_method=1, pos_dict=pos, lims=[-3,3,-3,3]) # needs sage.plot """ if self.rank() > 3: raise NotImplementedError diff --git a/src/sage/matroids/matroids_catalog.py b/src/sage/matroids/matroids_catalog.py index 4fbeddac9e8..ef7401119fb 100644 --- a/src/sage/matroids/matroids_catalog.py +++ b/src/sage/matroids/matroids_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Catalog of matroids diff --git a/src/sage/matroids/matroids_plot_helpers.py b/src/sage/matroids/matroids_plot_helpers.py index 5f09905844b..a78cbc986df 100644 --- a/src/sage/matroids/matroids_plot_helpers.py +++ b/src/sage/matroids/matroids_plot_helpers.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - scipy r""" Helper functions for plotting the geometric representation of matroids diff --git a/src/sage/matroids/minor_matroid.py b/src/sage/matroids/minor_matroid.py index 68cce818f8d..220cdac771b 100644 --- a/src/sage/matroids/minor_matroid.py +++ b/src/sage/matroids/minor_matroid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Minors of matroids diff --git a/src/sage/matroids/named_matroids.py b/src/sage/matroids/named_matroids.py index 7fcd63b92c9..708d3ad2680 100644 --- a/src/sage/matroids/named_matroids.py +++ b/src/sage/matroids/named_matroids.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.superseded import deprecation from sage.matroids.database_matroids import * deprecation(36842, "named_matroids is deprecated, use catalog instead") diff --git a/src/sage/matroids/rank_matroid.py b/src/sage/matroids/rank_matroid.py index 7fa20b131ba..ae0e502abfd 100644 --- a/src/sage/matroids/rank_matroid.py +++ b/src/sage/matroids/rank_matroid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Rank function matroids diff --git a/src/sage/matroids/set_system.pxd b/src/sage/matroids/set_system.pxd index 3b3a4902a22..54789682833 100644 --- a/src/sage/matroids/set_system.pxd +++ b/src/sage/matroids/set_system.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.data_structures.bitset cimport bitset_t cdef class SetSystem: diff --git a/src/sage/matroids/set_system.pyx b/src/sage/matroids/set_system.pyx index d9a2f631fbf..4abd669672b 100644 --- a/src/sage/matroids/set_system.pyx +++ b/src/sage/matroids/set_system.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Set systems @@ -723,7 +724,7 @@ cdef class SetSystem: sage: N = Matroid(ring=GF(5), reduced_matrix=[[1,0,1],[0,1,1],[1,1,0]]) sage: M.is_field_isomorphic(N) False - sage: any(M.is_field_isomorphism(N, p) for p in Permutations(range(6))) # needs sage.combinat + sage: any(M.is_field_isomorphism(N, p) for p in Permutations(range(6))) False """ cdef long v diff --git a/src/sage/matroids/union_matroid.pxd b/src/sage/matroids/union_matroid.pxd index 72d13abc91c..9f20171204d 100644 --- a/src/sage/matroids/union_matroid.pxd +++ b/src/sage/matroids/union_matroid.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.matroids.matroid cimport Matroid diff --git a/src/sage/matroids/union_matroid.pyx b/src/sage/matroids/union_matroid.pyx index e371d5fb313..2b7c382d221 100644 --- a/src/sage/matroids/union_matroid.pyx +++ b/src/sage/matroids/union_matroid.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.matroids.matroid cimport Matroid cdef class MatroidUnion(Matroid): diff --git a/src/sage/matroids/unpickling.pyx b/src/sage/matroids/unpickling.pyx index 33fa9fe7dc1..6f26fb51378 100644 --- a/src/sage/matroids/unpickling.pyx +++ b/src/sage/matroids/unpickling.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Unpickling methods diff --git a/src/sage/matroids/utilities.py b/src/sage/matroids/utilities.py index c9b903594c5..e4ccd48f481 100644 --- a/src/sage/matroids/utilities.py +++ b/src/sage/matroids/utilities.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Some useful functions for the matroid class. diff --git a/src/sage/meson.build.in b/src/sage/meson.build.in new file mode 100644 index 00000000000..6ce690924eb --- /dev/null +++ b/src/sage/meson.build.in @@ -0,0 +1,160 @@ +# Setup dependencies that are needed by many modules + +sage_install_dir = py.get_install_dir() / 'sage' + +inc_numpy = run_command(py, + [ + '-c', + ''' +import numpy +print(numpy.get_include()) + '''.strip() + ], + check: true + ).stdout().strip() +numpy = declare_dependency( + include_directories: inc_numpy, +) + +inc_cysignals = run_command(py, + [ + '-c', + ''' +import cysignals +print(cysignals.__file__.replace('__init__.py', '')) + '''.strip() + ], + check: true + ).stdout().strip() +cysignals = declare_dependency( + include_directories: inc_cysignals, +) + +inc_gmpy2 = run_command(py, + [ + '-c', + ''' +import gmpy2 +print(gmpy2.__file__.replace('__init__.py', '')) + '''.strip() + ], + check: true + ).stdout().strip() +gmpy2 = declare_dependency( + include_directories: inc_gmpy2, +) +gmp = dependency('gmp', required: true) + +pari = cc.find_library('pari') + +inc_cypari2 = run_command(py, + [ + '-c', + ''' +import cypari2 +print(cypari2.__file__.replace('__init__.py', '')) + '''.strip() + ], + check: true + ).stdout().strip() +cypari2 = declare_dependency( + include_directories: inc_cypari2, + dependencies: pari +) + +mpfr = cc.find_library('mpfr') + +# Cannot be found by pkg-config +flint = cc.find_library('flint') + +cblas = dependency('cblas') +gsl = dependency('gsl', fallback: ['gsl', 'gsl_dep'], version : '>=2.5', required: true) +gd = cc.find_library('gd') +iml = cc.find_library('iml') +m = cc.find_library('m') +m4ri = cc.find_library('m4ri') +m4rie = cc.find_library('m4rie') +mtx = cc.find_library('mtx', required: false) +png = cc.find_library('png') +zlib = cc.find_library('z') +intl = cc.find_library('intl', required: false) +curl = cc.find_library('curl') +# Cannot be found via pkg-config +ec = cc.find_library('ec') +ecm = cc.find_library('ecm') +# Cannot be found via pkg-config +glpk = cc.find_library('glpk') +ppl = cc.find_library('ppl') +gmpxx = cc.find_library('gmpxx') +readline = cc.find_library('readline') +lfunction = cc.find_library('Lfunction', required: false) +fflas = cc.find_library('fflas') +givaro = cc.find_library('givaro') +braiding = cc.find_library('braiding') +gc = cc.find_library('gc') +homfly = cc.find_library('homfly') +mpc = cc.find_library('mpc') +mpfi = cc.find_library('mpfi') +mpc = cc.find_library('mpc') +# Cannot be found via pkg-config +gap = cc.find_library('gap') + +singular = dependency('Singular') + +maxima = find_program('maxima', required: true) + +# Cannot be found via pkg-config +ntl = cc.find_library('ntl', required: true) + +linbox = declare_dependency( + dependencies: [cc.find_library('linbox'), ntl] +) + +# It's strange but cython cannot find its own include files +# so we find them ourselves, and add them to the include path +inc_cython = run_command(py, + [ + '-c', + ''' +import Cython +print(Cython.__file__.replace('__init__.py', '')) + '''.strip() + ], + check: true + ).stdout().strip() +add_project_arguments('-I', inc_cython + 'Includes', language : 'cython') + +# Meson currently ignores include_directories for Cython modules, so we +# have to add them manually. +# https://github.com/mesonbuild/meson/issues/9562 +add_project_arguments('-I', meson.current_source_dir(), language : 'cython') + +# Add global compiler flags +add_project_arguments('-X auto_pickle=False', language : 'cython') +add_project_arguments('-X autotestdict=False', language : 'cython') +add_project_arguments('-X binding=False', language : 'cython') +add_project_arguments('-X c_api_binop_methods=True', language : 'cython') +add_project_arguments('-X cdivision=True', language : 'cython') +add_project_arguments('-X cpow=True', language : 'cython') +add_project_arguments('-X embedsignature=True', language : 'cython') +add_project_arguments('--embed-positions', language : 'cython') +add_project_arguments('-X fast_getattr=True', language : 'cython') +#add_project_arguments('-X language_level="3"', language : 'cython') +add_project_arguments('-X legacy_implicit_noexcept=True', language : 'cython') +add_project_arguments('-X preliminary_late_includes_cy28=True', language : 'cython') + +# include search path for cases like 'include "sage/libs/ntl/decl.pxi"' +add_project_arguments('-I', meson.current_source_dir() / '..', language : 'cython') + +inc_cpython = include_directories('cpython') +inc_rings = include_directories('rings') +inc_rings_finite = include_directories('rings/finite_rings', 'libs/linkages/padics/relaxed') # .. is a hack for flint_helper.c +inc_flint = include_directories('libs/flint') +inc_gsl = include_directories('libs/gsl') +inc_ntl = include_directories('libs/ntl') +inc_arb = include_directories('libs/arb') +inc_data_structures = include_directories('data_structures') +inc_ext = include_directories('ext') +inc_interpreters = include_directories('ext/interpreters') +inc_partn_ref2 = include_directories('groups/perm_gps/partn_ref2') +inc_src = include_directories('.') diff --git a/src/sage/misc/all.py b/src/sage/misc/all.py index fa14ec98696..e8eda477f6c 100644 --- a/src/sage/misc/all.py +++ b/src/sage/misc/all.py @@ -1,137 +1,23 @@ -from sage.misc.lazy_attribute import lazy_attribute, lazy_class_attribute -from sage.misc.lazy_import import lazy_import - -from sage.misc.all__sagemath_objects import * +# from sage.misc.all__sagemath_objects import * from sage.misc.all__sagemath_environment import * +from sage.misc.all__sagemath_modules import * from sage.misc.all__sagemath_repl import * from sage.misc.misc import (BackslashOperator, - exists, forall, is_iterator, - random_sublist, - pad_zeros, - SAGE_DB, - newton_method_sizes, compose, - nest) - -from sage.misc.banner import version - -from sage.misc.dev_tools import import_statements - -from sage.misc.html import html, pretty_print_default - -from sage.misc.table import table - -from sage.misc.sage_timeit_class import timeit - -from sage.misc.edit_module import edit - -from sage.misc.map_threaded import map_threaded - -from sage.misc.session import load_session, save_session, show_identifiers + exists, forall, is_iterator, + random_sublist, + pad_zeros, + SAGE_DB, + newton_method_sizes, compose, + nest) from sage.misc.remote_file import get_remote_file -from sage.misc.mrange import xmrange, mrange, xmrange_iter, mrange_iter, cartesian_product_iterator - -from sage.misc.fpickle import pickle_function, unpickle_function - lazy_import('sage.misc.pager', 'pager') -lazy_import('sage.misc.sagedoc', ['browse_sage_doc', - 'search_src', 'search_def', 'search_doc', - 'tutorial', 'reference', 'manual', 'developer', - 'constructions', 'help']) -lazy_import('pydoc', 'help', 'python_help') - from sage.misc.classgraph import class_graph -from sage.misc.reset import reset, restore - -from sage.misc.mathml import mathml - -from sage.misc.defaults import (set_default_variable_name, - series_precision, set_series_precision) - lazy_import("sage.misc.cython", "cython_lambda") lazy_import("sage.misc.cython", "cython_compile", "cython") -from sage.misc.func_persist import func_persist - -from sage.misc.functional import (additive_order, - base_ring, - base_field, - basis, - category, - charpoly, - characteristic_polynomial, - coerce, - cyclotomic_polynomial, - decomposition, - denominator, - det, - dimension, - dim, - discriminant, - disc, - eta, - fcp, - gen, - gens, - hecke_operator, - image, - integral, integrate, - integral_closure, - interval, - xinterval, - is_even, - is_odd, - kernel, - krull_dimension, - lift, - log as log_b, - minimal_polynomial, - minpoly, - multiplicative_order, - ngens, - norm, - numerator, - numerical_approx, - n, N, - objgens, - objgen, - order, - rank, - regulator, - round, - quotient, - quo, - isqrt, - squarefree_part, - sqrt, - symbolic_sum as sum, - symbolic_prod as product, - transpose) - - -from sage.misc.latex import LatexExpr, latex, view - -from sage.misc.randstate import seed, set_random_seed, initial_seed, current_randstate - -from sage.misc.prandom import * - -from sage.misc.timing import walltime, cputime - -from sage.misc.explain_pickle import explain_pickle, unpickle_newobj, unpickle_global, unpickle_build, unpickle_instantiate, unpickle_persistent, unpickle_extension, unpickle_appends - -lazy_import('sage.misc.inline_fortran', 'fortran') - -lazy_import('sage.misc.banner', 'banner', deprecation=34259) -lazy_import('sage.misc.dev_tools', 'runsnake', deprecation=34259) -lazy_import('sage.misc.edit_module', 'set_edit_template', deprecation=34259) -lazy_import('sage.misc.profiler', 'Profiler', deprecation=34259) -lazy_import('sage.misc.trace', 'trace', deprecation=34259) -lazy_import('sage.misc.package', ('installed_packages', 'is_package_installed', - 'package_versions'), - deprecation=34259) -lazy_import('sage.misc.benchmark', 'benchmark', deprecation=34259) lazy_import('sage.repl.interpreter', 'logstr', deprecation=34259) diff --git a/src/sage/misc/all__sagemath_categories.py b/src/sage/misc/all__sagemath_categories.py new file mode 100644 index 00000000000..bcf2622f6f6 --- /dev/null +++ b/src/sage/misc/all__sagemath_categories.py @@ -0,0 +1,78 @@ +# sage_setup: distribution = sagemath-categories + +from sage.misc.all__sagemath_objects import * + +from sage.misc.html import html, pretty_print_default + +from sage.misc.mathml import mathml + +from sage.misc.table import table + +from sage.misc.map_threaded import map_threaded + +from sage.misc.mrange import xmrange, mrange, xmrange_iter, mrange_iter, cartesian_product_iterator + +from sage.misc.defaults import (set_default_variable_name, + series_precision, set_series_precision) + + +from sage.misc.functional import (additive_order, + base_ring, + base_field, + basis, + category, + charpoly, + characteristic_polynomial, + coerce, + cyclotomic_polynomial, + decomposition, + denominator, + det, + dimension, + dim, + discriminant, + disc, + eta, + fcp, + gen, + gens, + hecke_operator, + image, + integral, integrate, + integral_closure, + interval, + xinterval, + is_even, + is_odd, + kernel, + krull_dimension, + lift, + log as log_b, + minimal_polynomial, + minpoly, + multiplicative_order, + ngens, + norm, + numerator, + numerical_approx, + n, N, + objgens, + objgen, + order, + rank, + regulator, + round, + quotient, + quo, + isqrt, + squarefree_part, + sqrt, + symbolic_sum as sum, + symbolic_prod as product, + transpose) + +from sage.misc.latex import LatexExpr, latex, view + +from sage.misc.fpickle import pickle_function, unpickle_function + +from sage.misc.persist import unpickle_global diff --git a/src/sage/misc/all__sagemath_modules.py b/src/sage/misc/all__sagemath_modules.py new file mode 100644 index 00000000000..04ffe7e2f2b --- /dev/null +++ b/src/sage/misc/all__sagemath_modules.py @@ -0,0 +1,21 @@ +# sage_setup: distribution = sagemath-modules +# All of sage.misc.all except for development tools, session management, +# and deprecated functionality + +from sage.misc.lazy_attribute import lazy_attribute, lazy_class_attribute + +from sage.misc.all__sagemath_categories import * + +from sage.misc.misc import (BackslashOperator, # Depends on sage.env -- can lower to sagemath-objects after splitting this module + exists, forall, is_iterator, + random_sublist, + pad_zeros, + SAGE_DB, + newton_method_sizes, compose, + nest) + +from sage.misc.temporary_file import tmp_dir, tmp_filename # Depends on sage.env + +from sage.misc.mathml import mathml + +from sage.misc.func_persist import func_persist diff --git a/src/sage/misc/all__sagemath_ntl.py b/src/sage/misc/all__sagemath_ntl.py new file mode 100644 index 00000000000..4d8e422331a --- /dev/null +++ b/src/sage/misc/all__sagemath_ntl.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-ntl diff --git a/src/sage/misc/all__sagemath_objects.py b/src/sage/misc/all__sagemath_objects.py index 634584c5567..8dda37eb313 100644 --- a/src/sage/misc/all__sagemath_objects.py +++ b/src/sage/misc/all__sagemath_objects.py @@ -35,3 +35,9 @@ from sage.misc.abstract_method import abstract_method from sage.misc.timing import walltime, cputime + +from sage.misc.randstate import seed, set_random_seed, initial_seed, current_randstate +from sage.misc.prandom import * +from sage.misc.sage_timeit_class import timeit +from sage.misc.session import load_session, save_session, show_identifiers +from sage.misc.reset import reset, restore diff --git a/src/sage/misc/all__sagemath_repl.py b/src/sage/misc/all__sagemath_repl.py index 9631c49d0bd..a43e127eb22 100644 --- a/src/sage/misc/all__sagemath_repl.py +++ b/src/sage/misc/all__sagemath_repl.py @@ -1,4 +1,46 @@ # sage_setup: distribution = sagemath-repl + +from sage.misc.all__sagemath_objects import * + from sage.misc.sage_eval import sage_eval, sageobj from sage.misc.sage_input import sage_input + +from sage.misc.banner import version + +lazy_import('sage.misc.banner', 'banner', deprecation=34259) + +lazy_import('sage.misc.sagedoc', ['browse_sage_doc', + 'search_src', 'search_def', 'search_doc', + 'tutorial', 'reference', 'manual', 'developer', + 'constructions', 'help']) + +lazy_import('pydoc', 'help', 'python_help') + +from sage.misc.explain_pickle import (explain_pickle, unpickle_newobj, unpickle_build, + unpickle_instantiate, unpickle_persistent, + unpickle_extension, unpickle_appends) + +lazy_import('sage.misc.trace', 'trace', deprecation=34259) + +lazy_import('sage.misc.profiler', 'Profiler', deprecation=34259) + +from sage.misc.dev_tools import import_statements + +lazy_import('sage.misc.dev_tools', 'runsnake', deprecation=34259) + +from sage.misc.edit_module import edit + +lazy_import('sage.misc.edit_module', 'set_edit_template', deprecation=34259) + +lazy_import('sage.misc.pager', 'pager') + + +lazy_import("sage.misc.cython", "cython_lambda") +lazy_import("sage.misc.cython", "cython_compile", "cython") +lazy_import('sage.misc.inline_fortran', 'fortran') + +lazy_import('sage.misc.package', ('installed_packages', 'is_package_installed', + 'package_versions'), + deprecation=34259) +lazy_import('sage.misc.benchmark', 'benchmark', deprecation=34259) diff --git a/src/sage/misc/allocator.pxd b/src/sage/misc/allocator.pxd index 7945a75241f..63943541273 100644 --- a/src/sage/misc/allocator.pxd +++ b/src/sage/misc/allocator.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from cpython.object cimport * cdef hook_tp_functions_type(object t, newfunc tp_new, destructor tp_dealloc, bint useGC) diff --git a/src/sage/misc/allocator.pyx b/src/sage/misc/allocator.pyx index b7fafdce286..9448bbff2c1 100644 --- a/src/sage/misc/allocator.pyx +++ b/src/sage/misc/allocator.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from cpython.ref cimport Py_INCREF cdef _hook_tp_functions_type(PyTypeObject *t, newfunc tp_new, destructor tp_dealloc, bint useGC): diff --git a/src/sage/misc/binary_tree.pxd b/src/sage/misc/binary_tree.pxd index 4e54f74a71a..4b0c1213363 100644 --- a/src/sage/misc/binary_tree.pxd +++ b/src/sage/misc/binary_tree.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories cdef struct binary_tree_node: int key binary_tree_node *left diff --git a/src/sage/misc/binary_tree.pyx b/src/sage/misc/binary_tree.pyx index 583e397a845..5aee579612d 100644 --- a/src/sage/misc/binary_tree.pyx +++ b/src/sage/misc/binary_tree.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Binary trees diff --git a/src/sage/misc/c3.pyx b/src/sage/misc/c3.pyx index bd8057b361f..89d8b11a864 100644 --- a/src/sage/misc/c3.pyx +++ b/src/sage/misc/c3.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ The C3 algorithm diff --git a/src/sage/misc/callable_dict.pyx b/src/sage/misc/callable_dict.pyx index 6a133afa918..1abb4045312 100644 --- a/src/sage/misc/callable_dict.pyx +++ b/src/sage/misc/callable_dict.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Callable dictionaries """ diff --git a/src/sage/misc/compat.py b/src/sage/misc/compat.py index 5f27aea06a0..c5b11ec86e0 100644 --- a/src/sage/misc/compat.py +++ b/src/sage/misc/compat.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """Cross-platform compatibility routines and wrappers.""" # ***************************************************************************** diff --git a/src/sage/misc/converting_dict.py b/src/sage/misc/converting_dict.py index 684b729ea8c..88ea204b14b 100644 --- a/src/sage/misc/converting_dict.py +++ b/src/sage/misc/converting_dict.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Converting Dictionary diff --git a/src/sage/misc/cython.py b/src/sage/misc/cython.py index 95491a5c623..39b15a92b3a 100644 --- a/src/sage/misc/cython.py +++ b/src/sage/misc/cython.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.misc.cython """ Cython support functions diff --git a/src/sage/misc/defaults.py b/src/sage/misc/defaults.py index ea2719a2bf6..70abbec0a3e 100644 --- a/src/sage/misc/defaults.py +++ b/src/sage/misc/defaults.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Default Settings diff --git a/src/sage/misc/derivative.pyx b/src/sage/misc/derivative.pyx index 24ceb09a1db..ee9eeaf3640 100644 --- a/src/sage/misc/derivative.pyx +++ b/src/sage/misc/derivative.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2008 William Stein # diff --git a/src/sage/misc/dev_tools.py b/src/sage/misc/dev_tools.py index b11b2078129..ec19aecc33d 100644 --- a/src/sage/misc/dev_tools.py +++ b/src/sage/misc/dev_tools.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl r""" Some tools for developers @@ -63,7 +64,7 @@ def runsnake(command): """ import cProfile from sage.misc.temporary_file import tmp_filename - from sage.misc.misc import get_main_globals + from sage.misc.globals import get_main_globals from sage.repl.preparse import preparse tmpfile = tmp_filename() cProfile.runctx(preparse(command.lstrip().rstrip()), get_main_globals(), @@ -147,6 +148,8 @@ def load_submodules(module=None, exclude_pattern=None): EXAMPLES:: sage: sage.misc.dev_tools.load_submodules(sage.combinat) + load sage.combinat.SJT... succeeded + load sage.combinat.affine_permutation... succeeded load sage.combinat.algebraic_combinatorics... succeeded ... load sage.combinat.words.suffix_trees... succeeded @@ -277,6 +280,8 @@ def find_objects_from_name(name, module_name=None, include_lazy_imports=False): for smodule_name, smodule in sys.modules.items(): if module_name and not smodule_name.startswith(module_name): continue + if smodule_name.rpartition('.')[2].startswith('all__sagemath_'): + continue if hasattr(smodule, '__dict__') and name in smodule.__dict__: u = smodule.__dict__[name] if (not isinstance(u, LazyImport) or include_lazy_imports) and all(v is not u for v in obj): diff --git a/src/sage/misc/edit_module.py b/src/sage/misc/edit_module.py index 88132947a2e..42bc23dfd68 100644 --- a/src/sage/misc/edit_module.py +++ b/src/sage/misc/edit_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ Edit the source code of Sage interactively diff --git a/src/sage/misc/element_with_label.py b/src/sage/misc/element_with_label.py index 8ae3d4ee523..9168cec4427 100644 --- a/src/sage/misc/element_with_label.py +++ b/src/sage/misc/element_with_label.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Elements with labels. diff --git a/src/sage/misc/explain_pickle.py b/src/sage/misc/explain_pickle.py index 664a86cd5bc..2eafc804274 100644 --- a/src/sage/misc/explain_pickle.py +++ b/src/sage/misc/explain_pickle.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ A tool for inspecting Python pickles diff --git a/src/sage/misc/fpickle.pyx b/src/sage/misc/fpickle.pyx index fd192f1bf02..63eb13c33dc 100644 --- a/src/sage/misc/fpickle.pyx +++ b/src/sage/misc/fpickle.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects # cython: old_style_globals=True # cython: binding=True """ diff --git a/src/sage/misc/func_persist.py b/src/sage/misc/func_persist.py index 0b7f200ad58..b123469dad0 100644 --- a/src/sage/misc/func_persist.py +++ b/src/sage/misc/func_persist.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Support for persistent functions in .sage files diff --git a/src/sage/misc/functional.py b/src/sage/misc/functional.py index 7286501c0f1..bbe4318df3d 100644 --- a/src/sage/misc/functional.py +++ b/src/sage/misc/functional.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Functional notation diff --git a/src/sage/misc/globals.py b/src/sage/misc/globals.py new file mode 100644 index 00000000000..4ec83f5bfd2 --- /dev/null +++ b/src/sage/misc/globals.py @@ -0,0 +1,168 @@ +# sage_setup: distribution = sagemath-objects +r""" +Managing the main global namespace + +TESTS: + +The following test, verifying that :issue:`16181` has been resolved, needs +to stay at the beginning of this file so that its context is not +poisoned by other tests:: + + sage: from sage.misc.globals import inject_variable + sage: inject_variable('a', 0) + sage: a + 0 + +Check the fix from :issue:`8323`:: + + sage: 'name' in globals() + False + sage: 'func' in globals() + False +""" + +# **************************************************************************** +# Copyright (C) 2010-2017 Nicolas M. Thiery +# 2014 Darij Grinberg +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# https://www.gnu.org/licenses/ +# **************************************************************************** + +import warnings + + +def get_main_globals(): + """ + Return the main global namespace. + + EXAMPLES:: + + sage: from sage.misc.globals import get_main_globals + sage: G = get_main_globals() + sage: bla = 1 + sage: G['bla'] + 1 + sage: bla = 2 + sage: G['bla'] + 2 + sage: G['ble'] = 5 + sage: ble + 5 + + This is analogous to :func:`globals`, except that it can be called + from any function, even if it is in a Python module:: + + sage: def f(): + ....: G = get_main_globals() + ....: assert G['bli'] == 14 + ....: G['blo'] = 42 + sage: bli = 14 + sage: f() + sage: blo + 42 + + ALGORITHM: + + The main global namespace is discovered by going up the frame + stack until the frame for the :mod:`__main__` module is found. + Should this frame not be found (this should not occur in normal + operation), an exception "ValueError: call stack is not deep + enough" will be raised by ``_getframe``. + + See :meth:`inject_variable_test` for a real test that this works + within deeply nested calls in a function defined in a Python + module. + """ + import sys + depth = 0 + while True: + G = sys._getframe(depth).f_globals + if G.get("__name__", None) == "__main__": + break + depth += 1 + return G + + +def inject_variable(name, value, warn=True): + """ + Inject a variable into the main global namespace. + + INPUT: + + - ``name`` -- a string + - ``value`` -- anything + - ``warn`` -- a boolean (default: :obj:`False`) + + EXAMPLES:: + + sage: from sage.misc.globals import inject_variable + sage: inject_variable("a", 314) + sage: a + 314 + + A warning is issued the first time an existing value is overwritten:: + + sage: inject_variable("a", 271) + doctest:...: RuntimeWarning: redefining global value `a` + sage: a + 271 + sage: inject_variable("a", 272) + sage: a + 272 + + That's because warn seem to not reissue twice the same warning: + + sage: from warnings import warn + sage: warn("blah") + doctest:...: UserWarning: blah + sage: warn("blah") + + Warnings can be disabled:: + + sage: b = 3 + sage: inject_variable("b", 42, warn=False) + sage: b + 42 + + Use with care! + """ + assert isinstance(name, str) + # Using globals() does not work, even in Cython, because + # inject_variable is called not only from the interpreter, but + # also from functions in various modules. + G = get_main_globals() + if name in G and warn: + warnings.warn("redefining global value `%s`" % name, + RuntimeWarning, stacklevel=2) + G[name] = value + + +def inject_variable_test(name, value, depth): + """ + A function for testing deep calls to inject_variable + + EXAMPLES:: + + sage: from sage.misc.globals import inject_variable_test + sage: inject_variable_test("a0", 314, 0) + sage: a0 + 314 + sage: inject_variable_test("a1", 314, 1) + sage: a1 + 314 + sage: inject_variable_test("a2", 314, 2) + sage: a2 + 314 + sage: inject_variable_test("a2", 271, 2) + doctest:...: RuntimeWarning: redefining global value `a2` + sage: a2 + 271 + """ + if depth == 0: + inject_variable(name, value) + else: + inject_variable_test(name, value, depth - 1) diff --git a/src/sage/misc/html.py b/src/sage/misc/html.py index 8732acdede0..5346318b17b 100644 --- a/src/sage/misc/html.py +++ b/src/sage/misc/html.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ HTML Fragments @@ -22,7 +23,6 @@ import re from sage.misc.latex import latex -from sage.misc.sage_eval import sage_eval from sage.structure.sage_object import SageObject macro_regex = re.compile(r'\\newcommand{(?P\\[a-zA-Z]+)}(\[.+\])?{(?P.+)}') @@ -491,6 +491,7 @@ def eval(self, s, locals=None): sage: html.eval('a', locals={'a': 456}) \(456\) """ + from sage.misc.sage_eval import sage_eval if locals is None: from sage.repl.user_globals import get_globals locals = get_globals() diff --git a/src/sage/misc/inline_fortran.py b/src/sage/misc/inline_fortran.py index ccd4b1da87c..fed7625e836 100644 --- a/src/sage/misc/inline_fortran.py +++ b/src/sage/misc/inline_fortran.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ Fortran compiler """ diff --git a/src/sage/misc/latex.py b/src/sage/misc/latex.py index 9d8fcd4a341..2c66a36989d 100644 --- a/src/sage/misc/latex.py +++ b/src/sage/misc/latex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ LaTeX printing support diff --git a/src/sage/misc/latex_macros.py b/src/sage/misc/latex_macros.py index fc389b32a72..175a10f6648 100644 --- a/src/sage/misc/latex_macros.py +++ b/src/sage/misc/latex_macros.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" LaTeX macros @@ -79,7 +80,18 @@ def produce_latex_macro(name, *sample_args): # this import is used inside a string below names_split = name.rsplit('.', 1) if len(names_split) == 1: - module = 'sage.all' + + try: + import sage.all as toplevel + except ImportError: + try: + import sage.all__sagemath_modules as toplevel + except ImportError: + try: + import sage.all__sagemath_categories as toplevel + except ImportError: + import sage.all__sagemath_objects as toplevel + module = toplevel.__name__ real_name = names_split[0] else: module, real_name = names_split diff --git a/src/sage/misc/latex_standalone.py b/src/sage/misc/latex_standalone.py index 483e8f52035..a0f6a0fad1e 100644 --- a/src/sage/misc/latex_standalone.py +++ b/src/sage/misc/latex_standalone.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Standalone LaTeX Document class and TikzPicture @@ -1577,8 +1578,8 @@ def from_graph(cls, graph, merge_multiedges=True, sage: roots = [I] sage: succ = lambda v: [v*a,v*b,a*v,b*v] sage: R = RecursivelyEnumeratedSet(roots, succ) - sage: G = R.to_digraph() # needs sage.graphs - sage: G # needs sage.graphs + sage: G = R.to_digraph() # needs sage.combinat sage.graphs + sage: G # needs sage.combinat sage.graphs Looped multi-digraph on 27 vertices sage: C = G.strongly_connected_components() # needs sage.graphs sage: tikz = TikzPicture.from_graph(G, # optional - dot2tex graphviz, needs sage.graphs diff --git a/src/sage/misc/lazy_list.pxd b/src/sage/misc/lazy_list.pxd index f8b51b47835..13221457695 100644 --- a/src/sage/misc/lazy_list.pxd +++ b/src/sage/misc/lazy_list.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects cdef class lazy_list_generic(): cdef list cache # the cache cdef lazy_list_generic master # a reference if self is a slice diff --git a/src/sage/misc/lazy_list.pyx b/src/sage/misc/lazy_list.pyx index ca65a92fc88..e3cb73e7e1b 100644 --- a/src/sage/misc/lazy_list.pyx +++ b/src/sage/misc/lazy_list.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects r""" Lazy lists diff --git a/src/sage/misc/map_threaded.py b/src/sage/misc/map_threaded.py index db525e0ef6f..8c2a9db5ed4 100644 --- a/src/sage/misc/map_threaded.py +++ b/src/sage/misc/map_threaded.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Threaded map function """ diff --git a/src/sage/misc/mathml.py b/src/sage/misc/mathml.py index 7d38ad19128..37814ed2cbe 100644 --- a/src/sage/misc/mathml.py +++ b/src/sage/misc/mathml.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ MathML output support diff --git a/src/sage/misc/method_decorator.py b/src/sage/misc/method_decorator.py index 2e7cf206da2..48cc2f64faf 100644 --- a/src/sage/misc/method_decorator.py +++ b/src/sage/misc/method_decorator.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Base Class to Support Method Decorators diff --git a/src/sage/misc/misc.py b/src/sage/misc/misc.py index e5b3aed1ace..25a677aa0bb 100644 --- a/src/sage/misc/misc.py +++ b/src/sage/misc/misc.py @@ -10,23 +10,6 @@ users' home directory has a space in it. - Robert Bradshaw (2007-09-20): Ellipsis range/iterator. - -TESTS: - -The following test, verifying that :issue:`16181` has been resolved, needs -to stay at the beginning of this file so that its context is not -poisoned by other tests:: - - sage: sage.misc.misc.inject_variable('a', 0) - sage: a - 0 - -Check the fix from :issue:`8323`:: - - sage: 'name' in globals() - False - sage: 'func' in globals() - False """ # **************************************************************************** @@ -56,6 +39,9 @@ lazy_import("sage.misc.timing", ["cputime", "GlobalCputime", "walltime"], deprecation=35816) +lazy_import("sage.misc.globals", ["get_main_globals", "inject_variable"], + deprecation=99999) + LOCAL_IDENTIFIER = '%s.%s' % (HOSTNAME, os.getpid()) ################################################################# @@ -856,139 +842,6 @@ def in_quote(): return in_quote() -def get_main_globals(): - """ - Return the main global namespace. - - EXAMPLES:: - - sage: from sage.misc.misc import get_main_globals - sage: G = get_main_globals() - sage: bla = 1 - sage: G['bla'] - 1 - sage: bla = 2 - sage: G['bla'] - 2 - sage: G['ble'] = 5 - sage: ble - 5 - - This is analogous to :func:`globals`, except that it can be called - from any function, even if it is in a Python module:: - - sage: def f(): - ....: G = get_main_globals() - ....: assert G['bli'] == 14 - ....: G['blo'] = 42 - sage: bli = 14 - sage: f() - sage: blo - 42 - - ALGORITHM: - - The main global namespace is discovered by going up the frame - stack until the frame for the :mod:`__main__` module is found. - Should this frame not be found (this should not occur in normal - operation), an exception "ValueError: call stack is not deep - enough" will be raised by ``_getframe``. - - See :meth:`inject_variable_test` for a real test that this works - within deeply nested calls in a function defined in a Python - module. - """ - import sys - depth = 0 - while True: - G = sys._getframe(depth).f_globals - if G.get("__name__", None) == "__main__": - break - depth += 1 - return G - - -def inject_variable(name, value, warn=True): - """ - Inject a variable into the main global namespace. - - INPUT: - - - ``name`` -- string - - ``value`` -- anything - - ``warn`` -- boolean (default: ``False``) - - EXAMPLES:: - - sage: from sage.misc.misc import inject_variable - sage: inject_variable("a", 314) - sage: a - 314 - - A warning is issued the first time an existing value is overwritten:: - - sage: inject_variable("a", 271) - doctest:...: RuntimeWarning: redefining global value `a` - sage: a - 271 - sage: inject_variable("a", 272) - sage: a - 272 - - That's because warn seem to not reissue twice the same warning:: - - sage: from warnings import warn - sage: warn("blah") - doctest:...: UserWarning: blah - sage: warn("blah") - - Warnings can be disabled:: - - sage: b = 3 - sage: inject_variable("b", 42, warn=False) - sage: b - 42 - - Use with care! - """ - assert isinstance(name, str) - # Using globals() does not work, even in Cython, because - # inject_variable is called not only from the interpreter, but - # also from functions in various modules. - G = get_main_globals() - if name in G and warn: - warnings.warn("redefining global value `%s`" % name, - RuntimeWarning, stacklevel=2) - G[name] = value - - -def inject_variable_test(name, value, depth): - """ - A function for testing deep calls to ``inject_variable``. - - EXAMPLES:: - - sage: from sage.misc.misc import inject_variable_test - sage: inject_variable_test("a0", 314, 0) - sage: a0 - 314 - sage: inject_variable_test("a1", 314, 1) - sage: a1 - 314 - sage: inject_variable_test("a2", 314, 2) - sage: a2 - 314 - sage: inject_variable_test("a2", 271, 2) - doctest:...: RuntimeWarning: redefining global value `a2` - sage: a2 - 271 - """ - if depth == 0: - inject_variable(name, value) - else: - inject_variable_test(name, value, depth - 1) - - # from https://stackoverflow.com/questions/4103773/efficient-way-of-having-a-function-only-execute-once-in-a-loop def run_once(func): """ diff --git a/src/sage/misc/mrange.py b/src/sage/misc/mrange.py index 774008cdd70..b778584c2ea 100644 --- a/src/sage/misc/mrange.py +++ b/src/sage/misc/mrange.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Multidimensional enumeration diff --git a/src/sage/misc/multireplace.py b/src/sage/misc/multireplace.py index 3b70d60e50c..debdd5d56b7 100644 --- a/src/sage/misc/multireplace.py +++ b/src/sage/misc/multireplace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories "multi_replace" ########################################################################## diff --git a/src/sage/misc/object_multiplexer.py b/src/sage/misc/object_multiplexer.py index ceaac1b3fb2..8d80b999ba2 100644 --- a/src/sage/misc/object_multiplexer.py +++ b/src/sage/misc/object_multiplexer.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Multiplex calls to one object to calls to many objects diff --git a/src/sage/misc/package_dir.py b/src/sage/misc/package_dir.py index b15374e3bbc..c58faad7705 100644 --- a/src/sage/misc/package_dir.py +++ b/src/sage/misc/package_dir.py @@ -117,7 +117,7 @@ def read_distribution(src_file): sage: read_distribution(os.path.join(SAGE_SRC, 'sage', 'graphs', 'graph_decompositions', 'tdlib.pyx')) 'sagemath-tdlib' sage: read_distribution(os.path.join(SAGE_SRC, 'sage', 'graphs', 'graph_decompositions', 'modular_decomposition.py')) - '' + 'sagemath-graphs' """ with open(src_file, encoding='utf-8', errors='ignore') as fh: for line in fh: @@ -201,8 +201,8 @@ def update_distribution(src_file, distribution, *, verbose=False): try: with open(src_file) as f: src_lines = f.read().splitlines() - except UnicodeDecodeError: - # Silently skip binary files + except (UnicodeDecodeError, FileNotFoundError): + # Silently skip binary files, nonexisting files return any_found = False any_change = False @@ -263,6 +263,8 @@ 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: len(sage.cpython.__path__) + 1 sage: directory = sage.cpython.__path__[0]; directory '.../sage/cpython' sage: is_package_or_sage_namespace_package_dir(directory) @@ -271,23 +273,26 @@ 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(sage.libs.__path__[0], 'mpfr'); directory - '.../sage/libs/mpfr' - sage: is_package_or_sage_namespace_package_dir(directory) # known bug (seen in build.yml) + sage: directories = [os.path.join(p, 'mpfr') + ....: for p in sage.libs.__path__]; directories + ['.../sage/libs/mpfr'...] + sage: any(is_package_or_sage_namespace_package_dir(d) for d in directories) True - :mod:`sage` is designated to become an implicit namespace package:: + :mod:`sage` is an implicit namespace package:: - sage: directory = sage.__path__[0]; directory + sage: sage.__path__[0] '.../sage' - sage: is_package_or_sage_namespace_package_dir(directory) # known bug (seen in build.yml) + sage: all(is_package_or_sage_namespace_package_dir(p) for p in sage.__path__) True Not a package:: - sage: directory = os.path.join(sage.symbolic.__path__[0], 'ginac'); directory # needs sage.symbolic - '.../sage/symbolic/ginac' - sage: is_package_or_sage_namespace_package_dir(directory) # needs sage.symbolic + sage: directories = [os.path.join(p, 'ginac') # needs sage.symbolic + ....: for p in sage.symbolic.__path__]; directories + ['.../sage/symbolic/ginac'...] + sage: any(is_package_or_sage_namespace_package_dir(d) # needs sage.symbolic + ....: for d in directories) False """ if os.path.exists(os.path.join(path, '__init__.py')): # ordinary package @@ -480,15 +485,39 @@ def _distribution_from_all_filename(filename): distribution = args.set or args.add or '' if distribution == 'all': - distributions = ["sagemath-bliss", - "sagemath-coxeter3", + # Order matters because some MANIFESTs are not careful enough + distributions = ["sagemath-symbolics", + "sagemath-schemes", + "sagemath-glpk", + "sagemath-gap", + "sagemath-groups", + "sagemath-polyhedra", + "sagemath-graphs", + "sagemath-bliss", + "sagemath-tdlib", "sagemath-mcqd", - "sagemath-meataxe", "sagemath-sirocco", - "sagemath-tdlib", - "sagemath-environment", + "sagemath-coxeter3", + "sagemath-meataxe", + "sagemath-giac", + "sagemath-brial", + "sagemath-eclib", + "sagemath-lcalc", + "sagemath-libbraiding", + "sagemath-libecm", + "sagemath-singular", + "sagemath-linbox", + "sagemath-flint", + "sagemath-ntl", + "sagemath-pari", + "sagemath-homfly", + "sagemath-mpmath", + "sagemath-plot", + "sagemath-combinat", + "sagemath-modules", "sagemath-categories", "sagemath-repl", + "sagemath-environment", "sagemath-objects"] else: distributions = [distribution.replace('_', '-')] diff --git a/src/sage/misc/pager.py b/src/sage/misc/pager.py index 84833d6135a..2e5cd592676 100644 --- a/src/sage/misc/pager.py +++ b/src/sage/misc/pager.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ Pager for showing strings diff --git a/src/sage/misc/parser.pyx b/src/sage/misc/parser.pyx index 7a2c2cc99a4..13ca1e946d8 100644 --- a/src/sage/misc/parser.pyx +++ b/src/sage/misc/parser.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ A parser for symbolic equations and expressions diff --git a/src/sage/misc/pickle_old.pyx b/src/sage/misc/pickle_old.pyx index 3b717613b73..7eade0c02e0 100644 --- a/src/sage/misc/pickle_old.pyx +++ b/src/sage/misc/pickle_old.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.superseded import deprecation_cython as deprecation import sage.rings.fraction_field_element diff --git a/src/sage/misc/profiler.py b/src/sage/misc/profiler.py index 37d1e76e99c..bc458dce27a 100644 --- a/src/sage/misc/profiler.py +++ b/src/sage/misc/profiler.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl r""" Simple profiling tool diff --git a/src/sage/misc/proof.py b/src/sage/misc/proof.py index b5085111514..db537e21ef4 100644 --- a/src/sage/misc/proof.py +++ b/src/sage/misc/proof.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Whether or not computations are provably correct by default """ diff --git a/src/sage/misc/random_testing.py b/src/sage/misc/random_testing.py index bda8cee6ba6..0e3df5bffb7 100644 --- a/src/sage/misc/random_testing.py +++ b/src/sage/misc/random_testing.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Random testing diff --git a/src/sage/misc/replace_dot_all.py b/src/sage/misc/replace_dot_all.py index ea51a9b3159..0fefd148f1d 100644 --- a/src/sage/misc/replace_dot_all.py +++ b/src/sage/misc/replace_dot_all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Implementation of the command ``sage --fiximports``. @@ -299,7 +300,7 @@ def process_line(location, line, replacements, row_index, verbose=False): sage: from sage.misc.replace_dot_all import * sage: location = os.path.join(sage.env.SAGE_SRC, 'sage', 'plot', 'arc.py') sage: replacements = find_replacements(location, package_regex='sage[.]plot[.]all', verbose=True); replacements - [[477, 24, 'from sage.plot.graphics import Graphics']] + [[478, 24, 'from sage.plot.graphics import Graphics']] sage: with open(location, "r") as file: ....: lines = file.readlines() sage: row_index, col_number, *_ = replacements[0] diff --git a/src/sage/misc/reset.pyx b/src/sage/misc/reset.pyx index 50e6a15b4c7..be3250ef4cb 100644 --- a/src/sage/misc/reset.pyx +++ b/src/sage/misc/reset.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects # cython: old_style_globals=True """ Interpreter reset @@ -70,7 +71,6 @@ def reset(vars=None, attached=False): sage: bool(x > 3) False """ - from sage.symbolic.assumptions import forget if vars is not None: restore(vars) return @@ -83,7 +83,12 @@ def reset(vars=None, attached=False): except KeyError: pass restore() - forget() + try: + from sage.symbolic.assumptions import forget + except ImportError: + pass + else: + forget() reset_interfaces() if attached: import sage.repl.attach @@ -141,8 +146,12 @@ def restore(vars=None): import sage.all D = sage.all.__dict__ _restore(G, D, vars) - import sage.calculus.calculus - _restore(sage.calculus.calculus.syms_cur, sage.calculus.calculus.syms_default, vars) + try: + import sage.calculus.calculus + except ImportError: + pass + else: + _restore(sage.calculus.calculus.syms_cur, sage.calculus.calculus.syms_default, vars) def _restore(G, D, vars): @@ -166,5 +175,9 @@ def _restore(G, D, vars): def reset_interfaces(): - from sage.interfaces.quit import expect_quitall - expect_quitall() + try: + from sage.interfaces.quit import expect_quitall + except ImportError: + pass + else: + expect_quitall() diff --git a/src/sage/misc/rest_index_of_methods.py b/src/sage/misc/rest_index_of_methods.py index 0d1d46f63b7..b6cf0fb71b9 100644 --- a/src/sage/misc/rest_index_of_methods.py +++ b/src/sage/misc/rest_index_of_methods.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" ReST index of functions diff --git a/src/sage/misc/sage_eval.py b/src/sage/misc/sage_eval.py index eba54910477..adaa9f22f31 100644 --- a/src/sage/misc/sage_eval.py +++ b/src/sage/misc/sage_eval.py @@ -172,7 +172,16 @@ def sage_eval(source, locals=None, cmds='', preparse=True): if locals is None: locals = {} - import sage.all + try: + import sage.all as toplevel + except ImportError: + try: + import sage.all__sagemath_modules as toplevel + except ImportError: + try: + import sage.all__sagemath_categories as toplevel + except ImportError: + import sage.all__sagemath_objects as toplevel if cmds: cmd_seq = cmds + '\n_sage_eval_returnval_ = ' + source if preparse: @@ -182,10 +191,10 @@ def sage_eval(source, locals=None, cmds='', preparse=True): source = preparser.preparse(source) if cmds: - exec(cmd_seq, sage.all.__dict__, locals) + exec(cmd_seq, toplevel.__dict__, locals) return locals['_sage_eval_returnval_'] else: - return eval(source, sage.all.__dict__, locals) + return eval(source, toplevel.__dict__, locals) def sageobj(x, vars=None): diff --git a/src/sage/misc/sage_ostools.pyx b/src/sage/misc/sage_ostools.pyx index b679af7c26f..21d0d86226e 100644 --- a/src/sage/misc/sage_ostools.pyx +++ b/src/sage/misc/sage_ostools.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects """ Miscellaneous operating system functions """ diff --git a/src/sage/misc/sage_timeit.py b/src/sage/misc/sage_timeit.py index 75828816c24..163933b2376 100644 --- a/src/sage/misc/sage_timeit.py +++ b/src/sage/misc/sage_timeit.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects """ Accurate timing information for Sage commands diff --git a/src/sage/misc/sage_timeit_class.pyx b/src/sage/misc/sage_timeit_class.pyx index 2438484cd10..0983110b269 100644 --- a/src/sage/misc/sage_timeit_class.pyx +++ b/src/sage/misc/sage_timeit_class.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects # This is here in Cython so we can access the interpreter globals # cython: old_style_globals=True """ diff --git a/src/sage/misc/sagedoc.py b/src/sage/misc/sagedoc.py index 827fd77e811..880bd269528 100644 --- a/src/sage/misc/sagedoc.py +++ b/src/sage/misc/sagedoc.py @@ -771,9 +771,15 @@ def format(s, embedded=False): s = s[first_newline + len(os.linesep):] try: - import sage.all + import sage.all as toplevel except ImportError: - pass + try: + import sage.all__sagemath_modules as toplevel + except ImportError: + try: + import sage.all__sagemath_categories as toplevel + except ImportError: + import sage.all__sagemath_objects as toplevel docs = set() if 'noreplace' not in directives: @@ -788,22 +794,23 @@ def format(s, embedded=False): obj = s[i_0 + i + 3:i_0 + i + 3 + j] if obj in docs: t = '' - else: + elif obj.isidentifier(): try: - x = eval('sage.all.%s' % obj, locals()) + x = getattr(toplevel, obj) except AttributeError: # A pair <<<...>>> has been found, but the object not. i_0 += i + 6 + j continue - except SyntaxError: - # This is a simple heuristics to cover the case of - # a non-matching set of <<< and >>> - i_0 += i + 3 - continue t0 = sage.misc.sageinspect.sage_getdef(x, obj) t1 = sage.misc.sageinspect.sage_getdoc(x) t = 'Definition: ' + t0 + '\n\n' + t1 docs.add(obj) + else: + # This is a simple heuristics to cover the case of + # a non-matching set of <<< and >>> + i_0 += i + 3 + continue + s = s[:i_0 + i] + '\n' + t + s[i_0 + i + 6 + j:] i_0 += i diff --git a/src/sage/misc/sagedoc_conf.py b/src/sage/misc/sagedoc_conf.py index d8e6c95e9a4..9719db712b7 100644 --- a/src/sage/misc/sagedoc_conf.py +++ b/src/sage/misc/sagedoc_conf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Sphinx configuration shared by sage.misc.sphinxify and sage_docbuild """ diff --git a/src/sage/misc/sageinspect.py b/src/sage/misc/sageinspect.py index a6e0f7d8ad4..6cca78439a1 100644 --- a/src/sage/misc/sageinspect.py +++ b/src/sage/misc/sageinspect.py @@ -17,7 +17,7 @@ sage: sage_getdoc(sage.rings.rational).lstrip() 'Rational Numbers...' sage: sage_getsource(sage.rings.rational) - '# distutils: ...Rational Numbers...' + '# sage_setup: distribution = sagemath-categories...# distutils: ...Rational Numbers...' Python modules:: @@ -2225,8 +2225,9 @@ def sage_getsourcelines(obj): sage: from sage.misc.sageinspect import sage_getsourcelines sage: # needs sage.modules + sage: from sage.matrix.constructor import matrix sage: sage_getsourcelines(matrix)[1] - 21 + 22 sage: sage_getsourcelines(matrix)[0][0] 'def matrix(*args, **kwds):\n' diff --git a/src/sage/misc/search.pxd b/src/sage/misc/search.pxd index 8cc43ba1b0f..b4cef51a1f2 100644 --- a/src/sage/misc/search.pxd +++ b/src/sage/misc/search.pxd @@ -1 +1,3 @@ -cpdef search(object v, object x) \ No newline at end of file +# sage_setup: distribution = sagemath-categories + +cpdef search(object v, object x) diff --git a/src/sage/misc/search.pyx b/src/sage/misc/search.pyx index 838e77268f5..e3ebd7cc5a2 100644 --- a/src/sage/misc/search.pyx +++ b/src/sage/misc/search.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Searching a sorted list diff --git a/src/sage/misc/session.pyx b/src/sage/misc/session.pyx index 5012c5689d4..97f64356c58 100644 --- a/src/sage/misc/session.pyx +++ b/src/sage/misc/session.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects r""" Loading and saving sessions and listing all variables diff --git a/src/sage/misc/sphinxify.py b/src/sage/misc/sphinxify.py index 3bd0b12b367..54536ce4628 100644 --- a/src/sage/misc/sphinxify.py +++ b/src/sage/misc/sphinxify.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - sphinx r""" Process docstrings with Sphinx diff --git a/src/sage/misc/stopgap.pyx b/src/sage/misc/stopgap.pyx index e6f626ae9b4..1361eb76717 100644 --- a/src/sage/misc/stopgap.pyx +++ b/src/sage/misc/stopgap.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Stopgaps """ diff --git a/src/sage/misc/superseded.py b/src/sage/misc/superseded.py index 6aaa8e6fb6f..0a4942ac75e 100644 --- a/src/sage/misc/superseded.py +++ b/src/sage/misc/superseded.py @@ -54,7 +54,7 @@ def _check_issue_number(issue_number): sage: _check_issue_number(10.0) Traceback (most recent call last): ... - TypeError: 10.0000000000000 is not a valid github issue number + TypeError: 10... is not a valid github issue number sage: _check_issue_number('10') Traceback (most recent call last): ... diff --git a/src/sage/misc/table.py b/src/sage/misc/table.py index 086e8fd49ed..db5df164d5c 100644 --- a/src/sage/misc/table.py +++ b/src/sage/misc/table.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Tables diff --git a/src/sage/misc/test_class_pickling.py b/src/sage/misc/test_class_pickling.py index ed2eb62a540..ff3e4e9e7c7 100644 --- a/src/sage/misc/test_class_pickling.py +++ b/src/sage/misc/test_class_pickling.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules import copyreg diff --git a/src/sage/misc/test_nested_class.py b/src/sage/misc/test_nested_class.py index e7791f95a3a..c0203b78db4 100644 --- a/src/sage/misc/test_nested_class.py +++ b/src/sage/misc/test_nested_class.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects """ Test for nested class Parent diff --git a/src/sage/misc/timing.py b/src/sage/misc/timing.py index 75d73ef2db6..c9e9bf747f9 100644 --- a/src/sage/misc/timing.py +++ b/src/sage/misc/timing.py @@ -18,7 +18,6 @@ # **************************************************************************** -import resource import time @@ -73,6 +72,12 @@ def cputime(t=0, subprocesses=False): CPU time is reported correctly because subprocesses can be started and terminated at any given time. """ + try: + import resource + except ImportError: + # The module 'resource' is removed in Pyodide to browser limitations. + return walltime(t) + if isinstance(t, GlobalCputime): subprocesses = True diff --git a/src/sage/misc/trace.py b/src/sage/misc/trace.py index 927915a4ba5..eda38485edd 100644 --- a/src/sage/misc/trace.py +++ b/src/sage/misc/trace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ Interactively tracing execution of a command """ diff --git a/src/sage/modular/abvar/abvar.py b/src/sage/modular/abvar/abvar.py index 80f1fd3e7c4..f852e9d9060 100644 --- a/src/sage/modular/abvar/abvar.py +++ b/src/sage/modular/abvar/abvar.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Base class for modular abelian varieties diff --git a/src/sage/modular/abvar/abvar_ambient_jacobian.py b/src/sage/modular/abvar/abvar_ambient_jacobian.py index 1a7c1e82370..58b4ce1c234 100644 --- a/src/sage/modular/abvar/abvar_ambient_jacobian.py +++ b/src/sage/modular/abvar/abvar_ambient_jacobian.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Ambient Jacobian abelian variety diff --git a/src/sage/modular/abvar/abvar_newform.py b/src/sage/modular/abvar/abvar_newform.py index 9568e5481cc..8f84dff4785 100644 --- a/src/sage/modular/abvar/abvar_newform.py +++ b/src/sage/modular/abvar/abvar_newform.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ Abelian varieties attached to newforms diff --git a/src/sage/modular/abvar/all.py b/src/sage/modular/abvar/all.py index 6ba2c77225d..e15363355dc 100644 --- a/src/sage/modular/abvar/all.py +++ b/src/sage/modular/abvar/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes ########################################################################### # Copyright (C) 2007 William Stein # # Distributed under the terms of the GNU General Public License (GPL) # diff --git a/src/sage/modular/abvar/constructor.py b/src/sage/modular/abvar/constructor.py index 53561063eaa..db4227b2609 100644 --- a/src/sage/modular/abvar/constructor.py +++ b/src/sage/modular/abvar/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Constructors for certain modular abelian varieties diff --git a/src/sage/modular/abvar/cuspidal_subgroup.py b/src/sage/modular/abvar/cuspidal_subgroup.py index 7a0921076d9..0e74f566879 100644 --- a/src/sage/modular/abvar/cuspidal_subgroup.py +++ b/src/sage/modular/abvar/cuspidal_subgroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Cuspidal subgroups of modular abelian varieties diff --git a/src/sage/modular/abvar/finite_subgroup.py b/src/sage/modular/abvar/finite_subgroup.py index cfaf762eae2..d8da83e68b1 100644 --- a/src/sage/modular/abvar/finite_subgroup.py +++ b/src/sage/modular/abvar/finite_subgroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Finite subgroups of modular abelian varieties diff --git a/src/sage/modular/abvar/homology.py b/src/sage/modular/abvar/homology.py index 21a129072fa..0bf91421cbc 100644 --- a/src/sage/modular/abvar/homology.py +++ b/src/sage/modular/abvar/homology.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari r""" Homology of modular abelian varieties diff --git a/src/sage/modular/abvar/homspace.py b/src/sage/modular/abvar/homspace.py index 30ad76f3601..c6b5f45e9f9 100644 --- a/src/sage/modular/abvar/homspace.py +++ b/src/sage/modular/abvar/homspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Spaces of homomorphisms between modular abelian varieties diff --git a/src/sage/modular/abvar/lseries.py b/src/sage/modular/abvar/lseries.py index e71e58bbcde..a55facdb5b0 100644 --- a/src/sage/modular/abvar/lseries.py +++ b/src/sage/modular/abvar/lseries.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ `L`-series of modular abelian varieties diff --git a/src/sage/modular/abvar/morphism.py b/src/sage/modular/abvar/morphism.py index ccf87e302e7..fd92404c303 100644 --- a/src/sage/modular/abvar/morphism.py +++ b/src/sage/modular/abvar/morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint r""" Hecke operators and morphisms between modular abelian varieties diff --git a/src/sage/modular/abvar/torsion_point.py b/src/sage/modular/abvar/torsion_point.py index 51c889f1bb5..e02beb2f60c 100644 --- a/src/sage/modular/abvar/torsion_point.py +++ b/src/sage/modular/abvar/torsion_point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.number_field """ Torsion points on modular abelian varieties diff --git a/src/sage/modular/abvar/torsion_subgroup.py b/src/sage/modular/abvar/torsion_subgroup.py index 84ee1abe795..3aa15c9fa82 100644 --- a/src/sage/modular/abvar/torsion_subgroup.py +++ b/src/sage/modular/abvar/torsion_subgroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Torsion subgroups of modular abelian varieties diff --git a/src/sage/modular/all.py b/src/sage/modular/all.py index 0eeb5e273a1..5441181b2de 100644 --- a/src/sage/modular/all.py +++ b/src/sage/modular/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes from sage.misc.lazy_import import lazy_import from sage.modular.quatalg.all import * diff --git a/src/sage/modular/arithgroup/all.py b/src/sage/modular/arithgroup/all.py index 51d05664e0d..b2d191d625d 100644 --- a/src/sage/modular/arithgroup/all.py +++ b/src/sage/modular/arithgroup/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # Note: the is_xxx functions are imported to here, but not from here up to sage.modular.all, so # they are invisible to the user but easy to import all in one go by other code that needs them. diff --git a/src/sage/modular/arithgroup/arithgroup_element.pyx b/src/sage/modular/arithgroup/arithgroup_element.pyx index c47f4e453c3..d138575f0f4 100644 --- a/src/sage/modular/arithgroup/arithgroup_element.pyx +++ b/src/sage/modular/arithgroup/arithgroup_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Elements of arithmetic subgroups """ @@ -18,9 +19,10 @@ from sage.structure.richcmp cimport richcmp from sage.rings.integer_ring import ZZ from sage.matrix.matrix_space import MatrixSpace -from sage.matrix.matrix_integer_dense cimport Matrix_integer_dense +from sage.matrix.matrix_generic_dense cimport Matrix_generic_dense as MatrixClass +# FIXME: This was Matrix_integer_dense; changed for modularization to avoid flint dep -M2Z = MatrixSpace(ZZ, 2) +M2Z = MatrixSpace(ZZ, 2, implementation='generic') cdef class ArithmeticSubgroupElement(MultiplicativeGroupElement): @@ -29,7 +31,7 @@ cdef class ArithmeticSubgroupElement(MultiplicativeGroupElement): determinant 1. """ - cdef Matrix_integer_dense __x + cdef MatrixClass __x def __init__(self, parent, x, check=True): """ diff --git a/src/sage/modular/arithgroup/arithgroup_generic.py b/src/sage/modular/arithgroup/arithgroup_generic.py index c70defa96a3..69b2b2baad0 100644 --- a/src/sage/modular/arithgroup/arithgroup_generic.py +++ b/src/sage/modular/arithgroup/arithgroup_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Arithmetic subgroups, finite index subgroups of `\SL_2(\ZZ)` diff --git a/src/sage/modular/arithgroup/arithgroup_perm.py b/src/sage/modular/arithgroup/arithgroup_perm.py index 388cabfeed1..4775ce46326 100644 --- a/src/sage/modular/arithgroup/arithgroup_perm.py +++ b/src/sage/modular/arithgroup/arithgroup_perm.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.groups r""" Arithmetic subgroups defined by permutations of cosets diff --git a/src/sage/modular/arithgroup/congroup.pyx b/src/sage/modular/arithgroup/congroup.pyx index d55c0c0ce7c..0e815b0887a 100644 --- a/src/sage/modular/arithgroup/congroup.pyx +++ b/src/sage/modular/arithgroup/congroup.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Helper functions for congruence subgroups @@ -16,6 +17,9 @@ functions are for internal use by routines elsewhere in the Sage library. from cysignals.memory cimport check_allocarray, sig_free +from sage.matrix.matrix_generic_dense cimport Matrix_generic_dense as MatrixClass +# FIXME: This was Matrix_integer_dense; changed for modularization to avoid flint dep + import random from .congroup_gamma1 import Gamma1_constructor as Gamma1 from .congroup_gamma0 import Gamma0_constructor as Gamma0 @@ -24,16 +28,16 @@ cimport sage.rings.fast_arith import sage.rings.fast_arith cdef sage.rings.fast_arith.arith_int arith_int arith_int = sage.rings.fast_arith.arith_int() -from sage.matrix.matrix_integer_dense cimport Matrix_integer_dense from sage.modular.modsym.p1list import lift_to_sl2z from sage.matrix.matrix_space import MatrixSpace from sage.rings.integer_ring import ZZ Mat2Z = MatrixSpace(ZZ, 2) -cdef Matrix_integer_dense genS, genT, genI -genS = Matrix_integer_dense(Mat2Z, [0,-1, 1, 0], True, True) -genT = Matrix_integer_dense(Mat2Z, [1, 1, 0, 1], True, True) -genI = Matrix_integer_dense(Mat2Z, [1, 0, 0, 1], True, True) +cdef MatrixClass genS, genT, genI + +genS = MatrixClass(Mat2Z, [0,-1, 1, 0], True, True) +genT = MatrixClass(Mat2Z, [1, 1, 0, 1], True, True) +genI = MatrixClass(Mat2Z, [1, 0, 0, 1], True, True) # This is the C version of a function formerly implemented in python in @@ -297,18 +301,18 @@ def generators_helper(coset_reps, level): [21 5], [ 7 -1], [-7 1] ] """ - cdef Matrix_integer_dense x,y,z,v,vSmod,vTmod + cdef MatrixClass x,y,z,v,vSmod,vTmod crs = coset_reps.list() try: - reps = [Matrix_integer_dense(Mat2Z,lift_to_sl2z(c, d, level),False,True) for c,d in crs] + reps = [MatrixClass(Mat2Z,lift_to_sl2z(c, d, level),False,True) for c,d in crs] except Exception: raise ArithmeticError("Error lifting to SL2Z: level=%s crs=%s" % (level, crs)) ans = [] cdef Py_ssize_t i for i in range(len(crs)): x = reps[i] - v = Matrix_integer_dense(Mat2Z,[crs[i][0],crs[i][1],0,0],False,True) + v = MatrixClass(Mat2Z,[crs[i][0],crs[i][1],0,0],False,True) vSmod = (v*genS) vTmod = (v*genT) y_index = coset_reps.normalize(vSmod[0,0],vSmod[0,1]) diff --git a/src/sage/modular/arithgroup/congroup_gamma.py b/src/sage/modular/arithgroup/congroup_gamma.py index 78d878aaf9d..6195f3d4ee4 100644 --- a/src/sage/modular/arithgroup/congroup_gamma.py +++ b/src/sage/modular/arithgroup/congroup_gamma.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Congruence subgroup `\Gamma(N)` """ diff --git a/src/sage/modular/arithgroup/congroup_gamma0.py b/src/sage/modular/arithgroup/congroup_gamma0.py index ca0d050fe6f..f009592e25a 100644 --- a/src/sage/modular/arithgroup/congroup_gamma0.py +++ b/src/sage/modular/arithgroup/congroup_gamma0.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Congruence subgroup `\Gamma_0(N)` diff --git a/src/sage/modular/arithgroup/congroup_gamma1.py b/src/sage/modular/arithgroup/congroup_gamma1.py index c450d98a783..87a040baa42 100644 --- a/src/sage/modular/arithgroup/congroup_gamma1.py +++ b/src/sage/modular/arithgroup/congroup_gamma1.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Congruence subgroup `\Gamma_1(N)` diff --git a/src/sage/modular/arithgroup/congroup_gammaH.py b/src/sage/modular/arithgroup/congroup_gammaH.py index e0cf97c74bc..04146a45bc1 100644 --- a/src/sage/modular/arithgroup/congroup_gammaH.py +++ b/src/sage/modular/arithgroup/congroup_gammaH.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Congruence subgroup `\Gamma_H(N)` diff --git a/src/sage/modular/arithgroup/congroup_generic.py b/src/sage/modular/arithgroup/congroup_generic.py index 41a09602a88..2dff867ee5a 100644 --- a/src/sage/modular/arithgroup/congroup_generic.py +++ b/src/sage/modular/arithgroup/congroup_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.gap sage.libs.pari r""" Congruence arithmetic subgroups of `\SL_2(\ZZ)` diff --git a/src/sage/modular/arithgroup/congroup_sl2z.py b/src/sage/modular/arithgroup/congroup_sl2z.py index d95c9e18764..b8448e5ee3b 100644 --- a/src/sage/modular/arithgroup/congroup_sl2z.py +++ b/src/sage/modular/arithgroup/congroup_sl2z.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" The modular group `\SL_2(\ZZ)` diff --git a/src/sage/modular/arithgroup/farey.cpp b/src/sage/modular/arithgroup/farey.cpp index d224b2a8d13..4948608ff75 100644 --- a/src/sage/modular/arithgroup/farey.cpp +++ b/src/sage/modular/arithgroup/farey.cpp @@ -1,3 +1,4 @@ +// sage_setup: distribution = sagemath-schemes // // farey.cpp // diff --git a/src/sage/modular/arithgroup/farey.hpp b/src/sage/modular/arithgroup/farey.hpp index 03c03cf1434..a20cc55de97 100644 --- a/src/sage/modular/arithgroup/farey.hpp +++ b/src/sage/modular/arithgroup/farey.hpp @@ -1,3 +1,4 @@ +// sage_setup: distribution = sagemath-schemes // // farey.hpp // FareySymbol diff --git a/src/sage/modular/arithgroup/farey_symbol.pyx b/src/sage/modular/arithgroup/farey_symbol.pyx index c965015b41d..95db9f8554b 100644 --- a/src/sage/modular/arithgroup/farey_symbol.pyx +++ b/src/sage/modular/arithgroup/farey_symbol.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # distutils: sources = sage/modular/arithgroup/sl2z.cpp sage/modular/arithgroup/farey.cpp # distutils: language = c++ # distutils: extra_compile_args = -std=c++11 diff --git a/src/sage/modular/arithgroup/meson.build.in b/src/sage/modular/arithgroup/meson.build.in new file mode 100644 index 00000000000..8a76d5edcd0 --- /dev/null +++ b/src/sage/modular/arithgroup/meson.build.in @@ -0,0 +1,7 @@ +# Manually create header file, which otherwise is not found +farey_symbol_header = custom_target( + 'farey_symbol.h', + output : 'farey_symbol.h', + input : 'farey_symbol.pyx', + command : [cython.cmd_array(), '--cplus', '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], +) diff --git a/src/sage/modular/arithgroup/sl2z.cpp b/src/sage/modular/arithgroup/sl2z.cpp index 4c096bf1ac5..9b993442529 100644 --- a/src/sage/modular/arithgroup/sl2z.cpp +++ b/src/sage/modular/arithgroup/sl2z.cpp @@ -1,3 +1,5 @@ +// sage_setup: distribution = sagemath-schemes + //**************************************************************************** // Copyright (C) 2011 Hartmut Monien // diff --git a/src/sage/modular/arithgroup/sl2z.hpp b/src/sage/modular/arithgroup/sl2z.hpp index cf29ac62858..9ae9179619d 100644 --- a/src/sage/modular/arithgroup/sl2z.hpp +++ b/src/sage/modular/arithgroup/sl2z.hpp @@ -1,3 +1,5 @@ +// sage_setup: distribution = sagemath-schemes +// //**************************************************************************** // Copyright (C) 2011 Hartmut Monien // diff --git a/src/sage/modular/arithgroup/tests.py b/src/sage/modular/arithgroup/tests.py index b00e39c0cda..581fdb0d363 100644 --- a/src/sage/modular/arithgroup/tests.py +++ b/src/sage/modular/arithgroup/tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.groups r""" Testing arithmetic subgroup diff --git a/src/sage/modular/btquotients/all.py b/src/sage/modular/btquotients/all.py index 1e96b2db99b..15c39012db2 100644 --- a/src/sage/modular/btquotients/all.py +++ b/src/sage/modular/btquotients/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-schemes + from sage.modular.btquotients.btquotient import BruhatTitsQuotient # from pautomorphicform import pAdicAutomorphicForms # from pautomorphicform import BruhatTitsHarmonicCocycles diff --git a/src/sage/modular/btquotients/btquotient.py b/src/sage/modular/btquotients/btquotient.py index d4bdb13e6b1..a260f353cec 100644 --- a/src/sage/modular/btquotients/btquotient.py +++ b/src/sage/modular/btquotients/btquotient.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Quotients of the Bruhat-Tits tree @@ -1463,6 +1464,7 @@ def __init__(self, p, Nminus, Nplus=1, character=None, if use_magma or self._Nplus != 1 or self._p == 2: try: if magma_session is None: + from sage.interfaces.magma import magma self._magma = magma else: self._magma = magma_session @@ -2334,6 +2336,7 @@ def get_extra_embedding_matrices(self): n_iters += 1 verbose('Restarting magma...') self._magma.quit() + from sage.interfaces.magma import magma self._magma = magma self._magma.function_call('SetSeed', n_iters, nvals=0) self._order_is_initialized = False diff --git a/src/sage/modular/btquotients/pautomorphicform.py b/src/sage/modular/btquotients/pautomorphicform.py index 54acfeeeaa9..540bda13f87 100644 --- a/src/sage/modular/btquotients/pautomorphicform.py +++ b/src/sage/modular/btquotients/pautomorphicform.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari ######################################################################### # Copyright (C) 2011 Cameron Franc and Marc Masdeu @@ -36,7 +37,7 @@ This can then be lifted to an overconvergent `p`-adic modular form:: - sage: A.lift(a) # long time # needs sage.rings.padics + sage: A.lift(a) # long time # needs sage.rings.padics p-adic automorphic form of cohomological weight 0 """ diff --git a/src/sage/modular/buzzard.py b/src/sage/modular/buzzard.py index 6c88bfcf172..58a5168302a 100644 --- a/src/sage/modular/buzzard.py +++ b/src/sage/modular/buzzard.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ Conjectural slopes of Hecke polynomials diff --git a/src/sage/modular/congroup.py b/src/sage/modular/congroup.py index 23a6679fdcc..57ae81ec647 100644 --- a/src/sage/modular/congroup.py +++ b/src/sage/modular/congroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes ########################################################### # Re-bindings for unpickling # diff --git a/src/sage/modular/congroup_element.py b/src/sage/modular/congroup_element.py index 61ae5071e46..f599fcf9c64 100644 --- a/src/sage/modular/congroup_element.py +++ b/src/sage/modular/congroup_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes ########################################################### # Re-bindings for unpickling # diff --git a/src/sage/modular/cusps.py b/src/sage/modular/cusps.py index 7a4a2628096..508b53557ee 100644 --- a/src/sage/modular/cusps.py +++ b/src/sage/modular/cusps.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" The set `\mathbb{P}^1(\QQ)` of cusps diff --git a/src/sage/modular/cusps_nf.py b/src/sage/modular/cusps_nf.py index 4d120c075da..cd55c089f50 100644 --- a/src/sage/modular/cusps_nf.py +++ b/src/sage/modular/cusps_nf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.number_field r""" The set `\mathbb{P}^1(K)` of cusps of a number field `K` diff --git a/src/sage/modular/dims.py b/src/sage/modular/dims.py index 7eef7392e76..7f49737e304 100644 --- a/src/sage/modular/dims.py +++ b/src/sage/modular/dims.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Dimensions of spaces of modular forms diff --git a/src/sage/modular/dirichlet.py b/src/sage/modular/dirichlet.py index 1f6a7a94444..1d75019a900 100644 --- a/src/sage/modular/dirichlet.py +++ b/src/sage/modular/dirichlet.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Dirichlet characters diff --git a/src/sage/modular/etaproducts.py b/src/sage/modular/etaproducts.py index a063255c6a6..284e87b541d 100644 --- a/src/sage/modular/etaproducts.py +++ b/src/sage/modular/etaproducts.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Eta-products on modular curves `X_0(N)` diff --git a/src/sage/modular/hecke/algebra.py b/src/sage/modular/hecke/algebra.py index 383a4e0c035..aa0ca1c026a 100644 --- a/src/sage/modular/hecke/algebra.py +++ b/src/sage/modular/hecke/algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Hecke algebras diff --git a/src/sage/modular/hecke/all.py b/src/sage/modular/hecke/all.py index 3c9230a2520..144d82f1ca3 100644 --- a/src/sage/modular/hecke/all.py +++ b/src/sage/modular/hecke/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-schemes + from sage.modular.hecke.homspace import HeckeModuleHomspace, is_HeckeModuleHomspace from sage.modular.hecke.module import HeckeModule_free_module, HeckeModule_generic, is_HeckeModule diff --git a/src/sage/modular/hecke/ambient_module.py b/src/sage/modular/hecke/ambient_module.py index 3ce44fa63ce..49117f140f2 100644 --- a/src/sage/modular/hecke/ambient_module.py +++ b/src/sage/modular/hecke/ambient_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Ambient Hecke modules diff --git a/src/sage/modular/hecke/degenmap.py b/src/sage/modular/hecke/degenmap.py index 887506e7559..1590a691f19 100644 --- a/src/sage/modular/hecke/degenmap.py +++ b/src/sage/modular/hecke/degenmap.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ Degeneracy maps diff --git a/src/sage/modular/hecke/element.py b/src/sage/modular/hecke/element.py index 4a82899325a..fdec50ea039 100644 --- a/src/sage/modular/hecke/element.py +++ b/src/sage/modular/hecke/element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Elements of Hecke modules diff --git a/src/sage/modular/hecke/hecke_operator.py b/src/sage/modular/hecke/hecke_operator.py index c7d39270f63..ac6ada92061 100644 --- a/src/sage/modular/hecke/hecke_operator.py +++ b/src/sage/modular/hecke/hecke_operator.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Hecke operators diff --git a/src/sage/modular/hecke/homspace.py b/src/sage/modular/hecke/homspace.py index 6971605ce91..74beb393359 100644 --- a/src/sage/modular/hecke/homspace.py +++ b/src/sage/modular/hecke/homspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Hom spaces between Hecke modules diff --git a/src/sage/modular/hecke/module.py b/src/sage/modular/hecke/module.py index e22ed609da6..bc0cbc3722b 100644 --- a/src/sage/modular/hecke/module.py +++ b/src/sage/modular/hecke/module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Hecke modules diff --git a/src/sage/modular/hecke/morphism.py b/src/sage/modular/hecke/morphism.py index d9dff926fbe..85a9e3d27d8 100644 --- a/src/sage/modular/hecke/morphism.py +++ b/src/sage/modular/hecke/morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ Morphisms of Hecke modules diff --git a/src/sage/modular/hecke/submodule.py b/src/sage/modular/hecke/submodule.py index c542d095339..c0c6cd4fb4c 100644 --- a/src/sage/modular/hecke/submodule.py +++ b/src/sage/modular/hecke/submodule.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Submodules of Hecke modules diff --git a/src/sage/modular/hypergeometric_misc.pxd b/src/sage/modular/hypergeometric_misc.pxd index ccd013ca2ee..726aa9d0c7e 100644 --- a/src/sage/modular/hypergeometric_misc.pxd +++ b/src/sage/modular/hypergeometric_misc.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes cpdef hgm_coeffs(long long p, unsigned int f, int prec, gamma, m, int D, gtable, int gtable_prec, bint use_longs) diff --git a/src/sage/modular/hypergeometric_misc.pyx b/src/sage/modular/hypergeometric_misc.pyx index f3e37b515d9..b7790708434 100644 --- a/src/sage/modular/hypergeometric_misc.pyx +++ b/src/sage/modular/hypergeometric_misc.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Some utility routines for the hypergeometric motives package that benefit significantly from Cythonization. diff --git a/src/sage/modular/hypergeometric_motive.py b/src/sage/modular/hypergeometric_motive.py index 5418a1fff58..abdefac6fd9 100644 --- a/src/sage/modular/hypergeometric_motive.py +++ b/src/sage/modular/hypergeometric_motive.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Hypergeometric motives @@ -74,7 +75,6 @@ from sage.misc.misc_c import prod from sage.modular.hypergeometric_misc import hgm_coeffs from sage.modules.free_module_element import vector -from sage.rings.finite_rings.finite_field_constructor import GF from sage.rings.finite_rings.integer_mod_ring import IntegerModRing from sage.rings.fraction_field import FractionField from sage.rings.integer_ring import ZZ @@ -84,7 +84,6 @@ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.power_series_ring import PowerSeriesRing from sage.rings.rational_field import QQ -from sage.rings.universal_cyclotomic_field import UniversalCyclotomicField from sage.schemes.generic.spec import Spec @@ -1562,6 +1561,7 @@ def H_value(self, p, f, t, ring=None): if 0 in alpha: return self._swap.H_value(p, f, ~t, ring) if ring is None: + from sage.rings.universal_cyclotomic_field import UniversalCyclotomicField ring = UniversalCyclotomicField() gamma = self.gamma_array() q = p**f @@ -1571,6 +1571,8 @@ def H_value(self, p, f, t, ring=None): # also: D = (self.weight() + 1 - m[0]) // 2 M = self.M_value() + from sage.rings.finite_rings.finite_field_constructor import GF + Fq = GF((p, f)) gen = Fq.multiplicative_generator() zeta_q = ring.zeta(q - 1) diff --git a/src/sage/modular/local_comp/all.py b/src/sage/modular/local_comp/all.py index 1177acd9b7e..60806b8c93f 100644 --- a/src/sage/modular/local_comp/all.py +++ b/src/sage/modular/local_comp/all.py @@ -1 +1,3 @@ +# sage_setup: distribution = sagemath-schemes + from sage.modular.local_comp.local_comp import LocalComponent diff --git a/src/sage/modular/local_comp/liftings.py b/src/sage/modular/local_comp/liftings.py index 3cef125420d..60c32e083ca 100644 --- a/src/sage/modular/local_comp/liftings.py +++ b/src/sage/modular/local_comp/liftings.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Helper functions for local components diff --git a/src/sage/modular/local_comp/local_comp.py b/src/sage/modular/local_comp/local_comp.py index 04d9123ab57..ed7335eb755 100644 --- a/src/sage/modular/local_comp/local_comp.py +++ b/src/sage/modular/local_comp/local_comp.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Local components of modular forms diff --git a/src/sage/modular/local_comp/smoothchar.py b/src/sage/modular/local_comp/smoothchar.py index e2cadd4219a..ad668805e24 100644 --- a/src/sage/modular/local_comp/smoothchar.py +++ b/src/sage/modular/local_comp/smoothchar.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari sage.rings.number_field r""" Smooth characters of `p`-adic fields diff --git a/src/sage/modular/local_comp/type_space.py b/src/sage/modular/local_comp/type_space.py index ea43ec89ccf..cd3abc61b15 100644 --- a/src/sage/modular/local_comp/type_space.py +++ b/src/sage/modular/local_comp/type_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Type spaces of newforms diff --git a/src/sage/modular/modform/all.py b/src/sage/modular/modform/all.py index 6461e3c7083..18afdf8401e 100644 --- a/src/sage/modular/modform/all.py +++ b/src/sage/modular/modform/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes ######################################################################### # Copyright (C) 2004--2006 William Stein # diff --git a/src/sage/modular/modform/ambient.py b/src/sage/modular/modform/ambient.py index bf67263db8c..2f12c38c2f4 100644 --- a/src/sage/modular/modform/ambient.py +++ b/src/sage/modular/modform/ambient.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Ambient spaces of modular forms diff --git a/src/sage/modular/modform/ambient_R.py b/src/sage/modular/modform/ambient_R.py index c07597e25dc..a492bbff0e5 100644 --- a/src/sage/modular/modform/ambient_R.py +++ b/src/sage/modular/modform/ambient_R.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ Modular forms over a non-minimal base ring diff --git a/src/sage/modular/modform/ambient_eps.py b/src/sage/modular/modform/ambient_eps.py index ddd4ed467bc..b04611950f1 100644 --- a/src/sage/modular/modform/ambient_eps.py +++ b/src/sage/modular/modform/ambient_eps.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari sage.rings.number_field r""" Modular forms with character diff --git a/src/sage/modular/modform/ambient_g0.py b/src/sage/modular/modform/ambient_g0.py index 0b2ffb8fb83..17186291d89 100644 --- a/src/sage/modular/modform/ambient_g0.py +++ b/src/sage/modular/modform/ambient_g0.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Modular forms for `\Gamma_0(N)` over `\QQ` diff --git a/src/sage/modular/modform/ambient_g1.py b/src/sage/modular/modform/ambient_g1.py index 31db01bd081..3e885175c4f 100644 --- a/src/sage/modular/modform/ambient_g1.py +++ b/src/sage/modular/modform/ambient_g1.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Modular forms for `\Gamma_1(N)` and `\Gamma_H(N)` over `\QQ` diff --git a/src/sage/modular/modform/constructor.py b/src/sage/modular/modform/constructor.py index ffe19d3d708..d9ea60f71e0 100644 --- a/src/sage/modular/modform/constructor.py +++ b/src/sage/modular/modform/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ Creating spaces of modular forms diff --git a/src/sage/modular/modform/cuspidal_submodule.py b/src/sage/modular/modform/cuspidal_submodule.py index 5de0805b386..803086d92d3 100644 --- a/src/sage/modular/modform/cuspidal_submodule.py +++ b/src/sage/modular/modform/cuspidal_submodule.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ The cuspidal subspace diff --git a/src/sage/modular/modform/defaults.py b/src/sage/modular/modform/defaults.py index e818030eebf..4a7d07edb69 100644 --- a/src/sage/modular/modform/defaults.py +++ b/src/sage/modular/modform/defaults.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes ######################################################################### # Copyright (C) 2004--2006 William Stein # diff --git a/src/sage/modular/modform/eis_series.py b/src/sage/modular/modform/eis_series.py index 73ea6dcaf1c..3182a27acc8 100644 --- a/src/sage/modular/modform/eis_series.py +++ b/src/sage/modular/modform/eis_series.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Eisenstein series diff --git a/src/sage/modular/modform/eisenstein_submodule.py b/src/sage/modular/modform/eisenstein_submodule.py index fbbe2e06da3..0714347eefa 100644 --- a/src/sage/modular/modform/eisenstein_submodule.py +++ b/src/sage/modular/modform/eisenstein_submodule.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ The Eisenstein subspace diff --git a/src/sage/modular/modform/element.py b/src/sage/modular/modform/element.py index 6ce83f0372e..8d8520247c5 100644 --- a/src/sage/modular/modform/element.py +++ b/src/sage/modular/modform/element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Elements of modular forms spaces diff --git a/src/sage/modular/modform/find_generators.py b/src/sage/modular/modform/find_generators.py index 3fb00a3f9af..b3a8c039864 100644 --- a/src/sage/modular/modform/find_generators.py +++ b/src/sage/modular/modform/find_generators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint r""" This module is now called ``ring.py`` (see :issue:`31559`). Do not import from here as diff --git a/src/sage/modular/modform/half_integral.py b/src/sage/modular/modform/half_integral.py index 49e205cafab..4185a6f5c72 100644 --- a/src/sage/modular/modform/half_integral.py +++ b/src/sage/modular/modform/half_integral.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Compute spaces of half-integral weight modular forms diff --git a/src/sage/modular/modform/hecke_operator_on_qexp.py b/src/sage/modular/modform/hecke_operator_on_qexp.py index 346a073f20a..9e8b57b5477 100644 --- a/src/sage/modular/modform/hecke_operator_on_qexp.py +++ b/src/sage/modular/modform/hecke_operator_on_qexp.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ Hecke operators on `q`-expansions diff --git a/src/sage/modular/modform/j_invariant.py b/src/sage/modular/modform/j_invariant.py index a74d42b91b2..3556844dbfa 100644 --- a/src/sage/modular/modform/j_invariant.py +++ b/src/sage/modular/modform/j_invariant.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint r""" `q`-expansion of `j`-invariant diff --git a/src/sage/modular/modform/l_series_gross_zagier.py b/src/sage/modular/modform/l_series_gross_zagier.py index 7959c346a2e..97ea44dbd54 100644 --- a/src/sage/modular/modform/l_series_gross_zagier.py +++ b/src/sage/modular/modform/l_series_gross_zagier.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes from sage.rings.integer import Integer from sage.structure.sage_object import SageObject from sage.lfunctions.dokchitser import Dokchitser diff --git a/src/sage/modular/modform/l_series_gross_zagier_coeffs.pyx b/src/sage/modular/modform/l_series_gross_zagier_coeffs.pyx index b3dc41e1750..8b656b5ded5 100644 --- a/src/sage/modular/modform/l_series_gross_zagier_coeffs.pyx +++ b/src/sage/modular/modform/l_series_gross_zagier_coeffs.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes from cysignals.memory cimport check_allocarray, check_calloc, sig_free from cysignals.signals cimport sig_check, sig_on, sig_off diff --git a/src/sage/modular/modform/notes.py b/src/sage/modular/modform/notes.py index 833bb017bfd..61064b6f40b 100644 --- a/src/sage/modular/modform/notes.py +++ b/src/sage/modular/modform/notes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Design notes diff --git a/src/sage/modular/modform/numerical.py b/src/sage/modular/modform/numerical.py index dd14ff15995..be543befe7e 100644 --- a/src/sage/modular/modform/numerical.py +++ b/src/sage/modular/modform/numerical.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ Numerical computation of newforms diff --git a/src/sage/modular/modform/periods.py b/src/sage/modular/modform/periods.py index d1b3dd72245..8c6fce42899 100644 --- a/src/sage/modular/modform/periods.py +++ b/src/sage/modular/modform/periods.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Periods of modular forms """ diff --git a/src/sage/modular/modform/ring.py b/src/sage/modular/modform/ring.py index dacfda54bae..0f8239a8ee1 100644 --- a/src/sage/modular/modform/ring.py +++ b/src/sage/modular/modform/ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Graded rings of modular forms diff --git a/src/sage/modular/modform/space.py b/src/sage/modular/modform/space.py index 202ea687953..f666817164b 100644 --- a/src/sage/modular/modform/space.py +++ b/src/sage/modular/modform/space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Generic spaces of modular forms diff --git a/src/sage/modular/modform/submodule.py b/src/sage/modular/modform/submodule.py index 992b7ed6231..217630c6a42 100644 --- a/src/sage/modular/modform/submodule.py +++ b/src/sage/modular/modform/submodule.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ Submodules of spaces of modular forms diff --git a/src/sage/modular/modform/tests.py b/src/sage/modular/modform/tests.py index 9ca5b54a194..62902dfb3c6 100644 --- a/src/sage/modular/modform/tests.py +++ b/src/sage/modular/modform/tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ TESTS: diff --git a/src/sage/modular/modform/theta.py b/src/sage/modular/modform/theta.py index fbe34473f98..bd3b7254888 100644 --- a/src/sage/modular/modform/theta.py +++ b/src/sage/modular/modform/theta.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ `q`-expansions of theta series diff --git a/src/sage/modular/modform/vm_basis.py b/src/sage/modular/modform/vm_basis.py index 58f36fd0f1a..acf8378d0df 100644 --- a/src/sage/modular/modform/vm_basis.py +++ b/src/sage/modular/modform/vm_basis.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint r""" The Victor Miller basis diff --git a/src/sage/modular/modform/weight1.py b/src/sage/modular/modform/weight1.py index 9aa75074676..26d66d17ea1 100644 --- a/src/sage/modular/modform/weight1.py +++ b/src/sage/modular/modform/weight1.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" Weight 1 modular forms diff --git a/src/sage/modular/modform_hecketriangle/abstract_ring.py b/src/sage/modular/modform_hecketriangle/abstract_ring.py index e62cdcb47af..ad5eba1083c 100644 --- a/src/sage/modular/modform_hecketriangle/abstract_ring.py +++ b/src/sage/modular/modform_hecketriangle/abstract_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Graded rings of modular forms for Hecke triangle groups diff --git a/src/sage/modular/modform_hecketriangle/abstract_space.py b/src/sage/modular/modform_hecketriangle/abstract_space.py index 89c86ca41c2..9695dcd6e78 100644 --- a/src/sage/modular/modform_hecketriangle/abstract_space.py +++ b/src/sage/modular/modform_hecketriangle/abstract_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat sage.graphs r""" Modular forms for Hecke triangle groups diff --git a/src/sage/modular/modform_hecketriangle/all.py b/src/sage/modular/modform_hecketriangle/all.py index 1c2bfeccdc6..bfb8f6b8239 100644 --- a/src/sage/modular/modform_hecketriangle/all.py +++ b/src/sage/modular/modform_hecketriangle/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" AUTHORS: diff --git a/src/sage/modular/modform_hecketriangle/analytic_type.py b/src/sage/modular/modform_hecketriangle/analytic_type.py index 32a2123d974..5365116764d 100644 --- a/src/sage/modular/modform_hecketriangle/analytic_type.py +++ b/src/sage/modular/modform_hecketriangle/analytic_type.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.graphs r""" Analytic types of modular forms diff --git a/src/sage/modular/modform_hecketriangle/constructor.py b/src/sage/modular/modform_hecketriangle/constructor.py index e3525879e6e..9be714906dd 100644 --- a/src/sage/modular/modform_hecketriangle/constructor.py +++ b/src/sage/modular/modform_hecketriangle/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat sage.graphs r""" Constructor for spaces of modular forms for Hecke triangle groups based on a type diff --git a/src/sage/modular/modform_hecketriangle/element.py b/src/sage/modular/modform_hecketriangle/element.py index 8d8575537e3..f69baea2e4b 100644 --- a/src/sage/modular/modform_hecketriangle/element.py +++ b/src/sage/modular/modform_hecketriangle/element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat sage.graphs r""" Elements of Hecke modular forms spaces diff --git a/src/sage/modular/modform_hecketriangle/functors.py b/src/sage/modular/modform_hecketriangle/functors.py index b50d618c3c4..6e238b9b6fd 100644 --- a/src/sage/modular/modform_hecketriangle/functors.py +++ b/src/sage/modular/modform_hecketriangle/functors.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat sage.graphs r""" Functor construction for all spaces diff --git a/src/sage/modular/modform_hecketriangle/graded_ring.py b/src/sage/modular/modform_hecketriangle/graded_ring.py index 1cb832bbef3..da907a01259 100644 --- a/src/sage/modular/modform_hecketriangle/graded_ring.py +++ b/src/sage/modular/modform_hecketriangle/graded_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat sage.graphs r""" Graded rings of modular forms for Hecke triangle groups diff --git a/src/sage/modular/modform_hecketriangle/graded_ring_element.py b/src/sage/modular/modform_hecketriangle/graded_ring_element.py index b1510c662a6..6de47250d20 100644 --- a/src/sage/modular/modform_hecketriangle/graded_ring_element.py +++ b/src/sage/modular/modform_hecketriangle/graded_ring_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat sage.graphs r""" Elements of graded rings of modular forms for Hecke triangle groups @@ -15,8 +16,8 @@ # https://www.gnu.org/licenses/ # **************************************************************************** -from sage.functions.log import exp -from sage.geometry.hyperbolic_space.hyperbolic_interface import HyperbolicPlane +import sage.geometry.abc + from sage.misc.cachefunc import cached_method from sage.misc.inherit_comparison import InheritComparisonClasscallMetaclass from sage.misc.lazy_import import lazy_import @@ -1334,8 +1335,10 @@ def order_at(self, tau=infinity): i = QuadraticField(-1, 'I').gen() # if tau is a point of HyperbolicPlane then we use it's coordinates in the UHP model - if (tau in HyperbolicPlane()): - tau = tau.to_model('UHP').coordinates() + if isinstance(tau.parent(), sage.geometry.abc.HyperbolicSpace): + from sage.geometry.hyperbolic_space.hyperbolic_interface import HyperbolicPlane + if tau in HyperbolicPlane(): + tau = tau.to_model('UHP').coordinates() if self.is_zero(): return infinity @@ -2136,13 +2139,15 @@ def evaluate(self, tau, prec=None, num_prec=None, check=False): i = QuadraticField(-1, 'I').gen() - # if tau is a point of HyperbolicPlane then we use it's coordinates in the UHP model - if (tau in HyperbolicPlane()): - tau = tau.to_model('UHP').coordinates() + # if tau is a point of HyperbolicPlane then we use its coordinates in the UHP model + if isinstance(tau.parent(), sage.geometry.abc.HyperbolicSpace): + from sage.geometry.hyperbolic_space.hyperbolic_interface import HyperbolicPlane + if tau in HyperbolicPlane(): + tau = tau.to_model('UHP').coordinates() - if (prec is None): + if prec is None: prec = self.parent().default_prec() - if (num_prec is None): + if num_prec is None: num_prec = self.parent().default_num_prec() # In case the order is known diff --git a/src/sage/modular/modform_hecketriangle/hecke_triangle_group_element.py b/src/sage/modular/modform_hecketriangle/hecke_triangle_group_element.py index e7c56fd0e94..2d0d5823bdc 100644 --- a/src/sage/modular/modform_hecketriangle/hecke_triangle_group_element.py +++ b/src/sage/modular/modform_hecketriangle/hecke_triangle_group_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.gap r""" Hecke triangle group elements @@ -16,6 +17,8 @@ # https://www.gnu.org/licenses/ # **************************************************************************** +import sage.geometry.abc + from sage.misc.latex import latex from sage.misc.lazy_import import lazy_import from sage.misc.misc_c import prod @@ -26,7 +29,6 @@ from sage.rings.cc import CC from sage.groups.matrix_gps.group_element import MatrixGroupElement_generic -from sage.geometry.hyperbolic_space.hyperbolic_interface import HyperbolicPlane lazy_import('sage.rings.qqbar', 'AA') @@ -3164,11 +3166,13 @@ def acton(self, tau): if tau.parent() == self.parent(): return self*tau*self.inverse() - # if tau is a point of HyperbolicPlane then we use it's coordinates in the UHP model + # if tau is a point of HyperbolicPlane then we use its coordinates in the UHP model model = None - if (tau in HyperbolicPlane()): - model = tau.model() - tau = tau.to_model('UHP').coordinates() + if isinstance(tau.parent(), sage.geometry.abc.HyperbolicSpace): + from sage.geometry.hyperbolic_space.hyperbolic_interface import HyperbolicPlane + if tau in HyperbolicPlane(): + model = tau.model() + tau = tau.to_model('UHP').coordinates() a, b, c, d = self._matrix.list() @@ -3185,6 +3189,7 @@ def acton(self, tau): if model is None: return result else: + from sage.geometry.hyperbolic_space.hyperbolic_interface import HyperbolicPlane return HyperbolicPlane().UHP().get_point(result).to_model(model) def _act_on_(self, other, self_on_left): @@ -3222,10 +3227,13 @@ def _act_on_(self, other, self_on_left): sage: G.U()*p lam """ - - if (self_on_left): - if (other == infinity or other in CC or other in HyperbolicPlane()): + if self_on_left: + if other == infinity or other in CC: return self.acton(other) + if isinstance(other.parent(), sage.geometry.abc.HyperbolicSpace): + from sage.geometry.hyperbolic_space.hyperbolic_interface import HyperbolicPlane + if other in HyperbolicPlane(): + return self.acton(other) return None def slash(self, f, tau=None, k=None): @@ -3312,8 +3320,10 @@ def slash(self, f, tau=None, k=None): except (ValueError, TypeError, AttributeError): raise ValueError("f={} is not a rational function or a polynomial in one variable, so tau has to be specified explicitly!".format(f)) - if (tau in HyperbolicPlane()): - tau = tau.to_model('UHP').coordinates() + if isinstance(tau.parent(), sage.geometry.abc.HyperbolicSpace): + from sage.geometry.hyperbolic_space.hyperbolic_interface import HyperbolicPlane + if tau in HyperbolicPlane(): + tau = tau.to_model('UHP').coordinates() return (self.c()*tau + self.d())**(-k) * f(self.acton(tau)) diff --git a/src/sage/modular/modform_hecketriangle/hecke_triangle_groups.py b/src/sage/modular/modform_hecketriangle/hecke_triangle_groups.py index 6aedcba881c..35b709a51aa 100644 --- a/src/sage/modular/modform_hecketriangle/hecke_triangle_groups.py +++ b/src/sage/modular/modform_hecketriangle/hecke_triangle_groups.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.gap r""" Hecke triangle groups diff --git a/src/sage/modular/modform_hecketriangle/readme.py b/src/sage/modular/modform_hecketriangle/readme.py index 60747e9578a..49319bf56ab 100644 --- a/src/sage/modular/modform_hecketriangle/readme.py +++ b/src/sage/modular/modform_hecketriangle/readme.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.gap r""" Overview of Hecke triangle groups and modular forms for Hecke triangle groups diff --git a/src/sage/modular/modform_hecketriangle/series_constructor.py b/src/sage/modular/modform_hecketriangle/series_constructor.py index 4705846217b..6b4b96a09f7 100644 --- a/src/sage/modular/modform_hecketriangle/series_constructor.py +++ b/src/sage/modular/modform_hecketriangle/series_constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.gap r""" Series constructor for modular forms for Hecke triangle groups diff --git a/src/sage/modular/modform_hecketriangle/space.py b/src/sage/modular/modform_hecketriangle/space.py index 3a55142a63d..5acdb28dcc4 100644 --- a/src/sage/modular/modform_hecketriangle/space.py +++ b/src/sage/modular/modform_hecketriangle/space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat sage.graphs r""" Modular forms for Hecke triangle groups diff --git a/src/sage/modular/modform_hecketriangle/subspace.py b/src/sage/modular/modform_hecketriangle/subspace.py index b22840338dd..65e4b7733ba 100644 --- a/src/sage/modular/modform_hecketriangle/subspace.py +++ b/src/sage/modular/modform_hecketriangle/subspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat sage.graphs r""" Subspaces of modular forms for Hecke triangle groups diff --git a/src/sage/modular/modsym/all.py b/src/sage/modular/modsym/all.py index f398a735a1e..09838f3a306 100644 --- a/src/sage/modular/modsym/all.py +++ b/src/sage/modular/modsym/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes from sage.misc.lazy_import import lazy_import from sage.modular.modsym.element import set_modsym_print_mode diff --git a/src/sage/modular/modsym/ambient.py b/src/sage/modular/modsym/ambient.py index beb8509af0f..32644280954 100644 --- a/src/sage/modular/modsym/ambient.py +++ b/src/sage/modular/modsym/ambient.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari r""" Ambient spaces of modular symbols diff --git a/src/sage/modular/modsym/boundary.py b/src/sage/modular/modsym/boundary.py index 16241c843aa..b50e2545c86 100644 --- a/src/sage/modular/modsym/boundary.py +++ b/src/sage/modular/modsym/boundary.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari r""" Space of boundary modular symbols diff --git a/src/sage/modular/modsym/element.py b/src/sage/modular/modsym/element.py index 9386ebd0d11..bbe98f012e2 100644 --- a/src/sage/modular/modsym/element.py +++ b/src/sage/modular/modsym/element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ A single element of an ambient space of modular symbols diff --git a/src/sage/modular/modsym/g1list.py b/src/sage/modular/modsym/g1list.py index 23ad499f3ad..be613aafe9f 100644 --- a/src/sage/modular/modsym/g1list.py +++ b/src/sage/modular/modsym/g1list.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" List of coset representatives for `\Gamma_1(N)` in `\SL_2(\ZZ)` """ diff --git a/src/sage/modular/modsym/ghlist.py b/src/sage/modular/modsym/ghlist.py index 916374a97b2..853f53b5612 100644 --- a/src/sage/modular/modsym/ghlist.py +++ b/src/sage/modular/modsym/ghlist.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari r""" List of coset representatives for `\Gamma_H(N)` in `\SL_2(\ZZ)` diff --git a/src/sage/modular/modsym/hecke_operator.py b/src/sage/modular/modsym/hecke_operator.py index b12c5020df7..4507c8d255c 100644 --- a/src/sage/modular/modsym/hecke_operator.py +++ b/src/sage/modular/modsym/hecke_operator.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ Sparse action of Hecke operators diff --git a/src/sage/modular/modsym/manin_symbol.pxd b/src/sage/modular/modsym/manin_symbol.pxd index d7f6c7adeae..014fd3b7fd8 100644 --- a/src/sage/modular/modsym/manin_symbol.pxd +++ b/src/sage/modular/modsym/manin_symbol.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes from sage.structure.element cimport Element cdef class ManinSymbol(Element): diff --git a/src/sage/modular/modsym/manin_symbol.pyx b/src/sage/modular/modsym/manin_symbol.pyx index 7a98b5d1a40..9ff8fe40c53 100644 --- a/src/sage/modular/modsym/manin_symbol.pyx +++ b/src/sage/modular/modsym/manin_symbol.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint r""" Manin symbols diff --git a/src/sage/modular/modsym/manin_symbol_list.py b/src/sage/modular/modsym/manin_symbol_list.py index ebc40022031..70e4ac9465d 100644 --- a/src/sage/modular/modsym/manin_symbol_list.py +++ b/src/sage/modular/modsym/manin_symbol_list.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Manin symbol lists diff --git a/src/sage/modular/modsym/modsym.py b/src/sage/modular/modsym/modsym.py index fb46d0edafa..6d231378c16 100644 --- a/src/sage/modular/modsym/modsym.py +++ b/src/sage/modular/modsym/modsym.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari r""" Creation of modular symbols spaces diff --git a/src/sage/modular/modsym/modular_symbols.py b/src/sage/modular/modsym/modular_symbols.py index 3e8a8be156c..ec6a8fea7ec 100644 --- a/src/sage/modular/modsym/modular_symbols.py +++ b/src/sage/modular/modsym/modular_symbols.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint r""" Modular symbols `\{\alpha`, `\beta\}` diff --git a/src/sage/modular/modsym/p1list.pxd b/src/sage/modular/modsym/p1list.pxd index b66f28b8ad6..83af443a0a3 100644 --- a/src/sage/modular/modsym/p1list.pxd +++ b/src/sage/modular/modsym/p1list.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes cdef class export: diff --git a/src/sage/modular/modsym/p1list.pyx b/src/sage/modular/modsym/p1list.pyx index 7ceda12d5c8..f0283b0b261 100644 --- a/src/sage/modular/modsym/p1list.pyx +++ b/src/sage/modular/modsym/p1list.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # distutils: libraries = gmp # distutils: extra_compile_args = -D_XPG6 diff --git a/src/sage/modular/modsym/p1list_nf.py b/src/sage/modular/modsym/p1list_nf.py index 86d33071974..58b292ccd19 100644 --- a/src/sage/modular/modsym/p1list_nf.py +++ b/src/sage/modular/modsym/p1list_nf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.number_field r""" Lists of Manin symbols over number fields, elements of `\mathbb{P}^1(R/N)` diff --git a/src/sage/modular/modsym/relation_matrix.py b/src/sage/modular/modsym/relation_matrix.py index 0562cfdf899..8cbbf88be8f 100644 --- a/src/sage/modular/modsym/relation_matrix.py +++ b/src/sage/modular/modsym/relation_matrix.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ Relation matrices for ambient modular symbols spaces diff --git a/src/sage/modular/modsym/relation_matrix_pyx.pyx b/src/sage/modular/modsym/relation_matrix_pyx.pyx index 0079133b610..7be0e0a919f 100644 --- a/src/sage/modular/modsym/relation_matrix_pyx.pyx +++ b/src/sage/modular/modsym/relation_matrix_pyx.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Optimized computing of relation matrices in certain cases """ diff --git a/src/sage/modular/modsym/space.py b/src/sage/modular/modsym/space.py index a77d9279a6b..09246fc3d1f 100644 --- a/src/sage/modular/modsym/space.py +++ b/src/sage/modular/modsym/space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Base class of the space of modular symbols diff --git a/src/sage/modular/modsym/subspace.py b/src/sage/modular/modsym/subspace.py index e814602226a..0b729dde153 100644 --- a/src/sage/modular/modsym/subspace.py +++ b/src/sage/modular/modsym/subspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ Subspace of ambient spaces of modular symbols diff --git a/src/sage/modular/modsym/tests.py b/src/sage/modular/modsym/tests.py index 8157b4e9e6b..0b031ea1bcd 100644 --- a/src/sage/modular/modsym/tests.py +++ b/src/sage/modular/modsym/tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari """ Testing modular symbols spaces diff --git a/src/sage/modular/multiple_zeta.py b/src/sage/modular/multiple_zeta.py index 8bcbb1101de..2b27e30645f 100644 --- a/src/sage/modular/multiple_zeta.py +++ b/src/sage/modular/multiple_zeta.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat r""" Algebra of motivic multiple zeta values diff --git a/src/sage/modular/multiple_zeta_F_algebra.py b/src/sage/modular/multiple_zeta_F_algebra.py index fca676694ee..f7b33e2eaf4 100644 --- a/src/sage/modular/multiple_zeta_F_algebra.py +++ b/src/sage/modular/multiple_zeta_F_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.combinat r""" F-algebra for motivic multiple zeta values. diff --git a/src/sage/modular/overconvergent/all.py b/src/sage/modular/overconvergent/all.py index ed9c2310568..ca1ff92f993 100644 --- a/src/sage/modular/overconvergent/all.py +++ b/src/sage/modular/overconvergent/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-schemes + from sage.modular.overconvergent.weightspace import WeightSpace_constructor as pAdicWeightSpace from sage.modular.overconvergent.genus0 import OverconvergentModularForms diff --git a/src/sage/modular/overconvergent/genus0.py b/src/sage/modular/overconvergent/genus0.py index 2576c9ddc18..07127d34332 100644 --- a/src/sage/modular/overconvergent/genus0.py +++ b/src/sage/modular/overconvergent/genus0.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari sage.rings.padics r""" Overconvergent `p`-adic modular forms for small primes diff --git a/src/sage/modular/overconvergent/hecke_series.py b/src/sage/modular/overconvergent/hecke_series.py index 0b1502d2d9a..2245fa7559a 100644 --- a/src/sage/modular/overconvergent/hecke_series.py +++ b/src/sage/modular/overconvergent/hecke_series.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint sage.libs.pari r""" Atkin/Hecke series for overconvergent modular forms @@ -70,8 +71,7 @@ # https://www.gnu.org/licenses/ # **************************************************************************** -from sage.arith.misc import valuation -from sage.functions.other import floor, ceil +from sage.arith.misc import integer_ceil as ceil, integer_floor as floor, valuation from sage.matrix.constructor import matrix, random_matrix from sage.matrix.matrix_space import MatrixSpace from sage.misc.functional import dimension, transpose, charpoly @@ -85,6 +85,7 @@ from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ + # AUXILIARY CODE: SPACES OF MODULAR FORMS AND LINEAR ALGEBRA diff --git a/src/sage/modular/overconvergent/weightspace.py b/src/sage/modular/overconvergent/weightspace.py index 40110016c52..768b591af78 100644 --- a/src/sage/modular/overconvergent/weightspace.py +++ b/src/sage/modular/overconvergent/weightspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" The space of `p`-adic weights diff --git a/src/sage/modular/pollack_stevens/all.py b/src/sage/modular/pollack_stevens/all.py index 981c5028543..86fa7d86ccb 100644 --- a/src/sage/modular/pollack_stevens/all.py +++ b/src/sage/modular/pollack_stevens/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-schemes + from sage.modular.pollack_stevens.space import PollackStevensModularSymbols from sage.modular.pollack_stevens.distributions import Symk from sage.modular.pollack_stevens.distributions import OverconvergentDistributions diff --git a/src/sage/modular/pollack_stevens/distributions.py b/src/sage/modular/pollack_stevens/distributions.py index 80bc25b22d9..37f3bcc9e48 100644 --- a/src/sage/modular/pollack_stevens/distributions.py +++ b/src/sage/modular/pollack_stevens/distributions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" Spaces of distributions for Pollack-Stevens modular symbols diff --git a/src/sage/modular/pollack_stevens/fund_domain.py b/src/sage/modular/pollack_stevens/fund_domain.py index c9b61b36546..4efa8cc8a9a 100644 --- a/src/sage/modular/pollack_stevens/fund_domain.py +++ b/src/sage/modular/pollack_stevens/fund_domain.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Manin relations for overconvergent modular symbols diff --git a/src/sage/modular/pollack_stevens/manin_map.py b/src/sage/modular/pollack_stevens/manin_map.py index 94ba0843131..d3419658746 100644 --- a/src/sage/modular/pollack_stevens/manin_map.py +++ b/src/sage/modular/pollack_stevens/manin_map.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" Manin map diff --git a/src/sage/modular/pollack_stevens/modsym.py b/src/sage/modular/pollack_stevens/modsym.py index 8df8655e5e9..e41a594d90a 100644 --- a/src/sage/modular/pollack_stevens/modsym.py +++ b/src/sage/modular/pollack_stevens/modsym.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Element class for Pollack-Stevens' modular symbols diff --git a/src/sage/modular/pollack_stevens/padic_lseries.py b/src/sage/modular/pollack_stevens/padic_lseries.py index 613ceef65b8..fb73c2bbf2b 100644 --- a/src/sage/modular/pollack_stevens/padic_lseries.py +++ b/src/sage/modular/pollack_stevens/padic_lseries.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" `p`-adic `L`-series attached to overconvergent eigensymbols diff --git a/src/sage/modular/pollack_stevens/sigma0.py b/src/sage/modular/pollack_stevens/sigma0.py index 2659f12cfa3..1afd6f0adc7 100644 --- a/src/sage/modular/pollack_stevens/sigma0.py +++ b/src/sage/modular/pollack_stevens/sigma0.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" The matrix monoid `\Sigma_0(N)`. diff --git a/src/sage/modular/pollack_stevens/space.py b/src/sage/modular/pollack_stevens/space.py index 862418412ca..efa89e6d87e 100644 --- a/src/sage/modular/pollack_stevens/space.py +++ b/src/sage/modular/pollack_stevens/space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" Pollack-Stevens' modular symbols spaces diff --git a/src/sage/modular/quasimodform/all.py b/src/sage/modular/quasimodform/all.py index f7e4444785d..935b04bc09e 100644 --- a/src/sage/modular/quasimodform/all.py +++ b/src/sage/modular/quasimodform/all.py @@ -1,2 +1,3 @@ +# sage_setup: distribution = sagemath-schemes # Quasimodular forms rings from sage.modular.quasimodform.ring import QuasiModularForms diff --git a/src/sage/modular/quasimodform/element.py b/src/sage/modular/quasimodform/element.py index c8bbdd1a9a3..75c535c3073 100644 --- a/src/sage/modular/quasimodform/element.py +++ b/src/sage/modular/quasimodform/element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.flint """ Elements of quasimodular forms rings diff --git a/src/sage/modular/quasimodform/ring.py b/src/sage/modular/quasimodform/ring.py index 29df3bfcde0..4208472a3d6 100644 --- a/src/sage/modular/quasimodform/ring.py +++ b/src/sage/modular/quasimodform/ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Graded quasimodular forms ring diff --git a/src/sage/modular/quatalg/all.py b/src/sage/modular/quatalg/all.py index 53103006057..7328385e126 100644 --- a/src/sage/modular/quatalg/all.py +++ b/src/sage/modular/quatalg/all.py @@ -1,2 +1,3 @@ +# sage_setup: distribution = sagemath-schemes from sage.modular.quatalg.brandt import BrandtModule diff --git a/src/sage/modular/quatalg/brandt.py b/src/sage/modular/quatalg/brandt.py index e91e6950e76..902a1a49493 100644 --- a/src/sage/modular/quatalg/brandt.py +++ b/src/sage/modular/quatalg/brandt.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Brandt modules diff --git a/src/sage/modular/ssmod/all.py b/src/sage/modular/ssmod/all.py index 62e371a3c25..4e7d2356d18 100644 --- a/src/sage/modular/ssmod/all.py +++ b/src/sage/modular/ssmod/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes from sage.misc.lazy_import import lazy_import lazy_import("sage.modular.ssmod.ssmod", ['dimension_supersingular_module', diff --git a/src/sage/modular/ssmod/ssmod.py b/src/sage/modular/ssmod/ssmod.py index 9913e554a02..da5823172fa 100644 --- a/src/sage/modular/ssmod/ssmod.py +++ b/src/sage/modular/ssmod/ssmod.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ Module of supersingular points diff --git a/src/sage/modules/all.py b/src/sage/modules/all.py index 955a2c72d4c..bbecf800f09 100644 --- a/src/sage/modules/all.py +++ b/src/sage/modules/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # ***************************************************************************** # Copyright (C) 2005 William Stein # diff --git a/src/sage/modules/all__sagemath_linbox.py b/src/sage/modules/all__sagemath_linbox.py new file mode 100644 index 00000000000..d3fe8dc3de9 --- /dev/null +++ b/src/sage/modules/all__sagemath_linbox.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-linbox diff --git a/src/sage/modules/all__sagemath_objects.py b/src/sage/modules/all__sagemath_objects.py new file mode 100644 index 00000000000..f9b8167c3cd --- /dev/null +++ b/src/sage/modules/all__sagemath_objects.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-objects diff --git a/src/sage/modules/all__sagemath_symbolics.py b/src/sage/modules/all__sagemath_symbolics.py new file mode 100644 index 00000000000..332eaf1cdb6 --- /dev/null +++ b/src/sage/modules/all__sagemath_symbolics.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-symbolics diff --git a/src/sage/modules/complex_double_vector.py b/src/sage/modules/complex_double_vector.py index 728d862e8fc..fad12406262 100644 --- a/src/sage/modules/complex_double_vector.py +++ b/src/sage/modules/complex_double_vector.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Pickling for the old CDF vector class diff --git a/src/sage/modules/diamond_cutting.py b/src/sage/modules/diamond_cutting.py index f470c7f72eb..519a6ac07cd 100644 --- a/src/sage/modules/diamond_cutting.py +++ b/src/sage/modules/diamond_cutting.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.geometry.polyhedron """ Diamond cutting implementation diff --git a/src/sage/modules/fg_pid/all.py b/src/sage/modules/fg_pid/all.py index e69de29bb2d..6f6ab52d0f2 100644 --- a/src/sage/modules/fg_pid/all.py +++ b/src/sage/modules/fg_pid/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/modules/fg_pid/fgp_element.py b/src/sage/modules/fg_pid/fgp_element.py index ed63c1d2053..c7a499a8554 100644 --- a/src/sage/modules/fg_pid/fgp_element.py +++ b/src/sage/modules/fg_pid/fgp_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Elements of finitely generated modules over a PID diff --git a/src/sage/modules/fg_pid/fgp_module.py b/src/sage/modules/fg_pid/fgp_module.py index 435796d83e5..7e078221afb 100644 --- a/src/sage/modules/fg_pid/fgp_module.py +++ b/src/sage/modules/fg_pid/fgp_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Finitely generated modules over a PID @@ -220,7 +221,7 @@ from .fgp_morphism import FGP_Morphism, FGP_Homset from sage.rings.integer_ring import ZZ from sage.rings.integer import Integer -from sage.arith.functions import lcm +from sage.arith.functions import lcm, LCM_list from sage.misc.cachefunc import cached_method from sage.misc.superseded import deprecated_function_alias from sage.matrix.constructor import matrix @@ -1463,9 +1464,18 @@ def optimized(self): # This matrix T gives each basis element of self._V in terms # of our new optimized V, modulo the W's. A = V.basis_matrix().stack(self._W.basis_matrix()) - B, d = A._clear_denom() + if A.base_ring() is ZZ: + B, d = A, 1 + else: + try: + # Use fast routine specific to Matrix_rational_dense + B, d = A._clear_denom() + except AttributeError: + d = LCM_list(coeff.denominator() + for key, coeff in A.items()) + B = d * A H, U = B.hermite_form(transformation=True) - Y = H.solve_left(d*self._V.basis_matrix()) + Y = H.solve_left(d * self._V.basis_matrix()) T = Y * U.matrix_from_columns(range(V.rank())) self.__T = T diff --git a/src/sage/modules/fg_pid/fgp_morphism.py b/src/sage/modules/fg_pid/fgp_morphism.py index df08f7ceb0f..27153abef9c 100644 --- a/src/sage/modules/fg_pid/fgp_morphism.py +++ b/src/sage/modules/fg_pid/fgp_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Morphisms between finitely generated modules over a PID diff --git a/src/sage/modules/filtered_vector_space.py b/src/sage/modules/filtered_vector_space.py index ecea38e8365..001038e79b5 100644 --- a/src/sage/modules/filtered_vector_space.py +++ b/src/sage/modules/filtered_vector_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" `\ZZ`-filtered vector spaces diff --git a/src/sage/modules/finite_submodule_iter.pxd b/src/sage/modules/finite_submodule_iter.pxd index 8173f265673..9817e2855be 100644 --- a/src/sage/modules/finite_submodule_iter.pxd +++ b/src/sage/modules/finite_submodule_iter.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport ModuleElement cdef class FiniteZZsubmodule_iterator: diff --git a/src/sage/modules/finite_submodule_iter.pyx b/src/sage/modules/finite_submodule_iter.pyx index 6b4992c8f33..41d1ba7d436 100644 --- a/src/sage/modules/finite_submodule_iter.pyx +++ b/src/sage/modules/finite_submodule_iter.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.finite_rings r""" Iterators over finite submodules of a `\ZZ`-module diff --git a/src/sage/modules/free_module.py b/src/sage/modules/free_module.py index 6b407414030..9dc761c621a 100644 --- a/src/sage/modules/free_module.py +++ b/src/sage/modules/free_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Free modules diff --git a/src/sage/modules/free_module_element.pxd b/src/sage/modules/free_module_element.pxd index 084423a2714..4712c53e72c 100644 --- a/src/sage/modules/free_module_element.pxd +++ b/src/sage/modules/free_module_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport Vector cdef class FreeModuleElement(Vector): diff --git a/src/sage/modules/free_module_element.pyx b/src/sage/modules/free_module_element.pyx index 5f076475e8c..d99aa502a65 100644 --- a/src/sage/modules/free_module_element.pyx +++ b/src/sage/modules/free_module_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Elements of free modules diff --git a/src/sage/modules/free_module_homspace.py b/src/sage/modules/free_module_homspace.py index fc87d7f83f6..c9d862e6253 100644 --- a/src/sage/modules/free_module_homspace.py +++ b/src/sage/modules/free_module_homspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Homspaces between free modules diff --git a/src/sage/modules/free_module_integer.py b/src/sage/modules/free_module_integer.py index 78884501a91..3f98ba9d074 100644 --- a/src/sage/modules/free_module_integer.py +++ b/src/sage/modules/free_module_integer.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Discrete subgroups of `\\ZZ^n` diff --git a/src/sage/modules/free_module_morphism.py b/src/sage/modules/free_module_morphism.py index efdbc607c09..a0634435d0b 100644 --- a/src/sage/modules/free_module_morphism.py +++ b/src/sage/modules/free_module_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Morphisms of free modules diff --git a/src/sage/modules/free_quadratic_module.py b/src/sage/modules/free_quadratic_module.py index a209ae79ee4..e49f907b87b 100644 --- a/src/sage/modules/free_quadratic_module.py +++ b/src/sage/modules/free_quadratic_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Free quadratic modules diff --git a/src/sage/modules/free_quadratic_module_integer_symmetric.py b/src/sage/modules/free_quadratic_module_integer_symmetric.py index c58f0f3ea1e..4f881fcaa7f 100644 --- a/src/sage/modules/free_quadratic_module_integer_symmetric.py +++ b/src/sage/modules/free_quadratic_module_integer_symmetric.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Integral lattices diff --git a/src/sage/modules/matrix_morphism.py b/src/sage/modules/matrix_morphism.py index 5736d86932d..3ae8946a016 100644 --- a/src/sage/modules/matrix_morphism.py +++ b/src/sage/modules/matrix_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Morphisms defined by a matrix diff --git a/src/sage/modules/misc.py b/src/sage/modules/misc.py index abcdfa01a20..0b2af8bc192 100644 --- a/src/sage/modules/misc.py +++ b/src/sage/modules/misc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Miscellaneous module-related functions diff --git a/src/sage/modules/module.pxd b/src/sage/modules/module.pxd index 032cce6d69e..31eb027b970 100644 --- a/src/sage/modules/module.pxd +++ b/src/sage/modules/module.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects from sage.structure.parent cimport Parent cdef class Module(Parent): diff --git a/src/sage/modules/module.pyx b/src/sage/modules/module.pyx index 1ca79818c26..f7d6991d018 100644 --- a/src/sage/modules/module.pyx +++ b/src/sage/modules/module.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-objects """ Abstract base class for modules diff --git a/src/sage/modules/module_functors.py b/src/sage/modules/module_functors.py index c3977183c56..00da40a67f5 100644 --- a/src/sage/modules/module_functors.py +++ b/src/sage/modules/module_functors.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Module Functors diff --git a/src/sage/modules/multi_filtered_vector_space.py b/src/sage/modules/multi_filtered_vector_space.py index ece6d2af6c7..3fa73cea9a7 100644 --- a/src/sage/modules/multi_filtered_vector_space.py +++ b/src/sage/modules/multi_filtered_vector_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Multiple `\ZZ`-graded filtrations of a single vector space diff --git a/src/sage/modules/quotient_module.py b/src/sage/modules/quotient_module.py index 26c9c7629c0..0b59e357cee 100644 --- a/src/sage/modules/quotient_module.py +++ b/src/sage/modules/quotient_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Quotients of free modules diff --git a/src/sage/modules/real_double_vector.py b/src/sage/modules/real_double_vector.py index 5430e175f11..69bd0c28bdc 100644 --- a/src/sage/modules/real_double_vector.py +++ b/src/sage/modules/real_double_vector.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Pickling for the old RDF vector class diff --git a/src/sage/modules/submodule.py b/src/sage/modules/submodule.py index 12ad915646a..2aea9a53251 100644 --- a/src/sage/modules/submodule.py +++ b/src/sage/modules/submodule.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Submodules and subquotients of free modules diff --git a/src/sage/modules/tensor_operations.py b/src/sage/modules/tensor_operations.py index 2f17640d89e..3a7ce065d12 100644 --- a/src/sage/modules/tensor_operations.py +++ b/src/sage/modules/tensor_operations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Helper classes to implement tensor operations diff --git a/src/sage/modules/torsion_quadratic_module.py b/src/sage/modules/torsion_quadratic_module.py index d6d8431ff2f..166dbbaee57 100644 --- a/src/sage/modules/torsion_quadratic_module.py +++ b/src/sage/modules/torsion_quadratic_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Finite `\ZZ`-modules with bilinear and quadratic forms diff --git a/src/sage/modules/tutorial_free_modules.py b/src/sage/modules/tutorial_free_modules.py index 3af1ba78f54..677e23ae898 100644 --- a/src/sage/modules/tutorial_free_modules.py +++ b/src/sage/modules/tutorial_free_modules.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Tutorial: Using free modules and vector spaces diff --git a/src/sage/modules/vector_callable_symbolic_dense.py b/src/sage/modules/vector_callable_symbolic_dense.py index 8f23e78114f..d4909426154 100644 --- a/src/sage/modules/vector_callable_symbolic_dense.py +++ b/src/sage/modules/vector_callable_symbolic_dense.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Vectors over callable symbolic rings diff --git a/src/sage/modules/vector_complex_double_dense.pxd b/src/sage/modules/vector_complex_double_dense.pxd index 955c0a414d2..89f7cc7091d 100644 --- a/src/sage/modules/vector_complex_double_dense.pxd +++ b/src/sage/modules/vector_complex_double_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.modules.vector_double_dense cimport Vector_double_dense diff --git a/src/sage/modules/vector_complex_double_dense.pyx b/src/sage/modules/vector_complex_double_dense.pyx index c8aaedce365..6c5157d82fe 100644 --- a/src/sage/modules/vector_complex_double_dense.pyx +++ b/src/sage/modules/vector_complex_double_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy r""" Dense complex double vectors using a NumPy backend diff --git a/src/sage/modules/vector_double_dense.pxd b/src/sage/modules/vector_double_dense.pxd index f4f1f47cbce..4fc22d3d26a 100644 --- a/src/sage/modules/vector_double_dense.pxd +++ b/src/sage/modules/vector_double_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.modules.vector_numpy_dense cimport Vector_numpy_dense diff --git a/src/sage/modules/vector_double_dense.pyx b/src/sage/modules/vector_double_dense.pyx index 5c184c96967..70169d05f09 100644 --- a/src/sage/modules/vector_double_dense.pyx +++ b/src/sage/modules/vector_double_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy r""" Dense vectors using a NumPy backend diff --git a/src/sage/modules/vector_integer_dense.pxd b/src/sage/modules/vector_integer_dense.pxd index ff2843f481f..fb0087ff819 100644 --- a/src/sage/modules/vector_integer_dense.pxd +++ b/src/sage/modules/vector_integer_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.libs.gmp.types cimport mpz_t from sage.modules.free_module_element cimport FreeModuleElement from sage.structure.parent cimport Parent diff --git a/src/sage/modules/vector_integer_dense.pyx b/src/sage/modules/vector_integer_dense.pyx index 3605f4cf865..c7df549dea5 100644 --- a/src/sage/modules/vector_integer_dense.pyx +++ b/src/sage/modules/vector_integer_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Vectors with integer entries diff --git a/src/sage/modules/vector_integer_sparse.pxd b/src/sage/modules/vector_integer_sparse.pxd index 42818124a82..7a8dc1ec770 100644 --- a/src/sage/modules/vector_integer_sparse.pxd +++ b/src/sage/modules/vector_integer_sparse.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules ############################################################# # # Sparse Vector over mpz_t (the GMP integers) diff --git a/src/sage/modules/vector_integer_sparse.pyx b/src/sage/modules/vector_integer_sparse.pyx index 8484c0a6a93..c2a0e1a880a 100644 --- a/src/sage/modules/vector_integer_sparse.pyx +++ b/src/sage/modules/vector_integer_sparse.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules ############################################################# # # Sparse Vector over mpz_t (the GMP integers) diff --git a/src/sage/modules/vector_mod2_dense.pxd b/src/sage/modules/vector_mod2_dense.pxd index 4535fe3273d..14009292085 100644 --- a/src/sage/modules/vector_mod2_dense.pxd +++ b/src/sage/modules/vector_mod2_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-linbox + from sage.modules.free_module_element cimport FreeModuleElement from sage.libs.m4ri cimport mzd_t diff --git a/src/sage/modules/vector_mod2_dense.pyx b/src/sage/modules/vector_mod2_dense.pyx index 35286c51457..aa1a677fa0c 100644 --- a/src/sage/modules/vector_mod2_dense.pyx +++ b/src/sage/modules/vector_mod2_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: libraries = M4RI_LIBRARIES GDLIB_LIBRARIES LIBPNG_LIBRARIES # distutils: library_dirs = M4RI_LIBDIR GDLIB_LIBDIR LIBPNG_LIBDIR # distutils: include_dirs = M4RI_INCDIR GDLIB_INCDIR LIBPNG_INCDIR diff --git a/src/sage/modules/vector_modn_dense.pxd b/src/sage/modules/vector_modn_dense.pxd index 5de166f1b85..1abdd34e9a4 100644 --- a/src/sage/modules/vector_modn_dense.pxd +++ b/src/sage/modules/vector_modn_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.ext.mod_int cimport mod_int from sage.modules.free_module_element cimport FreeModuleElement diff --git a/src/sage/modules/vector_modn_dense.pyx b/src/sage/modules/vector_modn_dense.pyx index 79e27b5b3b9..d3bd2515cf5 100644 --- a/src/sage/modules/vector_modn_dense.pyx +++ b/src/sage/modules/vector_modn_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Vectors with integer mod `n` entries, with small `n` diff --git a/src/sage/modules/vector_modn_sparse.pxd b/src/sage/modules/vector_modn_sparse.pxd index 049b9ba27e8..0be082a95aa 100644 --- a/src/sage/modules/vector_modn_sparse.pxd +++ b/src/sage/modules/vector_modn_sparse.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.rings.finite_rings.stdint cimport * cdef struct c_vector_modint: diff --git a/src/sage/modules/vector_modn_sparse.pyx b/src/sage/modules/vector_modn_sparse.pyx index a6b59ae9ca5..92b785c2168 100644 --- a/src/sage/modules/vector_modn_sparse.pyx +++ b/src/sage/modules/vector_modn_sparse.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules ############################################################################# # Copyright (C) 2004, 2007 William Stein # Distributed under the terms of the GNU General Public License (GPL) diff --git a/src/sage/modules/vector_numpy_dense.pxd b/src/sage/modules/vector_numpy_dense.pxd index ec60da7a865..cb3c9f7551e 100644 --- a/src/sage/modules/vector_numpy_dense.pxd +++ b/src/sage/modules/vector_numpy_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + cimport numpy from sage.modules.free_module_element cimport FreeModuleElement diff --git a/src/sage/modules/vector_numpy_dense.pyx b/src/sage/modules/vector_numpy_dense.pyx index b6e6d37473f..5746c6a076b 100644 --- a/src/sage/modules/vector_numpy_dense.pyx +++ b/src/sage/modules/vector_numpy_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy r""" Dense vectors using a NumPy backend. diff --git a/src/sage/modules/vector_numpy_integer_dense.pxd b/src/sage/modules/vector_numpy_integer_dense.pxd index 31bc1cf8f6b..c9c10a728eb 100644 --- a/src/sage/modules/vector_numpy_integer_dense.pxd +++ b/src/sage/modules/vector_numpy_integer_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.modules.vector_numpy_dense cimport Vector_numpy_dense diff --git a/src/sage/modules/vector_numpy_integer_dense.pyx b/src/sage/modules/vector_numpy_integer_dense.pyx index ba3537436d5..4ff577e1004 100644 --- a/src/sage/modules/vector_numpy_integer_dense.pyx +++ b/src/sage/modules/vector_numpy_integer_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy r""" Dense integer vectors using a NumPy backend. diff --git a/src/sage/modules/vector_rational_dense.pxd b/src/sage/modules/vector_rational_dense.pxd index c5f2a4a7c3f..fc22a48c115 100644 --- a/src/sage/modules/vector_rational_dense.pxd +++ b/src/sage/modules/vector_rational_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.libs.gmp.types cimport mpq_t from sage.modules.free_module_element cimport FreeModuleElement from sage.structure.parent cimport Parent diff --git a/src/sage/modules/vector_rational_dense.pyx b/src/sage/modules/vector_rational_dense.pyx index 22e3c67fcc3..865340d2e27 100644 --- a/src/sage/modules/vector_rational_dense.pyx +++ b/src/sage/modules/vector_rational_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Vectors with rational entries diff --git a/src/sage/modules/vector_rational_sparse.pxd b/src/sage/modules/vector_rational_sparse.pxd index 4dfbed73d6d..b7e731619e1 100644 --- a/src/sage/modules/vector_rational_sparse.pxd +++ b/src/sage/modules/vector_rational_sparse.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules ############################################################# # # Sparse Vector over mpq_t (the GMP rationals) diff --git a/src/sage/modules/vector_rational_sparse.pyx b/src/sage/modules/vector_rational_sparse.pyx index fcdaf2b7cf8..79a53d0bb07 100644 --- a/src/sage/modules/vector_rational_sparse.pyx +++ b/src/sage/modules/vector_rational_sparse.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules ############################################################# # # Sparse Vector over mpq_t (the GMP rationals) diff --git a/src/sage/modules/vector_real_double_dense.pxd b/src/sage/modules/vector_real_double_dense.pxd index 4dd3b43ab25..1c61f475057 100644 --- a/src/sage/modules/vector_real_double_dense.pxd +++ b/src/sage/modules/vector_real_double_dense.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.modules.vector_double_dense cimport Vector_double_dense diff --git a/src/sage/modules/vector_real_double_dense.pyx b/src/sage/modules/vector_real_double_dense.pyx index 8ed7210422b..37c5aca6648 100644 --- a/src/sage/modules/vector_real_double_dense.pyx +++ b/src/sage/modules/vector_real_double_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy r""" Dense real double vectors using a NumPy backend diff --git a/src/sage/modules/vector_space_homspace.py b/src/sage/modules/vector_space_homspace.py index d18bfd769b4..11ea9f8c1bc 100644 --- a/src/sage/modules/vector_space_homspace.py +++ b/src/sage/modules/vector_space_homspace.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Space of morphisms of vector spaces (linear transformations) diff --git a/src/sage/modules/vector_space_morphism.py b/src/sage/modules/vector_space_morphism.py index 9eee6152585..0f0f9e1990c 100644 --- a/src/sage/modules/vector_space_morphism.py +++ b/src/sage/modules/vector_space_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Morphisms of vector spaces (linear transformations) diff --git a/src/sage/modules/vector_symbolic_dense.py b/src/sage/modules/vector_symbolic_dense.py index e3d6524a921..62b3ad94e53 100644 --- a/src/sage/modules/vector_symbolic_dense.py +++ b/src/sage/modules/vector_symbolic_dense.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Dense vectors over the symbolic ring diff --git a/src/sage/modules/vector_symbolic_sparse.py b/src/sage/modules/vector_symbolic_sparse.py index 290aa282a85..470a0d6274b 100644 --- a/src/sage/modules/vector_symbolic_sparse.py +++ b/src/sage/modules/vector_symbolic_sparse.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Sparse vectors over the symbolic ring diff --git a/src/sage/modules/with_basis/all.py b/src/sage/modules/with_basis/all.py index 6bfc5d5f6d1..3374803a1a5 100644 --- a/src/sage/modules/with_basis/all.py +++ b/src/sage/modules/with_basis/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Concrete classes related to modules with a distinguished basis diff --git a/src/sage/modules/with_basis/cell_module.py b/src/sage/modules/with_basis/cell_module.py index 7c61057737c..c060293396e 100644 --- a/src/sage/modules/with_basis/cell_module.py +++ b/src/sage/modules/with_basis/cell_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat r""" Cell modules diff --git a/src/sage/modules/with_basis/indexed_element.pxd b/src/sage/modules/with_basis/indexed_element.pxd index ebc785d7ccf..574ba288b84 100644 --- a/src/sage/modules/with_basis/indexed_element.pxd +++ b/src/sage/modules/with_basis/indexed_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport Element, ModuleElement cdef class IndexedFreeModuleElement(ModuleElement): diff --git a/src/sage/modules/with_basis/indexed_element.pyx b/src/sage/modules/with_basis/indexed_element.pyx index 47e2fe1cc6f..1311d340bbf 100644 --- a/src/sage/modules/with_basis/indexed_element.pyx +++ b/src/sage/modules/with_basis/indexed_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" An element in an indexed free module diff --git a/src/sage/modules/with_basis/invariant.py b/src/sage/modules/with_basis/invariant.py index 0c96c6a5b9d..841fc13d6e1 100644 --- a/src/sage/modules/with_basis/invariant.py +++ b/src/sage/modules/with_basis/invariant.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.groups r""" Invariant modules diff --git a/src/sage/modules/with_basis/morphism.py b/src/sage/modules/with_basis/morphism.py index 68ad2521493..8eb059dbc65 100644 --- a/src/sage/modules/with_basis/morphism.py +++ b/src/sage/modules/with_basis/morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Morphisms of modules with a basis diff --git a/src/sage/modules/with_basis/representation.py b/src/sage/modules/with_basis/representation.py index 7e67d3ec750..83b582dcdb8 100644 --- a/src/sage/modules/with_basis/representation.py +++ b/src/sage/modules/with_basis/representation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.groups """ Representations of a semigroup diff --git a/src/sage/modules/with_basis/subquotient.py b/src/sage/modules/with_basis/subquotient.py index d914ba88f0c..0601d5eeeea 100644 --- a/src/sage/modules/with_basis/subquotient.py +++ b/src/sage/modules/with_basis/subquotient.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Quotients of modules with basis """ diff --git a/src/sage/monoids/all.py b/src/sage/monoids/all.py index 7b4543dd34c..83541093f6c 100644 --- a/src/sage/monoids/all.py +++ b/src/sage/monoids/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from sage.monoids.free_monoid import FreeMonoid from sage.monoids.string_monoid import (BinaryStrings, OctalStrings, HexadecimalStrings, diff --git a/src/sage/monoids/all__sagemath_categories.py b/src/sage/monoids/all__sagemath_categories.py new file mode 100644 index 00000000000..b230a6a2ad9 --- /dev/null +++ b/src/sage/monoids/all__sagemath_categories.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/monoids/automatic_semigroup.py b/src/sage/monoids/automatic_semigroup.py index c4926239f8d..c88e5f3fb22 100644 --- a/src/sage/monoids/automatic_semigroup.py +++ b/src/sage/monoids/automatic_semigroup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Automatic Semigroups diff --git a/src/sage/monoids/free_abelian_monoid.py b/src/sage/monoids/free_abelian_monoid.py index 3b8fe3f0e07..096fe79338e 100644 --- a/src/sage/monoids/free_abelian_monoid.py +++ b/src/sage/monoids/free_abelian_monoid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Free abelian monoids diff --git a/src/sage/monoids/free_abelian_monoid_element.pxd b/src/sage/monoids/free_abelian_monoid_element.pxd index 092cd343f05..add273ebedb 100644 --- a/src/sage/monoids/free_abelian_monoid_element.pxd +++ b/src/sage/monoids/free_abelian_monoid_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from sage.structure.element cimport MonoidElement from sage.libs.gmp.types cimport mpz_t from sage.structure.parent cimport Parent diff --git a/src/sage/monoids/free_abelian_monoid_element.pyx b/src/sage/monoids/free_abelian_monoid_element.pyx index 1cd087584cf..c60d06c8363 100644 --- a/src/sage/monoids/free_abelian_monoid_element.pyx +++ b/src/sage/monoids/free_abelian_monoid_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Abelian Monoid Elements diff --git a/src/sage/monoids/free_monoid.py b/src/sage/monoids/free_monoid.py index e7a2a9f6532..016e452ab1d 100644 --- a/src/sage/monoids/free_monoid.py +++ b/src/sage/monoids/free_monoid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Free Monoids diff --git a/src/sage/monoids/free_monoid_element.py b/src/sage/monoids/free_monoid_element.py index f378270fcfd..6ee64a62b42 100644 --- a/src/sage/monoids/free_monoid_element.py +++ b/src/sage/monoids/free_monoid_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Elements of Free Monoids diff --git a/src/sage/monoids/hecke_monoid.py b/src/sage/monoids/hecke_monoid.py index bc25f9769a7..5094b1b15e4 100644 --- a/src/sage/monoids/hecke_monoid.py +++ b/src/sage/monoids/hecke_monoid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.groups """ Hecke Monoids diff --git a/src/sage/monoids/indexed_free_monoid.py b/src/sage/monoids/indexed_free_monoid.py index 69b67e260f7..5204cfee6e4 100644 --- a/src/sage/monoids/indexed_free_monoid.py +++ b/src/sage/monoids/indexed_free_monoid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Indexed Monoids diff --git a/src/sage/monoids/monoid.py b/src/sage/monoids/monoid.py index f6862e2615e..f519d24bc32 100644 --- a/src/sage/monoids/monoid.py +++ b/src/sage/monoids/monoid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.combinat r""" Monoids diff --git a/src/sage/monoids/string_monoid.py b/src/sage/monoids/string_monoid.py index 61814c421c5..32ee632a914 100644 --- a/src/sage/monoids/string_monoid.py +++ b/src/sage/monoids/string_monoid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Free String Monoids diff --git a/src/sage/monoids/string_monoid_element.py b/src/sage/monoids/string_monoid_element.py index d7e06428e0f..cd8048ccc78 100644 --- a/src/sage/monoids/string_monoid_element.py +++ b/src/sage/monoids/string_monoid_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ String Monoid Elements diff --git a/src/sage/monoids/string_ops.py b/src/sage/monoids/string_ops.py index 304e908c16b..cd72a2f0b96 100644 --- a/src/sage/monoids/string_ops.py +++ b/src/sage/monoids/string_ops.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat "Utility functions on strings" # **************************************************************************** diff --git a/src/sage/monoids/trace_monoid.py b/src/sage/monoids/trace_monoid.py index cb1c036e039..3b4e8c454fa 100644 --- a/src/sage/monoids/trace_monoid.py +++ b/src/sage/monoids/trace_monoid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Module of trace monoids (free partially commutative monoids). diff --git a/src/sage/numerical/all.py b/src/sage/numerical/all.py index 8b69da18652..c2b17a60f65 100644 --- a/src/sage/numerical/all.py +++ b/src/sage/numerical/all.py @@ -1,7 +1,9 @@ +# sage_setup: distribution = sagemath-polyhedra + +from sage.numerical.all__sagemath_modules import * + from sage.misc.lazy_import import lazy_import -lazy_import("sage.numerical.optimize", - ["find_fit", "find_local_maximum", "find_local_minimum", - "find_root", "minimize", "minimize_constrained"]) + lazy_import("sage.numerical.mip", ["MixedIntegerLinearProgram"]) lazy_import("sage.numerical.sdp", ["SemidefiniteProgram"]) lazy_import("sage.numerical.backends.generic_backend", ["default_mip_solver"]) @@ -9,3 +11,4 @@ lazy_import("sage.numerical.interactive_simplex_method", ["InteractiveLPProblem", "InteractiveLPProblemStandardForm"]) +del lazy_import diff --git a/src/sage/numerical/all__sagemath_categories.py b/src/sage/numerical/all__sagemath_categories.py new file mode 100644 index 00000000000..b230a6a2ad9 --- /dev/null +++ b/src/sage/numerical/all__sagemath_categories.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/numerical/all__sagemath_glpk.py b/src/sage/numerical/all__sagemath_glpk.py new file mode 100644 index 00000000000..b555a29542b --- /dev/null +++ b/src/sage/numerical/all__sagemath_glpk.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-glpk diff --git a/src/sage/numerical/all__sagemath_modules.py b/src/sage/numerical/all__sagemath_modules.py new file mode 100644 index 00000000000..2494fc385b6 --- /dev/null +++ b/src/sage/numerical/all__sagemath_modules.py @@ -0,0 +1,6 @@ +# sage_setup: distribution = sagemath-modules +from sage.misc.lazy_import import lazy_import +lazy_import("sage.numerical.optimize", + ["find_fit", "find_local_maximum", "find_local_minimum", + "find_root", "minimize", "minimize_constrained"]) +del lazy_import diff --git a/src/sage/numerical/all__sagemath_polyhedra.py b/src/sage/numerical/all__sagemath_polyhedra.py index 6de2a9af502..6589c9f5fc0 100644 --- a/src/sage/numerical/all__sagemath_polyhedra.py +++ b/src/sage/numerical/all__sagemath_polyhedra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra from sage.misc.lazy_import import lazy_import lazy_import("sage.numerical.mip", ["MixedIntegerLinearProgram"]) @@ -7,3 +8,4 @@ lazy_import("sage.numerical.interactive_simplex_method", ["InteractiveLPProblem", "InteractiveLPProblemStandardForm"]) +del lazy_import diff --git a/src/sage/numerical/backends/all.py b/src/sage/numerical/backends/all.py index e69de29bb2d..ca4c26e905d 100644 --- a/src/sage/numerical/backends/all.py +++ b/src/sage/numerical/backends/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-polyhedra diff --git a/src/sage/numerical/backends/all__sagemath_categories.py b/src/sage/numerical/backends/all__sagemath_categories.py new file mode 100644 index 00000000000..b230a6a2ad9 --- /dev/null +++ b/src/sage/numerical/backends/all__sagemath_categories.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/numerical/backends/all__sagemath_glpk.py b/src/sage/numerical/backends/all__sagemath_glpk.py new file mode 100644 index 00000000000..b555a29542b --- /dev/null +++ b/src/sage/numerical/backends/all__sagemath_glpk.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-glpk diff --git a/src/sage/numerical/backends/all__sagemath_polyhedra.py b/src/sage/numerical/backends/all__sagemath_polyhedra.py index e69de29bb2d..ca4c26e905d 100644 --- a/src/sage/numerical/backends/all__sagemath_polyhedra.py +++ b/src/sage/numerical/backends/all__sagemath_polyhedra.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-polyhedra diff --git a/src/sage/numerical/backends/cvxopt_backend.pyx b/src/sage/numerical/backends/cvxopt_backend.pyx index 14c60dc3167..d3bdfbdd651 100644 --- a/src/sage/numerical/backends/cvxopt_backend.pyx +++ b/src/sage/numerical/backends/cvxopt_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs cvxopt r""" CVXOPT Backend diff --git a/src/sage/numerical/backends/cvxopt_backend_test.py b/src/sage/numerical/backends/cvxopt_backend_test.py index 6029221fda2..d2567569187 100644 --- a/src/sage/numerical/backends/cvxopt_backend_test.py +++ b/src/sage/numerical/backends/cvxopt_backend_test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra import pytest from sage.structure.sage_object import SageObject diff --git a/src/sage/numerical/backends/cvxopt_sdp_backend.pyx b/src/sage/numerical/backends/cvxopt_sdp_backend.pyx index c6addca8996..ac913775a95 100644 --- a/src/sage/numerical/backends/cvxopt_sdp_backend.pyx +++ b/src/sage/numerical/backends/cvxopt_sdp_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs cvxopt r""" CVXOPT SDP Backend diff --git a/src/sage/numerical/backends/cvxpy_backend.pxd b/src/sage/numerical/backends/cvxpy_backend.pxd index ed4d63ccc63..f3b14def032 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pxd +++ b/src/sage/numerical/backends/cvxpy_backend.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra ############################################################################## # Copyright (C) 2010 Nathann Cohen # Copyright (C) 2022 Matthias Koeppe diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index 6a758e35bfb..91254208535 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: optional - cvxpy r""" CVXPY Backend diff --git a/src/sage/numerical/backends/cvxpy_backend_test.py b/src/sage/numerical/backends/cvxpy_backend_test.py index 1f5f030248e..4082cc414de 100644 --- a/src/sage/numerical/backends/cvxpy_backend_test.py +++ b/src/sage/numerical/backends/cvxpy_backend_test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra import pytest from sage.numerical.backends.generic_backend_test import GenericBackendTests from sage.numerical.backends.generic_backend import GenericBackend diff --git a/src/sage/numerical/backends/generic_backend.pxd b/src/sage/numerical/backends/generic_backend.pxd index f2d315d249c..fb14079c2b2 100644 --- a/src/sage/numerical/backends/generic_backend.pxd +++ b/src/sage/numerical/backends/generic_backend.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories ############################################################################## # Copyright (C) 2010 Nathann Cohen # Distributed under the terms of the GNU General Public License (GPL) diff --git a/src/sage/numerical/backends/generic_backend.pyx b/src/sage/numerical/backends/generic_backend.pyx index b7962c3c877..c0be9372e95 100644 --- a/src/sage/numerical/backends/generic_backend.pyx +++ b/src/sage/numerical/backends/generic_backend.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-categories +# sage.doctest: needs sage.geometry.polyhedron r""" Generic Backend for LP solvers @@ -1682,7 +1684,11 @@ def default_mip_solver(solver=None): raise ValueError("Gurobi is not available. Please refer to the documentation to install it.") elif solver == "Glpk" or solver == "Glpk/exact": - default_solver = solver + try: + from sage.numerical.backends.glpk_backend import GLPKBackend + default_solver = solver + except ImportError: + raise ValueError("GLPK is not available. Please refer to the documentation to install it.") elif solver == "Interactivelp": default_solver = solver diff --git a/src/sage/numerical/backends/generic_backend_test.py b/src/sage/numerical/backends/generic_backend_test.py index 2b5411fb64e..12ec439db67 100644 --- a/src/sage/numerical/backends/generic_backend_test.py +++ b/src/sage/numerical/backends/generic_backend_test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra import pytest from sage.numerical.backends.generic_backend import GenericBackend from sage.structure.sage_object import SageObject diff --git a/src/sage/numerical/backends/generic_sdp_backend.pxd b/src/sage/numerical/backends/generic_sdp_backend.pxd index 023f95653d6..d30fa4fc2d6 100644 --- a/src/sage/numerical/backends/generic_sdp_backend.pxd +++ b/src/sage/numerical/backends/generic_sdp_backend.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2014 Ingolfur Edvardsson # diff --git a/src/sage/numerical/backends/generic_sdp_backend.pyx b/src/sage/numerical/backends/generic_sdp_backend.pyx index e1ad583f41c..bbbc086a165 100644 --- a/src/sage/numerical/backends/generic_sdp_backend.pyx +++ b/src/sage/numerical/backends/generic_sdp_backend.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-categories +# sage.doctest: needs sage.geometry.polyhedron r""" Generic Backend for SDP solvers diff --git a/src/sage/numerical/backends/glpk_backend.pxd b/src/sage/numerical/backends/glpk_backend.pxd index 5ff4a90a211..87625876548 100644 --- a/src/sage/numerical/backends/glpk_backend.pxd +++ b/src/sage/numerical/backends/glpk_backend.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk #***************************************************************************** # Copyright (C) 2010 Nathann Cohen # diff --git a/src/sage/numerical/backends/glpk_backend.pyx b/src/sage/numerical/backends/glpk_backend.pyx index dddde9a07b6..74167afc633 100644 --- a/src/sage/numerical/backends/glpk_backend.pyx +++ b/src/sage/numerical/backends/glpk_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk """ GLPK Backend diff --git a/src/sage/numerical/backends/glpk_exact_backend.pxd b/src/sage/numerical/backends/glpk_exact_backend.pxd index 8207347ce51..2b94d5ad968 100644 --- a/src/sage/numerical/backends/glpk_exact_backend.pxd +++ b/src/sage/numerical/backends/glpk_exact_backend.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk #***************************************************************************** # Copyright (C) 2016 Matthias Koeppe # diff --git a/src/sage/numerical/backends/glpk_exact_backend.pyx b/src/sage/numerical/backends/glpk_exact_backend.pyx index a9289264a42..abb0365618b 100644 --- a/src/sage/numerical/backends/glpk_exact_backend.pyx +++ b/src/sage/numerical/backends/glpk_exact_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk """ GLPK/exact Backend (simplex method in exact rational arithmetic) diff --git a/src/sage/numerical/backends/glpk_graph_backend.pxd b/src/sage/numerical/backends/glpk_graph_backend.pxd index 2e4b29a25a9..3ac3b0b616e 100644 --- a/src/sage/numerical/backends/glpk_graph_backend.pxd +++ b/src/sage/numerical/backends/glpk_graph_backend.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk #***************************************************************************** # Copyright (C) 2012 Christian Kuper # Copyright (C) 2015 Jeroen Demeyer diff --git a/src/sage/numerical/backends/glpk_graph_backend.pyx b/src/sage/numerical/backends/glpk_graph_backend.pyx index 2a89dfe0bd1..8e8e99e6eaf 100644 --- a/src/sage/numerical/backends/glpk_graph_backend.pyx +++ b/src/sage/numerical/backends/glpk_graph_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-glpk # sage.doctest: needs sage.graphs """ GLPK Backend for access to GLPK graph functions diff --git a/src/sage/numerical/backends/interactivelp_backend.pxd b/src/sage/numerical/backends/interactivelp_backend.pxd index 07e63a7bb44..c450d6d2353 100644 --- a/src/sage/numerical/backends/interactivelp_backend.pxd +++ b/src/sage/numerical/backends/interactivelp_backend.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra ############################################################################## # Copyright (C) 2010 Nathann Cohen # Copyright (C) 2016 Matthias Koeppe diff --git a/src/sage/numerical/backends/interactivelp_backend.pyx b/src/sage/numerical/backends/interactivelp_backend.pyx index ea1a53aedce..8b939ab1ebf 100644 --- a/src/sage/numerical/backends/interactivelp_backend.pyx +++ b/src/sage/numerical/backends/interactivelp_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" InteractiveLP Backend diff --git a/src/sage/numerical/backends/interactivelp_backend_test.py b/src/sage/numerical/backends/interactivelp_backend_test.py index 5523c40ce1f..b184e506387 100644 --- a/src/sage/numerical/backends/interactivelp_backend_test.py +++ b/src/sage/numerical/backends/interactivelp_backend_test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra import pytest from sage.numerical.backends.generic_backend_test import GenericBackendTests from sage.numerical.backends.generic_backend import GenericBackend diff --git a/src/sage/numerical/backends/logging_backend.py b/src/sage/numerical/backends/logging_backend.py index d2d7bd98299..8a3fa8df6eb 100644 --- a/src/sage/numerical/backends/logging_backend.py +++ b/src/sage/numerical/backends/logging_backend.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Logging Backend diff --git a/src/sage/numerical/backends/matrix_sdp_backend.pxd b/src/sage/numerical/backends/matrix_sdp_backend.pxd index 9038955f83a..c8903dedd93 100644 --- a/src/sage/numerical/backends/matrix_sdp_backend.pxd +++ b/src/sage/numerical/backends/matrix_sdp_backend.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-polyhedra + from sage.numerical.backends.generic_sdp_backend cimport GenericSDPBackend diff --git a/src/sage/numerical/backends/matrix_sdp_backend.pyx b/src/sage/numerical/backends/matrix_sdp_backend.pyx index aad7fc4be68..994624b4d9b 100644 --- a/src/sage/numerical/backends/matrix_sdp_backend.pyx +++ b/src/sage/numerical/backends/matrix_sdp_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Matrix Backend for SDP solvers diff --git a/src/sage/numerical/backends/ppl_backend.pyx b/src/sage/numerical/backends/ppl_backend.pyx index 24b0c8e80ac..3f30c869aa4 100644 --- a/src/sage/numerical/backends/ppl_backend.pyx +++ b/src/sage/numerical/backends/ppl_backend.pyx @@ -1,4 +1,5 @@ -# sage.doctest: optional - pplpy +# sage_setup: distribution = sagemath-polyhedra +# sage.doctest: needs pplpy """ PPL Backend diff --git a/src/sage/numerical/backends/ppl_backend_test.py b/src/sage/numerical/backends/ppl_backend_test.py index 13ef46e1a3d..17b8805029c 100644 --- a/src/sage/numerical/backends/ppl_backend_test.py +++ b/src/sage/numerical/backends/ppl_backend_test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra import pytest from sage.numerical.backends.generic_backend_test import GenericBackendTests diff --git a/src/sage/numerical/backends/scip_backend.pxd b/src/sage/numerical/backends/scip_backend.pxd index 0cd0600f955..634197437ea 100644 --- a/src/sage/numerical/backends/scip_backend.pxd +++ b/src/sage/numerical/backends/scip_backend.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra #***************************************************************************** # Copyright (C) 2017 Matthias Koeppe # diff --git a/src/sage/numerical/backends/scip_backend.pyx b/src/sage/numerical/backends/scip_backend.pyx index 4cac8e171e0..72bafa953b7 100644 --- a/src/sage/numerical/backends/scip_backend.pyx +++ b/src/sage/numerical/backends/scip_backend.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # distutils: language = c++ # sage.doctest: optional - pyscipopt """ diff --git a/src/sage/numerical/backends/scip_backend_test.py b/src/sage/numerical/backends/scip_backend_test.py index 136d3ce914b..3ad30d8a779 100644 --- a/src/sage/numerical/backends/scip_backend_test.py +++ b/src/sage/numerical/backends/scip_backend_test.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra import pytest from sage.numerical.backends.generic_backend_test import GenericBackendTests from sage.numerical.backends.generic_backend import GenericBackend diff --git a/src/sage/numerical/gauss_legendre.pyx b/src/sage/numerical/gauss_legendre.pyx index 4a422e9c6d6..37103d97e27 100644 --- a/src/sage/numerical/gauss_legendre.pyx +++ b/src/sage/numerical/gauss_legendre.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Gauss-Legendre Integration for Vector-Valued Functions diff --git a/src/sage/numerical/interactive_simplex_method.py b/src/sage/numerical/interactive_simplex_method.py index a89da826c77..5180b77a979 100644 --- a/src/sage/numerical/interactive_simplex_method.py +++ b/src/sage/numerical/interactive_simplex_method.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Interactive Simplex Method @@ -201,7 +202,6 @@ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.polynomial.polynomial_element import Polynomial from sage.rings.rational_field import QQ -from sage.rings.real_double import RDF from sage.rings.integer_ring import ZZ from sage.structure.all import SageObject @@ -301,24 +301,27 @@ def _latex_product(coefficients, variables, (x, y) sage: print(_latex_product([-1, 3], [x, y])) # needs sage.symbolic - \mspace{-6mu}&\mspace{-6mu} x \mspace{-6mu}&\mspace{-6mu} + \mspace{-6mu}&\mspace{-6mu} 3 y + sage: var("x, y, z") + (x, y, z) + sage: print(_latex_product([-pi, log(2), pi**0], [x, y, z])) + - \mspace{-6mu}&\mspace{-6mu} \pi x \mspace{-6mu}&\mspace{-6mu} + \mspace{-6mu}&\mspace{-6mu} \log\left(2\right) y \mspace{-6mu}&\mspace{-6mu} + \mspace{-6mu}&\mspace{-6mu} z """ entries = [] for c, v in zip(coefficients, variables): - if c == 0: + t = latex(c) + if t == '0': entries.extend(["", ""]) continue sign = "+" - if latex(c).strip().startswith("-"): + if t.strip().startswith("-"): sign = "-" c = - c - if c == 1: + if t.strip() == '1' or t.strip() == '-1': t = latex(v) else: t = latex(c) if '+' in t or '-' in t: - from sage.symbolic.ring import SR - if SR(c).operator() in [operator.add, operator.sub]: - t = r"\left( " + t + r" \right)" + t = r"\left( " + t + r" \right)" t += " " + latex(v) entries.extend([sign, t]) if drop_plus: # Don't start with + @@ -648,7 +651,7 @@ def __init__(self, A, b, c, x='x', b = vector(b) c = vector(c) if base_ring is None: - base_ring = vector(A.list() + list(b) + list(c)).base_ring() + base_ring = vector(A.list() + list(b) + list(c) + [objective_constant_term]).base_ring() base_ring = base_ring.fraction_field() A = A.change_ring(base_ring) A.set_immutable() @@ -670,7 +673,7 @@ def __init__(self, A, b, c, x='x', R = PolynomialRing(base_ring, x, order='neglex') x = vector(R, R.gens()) # All variables as a vector self._Abcx = A, b, c, x - self._constant_term = objective_constant_term + self._constant_term = base_ring(objective_constant_term) if constraint_type in ["<=", ">=", "=="]: constraint_type = (constraint_type, ) * m @@ -1147,7 +1150,7 @@ def dual(self, y=None): objective_constant_term=self._constant_term) @cached_method - def feasible_set(self): + def feasible_set(self, backend=None): r""" Return the feasible set of ``self``. @@ -1159,9 +1162,38 @@ def feasible_set(self): sage: b = (1000, 1500) sage: c = (10, 5) sage: P = InteractiveLPProblem(A, b, c, ["C", "B"], variable_type='>=') - sage: P.feasible_set() + sage: F = P.feasible_set(); F + A 2-dimensional polyhedron in QQ^2 + defined as the convex hull of 4 vertices + sage: F.backend() + 'ppl' + sage: F_cdd = P.feasible_set(backend='cdd'); F_cdd A 2-dimensional polyhedron in QQ^2 defined as the convex hull of 4 vertices + sage: F_cdd.backend() + 'cdd' + + An algebraic polyhedron:: + + sage: A = ([1, sqrt(2)], [sqrt(3), 1]) + sage: b = (1000, 1500) + sage: c = (10, 5) + sage: P = InteractiveLPProblem(A, b, c, ["C", "B"], variable_type=">=") + sage: F = P.feasible_set(backend='number_field'); F + A 2-dimensional polyhedron in (Symbolic Ring)^2 + defined as the convex hull of 4 vertices + sage: F.backend() + 'number_field' + + Using ``RDF``:: + + sage: A = ([RDF(1), RDF(1)], [RDF(3), RDF(1)]) + sage: b = (1000, 1500) + sage: c = (10, 5) + sage: P = InteractiveLPProblem(A, b, c, ["C", "B"], variable_type=">=") + sage: P.feasible_set() + A 2-dimensional polyhedron in RDF^2 + defined as the convex hull of 4 vertices """ ieqs = [] eqns = [] @@ -1177,13 +1209,9 @@ def feasible_set(self): ieqs.append([0] + list(-n)) elif r == ">=": ieqs.append([0] + list(n)) - if self.base_ring() is QQ: - R = QQ - else: - R = RDF - ieqs = [[R(_) for _ in ieq] for ieq in ieqs] - eqns = [[R(_) for _ in eqn] for eqn in eqns] - return Polyhedron(ieqs=ieqs, eqns=eqns, base_ring=R) + if backend is not None: + return Polyhedron(ieqs=ieqs, eqns=eqns, backend=backend) + return Polyhedron(ieqs=ieqs, eqns=eqns) def is_bounded(self): r""" @@ -2586,6 +2614,56 @@ def run_simplex_method(self): Entering: $x_{2}$. Leaving: $x_{3}$. ... The optimal value: $6250$. An optimal solution: $\left(250,\,750\right)$. + + TESTS:: + + sage: from sage.rings.real_double import RDF + sage: A = ([RDF(1), RDF(1)], [RDF(3), RDF(1)], [RDF(-1), RDF(-1)]) + sage: b = (RDF(1000), RDF(1500), RDF(-400)) + sage: c = (RDF(10), RDF(5)) + sage: P = InteractiveLPProblemStandardForm(A, b, c) + sage: P.run_simplex_method() + \begin{equation*} + ... + \end{equation*} + The initial dictionary is infeasible, solving auxiliary problem. + ... + Entering: $x_{0}$. Leaving: $x_{5}$. + ... + Entering: $x_{1}$. Leaving: $x_{0}$. + ... + Back to the original problem. + ... + Entering: $x_{5}$. Leaving: $x_{4}$. + ... + Entering: $x_{2}$. Leaving: $x_{3}$. + ... + The optimal value: $6250.0$. An optimal solution: $\left(249.99999999999997,\,750.0\right)$. + + Using constants in the symbolic ring:: + + sage: A = Matrix(([1, 1], [3, 1], [-1, -1])) * pi + sage: b = vector((1000, 1500, -400)) * pi + sage: c = vector((10, 5)) * pi + sage: P = InteractiveLPProblemStandardForm(A, b, c) + sage: P.run_simplex_method() + \begin{equation*} + ... + \end{equation*} + The initial dictionary is infeasible, solving auxiliary problem. + ... + Entering: $x_{0}$. Leaving: $x_{5}$. + ... + Entering: $x_{1}$. Leaving: $x_{0}$. + ... + Back to the original problem. + ... + Entering: $x_{5}$. Leaving: $x_{4}$. + ... + Entering: $x_{2}$. Leaving: $x_{3}$. + ... + The optimal value: $6250 \, \pi$. An optimal solution: $\left(250,\,750\right)$. + """ output = [] d = self.initial_dictionary() diff --git a/src/sage/numerical/knapsack.py b/src/sage/numerical/knapsack.py index 9f9d06fcd3b..0b759fb605f 100644 --- a/src/sage/numerical/knapsack.py +++ b/src/sage/numerical/knapsack.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Knapsack Problems @@ -276,8 +277,6 @@ def largest_less_than(self, N): ... ValueError: seq must be a super-increasing sequence """ - from sage.functions.other import Function_floor - floor = Function_floor() # input error handling if len(self._seq) == 0: raise TypeError("self must be a non-empty list of integers.") @@ -289,7 +288,7 @@ def largest_less_than(self, N): low = 0 high = len(self._seq) - 1 while low <= high: - mid = floor((low + high) / 2) + mid = (low + high) // 2 if N == self._seq[mid]: return self._seq[mid] if N < self._seq[mid]: diff --git a/src/sage/numerical/linear_functions.pxd b/src/sage/numerical/linear_functions.pxd index 568f04b75af..fb0a4b27ee2 100644 --- a/src/sage/numerical/linear_functions.pxd +++ b/src/sage/numerical/linear_functions.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra from sage.structure.parent cimport Parent, Parent_richcmp_element_without_coercion from sage.structure.element cimport ModuleElement, RingElement, Element diff --git a/src/sage/numerical/linear_functions.pyx b/src/sage/numerical/linear_functions.pyx index 3b0061960e1..0c2eac402a8 100644 --- a/src/sage/numerical/linear_functions.pyx +++ b/src/sage/numerical/linear_functions.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Linear Functions and Constraints diff --git a/src/sage/numerical/linear_tensor.py b/src/sage/numerical/linear_tensor.py index e7eaedb2fe5..4fa8c563eed 100644 --- a/src/sage/numerical/linear_tensor.py +++ b/src/sage/numerical/linear_tensor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Matrix/Vector-Valued Linear Functions: Parents diff --git a/src/sage/numerical/linear_tensor_constraints.py b/src/sage/numerical/linear_tensor_constraints.py index 68aa1178d00..7396c765af8 100644 --- a/src/sage/numerical/linear_tensor_constraints.py +++ b/src/sage/numerical/linear_tensor_constraints.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Constraints on Linear Functions Tensored with a Free Module diff --git a/src/sage/numerical/linear_tensor_element.pxd b/src/sage/numerical/linear_tensor_element.pxd index 1cd84d3e33f..0318924471e 100644 --- a/src/sage/numerical/linear_tensor_element.pxd +++ b/src/sage/numerical/linear_tensor_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra from sage.structure.element cimport Element, ModuleElement cdef class LinearTensor(ModuleElement): diff --git a/src/sage/numerical/linear_tensor_element.pyx b/src/sage/numerical/linear_tensor_element.pyx index 4c6ba3c20cc..d86cfbe7776 100644 --- a/src/sage/numerical/linear_tensor_element.pyx +++ b/src/sage/numerical/linear_tensor_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra """ Matrix/Vector-Valued Linear Functions: Elements diff --git a/src/sage/numerical/mip.pxd b/src/sage/numerical/mip.pxd index 1422827e1e4..8422f0ade79 100644 --- a/src/sage/numerical/mip.pxd +++ b/src/sage/numerical/mip.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra cdef extern from *: cdef int BINARY = 1 cdef int REAL = -1 diff --git a/src/sage/numerical/mip.pyx b/src/sage/numerical/mip.pyx index 2395868b43d..81ec79d76ee 100644 --- a/src/sage/numerical/mip.pyx +++ b/src/sage/numerical/mip.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Mixed Integer Linear Programming diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py index 7b3d0456147..89a52018a1c 100644 --- a/src/sage/numerical/optimize.py +++ b/src/sage/numerical/optimize.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - scipy """ Numerical Root Finding and Optimization diff --git a/src/sage/numerical/sdp.pxd b/src/sage/numerical/sdp.pxd index 629e6c83f94..49b7a4d186f 100644 --- a/src/sage/numerical/sdp.pxd +++ b/src/sage/numerical/sdp.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra from sage.structure.sage_object cimport SageObject from sage.structure.parent cimport Parent from sage.structure.element cimport Element diff --git a/src/sage/numerical/sdp.pyx b/src/sage/numerical/sdp.pyx index 7c08ed08e10..874ec51cc05 100644 --- a/src/sage/numerical/sdp.pyx +++ b/src/sage/numerical/sdp.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra r""" Semidefinite Programming diff --git a/src/sage/parallel/all.py b/src/sage/parallel/all.py index dbb6ba2c851..8badd23e060 100644 --- a/src/sage/parallel/all.py +++ b/src/sage/parallel/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.parallel.decorate import parallel, fork from sage.misc.lazy_import import lazy_import diff --git a/src/sage/parallel/decorate.py b/src/sage/parallel/decorate.py index b23e997b7e2..48d94d34d46 100644 --- a/src/sage/parallel/decorate.py +++ b/src/sage/parallel/decorate.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Decorate interface for parallel computation """ diff --git a/src/sage/parallel/map_reduce.py b/src/sage/parallel/map_reduce.py index 239afb6df8b..6fbda6cf8ab 100644 --- a/src/sage/parallel/map_reduce.py +++ b/src/sage/parallel/map_reduce.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Parallel computations using RecursivelyEnumeratedSet and Map-Reduce diff --git a/src/sage/parallel/multiprocessing_sage.py b/src/sage/parallel/multiprocessing_sage.py index ab2ee3f95ee..57a5bcd3c60 100644 --- a/src/sage/parallel/multiprocessing_sage.py +++ b/src/sage/parallel/multiprocessing_sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Parallel Iterator built using Python's multiprocessing module """ @@ -11,7 +12,6 @@ # https://www.gnu.org/licenses/ ################################################################################ -from multiprocessing import Pool from functools import partial from sage.misc.fpickle import pickle_function, call_pickled_function from . import ncpus @@ -63,6 +63,8 @@ def parallel_iter(processes, f, inputs): sage: v.sort(); v [(((2,), {}), 4), (((3,), {}), 6)] """ + from multiprocessing import Pool + if processes == 0: processes = ncpus.ncpus() p = Pool(processes) diff --git a/src/sage/parallel/ncpus.py b/src/sage/parallel/ncpus.py index 24e8c0c5743..44771a9aa49 100644 --- a/src/sage/parallel/ncpus.py +++ b/src/sage/parallel/ncpus.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ CPU Detection """ diff --git a/src/sage/parallel/parallelism.py b/src/sage/parallel/parallelism.py index 6df09f58fad..ef974a78b4f 100644 --- a/src/sage/parallel/parallelism.py +++ b/src/sage/parallel/parallelism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Parallelization control diff --git a/src/sage/parallel/reference.py b/src/sage/parallel/reference.py index 6a855874330..2ebb05ebfd0 100644 --- a/src/sage/parallel/reference.py +++ b/src/sage/parallel/reference.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Reference Parallel Primitives diff --git a/src/sage/parallel/use_fork.py b/src/sage/parallel/use_fork.py index bc5293e0248..7eb7a6572ff 100644 --- a/src/sage/parallel/use_fork.py +++ b/src/sage/parallel/use_fork.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Parallel iterator built using the ``fork()`` system call """ diff --git a/src/sage/plot/all.py b/src/sage/plot/all.py index 565aa748be4..00131580f87 100644 --- a/src/sage/plot/all.py +++ b/src/sage/plot/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-plot + from sage.plot.graphics import Graphics from sage.plot.plot import (plot, graphics_array, multi_graphics, list_plot, parametric_plot, polar_plot, plot_loglog, plot_semilogx, @@ -34,6 +36,8 @@ from sage.plot.step import plot_step_function -from sage.plot.hyperbolic_arc import hyperbolic_arc -from sage.plot.hyperbolic_polygon import hyperbolic_triangle, hyperbolic_polygon +lazy_import("sage.plot.hyperbolic_arc", "hyperbolic_arc") +lazy_import("sage.plot.hyperbolic_polygon", [ + "hyperbolic_triangle", "hyperbolic_polygon"]) lazy_import("sage.plot.hyperbolic_regular_polygon", "hyperbolic_regular_polygon") +del lazy_import diff --git a/src/sage/plot/animate.py b/src/sage/plot/animate.py index 16672405c8e..040c2021394 100644 --- a/src/sage/plot/animate.py +++ b/src/sage/plot/animate.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic r""" Animated plots diff --git a/src/sage/plot/arc.py b/src/sage/plot/arc.py index 77f09c4a485..2ecd5197832 100644 --- a/src/sage/plot/arc.py +++ b/src/sage/plot/arc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Arcs of circles and ellipses """ diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py index 02442f90ba4..95fe87e0ac0 100644 --- a/src/sage/plot/arrow.py +++ b/src/sage/plot/arrow.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Arrows """ diff --git a/src/sage/plot/bar_chart.py b/src/sage/plot/bar_chart.py index f03ea65ab12..0945372b074 100644 --- a/src/sage/plot/bar_chart.py +++ b/src/sage/plot/bar_chart.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Bar charts """ diff --git a/src/sage/plot/bezier_path.py b/src/sage/plot/bezier_path.py index 1b81c6fe6d5..87fe4dffe5e 100644 --- a/src/sage/plot/bezier_path.py +++ b/src/sage/plot/bezier_path.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Bezier paths """ diff --git a/src/sage/plot/circle.py b/src/sage/plot/circle.py index f9c864d602a..0441d0f866c 100644 --- a/src/sage/plot/circle.py +++ b/src/sage/plot/circle.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Circles """ diff --git a/src/sage/plot/colors.py b/src/sage/plot/colors.py index a9792c2e374..eeea59a6e4f 100644 --- a/src/sage/plot/colors.py +++ b/src/sage/plot/colors.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.plot r""" Colors diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx index 124209f257e..3023af2be8d 100644 --- a/src/sage/plot/complex_plot.pyx +++ b/src/sage/plot/complex_plot.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Complex plots diff --git a/src/sage/plot/contour_plot.py b/src/sage/plot/contour_plot.py index 26874790ec5..efda2a36e84 100644 --- a/src/sage/plot/contour_plot.py +++ b/src/sage/plot/contour_plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Contour plots diff --git a/src/sage/plot/density_plot.py b/src/sage/plot/density_plot.py index 84d08518a0b..6adae9e952c 100644 --- a/src/sage/plot/density_plot.py +++ b/src/sage/plot/density_plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Density plots diff --git a/src/sage/plot/disk.py b/src/sage/plot/disk.py index 862ba12afc9..2e537f75a72 100644 --- a/src/sage/plot/disk.py +++ b/src/sage/plot/disk.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Disks """ diff --git a/src/sage/plot/ellipse.py b/src/sage/plot/ellipse.py index 8722d6fdb83..22c8dfddc19 100644 --- a/src/sage/plot/ellipse.py +++ b/src/sage/plot/ellipse.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Ellipses """ diff --git a/src/sage/plot/graphics.py b/src/sage/plot/graphics.py index 1ade8565660..d2a895acbb0 100644 --- a/src/sage/plot/graphics.py +++ b/src/sage/plot/graphics.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Graphics objects diff --git a/src/sage/plot/histogram.py b/src/sage/plot/histogram.py index d2514b9ef29..41be1bf3b54 100644 --- a/src/sage/plot/histogram.py +++ b/src/sage/plot/histogram.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Histograms """ diff --git a/src/sage/plot/hyperbolic_arc.py b/src/sage/plot/hyperbolic_arc.py index 904576f79b2..e9b336a801f 100644 --- a/src/sage/plot/hyperbolic_arc.py +++ b/src/sage/plot/hyperbolic_arc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic r""" Arcs in hyperbolic geometry diff --git a/src/sage/plot/hyperbolic_polygon.py b/src/sage/plot/hyperbolic_polygon.py index f74c35fef6f..c1654a2857e 100644 --- a/src/sage/plot/hyperbolic_polygon.py +++ b/src/sage/plot/hyperbolic_polygon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Polygons and triangles in hyperbolic geometry diff --git a/src/sage/plot/hyperbolic_regular_polygon.py b/src/sage/plot/hyperbolic_regular_polygon.py index 14e8bdcaf68..b05f088b901 100644 --- a/src/sage/plot/hyperbolic_regular_polygon.py +++ b/src/sage/plot/hyperbolic_regular_polygon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Regular polygons in the upper half model for hyperbolic plane diff --git a/src/sage/plot/line.py b/src/sage/plot/line.py index 241b2b4c1f1..f4743b7cf43 100644 --- a/src/sage/plot/line.py +++ b/src/sage/plot/line.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Line plots """ diff --git a/src/sage/plot/matrix_plot.py b/src/sage/plot/matrix_plot.py index 900ac9989e0..ee475ed83ab 100644 --- a/src/sage/plot/matrix_plot.py +++ b/src/sage/plot/matrix_plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Matrix plots """ diff --git a/src/sage/plot/misc.py b/src/sage/plot/misc.py index b86b52b05f6..1b2e8d6ad09 100644 --- a/src/sage/plot/misc.py +++ b/src/sage/plot/misc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Plotting utilities diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py index 6ed26974c49..0e27c5c6f60 100644 --- a/src/sage/plot/multigraphics.py +++ b/src/sage/plot/multigraphics.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic r""" Graphics arrays and insets diff --git a/src/sage/plot/plot.py b/src/sage/plot/plot.py index d1e21abe20a..606ea272ccf 100644 --- a/src/sage/plot/plot.py +++ b/src/sage/plot/plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic r""" 2D plotting diff --git a/src/sage/plot/plot3d/all.py b/src/sage/plot/plot3d/all.py index 1fc801284f5..60c9dc491e6 100644 --- a/src/sage/plot/plot3d/all.py +++ b/src/sage/plot/plot3d/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot from sage.plot.plot3d.plot3d import plot3d, cylindrical_plot3d, spherical_plot3d, Spherical, SphericalElevation, Cylindrical from sage.plot.plot3d.parametric_plot3d import parametric_plot3d diff --git a/src/sage/plot/plot3d/base.pxd b/src/sage/plot/plot3d/base.pxd index 0b7619ddd44..49c0f9b3d82 100644 --- a/src/sage/plot/plot3d/base.pxd +++ b/src/sage/plot/plot3d/base.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot from sage.structure.sage_object cimport SageObject diff --git a/src/sage/plot/plot3d/base.pyx b/src/sage/plot/plot3d/base.pyx index 9075d31d571..d8d8a2e867f 100644 --- a/src/sage/plot/plot3d/base.pyx +++ b/src/sage/plot/plot3d/base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Base classes for 3D graphics objects and plotting diff --git a/src/sage/plot/plot3d/implicit_plot3d.py b/src/sage/plot/plot3d/implicit_plot3d.py index 6fe1d4de6a0..cef7a6cbfb9 100644 --- a/src/sage/plot/plot3d/implicit_plot3d.py +++ b/src/sage/plot/plot3d/implicit_plot3d.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Implicit plots diff --git a/src/sage/plot/plot3d/implicit_surface.pyx b/src/sage/plot/plot3d/implicit_surface.pyx index 0a6e03354e6..984b39aff48 100644 --- a/src/sage/plot/plot3d/implicit_surface.pyx +++ b/src/sage/plot/plot3d/implicit_surface.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic r""" Graphics 3D object for representing and triangulating isosurfaces diff --git a/src/sage/plot/plot3d/index_face_set.pxd b/src/sage/plot/plot3d/index_face_set.pxd index 5a81bd32de1..082606720ee 100644 --- a/src/sage/plot/plot3d/index_face_set.pxd +++ b/src/sage/plot/plot3d/index_face_set.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-plot + from sage.plot.plot3d.base cimport PrimitiveObject from sage.plot.plot3d.transform cimport point_c, face_c, color_c diff --git a/src/sage/plot/plot3d/index_face_set.pyx b/src/sage/plot/plot3d/index_face_set.pyx index 04cd6866f8d..c108fb797a6 100644 --- a/src/sage/plot/plot3d/index_face_set.pyx +++ b/src/sage/plot/plot3d/index_face_set.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Indexed face sets diff --git a/src/sage/plot/plot3d/introduction.py b/src/sage/plot/plot3d/introduction.py index c55e37f4ef5..63027bba14a 100644 --- a/src/sage/plot/plot3d/introduction.py +++ b/src/sage/plot/plot3d/introduction.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Introduction diff --git a/src/sage/plot/plot3d/list_plot3d.py b/src/sage/plot/plot3d/list_plot3d.py index 8bfa47ab5c6..47b9daf16d4 100644 --- a/src/sage/plot/plot3d/list_plot3d.py +++ b/src/sage/plot/plot3d/list_plot3d.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ List plots """ diff --git a/src/sage/plot/plot3d/parametric_plot3d.py b/src/sage/plot/plot3d/parametric_plot3d.py index fa8a69a805e..5f83c86c711 100644 --- a/src/sage/plot/plot3d/parametric_plot3d.py +++ b/src/sage/plot/plot3d/parametric_plot3d.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Parametric plots diff --git a/src/sage/plot/plot3d/parametric_surface.pxd b/src/sage/plot/plot3d/parametric_surface.pxd index 82ac1164f8a..bc6d31c9f7a 100644 --- a/src/sage/plot/plot3d/parametric_surface.pxd +++ b/src/sage/plot/plot3d/parametric_surface.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-plot + from sage.plot.plot3d.index_face_set cimport IndexFaceSet from sage.plot.plot3d.transform cimport point_c diff --git a/src/sage/plot/plot3d/parametric_surface.pyx b/src/sage/plot/plot3d/parametric_surface.pyx index dab78e762a5..c54b238c2aa 100644 --- a/src/sage/plot/plot3d/parametric_surface.pyx +++ b/src/sage/plot/plot3d/parametric_surface.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic r""" Parametric surface diff --git a/src/sage/plot/plot3d/platonic.py b/src/sage/plot/plot3d/platonic.py index 3f8587968e2..bd6c1c04918 100644 --- a/src/sage/plot/plot3d/platonic.py +++ b/src/sage/plot/plot3d/platonic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Platonic solids diff --git a/src/sage/plot/plot3d/plot3d.py b/src/sage/plot/plot3d/plot3d.py index 3b583082a9a..0e43d8d62ab 100644 --- a/src/sage/plot/plot3d/plot3d.py +++ b/src/sage/plot/plot3d/plot3d.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic r""" Plotting functions diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py index 99f9449e2f8..91f96ebd75f 100644 --- a/src/sage/plot/plot3d/plot_field3d.py +++ b/src/sage/plot/plot3d/plot_field3d.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Plotting 3D fields diff --git a/src/sage/plot/plot3d/point_c.pxi b/src/sage/plot/plot3d/point_c.pxi index f282c3e9f63..9204310ae4e 100644 --- a/src/sage/plot/plot3d/point_c.pxi +++ b/src/sage/plot/plot3d/point_c.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # **************************************************************************** # Copyright (C) 2007 Robert Bradshaw # diff --git a/src/sage/plot/plot3d/revolution_plot3d.py b/src/sage/plot/plot3d/revolution_plot3d.py index 6c16263d971..bbba878eb25 100644 --- a/src/sage/plot/plot3d/revolution_plot3d.py +++ b/src/sage/plot/plot3d/revolution_plot3d.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.plot sage.symbolic """ Surfaces of revolution diff --git a/src/sage/plot/plot3d/shapes.pxd b/src/sage/plot/plot3d/shapes.pxd index d01e2a7460d..c1ac0573438 100644 --- a/src/sage/plot/plot3d/shapes.pxd +++ b/src/sage/plot/plot3d/shapes.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-plot + from sage.plot.plot3d.parametric_surface cimport ParametricSurface diff --git a/src/sage/plot/plot3d/shapes.pyx b/src/sage/plot/plot3d/shapes.pyx index 48369a64a07..66656475c55 100644 --- a/src/sage/plot/plot3d/shapes.pyx +++ b/src/sage/plot/plot3d/shapes.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Basic objects such as Sphere, Box, Cone, etc. diff --git a/src/sage/plot/plot3d/shapes2.py b/src/sage/plot/plot3d/shapes2.py index 05d6bb6e583..c7183508b72 100644 --- a/src/sage/plot/plot3d/shapes2.py +++ b/src/sage/plot/plot3d/shapes2.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Classes for Lines, Frames, Rulers, Spheres, Points, Dots, and Text diff --git a/src/sage/plot/plot3d/tachyon.py b/src/sage/plot/plot3d/tachyon.py index 83315e33368..f529b155db5 100644 --- a/src/sage/plot/plot3d/tachyon.py +++ b/src/sage/plot/plot3d/tachyon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" The Tachyon 3D Ray Tracer @@ -265,14 +266,14 @@ class Tachyon(WithEqualityById, SageObject): sage: t.texture('t0', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(1,0,0)) sage: t.texture('t1', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(0,1,0)) sage: t.texture('t2', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(0,0,1)) - sage: E = EllipticCurve('37a') # needs sage.schemes - sage: P = E([0,0]) # needs sage.schemes - sage: Q = P # needs sage.schemes + sage: E = EllipticCurve('37a') + sage: P = E([0,0]) + sage: Q = P sage: n = 100 - sage: for i in range(n): # increase 20 for a better plot # needs sage.schemes + sage: for i in range(n): # increase 20 for a better plot ....: Q = Q + P ....: t.sphere((Q[1], Q[0], ZZ(i)/n), 0.1, 't%s'%(i%3)) - sage: t.show() # needs sage.schemes + sage: t.show() A beautiful picture of rational points on a rank 1 elliptic curve. @@ -289,16 +290,16 @@ class Tachyon(WithEqualityById, SageObject): sage: t.plane((0,0,0),(0,0,1),'grey') sage: t.cylinder((0,0,0),(1,0,0),.01,'black') sage: t.cylinder((0,0,0),(0,1,0),.01,'black') - sage: E = EllipticCurve('37a') # needs sage.schemes - sage: P = E([0,0]) # needs sage.schemes - sage: Q = P # needs sage.schemes + sage: E = EllipticCurve('37a') + sage: P = E([0,0]) + sage: Q = P sage: n = 100 - sage: for i in range(n): # needs sage.schemes + sage: for i in range(n): ....: Q = Q + P ....: c = i/n + .1 ....: t.texture('r%s'%i,color=(float(i/n),0,0)) ....: t.sphere((Q[0], -Q[1], .01), .04, 'r%s'%i) - sage: t.show() # long time # needs sage.schemes + sage: t.show() # long time A beautiful spiral. diff --git a/src/sage/plot/plot3d/texture.py b/src/sage/plot/plot3d/texture.py index 561b8efbc3a..b19a6fbb1bd 100644 --- a/src/sage/plot/plot3d/texture.py +++ b/src/sage/plot/plot3d/texture.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Texture support diff --git a/src/sage/plot/plot3d/transform.pxd b/src/sage/plot/plot3d/transform.pxd index 39fd2bb6381..8113d48542c 100644 --- a/src/sage/plot/plot3d/transform.pxd +++ b/src/sage/plot/plot3d/transform.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot cdef struct point_c: double x, y, z diff --git a/src/sage/plot/plot3d/transform.pyx b/src/sage/plot/plot3d/transform.pyx index f60ebd7ada2..e9c19b2cbc3 100644 --- a/src/sage/plot/plot3d/transform.pyx +++ b/src/sage/plot/plot3d/transform.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Transformations """ diff --git a/src/sage/plot/plot3d/tri_plot.py b/src/sage/plot/plot3d/tri_plot.py index 4453d8c574c..d6480846781 100644 --- a/src/sage/plot/plot3d/tri_plot.py +++ b/src/sage/plot/plot3d/tri_plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Adaptive refinement code for 3d surface plotting diff --git a/src/sage/plot/plot_field.py b/src/sage/plot/plot_field.py index 4a884cf4662..d1e0cf9e6e4 100644 --- a/src/sage/plot/plot_field.py +++ b/src/sage/plot/plot_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Plotting fields diff --git a/src/sage/plot/point.py b/src/sage/plot/point.py index 7c2d6bb1ae3..dad0735d93e 100644 --- a/src/sage/plot/point.py +++ b/src/sage/plot/point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot r""" Points diff --git a/src/sage/plot/polygon.py b/src/sage/plot/polygon.py index 8f2fa424725..79ed0e1a93a 100644 --- a/src/sage/plot/polygon.py +++ b/src/sage/plot/polygon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Polygons """ diff --git a/src/sage/plot/primitive.py b/src/sage/plot/primitive.py index ef69f7f4344..e3854e2f590 100644 --- a/src/sage/plot/primitive.py +++ b/src/sage/plot/primitive.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Plotting primitives """ diff --git a/src/sage/plot/scatter_plot.py b/src/sage/plot/scatter_plot.py index 3b07349cb9c..caef876e284 100644 --- a/src/sage/plot/scatter_plot.py +++ b/src/sage/plot/scatter_plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Scatter plots """ diff --git a/src/sage/plot/step.py b/src/sage/plot/step.py index 85d4bd83c01..3a8faf16a75 100644 --- a/src/sage/plot/step.py +++ b/src/sage/plot/step.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Step function plots diff --git a/src/sage/plot/streamline_plot.py b/src/sage/plot/streamline_plot.py index b69a05b37bf..f383fa893ba 100644 --- a/src/sage/plot/streamline_plot.py +++ b/src/sage/plot/streamline_plot.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot # sage.doctest: needs sage.symbolic """ Streamline plots diff --git a/src/sage/plot/text.py b/src/sage/plot/text.py index 32b0cc712c4..5e45bf48b02 100644 --- a/src/sage/plot/text.py +++ b/src/sage/plot/text.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-plot """ Text in plots """ diff --git a/src/sage/probability/all.py b/src/sage/probability/all.py index 646f3d5a2ad..5e82c1e7525 100644 --- a/src/sage/probability/all.py +++ b/src/sage/probability/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.probability.random_variable import ( DiscreteRandomVariable, diff --git a/src/sage/probability/probability_distribution.pyx b/src/sage/probability/probability_distribution.pyx index fab94479291..cbaa9d6e09c 100644 --- a/src/sage/probability/probability_distribution.pyx +++ b/src/sage/probability/probability_distribution.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Probability Distributions diff --git a/src/sage/probability/random_variable.py b/src/sage/probability/random_variable.py index cb5c0426c5a..c0e61f97e14 100644 --- a/src/sage/probability/random_variable.py +++ b/src/sage/probability/random_variable.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Random variables and probability spaces @@ -17,7 +18,8 @@ import sage.rings.abc from sage.structure.parent import Parent -from sage.functions.log import log +from sage.misc.lazy_import import lazy_import +lazy_import("sage.functions.log", "log") from sage.misc.functional import sqrt from sage.rings.rational_field import RationalField from sage.sets.set import Set diff --git a/src/sage/quadratic_forms/all.py b/src/sage/quadratic_forms/all.py index 5982c6b8a5a..f09471d0416 100644 --- a/src/sage/quadratic_forms/all.py +++ b/src/sage/quadratic_forms/all.py @@ -1,19 +1,4 @@ -from sage.quadratic_forms.binary_qf import BinaryQF, BinaryQF_reduced_representatives +# sage_setup: distribution = sagemath-modules -from sage.quadratic_forms.bqf_class_group import BQFClassGroup - -from sage.quadratic_forms.ternary_qf import TernaryQF, find_all_ternary_qf_by_level_disc, find_a_ternary_qf_by_level_disc - -from sage.quadratic_forms.quadratic_form import QuadraticForm, DiagonalQuadraticForm, quadratic_form_from_invariants - -from sage.quadratic_forms.random_quadraticform import (random_quadraticform, random_quadraticform_with_conditions, - random_ternaryqf, random_ternaryqf_with_conditions) - -from sage.quadratic_forms.extras import least_quadratic_nonresidue, extend_to_primitive, is_triangular_number - -from sage.quadratic_forms.special_values import (gamma__exact, zeta__exact, QuadraticBernoulliNumber, - quadratic_L_function__exact, quadratic_L_function__numerical) - -from sage.quadratic_forms.genera.genus import Genus - -from sage.quadratic_forms.constructions import BezoutianQuadraticForm, HyperbolicPlane_quadratic_form +from sage.quadratic_forms.all__sagemath_modules import * +from sage.quadratic_forms.all__sagemath_pari import * diff --git a/src/sage/quadratic_forms/all__sagemath_modules.py b/src/sage/quadratic_forms/all__sagemath_modules.py new file mode 100644 index 00000000000..8a66519cb7f --- /dev/null +++ b/src/sage/quadratic_forms/all__sagemath_modules.py @@ -0,0 +1,14 @@ +# sage_setup: distribution = sagemath-modules + +from sage.quadratic_forms.binary_qf import BinaryQF, BinaryQF_reduced_representatives + +from sage.quadratic_forms.ternary_qf import TernaryQF, find_all_ternary_qf_by_level_disc, find_a_ternary_qf_by_level_disc + +from sage.quadratic_forms.quadratic_form import QuadraticForm, DiagonalQuadraticForm, quadratic_form_from_invariants + +from sage.quadratic_forms.random_quadraticform import (random_quadraticform, random_quadraticform_with_conditions, + random_ternaryqf, random_ternaryqf_with_conditions) + +from sage.quadratic_forms.extras import least_quadratic_nonresidue, extend_to_primitive, is_triangular_number + +from sage.quadratic_forms.constructions import BezoutianQuadraticForm, HyperbolicPlane_quadratic_form diff --git a/src/sage/quadratic_forms/all__sagemath_pari.py b/src/sage/quadratic_forms/all__sagemath_pari.py new file mode 100644 index 00000000000..7b420ed3093 --- /dev/null +++ b/src/sage/quadratic_forms/all__sagemath_pari.py @@ -0,0 +1,8 @@ +# sage_setup: distribution = sagemath-pari + +from sage.quadratic_forms.bqf_class_group import BQFClassGroup + +from sage.quadratic_forms.special_values import (gamma__exact, zeta__exact, QuadraticBernoulliNumber, + quadratic_L_function__exact, quadratic_L_function__numerical) + +from sage.quadratic_forms.genera.genus import Genus diff --git a/src/sage/quadratic_forms/binary_qf.py b/src/sage/quadratic_forms/binary_qf.py index 1a75f415b64..1ec65d6649a 100755 --- a/src/sage/quadratic_forms/binary_qf.py +++ b/src/sage/quadratic_forms/binary_qf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Binary quadratic forms with integer coefficients diff --git a/src/sage/quadratic_forms/bqf_class_group.py b/src/sage/quadratic_forms/bqf_class_group.py index 4dc8d588110..2068933c7b3 100644 --- a/src/sage/quadratic_forms/bqf_class_group.py +++ b/src/sage/quadratic_forms/bqf_class_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Class groups of binary quadratic forms diff --git a/src/sage/quadratic_forms/constructions.py b/src/sage/quadratic_forms/constructions.py index 95bd131215e..c508ce221a7 100644 --- a/src/sage/quadratic_forms/constructions.py +++ b/src/sage/quadratic_forms/constructions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Constructions of quadratic forms """ diff --git a/src/sage/quadratic_forms/count_local_2.pyx b/src/sage/quadratic_forms/count_local_2.pyx index 55c64e56be7..79536734a2c 100644 --- a/src/sage/quadratic_forms/count_local_2.pyx +++ b/src/sage/quadratic_forms/count_local_2.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Optimized counting of congruence solutions """ diff --git a/src/sage/quadratic_forms/extras.py b/src/sage/quadratic_forms/extras.py index 38ab9c498d9..0df3e89d0f8 100644 --- a/src/sage/quadratic_forms/extras.py +++ b/src/sage/quadratic_forms/extras.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Extra functions for quadratic forms """ diff --git a/src/sage/quadratic_forms/genera/all.py b/src/sage/quadratic_forms/genera/all.py index e92279814dd..94beebc6290 100644 --- a/src/sage/quadratic_forms/genera/all.py +++ b/src/sage/quadratic_forms/genera/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # **************************************************************************** # Copyright (C) 2007 David Kohel # diff --git a/src/sage/quadratic_forms/genera/genus.py b/src/sage/quadratic_forms/genera/genus.py index 0227fa8319a..afadac45343 100644 --- a/src/sage/quadratic_forms/genera/genus.py +++ b/src/sage/quadratic_forms/genera/genus.py @@ -1,4 +1,5 @@ -# sage.doctest: needs sage.libs.pari +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules r""" Genus diff --git a/src/sage/quadratic_forms/genera/normal_form.py b/src/sage/quadratic_forms/genera/normal_form.py index d0081636e61..64818f63897 100644 --- a/src/sage/quadratic_forms/genera/normal_form.py +++ b/src/sage/quadratic_forms/genera/normal_form.py @@ -1,4 +1,5 @@ -# sage.doctest: needs sage.libs.pari sage.rings.padics +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules sage.rings.padics r""" Normal forms for `p`-adic quadratic and bilinear forms diff --git a/src/sage/quadratic_forms/genera/spinor_genus.py b/src/sage/quadratic_forms/genera/spinor_genus.py index 4da6f0a2fbd..d54f19b59f5 100644 --- a/src/sage/quadratic_forms/genera/spinor_genus.py +++ b/src/sage/quadratic_forms/genera/spinor_genus.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.groups r""" Spinor genus computations. diff --git a/src/sage/quadratic_forms/qfsolve.py b/src/sage/quadratic_forms/qfsolve.py index 55fd9a4b3b2..d63325c2cd7 100644 --- a/src/sage/quadratic_forms/qfsolve.py +++ b/src/sage/quadratic_forms/qfsolve.py @@ -1,4 +1,5 @@ -# sage.doctest: needs sage.libs.pari +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules """ Solving quadratic equations diff --git a/src/sage/quadratic_forms/quadratic_form.py b/src/sage/quadratic_forms/quadratic_form.py index 88df6dfcb9c..986d99c53f0 100644 --- a/src/sage/quadratic_forms/quadratic_form.py +++ b/src/sage/quadratic_forms/quadratic_form.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Quadratic forms overview @@ -420,6 +421,7 @@ class QuadraticForm(SageObject): reduced_binary_form, \ minkowski_reduction, \ minkowski_reduction_for_4vars__SP + # Wrappers for Conway-Sloane genus routines (in ./genera/) lazy_import('sage.quadratic_forms.quadratic_form__genus', [ 'global_genus_symbol', diff --git a/src/sage/quadratic_forms/quadratic_form__automorphisms.py b/src/sage/quadratic_forms/quadratic_form__automorphisms.py index 4fa4d4fe1ff..b9d4f30198c 100644 --- a/src/sage/quadratic_forms/quadratic_form__automorphisms.py +++ b/src/sage/quadratic_forms/quadratic_form__automorphisms.py @@ -1,4 +1,5 @@ -# sage.doctest: needs sage.libs.pari +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules """ Automorphisms of Quadratic Forms """ diff --git a/src/sage/quadratic_forms/quadratic_form__count_local_2.py b/src/sage/quadratic_forms/quadratic_form__count_local_2.py index 3805945d0f7..6c2bd6f7fe7 100644 --- a/src/sage/quadratic_forms/quadratic_form__count_local_2.py +++ b/src/sage/quadratic_forms/quadratic_form__count_local_2.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Counting Congruence Solutions diff --git a/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py b/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py index f688a08a546..5eca5cd3722 100644 --- a/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py +++ b/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Equivalence Testing diff --git a/src/sage/quadratic_forms/quadratic_form__evaluate.pyx b/src/sage/quadratic_forms/quadratic_form__evaluate.pyx index b0c374e5381..c63c501b8de 100644 --- a/src/sage/quadratic_forms/quadratic_form__evaluate.pyx +++ b/src/sage/quadratic_forms/quadratic_form__evaluate.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules "Evaluation" diff --git a/src/sage/quadratic_forms/quadratic_form__genus.py b/src/sage/quadratic_forms/quadratic_form__genus.py index 52468e9889a..111c60a570b 100644 --- a/src/sage/quadratic_forms/quadratic_form__genus.py +++ b/src/sage/quadratic_forms/quadratic_form__genus.py @@ -1,4 +1,5 @@ -# sage.doctest: needs sage.libs.pari +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules """ Local and Global Genus Symbols """ diff --git a/src/sage/quadratic_forms/quadratic_form__local_density_congruence.py b/src/sage/quadratic_forms/quadratic_form__local_density_congruence.py index a959be64455..993b5d5374a 100644 --- a/src/sage/quadratic_forms/quadratic_form__local_density_congruence.py +++ b/src/sage/quadratic_forms/quadratic_form__local_density_congruence.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Local Density Congruence """ diff --git a/src/sage/quadratic_forms/quadratic_form__local_density_interfaces.py b/src/sage/quadratic_forms/quadratic_form__local_density_interfaces.py index 2643620e712..cf29389a51a 100644 --- a/src/sage/quadratic_forms/quadratic_form__local_density_interfaces.py +++ b/src/sage/quadratic_forms/quadratic_form__local_density_interfaces.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules """ Local Density Interfaces """ @@ -93,7 +95,7 @@ def local_primitive_density(self, p, m): [ * 10 5 6 ] [ * * 15 8 ] [ * * * 20 ] - sage: Q.theta_series(20) # needs sage.libs.pari + sage: Q.theta_series(20) 1 + 2*q^5 + 2*q^10 + 2*q^14 + 2*q^15 + 2*q^16 + 2*q^18 + O(q^20) sage: Q.local_normal_form(2) Quadratic form in 4 variables over Integer Ring with coefficients: diff --git a/src/sage/quadratic_forms/quadratic_form__local_field_invariants.py b/src/sage/quadratic_forms/quadratic_form__local_field_invariants.py index aa2478af088..77a556716dc 100644 --- a/src/sage/quadratic_forms/quadratic_form__local_field_invariants.py +++ b/src/sage/quadratic_forms/quadratic_form__local_field_invariants.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Local Field Invariants @@ -134,6 +135,7 @@ def rational_diagonal_form(self, return_matrix=False): This example cannot be computed by PARI:: + sage: # needs sage.rings.real_interval_field sage: Q = QuadraticForm(RIF, 4, range(10)) sage: Q.__pari__() Traceback (most recent call last): diff --git a/src/sage/quadratic_forms/quadratic_form__local_normal_form.py b/src/sage/quadratic_forms/quadratic_form__local_normal_form.py index f70ce4f2bb3..0a65bd99303 100644 --- a/src/sage/quadratic_forms/quadratic_form__local_normal_form.py +++ b/src/sage/quadratic_forms/quadratic_form__local_normal_form.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules """ Local Normal Form """ diff --git a/src/sage/quadratic_forms/quadratic_form__local_representation_conditions.py b/src/sage/quadratic_forms/quadratic_form__local_representation_conditions.py index 4cc9f18c152..775dc718720 100644 --- a/src/sage/quadratic_forms/quadratic_form__local_representation_conditions.py +++ b/src/sage/quadratic_forms/quadratic_form__local_representation_conditions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.pari sage.rings.number_field """ Local Representation Conditions diff --git a/src/sage/quadratic_forms/quadratic_form__mass.py b/src/sage/quadratic_forms/quadratic_form__mass.py index 96aa23610cd..0378425bae7 100644 --- a/src/sage/quadratic_forms/quadratic_form__mass.py +++ b/src/sage/quadratic_forms/quadratic_form__mass.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules """ Shimura Mass """ diff --git a/src/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py b/src/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py index 89460d08713..41a6b4d8ff4 100644 --- a/src/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py +++ b/src/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules """ Conway-Sloane masses """ diff --git a/src/sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py b/src/sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py index e1b7c897032..a5abdab0590 100644 --- a/src/sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py +++ b/src/sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules """ Local Masses and Siegel Densities """ diff --git a/src/sage/quadratic_forms/quadratic_form__neighbors.py b/src/sage/quadratic_forms/quadratic_form__neighbors.py index d4d579409d3..f2623670ad1 100644 --- a/src/sage/quadratic_forms/quadratic_form__neighbors.py +++ b/src/sage/quadratic_forms/quadratic_form__neighbors.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Neighbors """ diff --git a/src/sage/quadratic_forms/quadratic_form__reduction_theory.py b/src/sage/quadratic_forms/quadratic_form__reduction_theory.py index 87323962097..1bafe1e2756 100644 --- a/src/sage/quadratic_forms/quadratic_form__reduction_theory.py +++ b/src/sage/quadratic_forms/quadratic_form__reduction_theory.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Reduction Theory """ diff --git a/src/sage/quadratic_forms/quadratic_form__siegel_product.py b/src/sage/quadratic_forms/quadratic_form__siegel_product.py index b481f5ad073..b62a968c03f 100644 --- a/src/sage/quadratic_forms/quadratic_form__siegel_product.py +++ b/src/sage/quadratic_forms/quadratic_form__siegel_product.py @@ -1,4 +1,5 @@ -# sage.doctest: needs sage.libs.pari +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules """ Siegel Products """ diff --git a/src/sage/quadratic_forms/quadratic_form__split_local_covering.py b/src/sage/quadratic_forms/quadratic_form__split_local_covering.py index 14c7bdfb279..3aabcf8bbe7 100644 --- a/src/sage/quadratic_forms/quadratic_form__split_local_covering.py +++ b/src/sage/quadratic_forms/quadratic_form__split_local_covering.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Split Local Covering """ diff --git a/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py b/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py index 0e447f982dd..3780ca8e304 100644 --- a/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +++ b/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Tornaria methods for computing with quadratic forms """ diff --git a/src/sage/quadratic_forms/quadratic_form__theta.py b/src/sage/quadratic_forms/quadratic_form__theta.py index 12cffc8fbc1..e2859a560e4 100644 --- a/src/sage/quadratic_forms/quadratic_form__theta.py +++ b/src/sage/quadratic_forms/quadratic_form__theta.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Theta Series of Quadratic Forms diff --git a/src/sage/quadratic_forms/quadratic_form__variable_substitutions.py b/src/sage/quadratic_forms/quadratic_form__variable_substitutions.py index ba3b26bacaa..aa4f79edec8 100644 --- a/src/sage/quadratic_forms/quadratic_form__variable_substitutions.py +++ b/src/sage/quadratic_forms/quadratic_form__variable_substitutions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Variable Substitution, Multiplication, Division, Scaling """ diff --git a/src/sage/quadratic_forms/random_quadraticform.py b/src/sage/quadratic_forms/random_quadraticform.py index fb36812bcbd..9473cda5257 100644 --- a/src/sage/quadratic_forms/random_quadraticform.py +++ b/src/sage/quadratic_forms/random_quadraticform.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Random quadratic forms diff --git a/src/sage/quadratic_forms/special_values.py b/src/sage/quadratic_forms/special_values.py index 0b865877525..f8e3ef2ee4c 100644 --- a/src/sage/quadratic_forms/special_values.py +++ b/src/sage/quadratic_forms/special_values.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.libs.pari sage.modules r""" Routines for computing special values of `L`-functions @@ -172,13 +174,13 @@ def QuadraticBernoulliNumber(k, d): Let us create a list of some odd negative fundamental discriminants:: - sage: test_set = [d for d in srange(-163, -3, 4) # needs sage.libs.pari + sage: test_set = [d for d in srange(-163, -3, 4) ....: if d.is_fundamental_discriminant()] In general, we have `B_{1, \chi_d} = -2 h/w` for odd negative fundamental discriminants:: - sage: all(QuadraticBernoulliNumber(1, d) # needs sage.libs.pari + sage: all(QuadraticBernoulliNumber(1, d) ....: == -len(BinaryQF_reduced_representatives(d)) ....: for d in test_set) True @@ -213,16 +215,16 @@ def quadratic_L_function__exact(n, d): EXAMPLES:: - sage: quadratic_L_function__exact(1, -4) # needs sage.libs.pari sage.symbolic + sage: quadratic_L_function__exact(1, -4) # needs sage.symbolic 1/4*pi - sage: quadratic_L_function__exact(-4, -4) # needs sage.libs.pari + sage: quadratic_L_function__exact(-4, -4) 5/2 - sage: quadratic_L_function__exact(2, 1) # needs sage.libs.pari sage.symbolic + sage: quadratic_L_function__exact(2, 1) # needs sage.symbolic 1/6*pi^2 TESTS:: - sage: quadratic_L_function__exact(2, -4) # needs sage.libs.pari + sage: quadratic_L_function__exact(2, -4) Traceback (most recent call last): ... TypeError: n must be a critical value (i.e. odd > 0 or even <= 0) diff --git a/src/sage/quadratic_forms/ternary.pyx b/src/sage/quadratic_forms/ternary.pyx index 345d6b962b3..8ab0ead76e4 100644 --- a/src/sage/quadratic_forms/ternary.pyx +++ b/src/sage/quadratic_forms/ternary.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Helper code for ternary quadratic forms """ diff --git a/src/sage/quadratic_forms/ternary_qf.py b/src/sage/quadratic_forms/ternary_qf.py index 79436ff4f77..39084809804 100644 --- a/src/sage/quadratic_forms/ternary_qf.py +++ b/src/sage/quadratic_forms/ternary_qf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Ternary quadratic form with integer coefficients diff --git a/src/sage/quivers/algebra.py b/src/sage/quivers/algebra.py index 9e867cadc7c..800365670b3 100644 --- a/src/sage/quivers/algebra.py +++ b/src/sage/quivers/algebra.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint +# sage.doctest: needs sage.graphs """ Path Algebras """ diff --git a/src/sage/quivers/algebra_elements.pxd b/src/sage/quivers/algebra_elements.pxd index 3beb69914d0..91645ff60d2 100644 --- a/src/sage/quivers/algebra_elements.pxd +++ b/src/sage/quivers/algebra_elements.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Cython types for elements of path algebras """ diff --git a/src/sage/quivers/algebra_elements.pxi b/src/sage/quivers/algebra_elements.pxi index 959b901fdd4..eae297d3d8e 100644 --- a/src/sage/quivers/algebra_elements.pxi +++ b/src/sage/quivers/algebra_elements.pxi @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint +# sage.doctest: needs sage.graphs """ Boilerplate functions for a cython implementation of elements of path algebras diff --git a/src/sage/quivers/algebra_elements.pyx b/src/sage/quivers/algebra_elements.pyx index a8f7778b202..1fee106fd4b 100644 --- a/src/sage/quivers/algebra_elements.pyx +++ b/src/sage/quivers/algebra_elements.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint +# sage.doctest: needs sage.graphs """ Path algebra elements diff --git a/src/sage/quivers/all.py b/src/sage/quivers/all.py index e69de29bb2d..d31bae41036 100644 --- a/src/sage/quivers/all.py +++ b/src/sage/quivers/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/quivers/homspace.py b/src/sage/quivers/homspace.py index e500d7fac43..62a75c15d08 100644 --- a/src/sage/quivers/homspace.py +++ b/src/sage/quivers/homspace.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint +# sage.doctest: needs sage.graphs sage.modules """ Quiver Homspace """ diff --git a/src/sage/quivers/morphism.py b/src/sage/quivers/morphism.py index b35941eb05d..7c91b17d487 100644 --- a/src/sage/quivers/morphism.py +++ b/src/sage/quivers/morphism.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint +# sage.doctest: needs sage.graphs sage.modules """ Quiver Morphisms """ diff --git a/src/sage/quivers/path_semigroup.py b/src/sage/quivers/path_semigroup.py index cb141c02751..59c7f00211b 100644 --- a/src/sage/quivers/path_semigroup.py +++ b/src/sage/quivers/path_semigroup.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint +# sage.doctest: needs sage.graphs """ Path Semigroups """ diff --git a/src/sage/quivers/paths.pxd b/src/sage/quivers/paths.pxd index 5757bf6e219..26e5ad3ccf5 100644 --- a/src/sage/quivers/paths.pxd +++ b/src/sage/quivers/paths.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.structure.element cimport MonoidElement, Element from sage.data_structures.bounded_integer_sequences cimport biseq_t diff --git a/src/sage/quivers/paths.pyx b/src/sage/quivers/paths.pyx index c3552c09294..fd811a11f68 100644 --- a/src/sage/quivers/paths.pyx +++ b/src/sage/quivers/paths.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint +# sage.doctest: needs sage.graphs """ Quiver Paths """ diff --git a/src/sage/quivers/representation.py b/src/sage/quivers/representation.py index 57d2e09a8bd..ccbc0bd20b5 100644 --- a/src/sage/quivers/representation.py +++ b/src/sage/quivers/representation.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint +# sage.doctest: needs sage.graphs sage.modules r""" Quiver Representations diff --git a/src/sage/repl/interface_magic.py b/src/sage/repl/interface_magic.py index a426dfdda07..b92b8370911 100644 --- a/src/sage/repl/interface_magic.py +++ b/src/sage/repl/interface_magic.py @@ -36,8 +36,11 @@ # **************************************************************************** +from sage.misc.lazy_import import lazy_import, LazyImport from sage.repl.rich_output.display_manager import get_display_manager +lazy_import('sage.interfaces.interface', 'Interface') + LINE_DOCSTRING = """ Interact with {name} @@ -98,7 +101,7 @@ def all_iter(cls): except ImportError: return for name, obj in sage.interfaces.all.__dict__.items(): - if isinstance(obj, (sage.interfaces.interface.Interface, sage.misc.lazy_import.LazyImport)): + if isinstance(obj, (Interface, LazyImport)): yield cls(name, obj) @classmethod diff --git a/src/sage/repl/ipython_kernel/interact.py b/src/sage/repl/ipython_kernel/interact.py index 86e53412bc2..c5cba90fbea 100644 --- a/src/sage/repl/ipython_kernel/interact.py +++ b/src/sage/repl/ipython_kernel/interact.py @@ -177,8 +177,13 @@ def widget_from_single_value(cls, abbrev, *args, **kwds): return input_grid(abbrev.nrows(), abbrev.ncols(), default=abbrev.list(), to_value=abbrev.parent()) - if isinstance(abbrev, Color): - return SageColorPicker(value=abbrev.html_color()) + try: + from sage.plot.colors import Color + except ImportError: + pass + else: + if isinstance(abbrev, Color): + return SageColorPicker(value=abbrev.html_color()) # Get widget from IPython if possible widget = super().widget_from_single_value(abbrev, *args, **kwds) if widget is not None or isinstance(abbrev, Iterable): @@ -233,6 +238,8 @@ def widget_from_tuple(cls, abbrev, *args, **kwds): # Numerically evaluate symbolic expressions def n(x): + import sage.rings.abc + if isinstance(parent(x), sage.rings.abc.SymbolicRing): return x.numerical_approx() else: diff --git a/src/sage/repl/ipython_kernel/widgets.py b/src/sage/repl/ipython_kernel/widgets.py index 3fa000f70df..fa425bf2f7d 100644 --- a/src/sage/repl/ipython_kernel/widgets.py +++ b/src/sage/repl/ipython_kernel/widgets.py @@ -193,7 +193,7 @@ def get_value(self): sage: w.get_value() 42 sage: w.get_interact_value() - 42.0000000000000 + 42.0... """ return sage_eval(self.value, get_globals()) diff --git a/src/sage/repl/user_globals.py b/src/sage/repl/user_globals.py index 444c0af1405..e0a57940041 100644 --- a/src/sage/repl/user_globals.py +++ b/src/sage/repl/user_globals.py @@ -19,9 +19,9 @@ This is how a typical user interface initializes the globals:: sage: ui_globals = globals() # or wherever the user interface stores its globals - sage: from sage import all_cmdline + sage: from sage import all__sagemath_modules sage: from sage.repl.user_globals import initialize_globals - sage: _ = initialize_globals(all_cmdline, ui_globals) + sage: _ = initialize_globals(all__sagemath_modules, ui_globals) Now everything which was imported in ``all_cmdline`` is available as a global:: @@ -94,7 +94,7 @@ def get_globals(): EXAMPLES:: sage: from sage.repl.user_globals import get_globals, initialize_globals - sage: initialize_globals(sage.all) + sage: initialize_globals(sage.all__sagemath_modules) sage: get_globals()["Matrix"] """ @@ -139,7 +139,7 @@ def initialize_globals(all, g=None): sage: my_globs = {"foo": "bar"} sage: from sage.repl.user_globals import initialize_globals - sage: initialize_globals(sage.all, my_globs) + sage: initialize_globals(sage.all__sagemath_modules, my_globs) sage: my_globs["foo"] 'bar' sage: my_globs["Matrix"] @@ -149,7 +149,7 @@ def initialize_globals(all, g=None): changing the dictionary:: sage: del my_globs["Matrix"] - sage: initialize_globals(sage.all) + sage: initialize_globals(sage.all__sagemath_modules) sage: my_globs["Matrix"] """ diff --git a/src/sage/rings/abc.pxd b/src/sage/rings/abc.pxd index a2d2e3f0ce4..e59afe26a1f 100644 --- a/src/sage/rings/abc.pxd +++ b/src/sage/rings/abc.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-categories + from sage.rings.ring cimport CommutativeRing, Field cdef class RealField(Field): diff --git a/src/sage/rings/abc.pyx b/src/sage/rings/abc.pyx index e8078f97743..cfbb74465a2 100644 --- a/src/sage/rings/abc.pyx +++ b/src/sage/rings/abc.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Abstract base classes for rings """ diff --git a/src/sage/rings/algebraic_closure_finite_field.py b/src/sage/rings/algebraic_closure_finite_field.py index b5e76c676d3..67f3c3f7ee4 100644 --- a/src/sage/rings/algebraic_closure_finite_field.py +++ b/src/sage/rings/algebraic_closure_finite_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.finite_rings r""" Algebraic closures of finite fields diff --git a/src/sage/rings/all.py b/src/sage/rings/all.py index e3c7167fe12..86949afd262 100644 --- a/src/sage/rings/all.py +++ b/src/sage/rings/all.py @@ -14,157 +14,36 @@ from sage.rings.all__sagemath_categories import * -# Ring base classes -from sage.rings.ring import (Ring, Field, CommutativeRing, IntegralDomain, - PrincipalIdealDomain) - -lazy_import("sage.rings.ring", "DedekindDomain") - -# Ring element base classes -from sage.structure.element import (CommutativeAlgebraElement, - RingElement, CommutativeRingElement, IntegralDomainElement, - DedekindDomainElement, PrincipalIdealDomainElement, - EuclideanDomainElement, FieldElement) - -# Ideals -from sage.rings.ideal import Ideal -ideal = Ideal - -# Quotient -from sage.rings.quotient_ring import QuotientRing - -# Infinities -from sage.rings.infinity import infinity, Infinity, InfinityRing, unsigned_infinity, UnsignedInfinityRing - -# Rational integers. -from sage.rings.integer_ring import IntegerRing, ZZ, crt_basis -from sage.rings.integer import Integer - -# Rational numbers -from sage.rings.rational_field import RationalField, QQ -from sage.rings.rational import Rational -Rationals = RationalField - -# Integers modulo n. -from sage.rings.finite_rings.integer_mod_ring import IntegerModRing, Zmod -from sage.rings.finite_rings.integer_mod import IntegerMod, Mod, mod -Integers = IntegerModRing - # Finite fields from sage.rings.finite_rings.all import * -# Number field -from sage.rings.number_field.all import * +from sage.rings.all__sagemath_combinat import * +from sage.rings.all__sagemath_flint import * +from sage.rings.all__sagemath_gap import * +from sage.rings.all__sagemath_modules import * + +try: + from sage.rings.all__sagemath_symbolics import * +except ImportError: + pass # Function field from sage.rings.function_field.all import * -# Finite residue fields -from sage.rings.finite_rings.residue_field import ResidueField - -# p-adic field -from sage.rings.padics.all import * -from sage.rings.padics.padic_printing import _printer_defaults as padic_printing - -# valuations -from sage.rings.valuation.all import * - -# Semirings -from sage.rings.semirings.all import * - -# Real numbers -from sage.rings.real_mpfr import (RealField, RR, - create_RealNumber as RealNumber) # this is used by the preparser to wrap real literals -- very important. -Reals = RealField - -from sage.rings.real_double import RealDoubleField, RDF, RealDoubleElement - -from sage.rings.real_lazy import RealLazyField, RLF, ComplexLazyField, CLF - -from sage.rings.real_arb import RealBallField, RBF - # Polynomial Rings and Polynomial Quotient Rings from sage.rings.polynomial.all import * - -# Algebraic numbers -from sage.rings.qqbar import (AlgebraicRealField, AA, - AlgebraicReal, - AlgebraicField, QQbar, - AlgebraicNumber, - number_field_elements_from_algebraics) -from sage.rings.universal_cyclotomic_field import UniversalCyclotomicField, E - -# Intervals -from sage.rings.real_mpfi import (RealIntervalField, - RIF, - RealInterval) - -# Complex numbers -from sage.rings.complex_mpfr import ComplexField -from sage.rings.complex_mpfr import create_ComplexNumber as ComplexNumber -Complexes = ComplexField -from sage.rings.complex_interval_field import ComplexIntervalField -from sage.rings.complex_interval import (create_ComplexIntervalFieldElement as ComplexIntervalFieldElement) - -from sage.rings.complex_double import ComplexDoubleField, ComplexDoubleElement, CDF - -from sage.rings.complex_mpc import MPComplexField - -from sage.rings.complex_arb import ComplexBallField, CBF - -lazy_import("sage.rings.imaginary_unit", "I") - -# Power series rings -from sage.rings.power_series_ring import PowerSeriesRing - -# Laurent series ring in one variable -from sage.rings.laurent_series_ring import LaurentSeriesRing - -# Lazy Laurent series ring -lazy_import('sage.rings.lazy_series_ring', ['LazyLaurentSeriesRing', 'LazyPowerSeriesRing', - 'LazySymmetricFunctions', 'LazyDirichletSeriesRing']) - -# Tate algebras -from sage.rings.tate_algebra import TateAlgebra - -# Puiseux series ring -from sage.rings.puiseux_series_ring import PuiseuxSeriesRing - -# Pseudo-ring of PARI objects. -from sage.rings.pari_ring import PariRing, Pari - -# Big-oh notation -from sage.rings.big_oh import O - -# Fraction field -from sage.rings.fraction_field import FractionField -Frac = FractionField - -# Localization -from sage.rings.localization import Localization - # c-finite sequences from sage.rings.cfinite_sequence import CFiniteSequence, CFiniteSequences -from sage.rings.bernoulli_mod_p import bernoulli_mod_p, bernoulli_mod_p_single - -from sage.rings.monomials import monomials - -from sage.rings.cc import CC -from sage.rings.cif import CIF - -# invariant theory -from sage.rings.invariants.all import * - from sage.rings.fast_arith import prime_range -# continued fractions -from sage.rings.continued_fraction import (continued_fraction, - continued_fraction_list) - # asymptotic ring -from sage.rings.asymptotic.all import * +# from sage.rings.asymptotic.all import * +lazy_import('sage.rings.asymptotic.asymptotic_ring', 'AsymptoticRing') +lazy_import('sage.rings.asymptotic.asymptotic_expansion_generators', + 'asymptotic_expansions') # Register classes in numbers abc from sage.rings import numbers_abc +del lazy_import diff --git a/src/sage/rings/all__sagemath_brial.py b/src/sage/rings/all__sagemath_brial.py new file mode 100644 index 00000000000..016ca38a057 --- /dev/null +++ b/src/sage/rings/all__sagemath_brial.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-brial diff --git a/src/sage/rings/all__sagemath_categories.py b/src/sage/rings/all__sagemath_categories.py index 4c0efe7b507..85c1414a1af 100644 --- a/src/sage/rings/all__sagemath_categories.py +++ b/src/sage/rings/all__sagemath_categories.py @@ -1,7 +1,92 @@ # sage_setup: distribution = sagemath-categories + +from sage.misc.lazy_import import lazy_import + # Ring base classes -from sage.rings.ring import Ring +from sage.rings.ring import (Ring, Field, CommutativeRing, IntegralDomain, + PrincipalIdealDomain) + +lazy_import("sage.rings.ring", "DedekindDomain") + +# Ring element base classes +from sage.structure.element import (CommutativeAlgebraElement, + RingElement, CommutativeRingElement, IntegralDomainElement, + DedekindDomainElement, PrincipalIdealDomainElement, + EuclideanDomainElement, FieldElement) + +# Integers modulo n. +from sage.rings.finite_rings.integer_mod_ring import IntegerModRing, Zmod +from sage.rings.finite_rings.integer_mod import IntegerMod, Mod, mod +Integers = IntegerModRing + +# Quotient +from sage.rings.quotient_ring import QuotientRing + +# Infinities +from sage.rings.infinity import infinity, Infinity, InfinityRing, unsigned_infinity, UnsignedInfinityRing +oo = infinity + +# Rational integers. +from sage.rings.integer_ring import IntegerRing, ZZ, crt_basis +from sage.rings.integer import Integer + +# Rational numbers +from sage.rings.rational import Rational +from sage.rings.rational_field import RationalField, QQ +Rationals = RationalField + +# Integers modulo n. +from sage.rings.finite_rings.integer_mod_ring import IntegerModRing, Zmod +from sage.rings.finite_rings.integer_mod import IntegerMod, Mod, mod +Integers = IntegerModRing + +# Function field +from sage.rings.function_field.all__sagemath_categories import * + +# Double precision floating point numbers +from sage.rings.real_double import RealDoubleField, RDF, RealDoubleElement + +# Lazy reals +from sage.rings.real_lazy import RealLazyField, RLF, ComplexLazyField, CLF + # Ideals from sage.rings.ideal import Ideal - ideal = Ideal + +# Semirings +from sage.rings.semirings.all import * + +from sage.rings.finite_rings.all__sagemath_categories import * +from sage.rings.function_field.all__sagemath_categories import * +from sage.rings.number_field.all__sagemath_categories import * +from sage.rings.padics.all__sagemath_categories import * +from sage.rings.polynomial.all__sagemath_categories import * + +# Power series rings +from sage.rings.power_series_ring import PowerSeriesRing + +# Laurent series ring in one variable +from sage.rings.laurent_series_ring import LaurentSeriesRing + +# Puiseux series ring +from sage.rings.puiseux_series_ring import PuiseuxSeriesRing + +# Big-oh notation +from sage.rings.big_oh import O + +# Fraction field +from sage.rings.fraction_field import FractionField +Frac = FractionField + +# Localization +from sage.rings.localization import Localization + +# continued fractions +from sage.rings.continued_fraction import (continued_fraction, + continued_fraction_list) + +# Preliminary version of real numbers for doctesting without sage.rings.real_mpfr. +# sage.rings.all redefines it. +RealNumber = RR = RDF # used by the preparser to wrap real literals + +del lazy_import diff --git a/src/sage/rings/all__sagemath_combinat.py b/src/sage/rings/all__sagemath_combinat.py new file mode 100644 index 00000000000..ae836ed27e4 --- /dev/null +++ b/src/sage/rings/all__sagemath_combinat.py @@ -0,0 +1,11 @@ +# sage_setup: distribution = sagemath-combinat + +from sage.rings.all__sagemath_categories import * + +from sage.misc.lazy_import import lazy_import + +# Lazy Laurent series ring +lazy_import('sage.rings.lazy_series_ring', ['LazyLaurentSeriesRing', 'LazyPowerSeriesRing', + 'LazySymmetricFunctions', 'LazyDirichletSeriesRing']) + +del lazy_import diff --git a/src/sage/rings/all__sagemath_flint.py b/src/sage/rings/all__sagemath_flint.py new file mode 100644 index 00000000000..dc65a4d7bb8 --- /dev/null +++ b/src/sage/rings/all__sagemath_flint.py @@ -0,0 +1,37 @@ +# sage_setup: distribution = sagemath-flint + +from sage.rings.all__sagemath_ntl import * + +# Real numbers +from sage.rings.real_arb import RealBallField, RBF + +from sage.rings.complex_arb import ComplexBallField, CBF + +# Number field +from sage.rings.number_field.all import * + +from sage.rings.monomials import monomials + +# Algebraic numbers +from sage.rings.qqbar import (AlgebraicRealField, AA, + AlgebraicReal, + AlgebraicField, QQbar, + AlgebraicNumber, + number_field_elements_from_algebraics) + +# Intervals +from sage.rings.real_mpfi import (RealIntervalField, + RIF, + RealInterval) + +# Complex numbers +from sage.rings.complex_interval_field import ComplexIntervalField +from sage.rings.complex_interval import ( + create_ComplexIntervalFieldElement as ComplexIntervalFieldElement) + +from sage.misc.lazy_import import lazy_import + +lazy_import("sage.rings.imaginary_unit", "I") + +from sage.rings.cif import CIF +del lazy_import diff --git a/src/sage/rings/all__sagemath_gap.py b/src/sage/rings/all__sagemath_gap.py new file mode 100644 index 00000000000..e344864480c --- /dev/null +++ b/src/sage/rings/all__sagemath_gap.py @@ -0,0 +1,7 @@ +# sage_setup: distribution = sagemath-gap + +from sage.misc.lazy_import import lazy_import + +lazy_import('sage.rings.universal_cyclotomic_field', ['UniversalCyclotomicField', 'E']) + +del lazy_import diff --git a/src/sage/rings/all__sagemath_linbox.py b/src/sage/rings/all__sagemath_linbox.py new file mode 100644 index 00000000000..d3fe8dc3de9 --- /dev/null +++ b/src/sage/rings/all__sagemath_linbox.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-linbox diff --git a/src/sage/rings/all__sagemath_modules.py b/src/sage/rings/all__sagemath_modules.py new file mode 100644 index 00000000000..bb5e85327a7 --- /dev/null +++ b/src/sage/rings/all__sagemath_modules.py @@ -0,0 +1,26 @@ +# sage_setup: distribution = sagemath-modules + +from sage.rings.all__sagemath_categories import * + +from sage.rings.function_field.all__sagemath_modules import * +from sage.rings.polynomial.all__sagemath_modules import * + +# Real numbers +from sage.rings.real_mpfr import (RealField, RR, + create_RealNumber as RealNumber) # this is used by the preparser to wrap real literals -- very important. +Reals = RealField + +# Complex numbers + +from sage.rings.complex_mpfr import ComplexField +from sage.rings.complex_mpfr import create_ComplexNumber as ComplexNumber +Complexes = ComplexField + +from sage.rings.complex_double import ComplexDoubleField, ComplexDoubleElement, CDF + +from sage.rings.cc import CC + +from sage.rings.complex_mpc import MPComplexField + +# invariant theory +from sage.rings.invariants.all import * diff --git a/src/sage/rings/all__sagemath_ntl.py b/src/sage/rings/all__sagemath_ntl.py new file mode 100644 index 00000000000..10ffcc1b36f --- /dev/null +++ b/src/sage/rings/all__sagemath_ntl.py @@ -0,0 +1,7 @@ +# sage_setup: distribution = sagemath-ntl + +from sage.rings.all__sagemath_pari import * + +from sage.rings.padics.all__sagemath_ntl import * + +from sage.rings.bernoulli_mod_p import bernoulli_mod_p, bernoulli_mod_p_single diff --git a/src/sage/rings/all__sagemath_pari.py b/src/sage/rings/all__sagemath_pari.py new file mode 100644 index 00000000000..a7d3c492955 --- /dev/null +++ b/src/sage/rings/all__sagemath_pari.py @@ -0,0 +1,13 @@ +# sage_setup: distribution = sagemath-pari + +# Pseudo-ring of PARI objects. +from sage.rings.pari_ring import PariRing, Pari + +# p-adic field +from sage.rings.padics.all__sagemath_pari import * + +# valuations +from sage.rings.valuation.all import * + +# Tate algebras +from sage.rings.tate_algebra import TateAlgebra diff --git a/src/sage/rings/all__sagemath_singular.py b/src/sage/rings/all__sagemath_singular.py new file mode 100644 index 00000000000..84ec2b51067 --- /dev/null +++ b/src/sage/rings/all__sagemath_singular.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-singular diff --git a/src/sage/rings/all__sagemath_symbolics.py b/src/sage/rings/all__sagemath_symbolics.py new file mode 100644 index 00000000000..d7a758e5869 --- /dev/null +++ b/src/sage/rings/all__sagemath_symbolics.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-symbolics + +from sage.rings.all__sagemath_modules import * diff --git a/src/sage/rings/bernmm.pyx b/src/sage/rings/bernmm.pyx index 492181f1f22..76750e88545 100644 --- a/src/sage/rings/bernmm.pyx +++ b/src/sage/rings/bernmm.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: sources = sage/rings/bernmm/bern_modp.cpp sage/rings/bernmm/bern_modp_util.cpp sage/rings/bernmm/bern_rat.cpp # distutils: libraries = NTL_LIBRARIES pthread gmp # distutils: extra_compile_args = NTL_CFLAGS diff --git a/src/sage/rings/bernoulli_mod_p.pyx b/src/sage/rings/bernoulli_mod_p.pyx index 1783c712aaf..16896bdb2ae 100644 --- a/src/sage/rings/bernoulli_mod_p.pyx +++ b/src/sage/rings/bernoulli_mod_p.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/big_oh.py b/src/sage/rings/big_oh.py index 54513722d03..1b1bd7d7883 100644 --- a/src/sage/rings/big_oh.py +++ b/src/sage/rings/big_oh.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Big O for various types (power series, `p`-adics, etc.) diff --git a/src/sage/rings/cc.py b/src/sage/rings/cc.py index 94e3093488b..2e47fd05324 100644 --- a/src/sage/rings/cc.py +++ b/src/sage/rings/cc.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.rings.complex_mpfr import ComplexField CC = ComplexField() diff --git a/src/sage/rings/cif.py b/src/sage/rings/cif.py index 900c635e87b..e261e481f29 100644 --- a/src/sage/rings/cif.py +++ b/src/sage/rings/cif.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.rings.complex_interval_field import ComplexIntervalField CIF = ComplexIntervalField() diff --git a/src/sage/rings/complex_arb.pxd b/src/sage/rings/complex_arb.pxd index 4cd016d0798..32339dd18a2 100644 --- a/src/sage/rings/complex_arb.pxd +++ b/src/sage/rings/complex_arb.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.flint.acb cimport acb_t from sage.rings.complex_interval cimport ComplexIntervalFieldElement from sage.rings.real_arb cimport RealBall diff --git a/src/sage/rings/complex_arb.pyx b/src/sage/rings/complex_arb.pyx index fb9d821a413..9e3e573d9c7 100644 --- a/src/sage/rings/complex_arb.pyx +++ b/src/sage/rings/complex_arb.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Arbitrary precision complex balls diff --git a/src/sage/rings/complex_conversion.pxd b/src/sage/rings/complex_conversion.pxd index 2053005e340..da870969874 100644 --- a/src/sage/rings/complex_conversion.pxd +++ b/src/sage/rings/complex_conversion.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport Element from sage.categories.map cimport Map diff --git a/src/sage/rings/complex_conversion.pyx b/src/sage/rings/complex_conversion.pyx index f601b4d5420..28ca6753494 100644 --- a/src/sage/rings/complex_conversion.pyx +++ b/src/sage/rings/complex_conversion.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.rings.complex_double cimport ComplexDoubleElement from sage.rings.complex_mpfr cimport ComplexNumber from sage.libs.mpfr cimport mpfr_get_d, MPFR_RNDN diff --git a/src/sage/rings/complex_double.pxd b/src/sage/rings/complex_double.pxd index 7352520c769..4d43ae2b58f 100644 --- a/src/sage/rings/complex_double.pxd +++ b/src/sage/rings/complex_double.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.libs.gsl.types cimport gsl_complex cimport sage.structure.element diff --git a/src/sage/rings/complex_double.pyx b/src/sage/rings/complex_double.pyx index d6e5a7d05b1..d2f6568247f 100644 --- a/src/sage/rings/complex_double.pyx +++ b/src/sage/rings/complex_double.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # distutils: extra_compile_args = -D_XPG6 # distutils: libraries = m r""" diff --git a/src/sage/rings/complex_interval.pxd b/src/sage/rings/complex_interval.pxd index f5c59de4d7a..0d4909c41cf 100644 --- a/src/sage/rings/complex_interval.pxd +++ b/src/sage/rings/complex_interval.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.mpfr.types cimport mpfr_prec_t from sage.libs.mpfi.types cimport mpfi_t diff --git a/src/sage/rings/complex_interval.pyx b/src/sage/rings/complex_interval.pyx index ff6b4fe4d6c..88f8561d3d0 100644 --- a/src/sage/rings/complex_interval.pyx +++ b/src/sage/rings/complex_interval.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Arbitrary precision complex intervals diff --git a/src/sage/rings/complex_interval_field.py b/src/sage/rings/complex_interval_field.py index 0b6981cf07b..900fe30315d 100644 --- a/src/sage/rings/complex_interval_field.py +++ b/src/sage/rings/complex_interval_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Arbitrary precision complex intervals (parent class) diff --git a/src/sage/rings/complex_mpc.pxd b/src/sage/rings/complex_mpc.pxd index 1c65618578b..37c0ee9939a 100644 --- a/src/sage/rings/complex_mpc.pxd +++ b/src/sage/rings/complex_mpc.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.libs.mpc.types cimport mpc_t, mpc_rnd_t cimport sage.structure.element diff --git a/src/sage/rings/complex_mpc.pyx b/src/sage/rings/complex_mpc.pyx index d6bcb664a49..de2fc358836 100644 --- a/src/sage/rings/complex_mpc.pyx +++ b/src/sage/rings/complex_mpc.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Arbitrary precision floating point complex numbers using GNU MPC @@ -70,7 +71,6 @@ from sage.libs.mpfr cimport * from sage.libs.mpc cimport * from sage.structure.parent cimport Parent from sage.structure.element cimport Element -from sage.structure.richcmp cimport rich_to_bool from sage.categories.map cimport Map try: diff --git a/src/sage/rings/complex_mpfr.pxd b/src/sage/rings/complex_mpfr.pxd index 385feec8c37..a676d407d40 100644 --- a/src/sage/rings/complex_mpfr.pxd +++ b/src/sage/rings/complex_mpfr.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.libs.mpfr.types cimport mpfr_t, mpfr_prec_t cimport sage.structure.element diff --git a/src/sage/rings/complex_mpfr.pyx b/src/sage/rings/complex_mpfr.pyx index bec9978401e..f17bb6f431b 100644 --- a/src/sage/rings/complex_mpfr.pyx +++ b/src/sage/rings/complex_mpfr.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Arbitrary precision floating point complex numbers using GNU MPFR @@ -50,7 +51,7 @@ from sage.rings.complex_double cimport ComplexDoubleElement from sage.rings.real_mpfr cimport RealNumber from sage.libs.gsl.complex cimport * -from sage.libs.mpmath.utils cimport mpfr_to_mpfval +from sage.libs.mpmath.sage_utils cimport mpfr_to_mpfval from sage.rings.integer_ring import ZZ cimport gmpy2 diff --git a/src/sage/rings/continued_fraction.py b/src/sage/rings/continued_fraction.py index 62534d69f99..0b48d9f96ba 100644 --- a/src/sage/rings/continued_fraction.py +++ b/src/sage/rings/continued_fraction.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Continued fractions @@ -2255,7 +2256,6 @@ def __neg__(self): sage: -continued_fraction(l) # needs sage.combinat [-1; 5, 9, 16, 8, 2, 15, 13, 13, 15, 2, 8, 16, 9, 4, 1, 0, 1, 4, 9...] """ - from sage.combinat.words.word import Word _w = self._w if _w[1] == 1: _w = Word((-_w[0] - 1, _w[2] + 1)).concatenate(Word(_w[3:])) diff --git a/src/sage/rings/continued_fraction_gosper.py b/src/sage/rings/continued_fraction_gosper.py index 980cf62f72f..5a954f88efb 100644 --- a/src/sage/rings/continued_fraction_gosper.py +++ b/src/sage/rings/continued_fraction_gosper.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Gosper iterator for homographic transformations diff --git a/src/sage/rings/convert/all.py b/src/sage/rings/convert/all.py index e69de29bb2d..d31bae41036 100644 --- a/src/sage/rings/convert/all.py +++ b/src/sage/rings/convert/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/rings/convert/mpfi.pxd b/src/sage/rings/convert/mpfi.pxd index ea43d9383f2..0119a57cbdc 100644 --- a/src/sage/rings/convert/mpfi.pxd +++ b/src/sage/rings/convert/mpfi.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.mpfi.types cimport mpfi_ptr cdef int mpfi_set_sage(mpfi_ptr re, mpfi_ptr im, x, field, int base) except -1 diff --git a/src/sage/rings/convert/mpfi.pyx b/src/sage/rings/convert/mpfi.pyx index 803eed59146..a57ce0af370 100644 --- a/src/sage/rings/convert/mpfi.pyx +++ b/src/sage/rings/convert/mpfi.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Convert Sage/Python objects to real/complex intervals """ diff --git a/src/sage/rings/derivation.py b/src/sage/rings/derivation.py index b824e16e0d1..749bcd2e181 100644 --- a/src/sage/rings/derivation.py +++ b/src/sage/rings/derivation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Derivations @@ -2313,8 +2314,7 @@ def extend_to_fraction_field(self): sage: R. = ZZ[] sage: theta = R.hom([y,x]) - sage: d = R.derivation(x, twist=theta) - sage: d + sage: d = R.derivation(x, twist=theta); d x*([x |--> y, y |--> x] - id) sage: D = d.extend_to_fraction_field(); D # needs sage.libs.singular diff --git a/src/sage/rings/factorint.pyx b/src/sage/rings/factorint.pyx index f85d6c5f3da..6e3450623c9 100644 --- a/src/sage/rings/factorint.pyx +++ b/src/sage/rings/factorint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Integer factorization functions diff --git a/src/sage/rings/factorint_flint.pyx b/src/sage/rings/factorint_flint.pyx index 69cd6ae8456..48ceb221298 100644 --- a/src/sage/rings/factorint_flint.pyx +++ b/src/sage/rings/factorint_flint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.libs.flint r""" Integer factorization using FLINT diff --git a/src/sage/rings/factorint_pari.pyx b/src/sage/rings/factorint_pari.pyx index a8d748c5845..96925b1a399 100644 --- a/src/sage/rings/factorint_pari.pyx +++ b/src/sage/rings/factorint_pari.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.pari r""" Integer factorization using PARI diff --git a/src/sage/rings/fast_arith.pxd b/src/sage/rings/fast_arith.pxd index 7a99e658b91..52be135488e 100644 --- a/src/sage/rings/fast_arith.pxd +++ b/src/sage/rings/fast_arith.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-categories + cpdef prime_range(start, stop=*, algorithm=*, bint py_ints=*) cdef class arith_int: diff --git a/src/sage/rings/fast_arith.pyx b/src/sage/rings/fast_arith.pyx index 2dafcbd701f..e764c32f865 100644 --- a/src/sage/rings/fast_arith.pyx +++ b/src/sage/rings/fast_arith.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.pari """ Basic arithmetic with C integers diff --git a/src/sage/rings/finite_rings/all.py b/src/sage/rings/finite_rings/all.py index 6d8699c7b25..a3dbfe5764f 100644 --- a/src/sage/rings/finite_rings/all.py +++ b/src/sage/rings/finite_rings/all.py @@ -18,6 +18,4 @@ # https://www.gnu.org/licenses/ # ***************************************************************************** -from sage.rings.finite_rings.finite_field_constructor import FiniteField -from sage.rings.finite_rings.conway_polynomials import conway_polynomial, exists_conway_polynomial -GF = FiniteField +from sage.rings.finite_rings.all__sagemath_categories import * diff --git a/src/sage/rings/finite_rings/all__sagemath_categories.py b/src/sage/rings/finite_rings/all__sagemath_categories.py new file mode 100644 index 00000000000..87bf87ce80a --- /dev/null +++ b/src/sage/rings/finite_rings/all__sagemath_categories.py @@ -0,0 +1,10 @@ +# sage_setup: distribution = sagemath-categories + +from sage.rings.finite_rings.finite_field_constructor import FiniteField + +GF = FiniteField + +from sage.rings.finite_rings.conway_polynomials import conway_polynomial, exists_conway_polynomial + +# Finite residue fields +from sage.rings.finite_rings.residue_field import ResidueField diff --git a/src/sage/rings/finite_rings/all__sagemath_linbox.py b/src/sage/rings/finite_rings/all__sagemath_linbox.py new file mode 100644 index 00000000000..d3fe8dc3de9 --- /dev/null +++ b/src/sage/rings/finite_rings/all__sagemath_linbox.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-linbox diff --git a/src/sage/rings/finite_rings/all__sagemath_modules.py b/src/sage/rings/finite_rings/all__sagemath_modules.py new file mode 100644 index 00000000000..6f6ab52d0f2 --- /dev/null +++ b/src/sage/rings/finite_rings/all__sagemath_modules.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-modules diff --git a/src/sage/rings/finite_rings/all__sagemath_ntl.py b/src/sage/rings/finite_rings/all__sagemath_ntl.py new file mode 100644 index 00000000000..4d8e422331a --- /dev/null +++ b/src/sage/rings/finite_rings/all__sagemath_ntl.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-ntl diff --git a/src/sage/rings/finite_rings/all__sagemath_pari.py b/src/sage/rings/finite_rings/all__sagemath_pari.py new file mode 100644 index 00000000000..01c9cb07cd5 --- /dev/null +++ b/src/sage/rings/finite_rings/all__sagemath_pari.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-pari diff --git a/src/sage/rings/finite_rings/conway_polynomials.py b/src/sage/rings/finite_rings/conway_polynomials.py index ff5873ee14b..418b57a0cda 100644 --- a/src/sage/rings/finite_rings/conway_polynomials.py +++ b/src/sage/rings/finite_rings/conway_polynomials.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Routines for Conway and pseudo-Conway polynomials @@ -163,6 +164,8 @@ def __init__(self, p, use_database=True): sage: # needs sage.rings.finite_rings sage: from sage.rings.finite_rings.conway_polynomials import PseudoConwayLattice + + sage: # needs sage.rings.finite_rings sage: PCL = PseudoConwayLattice(3) sage: PCL.polynomial(3) # random x^3 + 2*x + 1 diff --git a/src/sage/rings/finite_rings/element_base.pxd b/src/sage/rings/finite_rings/element_base.pxd index c214e4745a9..55269abe48d 100644 --- a/src/sage/rings/finite_rings/element_base.pxd +++ b/src/sage/rings/finite_rings/element_base.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport CommutativeRingElement from sage.structure.sage_object cimport SageObject diff --git a/src/sage/rings/finite_rings/element_base.pyx b/src/sage/rings/finite_rings/element_base.pyx index aa0a66b4748..243d8a3467b 100755 --- a/src/sage/rings/finite_rings/element_base.pyx +++ b/src/sage/rings/finite_rings/element_base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.finite_rings """ Base class for finite field elements diff --git a/src/sage/rings/finite_rings/element_givaro.pxd b/src/sage/rings/finite_rings/element_givaro.pxd index 4b1e0430a1c..12b4f9ada34 100644 --- a/src/sage/rings/finite_rings/element_givaro.pxd +++ b/src/sage/rings/finite_rings/element_givaro.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: extra_compile_args = GIVARO_CFLAGS -std=c++11 # distutils: include_dirs = GIVARO_INCDIR diff --git a/src/sage/rings/finite_rings/element_givaro.pyx b/src/sage/rings/finite_rings/element_givaro.pyx index bb5a9f6b376..f8329d4af94 100644 --- a/src/sage/rings/finite_rings/element_givaro.pyx +++ b/src/sage/rings/finite_rings/element_givaro.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: libraries = givaro gmp m # distutils: language = c++ r""" diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pxd b/src/sage/rings/finite_rings/element_ntl_gf2e.pxd index e98744413b5..e2b1f2cdb1d 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pxd +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport GF2E_c, GF2EContext_c from sage.rings.finite_rings.finite_field_base cimport FiniteField from sage.rings.finite_rings.element_base cimport FinitePolyExtElement, Cache_base diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx index 2c1c25254c4..68555030cf2 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR @@ -334,7 +335,13 @@ cdef class Cache_ntl_gf2e(Cache_base): e = e.__pari__() elif isinstance(e, GapElement): + from sage.libs.gap.element import GapElement_FiniteField + + if isinstance(e, GapElement_FiniteField): + return e.sage(ring=self._parent) + from sage.libs.gap.libgap import libgap + return libgap(e).sage(ring=self._parent) else: diff --git a/src/sage/rings/finite_rings/element_pari_ffelt.pxd b/src/sage/rings/finite_rings/element_pari_ffelt.pxd index 06aabcaa6d5..f37bea961d4 100644 --- a/src/sage/rings/finite_rings/element_pari_ffelt.pxd +++ b/src/sage/rings/finite_rings/element_pari_ffelt.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cypari2.types cimport GEN from sage.rings.finite_rings.element_base cimport FinitePolyExtElement diff --git a/src/sage/rings/finite_rings/element_pari_ffelt.pyx b/src/sage/rings/finite_rings/element_pari_ffelt.pyx index 3c92e26d679..047b366474b 100644 --- a/src/sage/rings/finite_rings/element_pari_ffelt.pyx +++ b/src/sage/rings/finite_rings/element_pari_ffelt.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + """ Finite field elements implemented via PARI's FFELT type diff --git a/src/sage/rings/finite_rings/finite_field_base.pxd b/src/sage/rings/finite_rings/finite_field_base.pxd index 776c1f40137..2b66bd916aa 100644 --- a/src/sage/rings/finite_rings/finite_field_base.pxd +++ b/src/sage/rings/finite_rings/finite_field_base.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.ring cimport Field cdef class FiniteField(Field): diff --git a/src/sage/rings/finite_rings/finite_field_base.pyx b/src/sage/rings/finite_rings/finite_field_base.pyx index f54c1ffb2c4..2b0f277c189 100644 --- a/src/sage/rings/finite_rings/finite_field_base.pyx +++ b/src/sage/rings/finite_rings/finite_field_base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.finite_rings """ Base class for finite fields diff --git a/src/sage/rings/finite_rings/finite_field_constructor.py b/src/sage/rings/finite_rings/finite_field_constructor.py index bd29fdb1a95..4ffc7dfbe0f 100644 --- a/src/sage/rings/finite_rings/finite_field_constructor.py +++ b/src/sage/rings/finite_rings/finite_field_constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.finite_rings r""" Finite fields diff --git a/src/sage/rings/finite_rings/finite_field_givaro.py b/src/sage/rings/finite_rings/finite_field_givaro.py index ce61efb8edd..769b233bf7d 100644 --- a/src/sage/rings/finite_rings/finite_field_givaro.py +++ b/src/sage/rings/finite_rings/finite_field_givaro.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox """ Givaro finite fields diff --git a/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py b/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py index 2bfda7690d3..24275ba434d 100644 --- a/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py +++ b/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl """ Finite fields of characteristic 2 """ diff --git a/src/sage/rings/finite_rings/finite_field_pari_ffelt.py b/src/sage/rings/finite_rings/finite_field_pari_ffelt.py index 9549dbc94b4..9b9a0d5e99f 100644 --- a/src/sage/rings/finite_rings/finite_field_pari_ffelt.py +++ b/src/sage/rings/finite_rings/finite_field_pari_ffelt.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Finite fields implemented via PARI's FFELT type diff --git a/src/sage/rings/finite_rings/finite_field_prime_modn.py b/src/sage/rings/finite_rings/finite_field_prime_modn.py index d94b0a4335a..24bfb5c20f5 100644 --- a/src/sage/rings/finite_rings/finite_field_prime_modn.py +++ b/src/sage/rings/finite_rings/finite_field_prime_modn.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Finite prime fields diff --git a/src/sage/rings/finite_rings/galois_group.py b/src/sage/rings/finite_rings/galois_group.py index 32e23a40c44..d453319aec6 100644 --- a/src/sage/rings/finite_rings/galois_group.py +++ b/src/sage/rings/finite_rings/galois_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.modules sage.rings.finite_rings r""" Galois groups of Finite Fields diff --git a/src/sage/rings/finite_rings/hom_finite_field.pxd b/src/sage/rings/finite_rings/hom_finite_field.pxd index 199d655d6d6..e1f348b3db4 100644 --- a/src/sage/rings/finite_rings/hom_finite_field.pxd +++ b/src/sage/rings/finite_rings/hom_finite_field.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.morphism cimport RingHomomorphism_im_gens, FrobeniusEndomorphism_generic from sage.structure.element cimport Element from sage.categories.map cimport Section diff --git a/src/sage/rings/finite_rings/hom_finite_field.pyx b/src/sage/rings/finite_rings/hom_finite_field.pyx index 9e825650fca..2241fcf69a7 100644 --- a/src/sage/rings/finite_rings/hom_finite_field.pyx +++ b/src/sage/rings/finite_rings/hom_finite_field.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.finite_rings """ Finite field morphisms diff --git a/src/sage/rings/finite_rings/hom_finite_field_givaro.pxd b/src/sage/rings/finite_rings/hom_finite_field_givaro.pxd index dc401d526c0..87064ddfd49 100644 --- a/src/sage/rings/finite_rings/hom_finite_field_givaro.pxd +++ b/src/sage/rings/finite_rings/hom_finite_field_givaro.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-linbox + from sage.rings.finite_rings.hom_finite_field cimport (SectionFiniteFieldHomomorphism_generic, FiniteFieldHomomorphism_generic, FrobeniusEndomorphism_finite_field) diff --git a/src/sage/rings/finite_rings/hom_finite_field_givaro.pyx b/src/sage/rings/finite_rings/hom_finite_field_givaro.pyx index 81b7045b8f6..d7ac12c3567 100644 --- a/src/sage/rings/finite_rings/hom_finite_field_givaro.pyx +++ b/src/sage/rings/finite_rings/hom_finite_field_givaro.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: libraries = givaro NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/finite_rings/hom_prime_finite_field.pxd b/src/sage/rings/finite_rings/hom_prime_finite_field.pxd index b146b0c9169..084a6639847 100644 --- a/src/sage/rings/finite_rings/hom_prime_finite_field.pxd +++ b/src/sage/rings/finite_rings/hom_prime_finite_field.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-categories + from sage.rings.finite_rings.hom_finite_field cimport (SectionFiniteFieldHomomorphism_generic, FiniteFieldHomomorphism_generic, FrobeniusEndomorphism_finite_field) diff --git a/src/sage/rings/finite_rings/hom_prime_finite_field.pyx b/src/sage/rings/finite_rings/hom_prime_finite_field.pyx index c53a87ddca0..e6684526c7f 100644 --- a/src/sage/rings/finite_rings/hom_prime_finite_field.pyx +++ b/src/sage/rings/finite_rings/hom_prime_finite_field.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Finite field morphisms for prime fields diff --git a/src/sage/rings/finite_rings/homset.py b/src/sage/rings/finite_rings/homset.py index 6c15d725f43..8658eac7011 100644 --- a/src/sage/rings/finite_rings/homset.py +++ b/src/sage/rings/finite_rings/homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.finite_rings """ Homset for finite fields diff --git a/src/sage/rings/finite_rings/integer_mod.pxd b/src/sage/rings/finite_rings/integer_mod.pxd index 34e72472a3e..80dd01e2072 100644 --- a/src/sage/rings/finite_rings/integer_mod.pxd +++ b/src/sage/rings/finite_rings/integer_mod.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.libs.gmp.types cimport * from sage.rings.finite_rings.stdint cimport * from sage.rings.finite_rings.element_base cimport FiniteRingElement diff --git a/src/sage/rings/finite_rings/integer_mod.pyx b/src/sage/rings/finite_rings/integer_mod.pyx index 0b220e81a1e..cf6844ac471 100644 --- a/src/sage/rings/finite_rings/integer_mod.pyx +++ b/src/sage/rings/finite_rings/integer_mod.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Elements of `\ZZ/n\ZZ` diff --git a/src/sage/rings/finite_rings/integer_mod_limits.h b/src/sage/rings/finite_rings/integer_mod_limits.h index 5c635b65838..6c787b1048e 100644 --- a/src/sage/rings/finite_rings/integer_mod_limits.h +++ b/src/sage/rings/finite_rings/integer_mod_limits.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-categories + */ #ifndef _SAGE_FINITE_RINGS_INTEGER_MOD_LIMITS_H #define _SAGE_FINITE_RINGS_INTEGER_MOD_LIMITS_H diff --git a/src/sage/rings/finite_rings/integer_mod_ring.py b/src/sage/rings/finite_rings/integer_mod_ring.py index 5117119dbf4..e94321bce37 100644 --- a/src/sage/rings/finite_rings/integer_mod_ring.py +++ b/src/sage/rings/finite_rings/integer_mod_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Ring `\ZZ/n\ZZ` of integers modulo `n` diff --git a/src/sage/rings/finite_rings/maps_finite_field.py b/src/sage/rings/finite_rings/maps_finite_field.py index e68bd5c7b94..98d396cb858 100644 --- a/src/sage/rings/finite_rings/maps_finite_field.py +++ b/src/sage/rings/finite_rings/maps_finite_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.finite_rings """ Structure maps for finite fields diff --git a/src/sage/rings/finite_rings/residue_field.pxd b/src/sage/rings/finite_rings/residue_field.pxd index 0acb8da0a9a..dc221970bfe 100644 --- a/src/sage/rings/finite_rings/residue_field.pxd +++ b/src/sage/rings/finite_rings/residue_field.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.morphism cimport RingHomomorphism from sage.structure.element cimport Element from sage.rings.finite_rings.integer_mod cimport NativeIntStruct diff --git a/src/sage/rings/finite_rings/residue_field.pyx b/src/sage/rings/finite_rings/residue_field.pyx index 3146f7fd764..823ece8d0d8 100644 --- a/src/sage/rings/finite_rings/residue_field.pyx +++ b/src/sage/rings/finite_rings/residue_field.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Finite residue fields diff --git a/src/sage/rings/finite_rings/residue_field_givaro.pyx b/src/sage/rings/finite_rings/residue_field_givaro.pyx index 84e78622760..0ea5571b303 100644 --- a/src/sage/rings/finite_rings/residue_field_givaro.pyx +++ b/src/sage/rings/finite_rings/residue_field_givaro.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox r""" Finite residue fields (Givaro implementation) """ diff --git a/src/sage/rings/finite_rings/residue_field_ntl_gf2e.pyx b/src/sage/rings/finite_rings/residue_field_ntl_gf2e.pyx index eb0620e3ba1..1ac7c8c5008 100644 --- a/src/sage/rings/finite_rings/residue_field_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/residue_field_ntl_gf2e.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl r""" Finite residue fields (NTL implementation) """ diff --git a/src/sage/rings/finite_rings/residue_field_pari_ffelt.pyx b/src/sage/rings/finite_rings/residue_field_pari_ffelt.pyx index e9962c3ccde..1fcc1fad260 100644 --- a/src/sage/rings/finite_rings/residue_field_pari_ffelt.pyx +++ b/src/sage/rings/finite_rings/residue_field_pari_ffelt.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Finite residue fields (PARI implementation) """ diff --git a/src/sage/rings/finite_rings/stdint.pxd b/src/sage/rings/finite_rings/stdint.pxd index b2b96a90c39..f82d61698aa 100644 --- a/src/sage/rings/finite_rings/stdint.pxd +++ b/src/sage/rings/finite_rings/stdint.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ C Integer Types Used in Finite Rings """ diff --git a/src/sage/rings/fraction_field.py b/src/sage/rings/fraction_field.py index 4e3e923c263..b336ebe5fb1 100644 --- a/src/sage/rings/fraction_field.py +++ b/src/sage/rings/fraction_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Fraction Field of Integral Domains diff --git a/src/sage/rings/fraction_field_FpT.pxd b/src/sage/rings/fraction_field_FpT.pxd index 7d5d960a0ca..a6d35811613 100644 --- a/src/sage/rings/fraction_field_FpT.pxd +++ b/src/sage/rings/fraction_field_FpT.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.flint.types cimport nmod_poly_t from sage.rings.morphism cimport RingHomomorphism diff --git a/src/sage/rings/fraction_field_FpT.pyx b/src/sage/rings/fraction_field_FpT.pyx index 5317c1551fb..f463295cf92 100644 --- a/src/sage/rings/fraction_field_FpT.pyx +++ b/src/sage/rings/fraction_field_FpT.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = gmp NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/fraction_field_element.pyx b/src/sage/rings/fraction_field_element.pyx index 3d14ab66134..b535428c7b3 100644 --- a/src/sage/rings/fraction_field_element.pyx +++ b/src/sage/rings/fraction_field_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Fraction Field Elements diff --git a/src/sage/rings/function_field/all.py b/src/sage/rings/function_field/all.py index b423a0d58f5..e536f198d16 100644 --- a/src/sage/rings/function_field/all.py +++ b/src/sage/rings/function_field/all.py @@ -1,5 +1,13 @@ -from sage.rings.function_field.constructor import FunctionField +# sage_setup: distribution = sagemath-categories + +from sage.rings.function_field.all__sagemath_modules import * + +try: + from sage.rings.function_field.all__sagemath_symbolics import * +except ImportError: + pass from sage.misc.lazy_import import lazy_import lazy_import("sage.rings.function_field.drinfeld_modules.drinfeld_module", "DrinfeldModule") +del lazy_import diff --git a/src/sage/rings/function_field/all__sagemath_categories.py b/src/sage/rings/function_field/all__sagemath_categories.py new file mode 100644 index 00000000000..6b10c7b681e --- /dev/null +++ b/src/sage/rings/function_field/all__sagemath_categories.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-categories + +from sage.rings.function_field.constructor import FunctionField diff --git a/src/sage/rings/function_field/all__sagemath_modules.py b/src/sage/rings/function_field/all__sagemath_modules.py new file mode 100644 index 00000000000..dd3b87ccc5b --- /dev/null +++ b/src/sage/rings/function_field/all__sagemath_modules.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-modules + +from sage.rings.function_field.all__sagemath_categories import * diff --git a/src/sage/rings/function_field/all__sagemath_pari.py b/src/sage/rings/function_field/all__sagemath_pari.py new file mode 100644 index 00000000000..01c9cb07cd5 --- /dev/null +++ b/src/sage/rings/function_field/all__sagemath_pari.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-pari diff --git a/src/sage/rings/function_field/all__sagemath_singular.py b/src/sage/rings/function_field/all__sagemath_singular.py new file mode 100644 index 00000000000..84ec2b51067 --- /dev/null +++ b/src/sage/rings/function_field/all__sagemath_singular.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-singular diff --git a/src/sage/rings/function_field/all__sagemath_symbolics.py b/src/sage/rings/function_field/all__sagemath_symbolics.py new file mode 100644 index 00000000000..0318cd8ba06 --- /dev/null +++ b/src/sage/rings/function_field/all__sagemath_symbolics.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-symbolics + +from sage.rings.function_field.all__sagemath_modules import * diff --git a/src/sage/rings/function_field/constructor.py b/src/sage/rings/function_field/constructor.py index a316c384bd1..315d0b3ddf1 100644 --- a/src/sage/rings/function_field/constructor.py +++ b/src/sage/rings/function_field/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Factories to construct function fields diff --git a/src/sage/rings/function_field/derivations.py b/src/sage/rings/function_field/derivations.py index 32252d41eff..16a81f13d95 100644 --- a/src/sage/rings/function_field/derivations.py +++ b/src/sage/rings/function_field/derivations.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Derivations of function fields diff --git a/src/sage/rings/function_field/derivations_polymod.py b/src/sage/rings/function_field/derivations_polymod.py index 952d5813dd6..d0bcc7ec739 100644 --- a/src/sage/rings/function_field/derivations_polymod.py +++ b/src/sage/rings/function_field/derivations_polymod.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular r""" Derivations of function fields: extension """ diff --git a/src/sage/rings/function_field/derivations_rational.py b/src/sage/rings/function_field/derivations_rational.py index 777f16d3e08..d6358ee9582 100644 --- a/src/sage/rings/function_field/derivations_rational.py +++ b/src/sage/rings/function_field/derivations_rational.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Derivations of function fields: rational """ diff --git a/src/sage/rings/function_field/differential.py b/src/sage/rings/function_field/differential.py index 8f841180532..aeb65dd225f 100644 --- a/src/sage/rings/function_field/differential.py +++ b/src/sage/rings/function_field/differential.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.modules """ Differentials of function fields diff --git a/src/sage/rings/function_field/divisor.py b/src/sage/rings/function_field/divisor.py index 13247abe3b0..eb944365d62 100644 --- a/src/sage/rings/function_field/divisor.py +++ b/src/sage/rings/function_field/divisor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.finite_rings (because all doctests use finite fields) # sage.doctest: needs sage.rings.function_field (because almost all doctests use function field extensions) """ diff --git a/src/sage/rings/function_field/element.pxd b/src/sage/rings/function_field/element.pxd index 09ac9221e76..79f46a7ccc5 100644 --- a/src/sage/rings/function_field/element.pxd +++ b/src/sage/rings/function_field/element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport FieldElement diff --git a/src/sage/rings/function_field/element.pyx b/src/sage/rings/function_field/element.pyx index 2863732cf3b..fcce1ec5719 100644 --- a/src/sage/rings/function_field/element.pyx +++ b/src/sage/rings/function_field/element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Elements of function fields diff --git a/src/sage/rings/function_field/element_polymod.pyx b/src/sage/rings/function_field/element_polymod.pyx index 2d92da20bfe..4adca848977 100644 --- a/src/sage/rings/function_field/element_polymod.pyx +++ b/src/sage/rings/function_field/element_polymod.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular # sage.doctest: needs sage.rings.function_field r""" Elements of function fields: extension diff --git a/src/sage/rings/function_field/element_rational.pyx b/src/sage/rings/function_field/element_rational.pyx index 19a63d9ef90..96cf4383d18 100644 --- a/src/sage/rings/function_field/element_rational.pyx +++ b/src/sage/rings/function_field/element_rational.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Elements of function fields: rational """ diff --git a/src/sage/rings/function_field/extensions.py b/src/sage/rings/function_field/extensions.py index 94e810a9f87..d206bc1041d 100644 --- a/src/sage/rings/function_field/extensions.py +++ b/src/sage/rings/function_field/extensions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Special extensions of function fields diff --git a/src/sage/rings/function_field/function_field.py b/src/sage/rings/function_field/function_field.py index 401b2144be9..7c96bff103e 100644 --- a/src/sage/rings/function_field/function_field.py +++ b/src/sage/rings/function_field/function_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Function Fields diff --git a/src/sage/rings/function_field/function_field_polymod.py b/src/sage/rings/function_field/function_field_polymod.py index de6cbf47a6c..54f673c12c2 100644 --- a/src/sage/rings/function_field/function_field_polymod.py +++ b/src/sage/rings/function_field/function_field_polymod.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular # sage.doctest: needs sage.rings.function_field r""" Function Fields: extension diff --git a/src/sage/rings/function_field/function_field_rational.py b/src/sage/rings/function_field/function_field_rational.py index 192b6e0deb6..e873c506814 100644 --- a/src/sage/rings/function_field/function_field_rational.py +++ b/src/sage/rings/function_field/function_field_rational.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Function Fields: rational """ diff --git a/src/sage/rings/function_field/hermite_form_polynomial.pyx b/src/sage/rings/function_field/hermite_form_polynomial.pyx index cec29e022e3..9d55b05fd00 100644 --- a/src/sage/rings/function_field/hermite_form_polynomial.pyx +++ b/src/sage/rings/function_field/hermite_form_polynomial.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Hermite form computation for function fields diff --git a/src/sage/rings/function_field/ideal.py b/src/sage/rings/function_field/ideal.py index 2ef9d20d132..a5b4a030828 100644 --- a/src/sage/rings/function_field/ideal.py +++ b/src/sage/rings/function_field/ideal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Ideals of function fields @@ -467,7 +468,7 @@ def divisor(self): sage: I.divisor() 2*Place (1/x) - sage: # needs sage.rings.function_field + sage: # needs sage.modules sage.rings.function_field sage: K. = FunctionField(GF(2)); _. = PolynomialRing(K) sage: F. = K.extension(T^3 - x^2*(x^2 + x + 1)^2) sage: O = F.maximal_order() @@ -476,14 +477,14 @@ def divisor(self): 2*Place (x, (1/(x^3 + x^2 + x))*y^2) + 2*Place (x^2 + x + 1, (1/(x^3 + x^2 + x))*y^2) - sage: # needs sage.rings.function_field + sage: # needs sage.modules sage.rings.function_field sage: Oinf = F.maximal_order_infinite() sage: I = Oinf.ideal(y) sage: I.divisor() -2*Place (1/x, 1/x^4*y^2 + 1/x^2*y + 1) - 2*Place (1/x, 1/x^2*y + 1) - sage: # needs sage.rings.function_field + sage: # needs sage.modules sage.rings.function_field sage: K. = FunctionField(GF(2)); _. = K[] sage: L. = K.extension(Y^2 + Y + x + 1/x) sage: O = L.maximal_order() @@ -492,7 +493,7 @@ def divisor(self): - Place (x, x*y) + 2*Place (x + 1, x*y) - sage: # needs sage.rings.function_field + sage: # needs sage.modules sage.rings.function_field sage: Oinf = L.maximal_order_infinite() sage: I = Oinf.ideal(y) sage: I.divisor() diff --git a/src/sage/rings/function_field/ideal_polymod.py b/src/sage/rings/function_field/ideal_polymod.py index 829598231cb..963555a3085 100644 --- a/src/sage/rings/function_field/ideal_polymod.py +++ b/src/sage/rings/function_field/ideal_polymod.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular # sage.doctest: needs sage.rings.function_field r""" Ideals of function fields: extension diff --git a/src/sage/rings/function_field/ideal_rational.py b/src/sage/rings/function_field/ideal_rational.py index 59c63cc9782..8f810ad3e27 100644 --- a/src/sage/rings/function_field/ideal_rational.py +++ b/src/sage/rings/function_field/ideal_rational.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Ideals of function fields: rational """ diff --git a/src/sage/rings/function_field/maps.py b/src/sage/rings/function_field/maps.py index 6b37456c64c..7499cd1673d 100644 --- a/src/sage/rings/function_field/maps.py +++ b/src/sage/rings/function_field/maps.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Morphisms of function fields diff --git a/src/sage/rings/function_field/order.py b/src/sage/rings/function_field/order.py index 0afeaa5f526..417dfdaf34f 100644 --- a/src/sage/rings/function_field/order.py +++ b/src/sage/rings/function_field/order.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Orders of function fields diff --git a/src/sage/rings/function_field/order_basis.py b/src/sage/rings/function_field/order_basis.py index 1cf89e3f966..69ee31cd769 100644 --- a/src/sage/rings/function_field/order_basis.py +++ b/src/sage/rings/function_field/order_basis.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.modules (because __init__ constructs a vector space) r""" Orders of function fields: basis diff --git a/src/sage/rings/function_field/order_polymod.py b/src/sage/rings/function_field/order_polymod.py index 16ff2d8f2ae..2bb24fe799a 100644 --- a/src/sage/rings/function_field/order_polymod.py +++ b/src/sage/rings/function_field/order_polymod.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular # sage.doctest: needs sage.rings.function_field r""" Orders of function fields: extension diff --git a/src/sage/rings/function_field/order_rational.py b/src/sage/rings/function_field/order_rational.py index d90124c6800..e27897a1390 100644 --- a/src/sage/rings/function_field/order_rational.py +++ b/src/sage/rings/function_field/order_rational.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Orders of function fields: rational """ diff --git a/src/sage/rings/function_field/place.py b/src/sage/rings/function_field/place.py index a17c97b7316..a90f6918b6c 100644 --- a/src/sage/rings/function_field/place.py +++ b/src/sage/rings/function_field/place.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Places of function fields diff --git a/src/sage/rings/function_field/place_polymod.py b/src/sage/rings/function_field/place_polymod.py index 7a5f2b90cad..cfdbf66d96c 100644 --- a/src/sage/rings/function_field/place_polymod.py +++ b/src/sage/rings/function_field/place_polymod.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular # sage.doctest: needs sage.rings.function_field """ Places of function fields: extension diff --git a/src/sage/rings/function_field/place_rational.py b/src/sage/rings/function_field/place_rational.py index 31ffd6a40b0..00d53fe53ba 100644 --- a/src/sage/rings/function_field/place_rational.py +++ b/src/sage/rings/function_field/place_rational.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.finite_rings (because all doctests use finite fields) """ Places of function fields: rational diff --git a/src/sage/rings/function_field/valuation.py b/src/sage/rings/function_field/valuation.py index a192a76beb6..47781d0a6c5 100644 --- a/src/sage/rings/function_field/valuation.py +++ b/src/sage/rings/function_field/valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Discrete valuations on function fields diff --git a/src/sage/rings/generic.py b/src/sage/rings/generic.py index bfcb1d2bc50..f43c0c880fc 100644 --- a/src/sage/rings/generic.py +++ b/src/sage/rings/generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Generic data structures and algorithms for rings diff --git a/src/sage/rings/homset.py b/src/sage/rings/homset.py index 94781b87396..bf9b64913ea 100644 --- a/src/sage/rings/homset.py +++ b/src/sage/rings/homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Space of homomorphisms between two rings """ diff --git a/src/sage/rings/ideal_monoid.py b/src/sage/rings/ideal_monoid.py index 019348a6afe..438b25b86e6 100644 --- a/src/sage/rings/ideal_monoid.py +++ b/src/sage/rings/ideal_monoid.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Monoid of ideals in a commutative ring diff --git a/src/sage/rings/imaginary_unit.py b/src/sage/rings/imaginary_unit.py index ae78b38d6c8..cfe6c09bab2 100644 --- a/src/sage/rings/imaginary_unit.py +++ b/src/sage/rings/imaginary_unit.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.rings.number_field.number_field import GaussianField diff --git a/src/sage/rings/infinity.py b/src/sage/rings/infinity.py index 986b32cb5d5..db1e988c7dc 100644 --- a/src/sage/rings/infinity.py +++ b/src/sage/rings/infinity.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Signed and Unsigned Infinities diff --git a/src/sage/rings/integer.pxd b/src/sage/rings/integer.pxd index 1165895729e..9fb5913b635 100644 --- a/src/sage/rings/integer.pxd +++ b/src/sage/rings/integer.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.libs.gmp.types cimport __mpz_struct, mpz_t, mpz_ptr from sage.libs.gmp.mpz cimport mpz_set diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx index 9616e7946bc..4c6d5c2dde5 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Elements of the ring `\ZZ` of integers diff --git a/src/sage/rings/integer_fake.h b/src/sage/rings/integer_fake.h index 3a55504f40a..e92321657fe 100644 --- a/src/sage/rings/integer_fake.h +++ b/src/sage/rings/integer_fake.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-objects + */ #include #include diff --git a/src/sage/rings/integer_ring.pxd b/src/sage/rings/integer_ring.pxd index 204ccbe141c..37c69c8b0f8 100644 --- a/src/sage/rings/integer_ring.pxd +++ b/src/sage/rings/integer_ring.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.ring cimport CommutativeRing from sage.rings.integer cimport Integer from sage.libs.gmp.types cimport mpz_t diff --git a/src/sage/rings/integer_ring.pyx b/src/sage/rings/integer_ring.pyx index 2b2ec33294c..5b0f727ac41 100644 --- a/src/sage/rings/integer_ring.pyx +++ b/src/sage/rings/integer_ring.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Ring `\ZZ` of Integers diff --git a/src/sage/rings/invariants/all.py b/src/sage/rings/invariants/all.py index eb0cce3175f..f9de850093c 100644 --- a/src/sage/rings/invariants/all.py +++ b/src/sage/rings/invariants/all.py @@ -1,2 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import lazy_import('sage.rings.invariants.invariant_theory', 'invariant_theory') +del lazy_import diff --git a/src/sage/rings/invariants/invariant_theory.py b/src/sage/rings/invariants/invariant_theory.py index dc370bdf560..af8df7acfbd 100644 --- a/src/sage/rings/invariants/invariant_theory.py +++ b/src/sage/rings/invariants/invariant_theory.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Classical Invariant Theory @@ -272,7 +273,7 @@ def transvectant(f, g, h=1, scale='default'): if h > f._d or h > g._d: tv = R(0) else: - from sage.functions.other import binomial, factorial + from sage.arith.misc import binomial, factorial if scale == 'default': scalar = factorial(f._d-h) * factorial(g._d-h) \ * R(factorial(f._d)*factorial(g._d))**(-1) diff --git a/src/sage/rings/invariants/reconstruction.py b/src/sage/rings/invariants/reconstruction.py index 907538889ad..acaf4439b00 100644 --- a/src/sage/rings/invariants/reconstruction.py +++ b/src/sage/rings/invariants/reconstruction.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Reconstruction of Algebraic Forms diff --git a/src/sage/rings/laurent_series_ring.py b/src/sage/rings/laurent_series_ring.py index 2142f717460..b8ac1185117 100644 --- a/src/sage/rings/laurent_series_ring.py +++ b/src/sage/rings/laurent_series_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Laurent Series Rings diff --git a/src/sage/rings/laurent_series_ring_element.pxd b/src/sage/rings/laurent_series_ring_element.pxd index 8df5a92c9e7..2e6959c1272 100644 --- a/src/sage/rings/laurent_series_ring_element.pxd +++ b/src/sage/rings/laurent_series_ring_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport AlgebraElement, ModuleElement cdef class LaurentSeries(AlgebraElement): diff --git a/src/sage/rings/laurent_series_ring_element.pyx b/src/sage/rings/laurent_series_ring_element.pyx index 405752c6191..97220a8b8a5 100644 --- a/src/sage/rings/laurent_series_ring_element.pyx +++ b/src/sage/rings/laurent_series_ring_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Laurent Series diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index f34188ba764..8e622e15b20 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Lazy Series @@ -221,12 +222,12 @@ # https://www.gnu.org/licenses/ # **************************************************************************** +from sage.arith.functions import lcm +from sage.arith.misc import divisors, factorial, moebius +from sage.arith.power import generic_power from sage.structure.element import Element, parent from sage.structure.richcmp import op_EQ, op_NE from sage.misc.misc_c import prod -from sage.arith.power import generic_power -from sage.arith.functions import lcm -from sage.arith.misc import divisors, factorial, moebius from sage.combinat.partition import Partition, Partitions from sage.misc.derivative import derivative_parse from sage.categories.integral_domains import IntegralDomains @@ -3043,10 +3044,10 @@ def _mul_(self, other): Check products with exact series:: - sage: L([1], constant=3)^2 + sage: L([1], constant=3)^2 # needs sage.symbolic 1 + 6*z + 15*z^2 + 24*z^3 + 33*z^4 + 42*z^5 + 51*z^6 + O(z^7) - sage: (1+z) * L([1,0,1], constant=1) + sage: (1+z) * L([1,0,1], constant=1) # needs sage.symbolic 1 + z + z^2 + 2*z^3 + 2*z^4 + 2*z^5 + O(z^6) Check that :issue:`36154` is fixed:: @@ -3672,7 +3673,7 @@ def log(self): sage: log(1+z)[0:6] == log(1+x).series(x, 6).coefficients(sparse=False) # needs sage.symbolic True - sage: log(z) + sage: log(z) # needs sage.symbolic Traceback (most recent call last): ... ValueError: can only compose with a positive valuation series diff --git a/src/sage/rings/lazy_series_ring.py b/src/sage/rings/lazy_series_ring.py index ee3e463e988..46c25c66565 100644 --- a/src/sage/rings/lazy_series_ring.py +++ b/src/sage/rings/lazy_series_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" Lazy Series Rings diff --git a/src/sage/rings/localization.py b/src/sage/rings/localization.py index be1fc217a8d..22b0449b996 100644 --- a/src/sage/rings/localization.py +++ b/src/sage/rings/localization.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Localization diff --git a/src/sage/rings/meson.build.in b/src/sage/rings/meson.build.in new file mode 100644 index 00000000000..d455898552a --- /dev/null +++ b/src/sage/rings/meson.build.in @@ -0,0 +1,5 @@ +pthread = declare_dependency( + dependencies: [ + cc.find_library('pthread'), + ] +) diff --git a/src/sage/rings/monomials.py b/src/sage/rings/monomials.py index ed154ab8c06..e19e78c84a1 100644 --- a/src/sage/rings/monomials.py +++ b/src/sage/rings/monomials.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + "Monomials" def _monomials(gens, R, n, i): diff --git a/src/sage/rings/morphism.pxd b/src/sage/rings/morphism.pxd index 4b8e8d052df..b310b5381ef 100644 --- a/src/sage/rings/morphism.pxd +++ b/src/sage/rings/morphism.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.integer cimport Integer from sage.structure.element cimport Element from sage.structure.parent cimport Parent diff --git a/src/sage/rings/morphism.pyx b/src/sage/rings/morphism.pyx index 594e2ff0a3e..41372546214 100644 --- a/src/sage/rings/morphism.pyx +++ b/src/sage/rings/morphism.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Homomorphisms of rings @@ -873,12 +874,16 @@ cdef class RingHomomorphism(RingMap): return homset([self(g) for g in right.im_gens()], **kwds) except ValueError: pass - from sage.rings.number_field.morphism import RelativeNumberFieldHomomorphism_from_abs - if isinstance(right, RelativeNumberFieldHomomorphism_from_abs): - try: - return homset(self*right.abs_hom()) - except ValueError: - pass + try: + from sage.rings.number_field.morphism import RelativeNumberFieldHomomorphism_from_abs + except ImportError: + pass + else: + if isinstance(right, RelativeNumberFieldHomomorphism_from_abs): + try: + return homset(self*right.abs_hom()) + except ValueError: + pass return sage.categories.map.Map._composition_(self, right, homset) def pushforward(self, I): diff --git a/src/sage/rings/multi_power_series_ring.py b/src/sage/rings/multi_power_series_ring.py index 35c4d4beb32..be6d5b979f1 100644 --- a/src/sage/rings/multi_power_series_ring.py +++ b/src/sage/rings/multi_power_series_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Multivariate Power Series Rings diff --git a/src/sage/rings/multi_power_series_ring_element.py b/src/sage/rings/multi_power_series_ring_element.py index 76d81db6997..6f8f20c779d 100644 --- a/src/sage/rings/multi_power_series_ring_element.py +++ b/src/sage/rings/multi_power_series_ring_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Multivariate Power Series diff --git a/src/sage/rings/noncommutative_ideals.pyx b/src/sage/rings/noncommutative_ideals.pyx index 48f19dd4596..d410d3c0fa5 100644 --- a/src/sage/rings/noncommutative_ideals.pyx +++ b/src/sage/rings/noncommutative_ideals.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.modules """ Ideals of non-commutative rings diff --git a/src/sage/rings/number_field/S_unit_solver.py b/src/sage/rings/number_field/S_unit_solver.py index 0ffac369720..90037540171 100644 --- a/src/sage/rings/number_field/S_unit_solver.py +++ b/src/sage/rings/number_field/S_unit_solver.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.rings.number_field sage.rings.padics r""" Solver for the `S`-unit equation `x + y = 1` @@ -57,12 +58,13 @@ from sage.rings.infinity import Infinity -from sage.symbolic.ring import SR +from sage.misc.lazy_import import lazy_import +lazy_import("sage.symbolic.ring", "SR") from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ from sage.rings.real_mpfr import RealField, RR from sage.rings.complex_mpfr import ComplexField -from sage.functions.log import exp +lazy_import("sage.functions.log", "exp") from sage.rings.rational_field import QQ from sage.rings.number_field.number_field import is_real_place, refine_embedding from sage.rings.number_field.unit_group import UnitGroup diff --git a/src/sage/rings/number_field/all.py b/src/sage/rings/number_field/all.py index 73cf7750d43..188951d9126 100644 --- a/src/sage/rings/number_field/all.py +++ b/src/sage/rings/number_field/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.rings.number_field.number_field import (NumberField, NumberFieldTower, CyclotomicField, QuadraticField, is_fundamental_discriminant, is_real_place) diff --git a/src/sage/rings/number_field/all__sagemath_categories.py b/src/sage/rings/number_field/all__sagemath_categories.py new file mode 100644 index 00000000000..b230a6a2ad9 --- /dev/null +++ b/src/sage/rings/number_field/all__sagemath_categories.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/rings/number_field/all__sagemath_flint.py b/src/sage/rings/number_field/all__sagemath_flint.py new file mode 100644 index 00000000000..d31bae41036 --- /dev/null +++ b/src/sage/rings/number_field/all__sagemath_flint.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/rings/number_field/all__sagemath_pari.py b/src/sage/rings/number_field/all__sagemath_pari.py new file mode 100644 index 00000000000..01c9cb07cd5 --- /dev/null +++ b/src/sage/rings/number_field/all__sagemath_pari.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-pari diff --git a/src/sage/rings/number_field/bdd_height.py b/src/sage/rings/number_field/bdd_height.py index 45f08aa4711..a3dcccd3674 100644 --- a/src/sage/rings/number_field/bdd_height.py +++ b/src/sage/rings/number_field/bdd_height.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.geometry.polyhedron r""" Elements of bounded height in number fields diff --git a/src/sage/rings/number_field/class_group.py b/src/sage/rings/number_field/class_group.py index 34a48931f8e..5e8b513442a 100644 --- a/src/sage/rings/number_field/class_group.py +++ b/src/sage/rings/number_field/class_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Class groups of number fields diff --git a/src/sage/rings/number_field/galois_group.py b/src/sage/rings/number_field/galois_group.py index c974c3df6ff..9f8f414d434 100644 --- a/src/sage/rings/number_field/galois_group.py +++ b/src/sage/rings/number_field/galois_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.groups sage.rings.number_field """ Galois groups of number fields diff --git a/src/sage/rings/number_field/homset.py b/src/sage/rings/number_field/homset.py index 62ca214754d..f438c56a385 100644 --- a/src/sage/rings/number_field/homset.py +++ b/src/sage/rings/number_field/homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Sets of homomorphisms between number fields """ diff --git a/src/sage/rings/number_field/maps.py b/src/sage/rings/number_field/maps.py index 8d8eb1b69ef..5d70e629b32 100644 --- a/src/sage/rings/number_field/maps.py +++ b/src/sage/rings/number_field/maps.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Structure maps for number fields diff --git a/src/sage/rings/number_field/morphism.py b/src/sage/rings/number_field/morphism.py index 579c925ed01..59e8768fd4b 100644 --- a/src/sage/rings/number_field/morphism.py +++ b/src/sage/rings/number_field/morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Morphisms between number fields diff --git a/src/sage/rings/number_field/number_field.py b/src/sage/rings/number_field/number_field.py index bb16476980e..02a2c7a3ccc 100644 --- a/src/sage/rings/number_field/number_field.py +++ b/src/sage/rings/number_field/number_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.libs.linbox r""" Number fields diff --git a/src/sage/rings/number_field/number_field_base.pxd b/src/sage/rings/number_field/number_field_base.pxd index ba6a8e98143..52de3655c39 100644 --- a/src/sage/rings/number_field/number_field_base.pxd +++ b/src/sage/rings/number_field/number_field_base.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.ring cimport Field cdef class NumberField(Field): diff --git a/src/sage/rings/number_field/number_field_base.pyx b/src/sage/rings/number_field/number_field_base.pyx index 910f6ff7904..afb87745b72 100644 --- a/src/sage/rings/number_field/number_field_base.pyx +++ b/src/sage/rings/number_field/number_field_base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.number_field """ Base class of number fields diff --git a/src/sage/rings/number_field/number_field_element.pxd b/src/sage/rings/number_field/number_field_element.pxd index df72e703017..610e001dc00 100644 --- a/src/sage/rings/number_field/number_field_element.pxd +++ b/src/sage/rings/number_field/number_field_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint cimport sage.structure.element from sage.libs.gmp.types cimport mpz_t from sage.rings.integer cimport Integer diff --git a/src/sage/rings/number_field/number_field_element.pyx b/src/sage/rings/number_field/number_field_element.pyx index 27432813b2b..7b48909f718 100644 --- a/src/sage/rings/number_field/number_field_element.pyx +++ b/src/sage/rings/number_field/number_field_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/number_field/number_field_element_base.pxd b/src/sage/rings/number_field/number_field_element_base.pxd index 060f0c754c4..7575d280a1e 100644 --- a/src/sage/rings/number_field/number_field_element_base.pxd +++ b/src/sage/rings/number_field/number_field_element_base.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport FieldElement diff --git a/src/sage/rings/number_field/number_field_element_base.pyx b/src/sage/rings/number_field/number_field_element_base.pyx index 759209f8bb3..805fd6d7c25 100644 --- a/src/sage/rings/number_field/number_field_element_base.pyx +++ b/src/sage/rings/number_field/number_field_element_base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Number field elements (abstract base class) """ diff --git a/src/sage/rings/number_field/number_field_element_quadratic.pxd b/src/sage/rings/number_field/number_field_element_quadratic.pxd index 6dce9c04d90..d196e735a99 100644 --- a/src/sage/rings/number_field/number_field_element_quadratic.pxd +++ b/src/sage/rings/number_field/number_field_element_quadratic.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.libs.gmp.types cimport mpz_t from sage.libs.flint.types cimport arb_t from sage.rings.integer cimport Integer diff --git a/src/sage/rings/number_field/number_field_element_quadratic.pyx b/src/sage/rings/number_field/number_field_element_quadratic.pyx index a0e90d1d63d..a480b888e9d 100644 --- a/src/sage/rings/number_field/number_field_element_quadratic.pyx +++ b/src/sage/rings/number_field/number_field_element_quadratic.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/number_field/number_field_ideal.py b/src/sage/rings/number_field/number_field_ideal.py index 3686840ccba..7312f76484e 100644 --- a/src/sage/rings/number_field/number_field_ideal.py +++ b/src/sage/rings/number_field/number_field_ideal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.pari sage.rings.number_field """ Ideals of number fields diff --git a/src/sage/rings/number_field/number_field_ideal_rel.py b/src/sage/rings/number_field/number_field_ideal_rel.py index 7f6cfd9b1b7..f4978bb01dd 100644 --- a/src/sage/rings/number_field/number_field_ideal_rel.py +++ b/src/sage/rings/number_field/number_field_ideal_rel.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Ideals of relative number fields diff --git a/src/sage/rings/number_field/number_field_morphisms.pyx b/src/sage/rings/number_field/number_field_morphisms.pyx index e71bad5db7c..f555616ad70 100644 --- a/src/sage/rings/number_field/number_field_morphisms.pyx +++ b/src/sage/rings/number_field/number_field_morphisms.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.rings.number_field r""" Embeddings into ambient fields @@ -494,10 +495,13 @@ def root_from_approx(f, a): return LazyAlgebraic(CLF, f, a, prec=0) # p-adic lazy, when implemented, would go here else: - from sage.symbolic.relation import test_relation_maxima rel = (f(a) != 0) - if (rel is True - or (not isinstance(rel, bool) and test_relation_maxima(rel))): + if rel is False: + return a + if rel is True: + raise ValueError("{} is not a root of {}".format(a, f)) + from sage.symbolic.relation import test_relation_maxima + if test_relation_maxima(rel): raise ValueError("{} is not a root of {}".format(a, f)) return a diff --git a/src/sage/rings/number_field/number_field_rel.py b/src/sage/rings/number_field/number_field_rel.py index 9ab6fd4c261..1c33b5499e4 100644 --- a/src/sage/rings/number_field/number_field_rel.py +++ b/src/sage/rings/number_field/number_field_rel.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Relative number fields diff --git a/src/sage/rings/number_field/order.py b/src/sage/rings/number_field/order.py index 55db3bbbcbf..699da680ff6 100644 --- a/src/sage/rings/number_field/order.py +++ b/src/sage/rings/number_field/order.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.libs.linbox """ Orders in number fields diff --git a/src/sage/rings/number_field/selmer_group.py b/src/sage/rings/number_field/selmer_group.py index acdf2954fdf..27f367ac3dc 100644 --- a/src/sage/rings/number_field/selmer_group.py +++ b/src/sage/rings/number_field/selmer_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" `p`-Selmer groups of number fields diff --git a/src/sage/rings/number_field/small_primes_of_degree_one.py b/src/sage/rings/number_field/small_primes_of_degree_one.py index 25c06fb5b60..efa9a4ab1b2 100644 --- a/src/sage/rings/number_field/small_primes_of_degree_one.py +++ b/src/sage/rings/number_field/small_primes_of_degree_one.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Small primes of degree one diff --git a/src/sage/rings/number_field/splitting_field.py b/src/sage/rings/number_field/splitting_field.py index 28c5486f171..90e20e80117 100644 --- a/src/sage/rings/number_field/splitting_field.py +++ b/src/sage/rings/number_field/splitting_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Splitting fields of polynomials over number fields diff --git a/src/sage/rings/number_field/structure.py b/src/sage/rings/number_field/structure.py index 212d8e2a6f0..ea059265a5b 100644 --- a/src/sage/rings/number_field/structure.py +++ b/src/sage/rings/number_field/structure.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.rings.number_field r""" Helper classes for structural embeddings and isomorphisms of number fields diff --git a/src/sage/rings/number_field/totallyreal.pyx b/src/sage/rings/number_field/totallyreal.pyx index 14e55237dd1..be19096ba27 100644 --- a/src/sage/rings/number_field/totallyreal.pyx +++ b/src/sage/rings/number_field/totallyreal.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + r""" Enumeration of primitive totally real fields diff --git a/src/sage/rings/number_field/totallyreal_data.pxd b/src/sage/rings/number_field/totallyreal_data.pxd index 61973829ddb..97046dae7ca 100644 --- a/src/sage/rings/number_field/totallyreal_data.pxd +++ b/src/sage/rings/number_field/totallyreal_data.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + cdef double eval_seq_as_poly(int *f, int n, double x) noexcept cdef double newton(int *f, int *df, int n, double x0, double eps) noexcept cdef void newton_in_intervals(int *f, int *df, int n, double *beta, double eps, double *rts) noexcept diff --git a/src/sage/rings/number_field/totallyreal_data.pyx b/src/sage/rings/number_field/totallyreal_data.pyx index 694e96235bc..550eaf3c712 100644 --- a/src/sage/rings/number_field/totallyreal_data.pyx +++ b/src/sage/rings/number_field/totallyreal_data.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = gmp """ Enumeration of totally real fields: data diff --git a/src/sage/rings/number_field/totallyreal_phc.py b/src/sage/rings/number_field/totallyreal_phc.py index db054708bb9..f3edf7df4b9 100644 --- a/src/sage/rings/number_field/totallyreal_phc.py +++ b/src/sage/rings/number_field/totallyreal_phc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Enumeration of totally real fields: PHC interface diff --git a/src/sage/rings/number_field/totallyreal_rel.py b/src/sage/rings/number_field/totallyreal_rel.py index ac3f52a544c..b8cf98b755b 100644 --- a/src/sage/rings/number_field/totallyreal_rel.py +++ b/src/sage/rings/number_field/totallyreal_rel.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.geometry.polyhedron sage.libs.linbox sage.modules sage.rings.number_field r""" Enumeration of totally real fields: relative extensions diff --git a/src/sage/rings/number_field/unit_group.py b/src/sage/rings/number_field/unit_group.py index eb6b46ed82e..db45b911d78 100644 --- a/src/sage/rings/number_field/unit_group.py +++ b/src/sage/rings/number_field/unit_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Units and `S`-unit groups of number fields diff --git a/src/sage/rings/padics/CA_template.pxi b/src/sage/rings/padics/CA_template.pxi index 0e6a10b67d9..39da860d1a4 100644 --- a/src/sage/rings/padics/CA_template.pxi +++ b/src/sage/rings/padics/CA_template.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Capped absolute template for complete discrete valuation rings diff --git a/src/sage/rings/padics/CA_template_header.pxi b/src/sage/rings/padics/CA_template_header.pxi index d15a055cb4d..1b1c3262f37 100644 --- a/src/sage/rings/padics/CA_template_header.pxi +++ b/src/sage/rings/padics/CA_template_header.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This file provides the declaration for ``CAElement`` and the morphisms to the integers and rationals. diff --git a/src/sage/rings/padics/CR_template.pxi b/src/sage/rings/padics/CR_template.pxi index 853a3c3df79..511304cba47 100644 --- a/src/sage/rings/padics/CR_template.pxi +++ b/src/sage/rings/padics/CR_template.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Capped relative template for complete discrete valuation rings and their fraction fields diff --git a/src/sage/rings/padics/CR_template_header.pxi b/src/sage/rings/padics/CR_template_header.pxi index 54c482f7ff2..ebbe7b0b326 100644 --- a/src/sage/rings/padics/CR_template_header.pxi +++ b/src/sage/rings/padics/CR_template_header.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This file provides the declaration for ``CRElement`` and the morphisms to and from the integers and rationals. diff --git a/src/sage/rings/padics/FM_template.pxi b/src/sage/rings/padics/FM_template.pxi index c05930fb0af..a3359a1baac 100644 --- a/src/sage/rings/padics/FM_template.pxi +++ b/src/sage/rings/padics/FM_template.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Fixed modulus template for complete discrete valuation rings diff --git a/src/sage/rings/padics/FM_template_header.pxi b/src/sage/rings/padics/FM_template_header.pxi index bd651167622..5de73d5478a 100644 --- a/src/sage/rings/padics/FM_template_header.pxi +++ b/src/sage/rings/padics/FM_template_header.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This file provides the declaration for the ``FMElement`` and the morphisms to and from the integers and rationals. diff --git a/src/sage/rings/padics/FP_template.pxi b/src/sage/rings/padics/FP_template.pxi index 654c3d6b6a3..9bd2675e44e 100644 --- a/src/sage/rings/padics/FP_template.pxi +++ b/src/sage/rings/padics/FP_template.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Floating point template for complete discrete valuation rings diff --git a/src/sage/rings/padics/FP_template_header.pxi b/src/sage/rings/padics/FP_template_header.pxi index fde598e05fd..d9510add4bf 100644 --- a/src/sage/rings/padics/FP_template_header.pxi +++ b/src/sage/rings/padics/FP_template_header.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This file provides the declaration for ``FPElement`` and the morphisms to and from the integers and rationals. diff --git a/src/sage/rings/padics/all.py b/src/sage/rings/padics/all.py index 7ece4e00493..d70d7c2f229 100644 --- a/src/sage/rings/padics/all.py +++ b/src/sage/rings/padics/all.py @@ -1,6 +1,3 @@ -from sage.rings.padics.factory import Zp, Zq, Zp as pAdicRing, ZpCR, ZpCA, ZpFM, ZpFP, ZpLC, ZpLF, ZqCR, ZqCA, ZqFM, ZqFP, ZpER -from sage.rings.padics.factory import Qp, Qq, Qp as pAdicField, QpCR, QpFP, QpLC, QpLF, QqCR, QqFP, QpER -from sage.rings.padics.factory import pAdicExtension -from sage.rings.padics.padic_generic import local_print_mode -from sage.rings.padics.pow_computer import PowComputer -from sage.rings.padics.pow_computer_ext import PowComputer_ext_maker +# sage_setup: distribution = sagemath-flint + +from sage.rings.padics.all__sagemath_flint import * diff --git a/src/sage/rings/padics/all__sagemath_categories.py b/src/sage/rings/padics/all__sagemath_categories.py new file mode 100644 index 00000000000..4870a836bfd --- /dev/null +++ b/src/sage/rings/padics/all__sagemath_categories.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-categories + +from sage.rings.padics.padic_generic import local_print_mode diff --git a/src/sage/rings/padics/all__sagemath_flint.py b/src/sage/rings/padics/all__sagemath_flint.py new file mode 100644 index 00000000000..0786c74a826 --- /dev/null +++ b/src/sage/rings/padics/all__sagemath_flint.py @@ -0,0 +1,3 @@ +# sage_setup: distribution = sagemath-flint + +from sage.rings.padics.all__sagemath_ntl import * diff --git a/src/sage/rings/padics/all__sagemath_ntl.py b/src/sage/rings/padics/all__sagemath_ntl.py new file mode 100644 index 00000000000..896eddb4270 --- /dev/null +++ b/src/sage/rings/padics/all__sagemath_ntl.py @@ -0,0 +1,5 @@ +# sage_setup: distribution = sagemath-ntl + +from sage.rings.padics.all__sagemath_pari import * + +from sage.rings.padics.pow_computer_ext import PowComputer_ext_maker diff --git a/src/sage/rings/padics/all__sagemath_pari.py b/src/sage/rings/padics/all__sagemath_pari.py new file mode 100644 index 00000000000..9e7d6696385 --- /dev/null +++ b/src/sage/rings/padics/all__sagemath_pari.py @@ -0,0 +1,11 @@ +# sage_setup: distribution = sagemath-pari + +from sage.rings.padics.all__sagemath_categories import * + +from sage.rings.padics.factory import Zp, Zq, Zp as pAdicRing, ZpCR, ZpCA, ZpFM, ZpFP, ZpLC, ZpLF, ZqCR, ZqCA, ZqFM, ZqFP, ZpER +from sage.rings.padics.factory import Qp, Qq, Qp as pAdicField, QpCR, QpFP, QpLC, QpLF, QqCR, QqFP, QpER +from sage.rings.padics.factory import pAdicExtension + +from sage.rings.padics.padic_printing import _printer_defaults as padic_printing + +from sage.rings.padics.pow_computer import PowComputer diff --git a/src/sage/rings/padics/common_conversion.pxd b/src/sage/rings/padics/common_conversion.pxd index 4e0edb8f8e6..936b97f105e 100644 --- a/src/sage/rings/padics/common_conversion.pxd +++ b/src/sage/rings/padics/common_conversion.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.rings.integer cimport Integer from sage.rings.padics.pow_computer cimport PowComputer_class from sage.libs.gmp.mpz cimport mpz_t, mpq_t diff --git a/src/sage/rings/padics/common_conversion.pyx b/src/sage/rings/padics/common_conversion.pyx index a352cc74c18..06b19b770d9 100644 --- a/src/sage/rings/padics/common_conversion.pyx +++ b/src/sage/rings/padics/common_conversion.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.rings.padics r""" The functions in this file are used in creating new `p`-adic elements. diff --git a/src/sage/rings/padics/eisenstein_extension_generic.py b/src/sage/rings/padics/eisenstein_extension_generic.py index 2e584291193..37856738095 100644 --- a/src/sage/rings/padics/eisenstein_extension_generic.py +++ b/src/sage/rings/padics/eisenstein_extension_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Eisenstein Extension Generic diff --git a/src/sage/rings/padics/factory.py b/src/sage/rings/padics/factory.py index cee585d48a1..c847ffc3275 100644 --- a/src/sage/rings/padics/factory.py +++ b/src/sage/rings/padics/factory.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Factory diff --git a/src/sage/rings/padics/generic_nodes.py b/src/sage/rings/padics/generic_nodes.py index 27ca55b274f..8315de5794c 100644 --- a/src/sage/rings/padics/generic_nodes.py +++ b/src/sage/rings/padics/generic_nodes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ `p`-adic Generic Nodes diff --git a/src/sage/rings/padics/lattice_precision.py b/src/sage/rings/padics/lattice_precision.py index 8b1d4a9cfba..81676276bc9 100644 --- a/src/sage/rings/padics/lattice_precision.py +++ b/src/sage/rings/padics/lattice_precision.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Lattice precision for the parents ``ZpLC``/``QpLC`` and ``ZpLF``/``QpLF`` diff --git a/src/sage/rings/padics/local_generic.py b/src/sage/rings/padics/local_generic.py index 58d83e40724..88fbeb02993 100644 --- a/src/sage/rings/padics/local_generic.py +++ b/src/sage/rings/padics/local_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.padics r""" Local Generic diff --git a/src/sage/rings/padics/local_generic_element.pxd b/src/sage/rings/padics/local_generic_element.pxd index 9111d2f173c..daf1194956f 100644 --- a/src/sage/rings/padics/local_generic_element.pxd +++ b/src/sage/rings/padics/local_generic_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport CommutativeRingElement cdef class LocalGenericElement(CommutativeRingElement): diff --git a/src/sage/rings/padics/local_generic_element.pyx b/src/sage/rings/padics/local_generic_element.pyx index 84143902e86..ff85ceff68b 100644 --- a/src/sage/rings/padics/local_generic_element.pyx +++ b/src/sage/rings/padics/local_generic_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.padics """ Local Generic Element diff --git a/src/sage/rings/padics/misc.py b/src/sage/rings/padics/misc.py index d7ce570a732..22a30edf992 100644 --- a/src/sage/rings/padics/misc.py +++ b/src/sage/rings/padics/misc.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Miscellaneous Functions diff --git a/src/sage/rings/padics/morphism.pxd b/src/sage/rings/padics/morphism.pxd index b6afedd2377..4fd8175c847 100644 --- a/src/sage/rings/padics/morphism.pxd +++ b/src/sage/rings/padics/morphism.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.rings.morphism cimport RingHomomorphism from sage.structure.element cimport Element diff --git a/src/sage/rings/padics/morphism.pyx b/src/sage/rings/padics/morphism.pyx index d4684f9649d..4a7edf88278 100644 --- a/src/sage/rings/padics/morphism.pyx +++ b/src/sage/rings/padics/morphism.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.ntl """ Frobenius endomorphisms on `p`-adic fields diff --git a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pxd b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pxd index 7afe94b1bf3..63b03c15e87 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pxd +++ b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.gmp.types cimport mpq_t from sage.rings.padics.padic_ZZ_pX_element cimport pAdicZZpXElement from sage.structure.element cimport RingElement, ModuleElement diff --git a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx index 7efcfc5a047..95785eff0d4 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CA_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pxd b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pxd index 9744b2a3f62..04f24b78377 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pxd +++ b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.gmp.types cimport mpz_t, mpq_t from sage.rings.padics.padic_ZZ_pX_element cimport pAdicZZpXElement from sage.structure.element cimport RingElement, ModuleElement diff --git a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx index 82d04980363..a14da7df826 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pxd b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pxd index 90626089442..221b6dba2cb 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pxd +++ b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZ_pX_c from sage.rings.padics.padic_ZZ_pX_element cimport pAdicZZpXElement from sage.structure.element cimport RingElement, ModuleElement diff --git a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx index a3dcd42b3d6..1c58de7568d 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_FM_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/padics/padic_ZZ_pX_element.pxd b/src/sage/rings/padics/padic_ZZ_pX_element.pxd index 1d2f9abcbdb..4fc388fbe36 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_element.pxd +++ b/src/sage/rings/padics/padic_ZZ_pX_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.rings.padics.padic_ext_element cimport pAdicExtElement from sage.rings.padics.pow_computer_ext cimport PowComputer_ZZ_pX diff --git a/src/sage/rings/padics/padic_ZZ_pX_element.pyx b/src/sage/rings/padics/padic_ZZ_pX_element.pyx index b2d6267503e..b5c44b91496 100644 --- a/src/sage/rings/padics/padic_ZZ_pX_element.pyx +++ b/src/sage/rings/padics/padic_ZZ_pX_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/padics/padic_base_generic.py b/src/sage/rings/padics/padic_base_generic.py index 8001d366b23..5d0849871eb 100644 --- a/src/sage/rings/padics/padic_base_generic.py +++ b/src/sage/rings/padics/padic_base_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" `p`-adic Base Generic diff --git a/src/sage/rings/padics/padic_base_leaves.py b/src/sage/rings/padics/padic_base_leaves.py index 64be9291c49..74455a490dd 100644 --- a/src/sage/rings/padics/padic_base_leaves.py +++ b/src/sage/rings/padics/padic_base_leaves.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" `p`-adic Base Leaves diff --git a/src/sage/rings/padics/padic_capped_absolute_element.pxd b/src/sage/rings/padics/padic_capped_absolute_element.pxd index 48c8500a678..d2193ce373a 100644 --- a/src/sage/rings/padics/padic_capped_absolute_element.pxd +++ b/src/sage/rings/padics/padic_capped_absolute_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.libs.gmp.types cimport mpz_t from cypari2.gen cimport Gen as pari_gen from sage.rings.padics.padic_capped_relative_element cimport CRElement diff --git a/src/sage/rings/padics/padic_capped_absolute_element.pyx b/src/sage/rings/padics/padic_capped_absolute_element.pyx index 84839c95388..a5fd8f48947 100644 --- a/src/sage/rings/padics/padic_capped_absolute_element.pyx +++ b/src/sage/rings/padics/padic_capped_absolute_element.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.rings.padics """ `p`-adic Capped Absolute Elements diff --git a/src/sage/rings/padics/padic_capped_relative_element.pxd b/src/sage/rings/padics/padic_capped_relative_element.pxd index 2cf6d5276f5..e1d544ea9d0 100644 --- a/src/sage/rings/padics/padic_capped_relative_element.pxd +++ b/src/sage/rings/padics/padic_capped_relative_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.libs.gmp.types cimport mpz_t from cypari2.gen cimport Gen as pari_gen diff --git a/src/sage/rings/padics/padic_capped_relative_element.pyx b/src/sage/rings/padics/padic_capped_relative_element.pyx index 5c7e0091ffe..da35a4af309 100644 --- a/src/sage/rings/padics/padic_capped_relative_element.pyx +++ b/src/sage/rings/padics/padic_capped_relative_element.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.rings.padics """ `p`-adic Capped Relative Elements diff --git a/src/sage/rings/padics/padic_ext_element.pxd b/src/sage/rings/padics/padic_ext_element.pxd index d8e2ca0a5a0..62323933199 100644 --- a/src/sage/rings/padics/padic_ext_element.pxd +++ b/src/sage/rings/padics/padic_ext_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.rings.padics.padic_generic_element cimport pAdicGenericElement from sage.libs.ntl.types cimport ZZ_pX_c, ZZ_pE_c, ZZ_pEX_c, ZZ_p_c, ZZX_c from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class diff --git a/src/sage/rings/padics/padic_ext_element.pyx b/src/sage/rings/padics/padic_ext_element.pyx index 417ead46ad4..5dfe30643a1 100644 --- a/src/sage/rings/padics/padic_ext_element.pyx +++ b/src/sage/rings/padics/padic_ext_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/padics/padic_extension_generic.py b/src/sage/rings/padics/padic_extension_generic.py index e3e97906be2..e9aacc86070 100644 --- a/src/sage/rings/padics/padic_extension_generic.py +++ b/src/sage/rings/padics/padic_extension_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.ntl """ `p`-adic Extension Generic diff --git a/src/sage/rings/padics/padic_extension_leaves.py b/src/sage/rings/padics/padic_extension_leaves.py index d17563712fb..51775d74005 100644 --- a/src/sage/rings/padics/padic_extension_leaves.py +++ b/src/sage/rings/padics/padic_extension_leaves.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" `p`-adic Extension Leaves diff --git a/src/sage/rings/padics/padic_fixed_mod_element.pxd b/src/sage/rings/padics/padic_fixed_mod_element.pxd index cd619a1bcb2..105fe481850 100644 --- a/src/sage/rings/padics/padic_fixed_mod_element.pxd +++ b/src/sage/rings/padics/padic_fixed_mod_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.libs.gmp.types cimport mpz_t from cypari2.gen cimport Gen as pari_gen from sage.rings.padics.padic_floating_point_element cimport FPElement diff --git a/src/sage/rings/padics/padic_fixed_mod_element.pyx b/src/sage/rings/padics/padic_fixed_mod_element.pyx index 0dca538cbbd..a95798d51c1 100644 --- a/src/sage/rings/padics/padic_fixed_mod_element.pyx +++ b/src/sage/rings/padics/padic_fixed_mod_element.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.rings.padics """ `p`-adic Fixed-Mod Element diff --git a/src/sage/rings/padics/padic_floating_point_element.pxd b/src/sage/rings/padics/padic_floating_point_element.pxd index 721c471d253..434a4cc83f9 100644 --- a/src/sage/rings/padics/padic_floating_point_element.pxd +++ b/src/sage/rings/padics/padic_floating_point_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.libs.gmp.types cimport mpz_t from cypari2.gen cimport Gen as pari_gen diff --git a/src/sage/rings/padics/padic_floating_point_element.pyx b/src/sage/rings/padics/padic_floating_point_element.pyx index ceae683a62c..42044b960bf 100644 --- a/src/sage/rings/padics/padic_floating_point_element.pyx +++ b/src/sage/rings/padics/padic_floating_point_element.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari +# sage.doctest: needs sage.rings.padics r""" `p`-adic Floating Point Elements diff --git a/src/sage/rings/padics/padic_generic.py b/src/sage/rings/padics/padic_generic.py index 3f041a5e146..d4333a6678e 100644 --- a/src/sage/rings/padics/padic_generic.py +++ b/src/sage/rings/padics/padic_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.padics r""" `p`-adic Generic diff --git a/src/sage/rings/padics/padic_generic_element.pxd b/src/sage/rings/padics/padic_generic_element.pxd index dadf7099c00..b3b04c85e86 100644 --- a/src/sage/rings/padics/padic_generic_element.pxd +++ b/src/sage/rings/padics/padic_generic_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from cpython cimport array cimport sage.structure.element diff --git a/src/sage/rings/padics/padic_generic_element.pyx b/src/sage/rings/padics/padic_generic_element.pyx index ec3b1848416..f88e0c000ad 100644 --- a/src/sage/rings/padics/padic_generic_element.pyx +++ b/src/sage/rings/padics/padic_generic_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ `p`-adic Generic Element diff --git a/src/sage/rings/padics/padic_lattice_element.py b/src/sage/rings/padics/padic_lattice_element.py index 46747174f43..3bb9f61024e 100644 --- a/src/sage/rings/padics/padic_lattice_element.py +++ b/src/sage/rings/padics/padic_lattice_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" `p`-adic Elements with lattice precision. diff --git a/src/sage/rings/padics/padic_printing.pxd b/src/sage/rings/padics/padic_printing.pxd index 44698b3d73d..1a238054efa 100644 --- a/src/sage/rings/padics/padic_printing.pxd +++ b/src/sage/rings/padics/padic_printing.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.structure.sage_object cimport SageObject from sage.rings.padics.pow_computer cimport PowComputer_class from sage.rings.padics.padic_generic_element cimport pAdicGenericElement diff --git a/src/sage/rings/padics/padic_printing.pyx b/src/sage/rings/padics/padic_printing.pyx index c0988388066..d6e7e62647c 100644 --- a/src/sage/rings/padics/padic_printing.pyx +++ b/src/sage/rings/padics/padic_printing.pyx @@ -1,9 +1,4 @@ -# distutils: libraries = NTL_LIBRARIES gmp m -# distutils: extra_compile_args = NTL_CFLAGS -# distutils: include_dirs = NTL_INCDIR -# distutils: library_dirs = NTL_LIBDIR -# distutils: extra_link_args = NTL_LIBEXTRA -# distutils: language = c++ +# sage_setup: distribution = sagemath-pari """ `p`-adic Printing diff --git a/src/sage/rings/padics/padic_relaxed_element.pxd b/src/sage/rings/padics/padic_relaxed_element.pxd index 991af951643..d21d4a2a88c 100644 --- a/src/sage/rings/padics/padic_relaxed_element.pxd +++ b/src/sage/rings/padics/padic_relaxed_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.flint.types cimport fmpz, fmpz_t, fmpz_poly_t, flint_rand_t ctypedef fmpz_t cdigit diff --git a/src/sage/rings/padics/padic_relaxed_element.pyx b/src/sage/rings/padics/padic_relaxed_element.pyx index 88b5003b0eb..f696dde41e3 100644 --- a/src/sage/rings/padics/padic_relaxed_element.pyx +++ b/src/sage/rings/padics/padic_relaxed_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint cdef inline type element_class_zero = pAdicRelaxedElement_zero cdef inline type element_class_one = pAdicRelaxedElement_one cdef inline type element_class_bound = pAdicRelaxedElement_bound diff --git a/src/sage/rings/padics/padic_relaxed_errors.pxd b/src/sage/rings/padics/padic_relaxed_errors.pxd index bfe375b8eee..f0c31369c93 100644 --- a/src/sage/rings/padics/padic_relaxed_errors.pxd +++ b/src/sage/rings/padics/padic_relaxed_errors.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl cdef inline int ERROR_ABANDON cdef inline int ERROR_NOTDEFINED cdef inline int ERROR_PRECISION diff --git a/src/sage/rings/padics/padic_relaxed_errors.pyx b/src/sage/rings/padics/padic_relaxed_errors.pyx index 5a7938db5f3..1bb27bd5fe5 100644 --- a/src/sage/rings/padics/padic_relaxed_errors.pyx +++ b/src/sage/rings/padics/padic_relaxed_errors.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # **************************************************************************** # Copyright (C) 2021 Xavier Caruso # diff --git a/src/sage/rings/padics/padic_template_element.pxi b/src/sage/rings/padics/padic_template_element.pxi index c842d9934cd..6b1bf34566e 100644 --- a/src/sage/rings/padics/padic_template_element.pxi +++ b/src/sage/rings/padics/padic_template_element.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This file gives a class from which all the `p`-adic templates inherit. @@ -24,6 +25,8 @@ AUTHORS: from cpython.long cimport * +import itertools + from sage.libs.gmp.all cimport * import sage.rings.finite_rings.integer_mod from cypari2.types cimport * @@ -39,8 +42,6 @@ from sage.rings.padics.misc import trim_zeros from sage.rings.polynomial.polynomial_element import Polynomial from sage.structure.element import canonical_coercion -import itertools - cdef long maxordp = (1L << (sizeof(long) * 8 - 2)) - 1 cdef long minusmaxordp = -maxordp diff --git a/src/sage/rings/padics/padic_template_element_header.pxi b/src/sage/rings/padics/padic_template_element_header.pxi index 8ddcefd672c..e4a8d11ac6c 100644 --- a/src/sage/rings/padics/padic_template_element_header.pxi +++ b/src/sage/rings/padics/padic_template_element_header.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This file provides the declaration for the pAdicTemplateElement class, which collects common functionality for the different `p`-adic template diff --git a/src/sage/rings/padics/padic_valuation.py b/src/sage/rings/padics/padic_valuation.py index 1050055e1fb..45af085f804 100644 --- a/src/sage/rings/padics/padic_valuation.py +++ b/src/sage/rings/padics/padic_valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" `p`-adic Valuations on Number Fields and Their Subrings and Completions diff --git a/src/sage/rings/padics/pow_computer.pxd b/src/sage/rings/padics/pow_computer.pxd index 5cb6a474849..ada2533961b 100644 --- a/src/sage/rings/padics/pow_computer.pxd +++ b/src/sage/rings/padics/pow_computer.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.libs.gmp.types cimport mpz_t, mpz_srcptr from sage.structure.sage_object cimport SageObject from sage.rings.integer cimport Integer diff --git a/src/sage/rings/padics/pow_computer.pyx b/src/sage/rings/padics/pow_computer.pyx index 9719dfa1efe..421746b8a82 100644 --- a/src/sage/rings/padics/pow_computer.pyx +++ b/src/sage/rings/padics/pow_computer.pyx @@ -1,9 +1,4 @@ -# distutils: libraries = NTL_LIBRARIES gmp m -# distutils: extra_compile_args = NTL_CFLAGS -# distutils: include_dirs = NTL_INCDIR -# distutils: library_dirs = NTL_LIBDIR -# distutils: extra_link_args = NTL_LIBEXTRA -# distutils: language = c++ +# sage_setup: distribution = sagemath-pari """ PowComputer diff --git a/src/sage/rings/padics/pow_computer_ext.pxd b/src/sage/rings/padics/pow_computer_ext.pxd index 5d31790e02e..1899c40057f 100644 --- a/src/sage/rings/padics/pow_computer_ext.pxd +++ b/src/sage/rings/padics/pow_computer_ext.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.rings.padics.pow_computer cimport PowComputer_class from sage.libs.ntl.ntl_ZZ_pContext cimport ntl_ZZ_pContext_class from sage.libs.ntl.types cimport * diff --git a/src/sage/rings/padics/pow_computer_ext.pyx b/src/sage/rings/padics/pow_computer_ext.pyx index 389bd0bb20d..7031b0523e8 100644 --- a/src/sage/rings/padics/pow_computer_ext.pyx +++ b/src/sage/rings/padics/pow_computer_ext.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp m # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/padics/pow_computer_flint.pxd b/src/sage/rings/padics/pow_computer_flint.pxd index 7b0d042115d..a2c853eca89 100644 --- a/src/sage/rings/padics/pow_computer_flint.pxd +++ b/src/sage/rings/padics/pow_computer_flint.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.libs.gmp.mpz cimport mpz_t from sage.libs.flint.types cimport padic_ctx_t, fmpz_t, fmpz_poly_t from sage.rings.padics.pow_computer cimport PowComputer_class diff --git a/src/sage/rings/padics/pow_computer_flint.pyx b/src/sage/rings/padics/pow_computer_flint.pyx index cac2d70d758..a32c3530f25 100644 --- a/src/sage/rings/padics/pow_computer_flint.pyx +++ b/src/sage/rings/padics/pow_computer_flint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = gmp NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/padics/pow_computer_relative.pxd b/src/sage/rings/padics/pow_computer_relative.pxd index 6e829ee2b69..0b99bc4b65a 100644 --- a/src/sage/rings/padics/pow_computer_relative.pxd +++ b/src/sage/rings/padics/pow_computer_relative.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.rings.padics.pow_computer cimport PowComputer_class from sage.rings.polynomial.polynomial_element cimport Polynomial_generic_dense diff --git a/src/sage/rings/padics/pow_computer_relative.pyx b/src/sage/rings/padics/pow_computer_relative.pyx index de2e85e6c85..57faf5557fc 100644 --- a/src/sage/rings/padics/pow_computer_relative.pyx +++ b/src/sage/rings/padics/pow_computer_relative.pyx @@ -1,9 +1,4 @@ -# distutils: libraries = NTL_LIBRARIES gmp m -# distutils: extra_compile_args = NTL_CFLAGS -# distutils: include_dirs = NTL_INCDIR -# distutils: library_dirs = NTL_LIBDIR -# distutils: extra_link_args = NTL_LIBEXTRA -# distutils: language = c++ +# sage_setup: distribution = sagemath-pari r""" A ``PowComputer`` for relative extensions diff --git a/src/sage/rings/padics/precision_error.py b/src/sage/rings/padics/precision_error.py index 3dcf4b08d8e..faba98b34b1 100644 --- a/src/sage/rings/padics/precision_error.py +++ b/src/sage/rings/padics/precision_error.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Precision Error diff --git a/src/sage/rings/padics/qadic_flint_CA.pxd b/src/sage/rings/padics/qadic_flint_CA.pxd index 56cd4dbc03d..be524b9b302 100644 --- a/src/sage/rings/padics/qadic_flint_CA.pxd +++ b/src/sage/rings/padics/qadic_flint_CA.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from cypari2.gen cimport Gen as pari_gen from sage.libs.flint.types cimport fmpz_poly_t from sage.rings.padics.pow_computer_flint cimport PowComputer_flint_unram diff --git a/src/sage/rings/padics/qadic_flint_CA.pyx b/src/sage/rings/padics/qadic_flint_CA.pyx index 36d3df419d0..8f54f6c7b9b 100644 --- a/src/sage/rings/padics/qadic_flint_CA.pyx +++ b/src/sage/rings/padics/qadic_flint_CA.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + include "sage/libs/linkages/padics/fmpz_poly_unram.pxi" include "sage/libs/linkages/padics/unram_shared.pxi" include "CA_template.pxi" diff --git a/src/sage/rings/padics/qadic_flint_CR.pxd b/src/sage/rings/padics/qadic_flint_CR.pxd index 1f1765bc61c..6a6ad8d1228 100644 --- a/src/sage/rings/padics/qadic_flint_CR.pxd +++ b/src/sage/rings/padics/qadic_flint_CR.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from cypari2.gen cimport Gen as pari_gen from sage.libs.flint.types cimport fmpz_poly_t from sage.rings.padics.pow_computer_flint cimport PowComputer_flint_unram diff --git a/src/sage/rings/padics/qadic_flint_CR.pyx b/src/sage/rings/padics/qadic_flint_CR.pyx index a13d135ae18..6a9c285b109 100644 --- a/src/sage/rings/padics/qadic_flint_CR.pyx +++ b/src/sage/rings/padics/qadic_flint_CR.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + include "sage/libs/linkages/padics/fmpz_poly_unram.pxi" include "sage/libs/linkages/padics/unram_shared.pxi" include "CR_template.pxi" diff --git a/src/sage/rings/padics/qadic_flint_FM.pxd b/src/sage/rings/padics/qadic_flint_FM.pxd index 7c2facd3aaa..dc2787aecbc 100644 --- a/src/sage/rings/padics/qadic_flint_FM.pxd +++ b/src/sage/rings/padics/qadic_flint_FM.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from cypari2.gen cimport Gen as pari_gen from sage.libs.flint.types cimport fmpz_poly_t from sage.rings.padics.qadic_flint_FP cimport FPElement diff --git a/src/sage/rings/padics/qadic_flint_FM.pyx b/src/sage/rings/padics/qadic_flint_FM.pyx index c0aebfb8bc6..5e41af64b56 100644 --- a/src/sage/rings/padics/qadic_flint_FM.pyx +++ b/src/sage/rings/padics/qadic_flint_FM.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + include "sage/libs/linkages/padics/fmpz_poly_unram.pxi" include "sage/libs/linkages/padics/unram_shared.pxi" include "FM_template.pxi" diff --git a/src/sage/rings/padics/qadic_flint_FP.pxd b/src/sage/rings/padics/qadic_flint_FP.pxd index 1a25be2fc08..6137e80f35c 100644 --- a/src/sage/rings/padics/qadic_flint_FP.pxd +++ b/src/sage/rings/padics/qadic_flint_FP.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from cypari2.gen cimport Gen as pari_gen from sage.libs.flint.fmpz_poly cimport fmpz_poly_t from sage.rings.padics.pow_computer_flint cimport PowComputer_flint_unram diff --git a/src/sage/rings/padics/qadic_flint_FP.pyx b/src/sage/rings/padics/qadic_flint_FP.pyx index 0461e562a6b..ea69d0216c9 100644 --- a/src/sage/rings/padics/qadic_flint_FP.pyx +++ b/src/sage/rings/padics/qadic_flint_FP.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint include "sage/libs/linkages/padics/fmpz_poly_unram.pxi" diff --git a/src/sage/rings/padics/relative_extension_leaves.py b/src/sage/rings/padics/relative_extension_leaves.py index 3005ae0825b..88e4b17e412 100644 --- a/src/sage/rings/padics/relative_extension_leaves.py +++ b/src/sage/rings/padics/relative_extension_leaves.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Relative extensions of `p`-adic rings diff --git a/src/sage/rings/padics/relative_ramified_CA.pxd b/src/sage/rings/padics/relative_ramified_CA.pxd index e87d051a24e..794f6305a7d 100644 --- a/src/sage/rings/padics/relative_ramified_CA.pxd +++ b/src/sage/rings/padics/relative_ramified_CA.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.rings.polynomial.polynomial_element cimport Polynomial_generic_dense_inexact as celement from sage.rings.padics.pow_computer_relative cimport PowComputer_relative_eis as PowComputer_ from sage.rings.padics.relative_ramified_CR cimport CRElement diff --git a/src/sage/rings/padics/relative_ramified_CA.pyx b/src/sage/rings/padics/relative_ramified_CA.pyx index 361c160cebe..650eb78840f 100644 --- a/src/sage/rings/padics/relative_ramified_CA.pyx +++ b/src/sage/rings/padics/relative_ramified_CA.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.flint include "sage/libs/linkages/padics/Polynomial_ram.pxi" include "CA_template.pxi" diff --git a/src/sage/rings/padics/relative_ramified_CR.pxd b/src/sage/rings/padics/relative_ramified_CR.pxd index e7c5cdc04ca..10607fa8a19 100644 --- a/src/sage/rings/padics/relative_ramified_CR.pxd +++ b/src/sage/rings/padics/relative_ramified_CR.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.rings.polynomial.polynomial_element cimport Polynomial_generic_dense_inexact as celement from sage.rings.padics.pow_computer_relative cimport PowComputer_relative_eis as PowComputer_ diff --git a/src/sage/rings/padics/relative_ramified_CR.pyx b/src/sage/rings/padics/relative_ramified_CR.pyx index 1bf0b815a3d..8e915c12766 100644 --- a/src/sage/rings/padics/relative_ramified_CR.pyx +++ b/src/sage/rings/padics/relative_ramified_CR.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.ntl include "sage/libs/linkages/padics/Polynomial_ram.pxi" include "CR_template.pxi" diff --git a/src/sage/rings/padics/relative_ramified_FM.pxd b/src/sage/rings/padics/relative_ramified_FM.pxd index cf2e1238463..5e19bfde27a 100644 --- a/src/sage/rings/padics/relative_ramified_FM.pxd +++ b/src/sage/rings/padics/relative_ramified_FM.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.rings.polynomial.polynomial_element cimport Polynomial_generic_dense_inexact as celement from sage.rings.padics.pow_computer_relative cimport PowComputer_relative_eis as PowComputer_ from sage.rings.padics.relative_ramified_FP cimport FPElement diff --git a/src/sage/rings/padics/relative_ramified_FM.pyx b/src/sage/rings/padics/relative_ramified_FM.pyx index 7ec08b1af4e..4063a1c8897 100644 --- a/src/sage/rings/padics/relative_ramified_FM.pyx +++ b/src/sage/rings/padics/relative_ramified_FM.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.flint include "sage/libs/linkages/padics/Polynomial_ram.pxi" include "FM_template.pxi" diff --git a/src/sage/rings/padics/relative_ramified_FP.pxd b/src/sage/rings/padics/relative_ramified_FP.pxd index d060fbe1a3a..7528f6802f5 100644 --- a/src/sage/rings/padics/relative_ramified_FP.pxd +++ b/src/sage/rings/padics/relative_ramified_FP.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.rings.polynomial.polynomial_element cimport Polynomial_generic_dense_inexact as celement from sage.rings.padics.pow_computer_relative cimport PowComputer_relative_eis as PowComputer_ diff --git a/src/sage/rings/padics/relative_ramified_FP.pyx b/src/sage/rings/padics/relative_ramified_FP.pyx index 2ac6656f753..017cabaab41 100644 --- a/src/sage/rings/padics/relative_ramified_FP.pyx +++ b/src/sage/rings/padics/relative_ramified_FP.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.flint include "sage/libs/linkages/padics/Polynomial_ram.pxi" include "FP_template.pxi" diff --git a/src/sage/rings/padics/relaxed_template.pxi b/src/sage/rings/padics/relaxed_template.pxi index 1b6b4fb0833..509b4ee4c1e 100644 --- a/src/sage/rings/padics/relaxed_template.pxi +++ b/src/sage/rings/padics/relaxed_template.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.flint r""" Template for relaxed `p`-adic rings and fields. diff --git a/src/sage/rings/padics/relaxed_template_header.pxi b/src/sage/rings/padics/relaxed_template_header.pxi index 044283ee7d0..3790bfca54e 100644 --- a/src/sage/rings/padics/relaxed_template_header.pxi +++ b/src/sage/rings/padics/relaxed_template_header.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ This file provides the declaration for the RelaxedElement class, which collects common functionality for the different relaxed `p`-adic diff --git a/src/sage/rings/padics/tests.py b/src/sage/rings/padics/tests.py index 1d0e3f3c5d6..55d786b8701 100644 --- a/src/sage/rings/padics/tests.py +++ b/src/sage/rings/padics/tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ TESTS:: diff --git a/src/sage/rings/padics/transcendantal.c b/src/sage/rings/padics/transcendantal.c index 0e466aa373e..adc72fde3c9 100644 --- a/src/sage/rings/padics/transcendantal.c +++ b/src/sage/rings/padics/transcendantal.c @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-pari + */ /* * C helper functions for the computation * of p-adic transcendantal functions diff --git a/src/sage/rings/padics/tutorial.py b/src/sage/rings/padics/tutorial.py index da0c80f021c..d855bacbb54 100644 --- a/src/sage/rings/padics/tutorial.py +++ b/src/sage/rings/padics/tutorial.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Introduction to the `p`-adics ========================================== diff --git a/src/sage/rings/padics/unramified_extension_generic.py b/src/sage/rings/padics/unramified_extension_generic.py index 7eb99efe585..a67ce6f4d63 100644 --- a/src/sage/rings/padics/unramified_extension_generic.py +++ b/src/sage/rings/padics/unramified_extension_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Unramified Extension Generic diff --git a/src/sage/rings/pari_ring.py b/src/sage/rings/pari_ring.py index b8f2b62d5a7..c97481c56ce 100644 --- a/src/sage/rings/pari_ring.py +++ b/src/sage/rings/pari_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Ring of pari objects diff --git a/src/sage/rings/polynomial/all.py b/src/sage/rings/polynomial/all.py index 853f422bdc7..78e29ac0bb9 100644 --- a/src/sage/rings/polynomial/all.py +++ b/src/sage/rings/polynomial/all.py @@ -18,18 +18,8 @@ from sage.misc.lazy_import import lazy_import -# Quotient of polynomial ring -from sage.rings.polynomial.polynomial_quotient_ring import PolynomialQuotientRing -from sage.rings.polynomial.polynomial_quotient_ring_element import PolynomialQuotientRingElement - -# Univariate Polynomial Rings -from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing -from sage.rings.polynomial.polynomial_ring import polygen, polygens -from sage.rings.polynomial.polynomial_element import Polynomial - -# Multivariate Polynomial Rings -from sage.rings.polynomial.term_order import TermOrder -from sage.rings.polynomial.multi_polynomial_element import degree_lowest_rational_function +from sage.rings.polynomial.all__sagemath_categories import * +from sage.rings.polynomial.all__sagemath_modules import * # Generic convolution from sage.rings.polynomial.convolution import convolution @@ -38,19 +28,9 @@ from sage.rings.polynomial.polynomial_ring_constructor import BooleanPolynomialRing_constructor as BooleanPolynomialRing # Laurent Polynomial Rings -from sage.rings.polynomial.laurent_polynomial_ring import LaurentPolynomialRing lazy_import('sage.rings.polynomial.omega', 'MacMahonOmega') -# Infinite Polynomial Rings -from sage.rings.polynomial.infinite_polynomial_ring import InfinitePolynomialRing - -# Ore Polynomial Rings -lazy_import('sage.rings.polynomial.ore_polynomial_ring', 'OrePolynomialRing') -SkewPolynomialRing = OrePolynomialRing - -# Evaluation of cyclotomic polynomials -from sage.rings.polynomial.cyclotomic import cyclotomic_value - # Integer-valued Univariate Polynomial Ring lazy_import('sage.rings.polynomial.integer_valued_polynomials', 'IntegerValuedPolynomialRing') +del lazy_import diff --git a/src/sage/rings/polynomial/all__sagemath_brial.py b/src/sage/rings/polynomial/all__sagemath_brial.py new file mode 100644 index 00000000000..016ca38a057 --- /dev/null +++ b/src/sage/rings/polynomial/all__sagemath_brial.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-brial diff --git a/src/sage/rings/polynomial/all__sagemath_categories.py b/src/sage/rings/polynomial/all__sagemath_categories.py new file mode 100644 index 00000000000..05b038d778e --- /dev/null +++ b/src/sage/rings/polynomial/all__sagemath_categories.py @@ -0,0 +1,23 @@ +# sage_setup: distribution = sagemath-categories + +# Quotient of polynomial ring +from sage.rings.polynomial.polynomial_quotient_ring import PolynomialQuotientRing +from sage.rings.polynomial.polynomial_quotient_ring_element import PolynomialQuotientRingElement + +# Univariate Polynomial Rings +from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing +from sage.rings.polynomial.polynomial_ring import polygen, polygens +from sage.rings.polynomial.polynomial_element import Polynomial + +# Multivariate Polynomial Rings +from sage.rings.polynomial.term_order import TermOrder +from sage.rings.polynomial.multi_polynomial_element import degree_lowest_rational_function + +# Infinite Polynomial Rings +from sage.rings.polynomial.infinite_polynomial_ring import InfinitePolynomialRing + +# Laurent Polynomial Rings +from sage.rings.polynomial.laurent_polynomial_ring import LaurentPolynomialRing + +# Evaluation of cyclotomic polynomials +from sage.rings.polynomial.cyclotomic import cyclotomic_value diff --git a/src/sage/rings/polynomial/all__sagemath_flint.py b/src/sage/rings/polynomial/all__sagemath_flint.py new file mode 100644 index 00000000000..d31bae41036 --- /dev/null +++ b/src/sage/rings/polynomial/all__sagemath_flint.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-flint diff --git a/src/sage/rings/polynomial/all__sagemath_linbox.py b/src/sage/rings/polynomial/all__sagemath_linbox.py new file mode 100644 index 00000000000..d3fe8dc3de9 --- /dev/null +++ b/src/sage/rings/polynomial/all__sagemath_linbox.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-linbox diff --git a/src/sage/rings/polynomial/all__sagemath_modules.py b/src/sage/rings/polynomial/all__sagemath_modules.py new file mode 100644 index 00000000000..688dc0308e1 --- /dev/null +++ b/src/sage/rings/polynomial/all__sagemath_modules.py @@ -0,0 +1,9 @@ +# sage_setup: distribution = sagemath-modules + +from sage.misc.lazy_import import lazy_import + +# Ore Polynomial Rings +lazy_import('sage.rings.polynomial.ore_polynomial_ring', 'OrePolynomialRing') +SkewPolynomialRing = OrePolynomialRing + +del lazy_import diff --git a/src/sage/rings/polynomial/all__sagemath_ntl.py b/src/sage/rings/polynomial/all__sagemath_ntl.py new file mode 100644 index 00000000000..4d8e422331a --- /dev/null +++ b/src/sage/rings/polynomial/all__sagemath_ntl.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-ntl diff --git a/src/sage/rings/polynomial/all__sagemath_pari.py b/src/sage/rings/polynomial/all__sagemath_pari.py new file mode 100644 index 00000000000..01c9cb07cd5 --- /dev/null +++ b/src/sage/rings/polynomial/all__sagemath_pari.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-pari diff --git a/src/sage/rings/polynomial/all__sagemath_singular.py b/src/sage/rings/polynomial/all__sagemath_singular.py new file mode 100644 index 00000000000..84ec2b51067 --- /dev/null +++ b/src/sage/rings/polynomial/all__sagemath_singular.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-singular diff --git a/src/sage/rings/polynomial/all__sagemath_symbolics.py b/src/sage/rings/polynomial/all__sagemath_symbolics.py new file mode 100644 index 00000000000..332eaf1cdb6 --- /dev/null +++ b/src/sage/rings/polynomial/all__sagemath_symbolics.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-symbolics diff --git a/src/sage/rings/polynomial/commutative_polynomial.pxd b/src/sage/rings/polynomial/commutative_polynomial.pxd index c4a8956daa5..ec6d99c1208 100644 --- a/src/sage/rings/polynomial/commutative_polynomial.pxd +++ b/src/sage/rings/polynomial/commutative_polynomial.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport CommutativeAlgebraElement diff --git a/src/sage/rings/polynomial/commutative_polynomial.pyx b/src/sage/rings/polynomial/commutative_polynomial.pyx index 7e2e7be4fc8..593b1019569 100644 --- a/src/sage/rings/polynomial/commutative_polynomial.pyx +++ b/src/sage/rings/polynomial/commutative_polynomial.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories cdef class CommutativePolynomial(CommutativeAlgebraElement): r""" Abstract base class for commutative polynomials in any number of variables. diff --git a/src/sage/rings/polynomial/complex_roots.py b/src/sage/rings/polynomial/complex_roots.py index 0c94bac6035..2a5c2deef34 100644 --- a/src/sage/rings/polynomial/complex_roots.py +++ b/src/sage/rings/polynomial/complex_roots.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Isolate Complex Roots of Polynomials diff --git a/src/sage/rings/polynomial/cyclotomic.pyx b/src/sage/rings/polynomial/cyclotomic.pyx index 8c9088434fa..627fa7e38c0 100644 --- a/src/sage/rings/polynomial/cyclotomic.pyx +++ b/src/sage/rings/polynomial/cyclotomic.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Fast calculation of cyclotomic polynomials diff --git a/src/sage/rings/polynomial/evaluation_flint.pxd b/src/sage/rings/polynomial/evaluation_flint.pxd index b699871ba0c..b522500554a 100644 --- a/src/sage/rings/polynomial/evaluation_flint.pxd +++ b/src/sage/rings/polynomial/evaluation_flint.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.flint.types cimport fmpz_poly_t from sage.libs.mpfr.types cimport mpfr_t from sage.libs.mpfi.types cimport mpfi_t diff --git a/src/sage/rings/polynomial/evaluation_flint.pyx b/src/sage/rings/polynomial/evaluation_flint.pyx index 1c5909c37b0..7e5d2b6fb38 100644 --- a/src/sage/rings/polynomial/evaluation_flint.pyx +++ b/src/sage/rings/polynomial/evaluation_flint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = flint r""" Fast evaluation of polynomials (Horner's rule) diff --git a/src/sage/rings/polynomial/evaluation_ntl.pxd b/src/sage/rings/polynomial/evaluation_ntl.pxd index 9af0a0b9d40..f0e5e5d35c3 100644 --- a/src/sage/rings/polynomial/evaluation_ntl.pxd +++ b/src/sage/rings/polynomial/evaluation_ntl.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZX_c from sage.libs.mpfr.types cimport mpfr_t from sage.libs.mpfi.types cimport mpfi_t diff --git a/src/sage/rings/polynomial/evaluation_ntl.pyx b/src/sage/rings/polynomial/evaluation_ntl.pyx index 28b3917d3a1..e30a4dfd79b 100644 --- a/src/sage/rings/polynomial/evaluation_ntl.pyx +++ b/src/sage/rings/polynomial/evaluation_ntl.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/polynomial/flatten.py b/src/sage/rings/polynomial/flatten.py index 6354bbcd382..9b5f737d852 100644 --- a/src/sage/rings/polynomial/flatten.py +++ b/src/sage/rings/polynomial/flatten.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Class to flatten polynomial rings over polynomial ring diff --git a/src/sage/rings/polynomial/hilbert.pyx b/src/sage/rings/polynomial/hilbert.pyx index 24728bef328..4c44c83d4f8 100644 --- a/src/sage/rings/polynomial/hilbert.pyx +++ b/src/sage/rings/polynomial/hilbert.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Compute Hilbert series of monomial ideals diff --git a/src/sage/rings/polynomial/ideal.py b/src/sage/rings/polynomial/ideal.py index 9eba00860b5..a256ddbdf69 100644 --- a/src/sage/rings/polynomial/ideal.py +++ b/src/sage/rings/polynomial/ideal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Ideals in Univariate Polynomial Rings diff --git a/src/sage/rings/polynomial/infinite_polynomial_element.py b/src/sage/rings/polynomial/infinite_polynomial_element.py index b7d10c05db1..6857e8a8e73 100644 --- a/src/sage/rings/polynomial/infinite_polynomial_element.py +++ b/src/sage/rings/polynomial/infinite_polynomial_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Elements of Infinite Polynomial Rings diff --git a/src/sage/rings/polynomial/infinite_polynomial_ring.py b/src/sage/rings/polynomial/infinite_polynomial_ring.py index 05735a21cd2..5840d425c10 100644 --- a/src/sage/rings/polynomial/infinite_polynomial_ring.py +++ b/src/sage/rings/polynomial/infinite_polynomial_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Infinite Polynomial Rings diff --git a/src/sage/rings/polynomial/laurent_polynomial.pxd b/src/sage/rings/polynomial/laurent_polynomial.pxd index 1937490caac..1fe17fdc784 100644 --- a/src/sage/rings/polynomial/laurent_polynomial.pxd +++ b/src/sage/rings/polynomial/laurent_polynomial.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport CommutativeAlgebraElement, ModuleElement, RingElement, Element diff --git a/src/sage/rings/polynomial/laurent_polynomial.pyx b/src/sage/rings/polynomial/laurent_polynomial.pyx index 0fed2467c05..6d98449bcd3 100644 --- a/src/sage/rings/polynomial/laurent_polynomial.pyx +++ b/src/sage/rings/polynomial/laurent_polynomial.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Elements of Laurent polynomial rings """ diff --git a/src/sage/rings/polynomial/laurent_polynomial_ideal.py b/src/sage/rings/polynomial/laurent_polynomial_ideal.py index ae21901fee1..e4893a59185 100644 --- a/src/sage/rings/polynomial/laurent_polynomial_ideal.py +++ b/src/sage/rings/polynomial/laurent_polynomial_ideal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.singular sage.modules (because all doctests need laurent_polynomial_mpair, Groebner bases) r""" Ideals in Laurent polynomial rings. diff --git a/src/sage/rings/polynomial/laurent_polynomial_mpair.pxd b/src/sage/rings/polynomial/laurent_polynomial_mpair.pxd index 79f09def6aa..a93da987a1c 100644 --- a/src/sage/rings/polynomial/laurent_polynomial_mpair.pxd +++ b/src/sage/rings/polynomial/laurent_polynomial_mpair.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.rings.polynomial.laurent_polynomial cimport LaurentPolynomial from sage.rings.polynomial.multi_polynomial cimport MPolynomial from sage.rings.polynomial.polydict cimport ETuple, PolyDict diff --git a/src/sage/rings/polynomial/laurent_polynomial_mpair.pyx b/src/sage/rings/polynomial/laurent_polynomial_mpair.pyx index 17caf047da0..6292608707d 100644 --- a/src/sage/rings/polynomial/laurent_polynomial_mpair.pyx +++ b/src/sage/rings/polynomial/laurent_polynomial_mpair.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Elements of multivariate Laurent polynomial rings """ diff --git a/src/sage/rings/polynomial/laurent_polynomial_ring.py b/src/sage/rings/polynomial/laurent_polynomial_ring.py index 40b09bbfb6e..9b6a0e59adf 100644 --- a/src/sage/rings/polynomial/laurent_polynomial_ring.py +++ b/src/sage/rings/polynomial/laurent_polynomial_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Ring of Laurent Polynomials diff --git a/src/sage/rings/polynomial/laurent_polynomial_ring_base.py b/src/sage/rings/polynomial/laurent_polynomial_ring_base.py index b4f4f13289e..31e1d23e996 100644 --- a/src/sage/rings/polynomial/laurent_polynomial_ring_base.py +++ b/src/sage/rings/polynomial/laurent_polynomial_ring_base.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.modules r""" Ring of Laurent Polynomials (base class) diff --git a/src/sage/rings/polynomial/multi_polynomial.pxd b/src/sage/rings/polynomial/multi_polynomial.pxd index 9c96ce7a505..e6792991411 100644 --- a/src/sage/rings/polynomial/multi_polynomial.pxd +++ b/src/sage/rings/polynomial/multi_polynomial.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.polynomial.commutative_polynomial cimport CommutativePolynomial diff --git a/src/sage/rings/polynomial/multi_polynomial.pyx b/src/sage/rings/polynomial/multi_polynomial.pyx index e6cfbcec7cb..e1741ee4e54 100644 --- a/src/sage/rings/polynomial/multi_polynomial.pyx +++ b/src/sage/rings/polynomial/multi_polynomial.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Base class for elements of multivariate polynomial rings """ @@ -2141,7 +2142,7 @@ cdef class MPolynomial(CommutativePolynomial): self._parent._singular_().set_ring() g = self._singular_().gcd(other._singular_()) return self._parent(g) - except (TypeError, AttributeError): + except (TypeError, AttributeError, ImportError): pass gens = self.parent().gens() diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index 2f3310b3af9..cbf6cef1f4f 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Generic Multivariate Polynomials @@ -2277,14 +2278,14 @@ def quo_rem(self, right): R = self.parent() try: R._singular_().set_ring() - except TypeError: + except (TypeError, ImportError): f = self.parent().flattening_morphism() if f.domain() != f.codomain(): g = f.section() q,r = f(self).quo_rem(f(right)) return g(q), g(r) else: - raise + raise TypeError else: X = self._singular_().division(right._singular_()) return R(X[1][1,1]), R(X[2][1]) diff --git a/src/sage/rings/polynomial/multi_polynomial_ideal.py b/src/sage/rings/polynomial/multi_polynomial_ideal.py index f8daa8371b6..2c6aece75be 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ideal.py +++ b/src/sage/rings/polynomial/multi_polynomial_ideal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.singular r""" Ideals in multivariate polynomial rings diff --git a/src/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd b/src/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd index 58f853973dc..8eb858d329f 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +++ b/src/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular from sage.libs.singular.decl cimport ideal, ring cdef object singular_ideal_to_sage_sequence(ideal *i, ring *r, object parent) diff --git a/src/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx index 70b1b3fdcf1..cc7027c3f8a 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular """ Direct low-level access to SINGULAR's Groebner basis engine via libSINGULAR diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pxd b/src/sage/rings/polynomial/multi_polynomial_libsingular.pxd index 5cc546112c9..c71bc792d00 100644 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pxd +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular from sage.libs.singular.decl cimport poly, ring from sage.rings.polynomial.multi_polynomial cimport MPolynomial_libsingular as MPolynomial_libsingular_base diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx index d05760d84cd..3d08764aacd 100644 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular r""" Multivariate Polynomials via libSINGULAR @@ -406,13 +407,13 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base): sage: R3 = MPolynomialRing_libsingular(GF(13), 2, ('x', 'y'), ....: TermOrder('degrevlex', 2)) sage: _ = gc.collect() - sage: foo = R1.gen(0) - sage: del foo - sage: del R1 + sage: foo = R1.gen(0) # needs sage.rings.finite_rings + sage: del foo # needs sage.rings.finite_rings + sage: del R1 # needs sage.rings.finite_rings sage: _ = gc.collect() - sage: del R2 + sage: del R2 # needs sage.rings.finite_rings sage: _ = gc.collect() - sage: del R3 + sage: del R3 # needs sage.rings.finite_rings sage: _ = gc.collect() """ if self._ring != NULL: # the constructor did not raise an exception @@ -3166,11 +3167,11 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: f[0,1] 0 - sage: R. = PolynomialRing(GF(7), implementation='singular'); R + sage: R. = PolynomialRing(GF(7), implementation='singular'); R # needs sage.rings.finite_rings Multivariate Polynomial Ring in x over Finite Field of size 7 - sage: f = 5*x^2 + 3; f + sage: f = 5*x^2 + 3; f # needs sage.rings.finite_rings -2*x^2 + 3 - sage: f[2] + sage: f[2] # needs sage.rings.finite_rings 5 """ cdef poly *m @@ -3881,7 +3882,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: P. = GF(2)[] sage: f = x*z^2 + z + 1 - sage: f._variable_indices_() + sage: f._variable_indices_() # needs sage.rings.finite_rings [0, 2] """ cdef poly *p @@ -4064,7 +4065,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): 3*x*y^2 sage: f = 5*x^3*y^2*z^4 + 4*x^3*y^2*z^1 - sage: f.lt() + sage: f.lt() # needs sage.rings.finite_rings -2*x^3*y^2*z^4 """ if self._poly == NULL: @@ -4333,7 +4334,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: R. = GF(3)[] sage: f = x^2*z^2+x*y*z-y^2 - sage: f.factor() + sage: f.factor() # needs sage.rings.finite_rings x^2*z^2 + x*y*z - y^2 This checks that :issue:`11838` is fixed:: @@ -4355,11 +4356,11 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: p = x^3*y^7 + x^2*y^6 + x^2*y^3 sage: q = x^3*y^5 sage: f = p*q - sage: p.factor()*q.factor() + sage: p.factor()*q.factor() # needs sage.rings.finite_rings x^5 * y^8 * (x*y^4 + y^3 + 1) - sage: f.factor() + sage: f.factor() # needs sage.rings.finite_rings x^5 * y^8 * (x*y^4 + y^3 + 1) - sage: f.factor().expand() == f + sage: f.factor().expand() == f # needs sage.rings.finite_rings True :: @@ -4379,9 +4380,9 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: f = p*q sage: f x^9*y^11 - x^9*y^2 - sage: f.factor() + sage: f.factor() # needs sage.rings.finite_rings y^2 * (y - 1)^9 * x^9 - sage: f - f.factor() + sage: f - f.factor() # needs sage.rings.finite_rings 0 :: @@ -4406,10 +4407,10 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: R. = GF(2)[] sage: f = x^6 + x^5 + y^5 + y^4 - sage: f.factor() + sage: f.factor() # needs sage.rings.finite_rings x^6 + x^5 + y^5 + y^4 sage: f = x^16*y + x^10*y + x^9*y + x^6*y + x^5 + x*y + y^2 - sage: f.factor() + sage: f.factor() # needs sage.rings.finite_rings x^16*y + x^10*y + x^9*y + x^6*y + x^5 + x*y + y^2 Test :issue:`12928`:: @@ -4417,7 +4418,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: R. = GF(2)[] sage: p = x^2 + y^2 + x + 1 sage: q = x^4 + x^2*y^2 + y^4 + x*y^2 + x^2 + y^2 + 1 - sage: factor(p*q) + sage: factor(p*q) # needs sage.rings.finite_rings (x^2 + y^2 + x + 1) * (x^4 + x^2*y^2 + y^4 + x*y^2 + x^2 + y^2 + 1) Check that :issue:`13770` is fixed:: @@ -4445,7 +4446,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: p = x**2 - y**2 sage: z = factor(p); z (x - y) * (x + y) - sage: z[0][0].parent() + sage: z[0][0].parent() # needs sage.rings.finite_rings Multivariate Polynomial Ring in x, y over Integer Ring Test for :issue:`17680`:: @@ -5141,7 +5142,7 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): sage: # optional - macaulay2 sage: R. = PolynomialRing(GF(7), 2) - sage: f = (x^3 + 2*y^2*x)^7; f # indirect doctest + sage: f = (x^3 + 2*y^2*x)^7; f x^21 + 2*x^7*y^14 sage: h = macaulay2(f); h 21 7 14 diff --git a/src/sage/rings/polynomial/multi_polynomial_ring.py b/src/sage/rings/polynomial/multi_polynomial_ring.py index 41cc1fb7c87..97cefb33edc 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ring.py +++ b/src/sage/rings/polynomial/multi_polynomial_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Multivariate Polynomial Rings over Generic Rings diff --git a/src/sage/rings/polynomial/multi_polynomial_ring_base.pxd b/src/sage/rings/polynomial/multi_polynomial_ring_base.pxd index 322e25e363b..e80c75c39f4 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ring_base.pxd +++ b/src/sage/rings/polynomial/multi_polynomial_ring_base.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-categories + from sage.rings.ring cimport CommutativeRing, Ring from sage.structure.parent cimport Parent diff --git a/src/sage/rings/polynomial/multi_polynomial_ring_base.pyx b/src/sage/rings/polynomial/multi_polynomial_ring_base.pyx index 19c2ddac7b1..dc27f7ffec7 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ring_base.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_ring_base.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Base class for multivariate polynomial rings """ diff --git a/src/sage/rings/polynomial/multi_polynomial_sequence.py b/src/sage/rings/polynomial/multi_polynomial_sequence.py index 37381c084ac..3feda2e809b 100644 --- a/src/sage/rings/polynomial/multi_polynomial_sequence.py +++ b/src/sage/rings/polynomial/multi_polynomial_sequence.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Polynomial Sequences diff --git a/src/sage/rings/polynomial/ore_function_element.py b/src/sage/rings/polynomial/ore_function_element.py index fd871fa3b76..34ffa09853a 100644 --- a/src/sage/rings/polynomial/ore_function_element.py +++ b/src/sage/rings/polynomial/ore_function_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Fraction field elements of Ore polynomial rings diff --git a/src/sage/rings/polynomial/ore_function_field.py b/src/sage/rings/polynomial/ore_function_field.py index 1c78217508b..9d0d43db416 100644 --- a/src/sage/rings/polynomial/ore_function_field.py +++ b/src/sage/rings/polynomial/ore_function_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Fraction fields of Ore polynomial rings diff --git a/src/sage/rings/polynomial/ore_polynomial_element.pxd b/src/sage/rings/polynomial/ore_polynomial_element.pxd index 771c4d6325a..0a0d095354e 100644 --- a/src/sage/rings/polynomial/ore_polynomial_element.pxd +++ b/src/sage/rings/polynomial/ore_polynomial_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport AlgebraElement from sage.structure.parent cimport Parent from sage.rings.integer cimport Integer diff --git a/src/sage/rings/polynomial/ore_polynomial_element.pyx b/src/sage/rings/polynomial/ore_polynomial_element.pyx index 768565840f6..abcb3b12609 100644 --- a/src/sage/rings/polynomial/ore_polynomial_element.pyx +++ b/src/sage/rings/polynomial/ore_polynomial_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat r""" Univariate Ore polynomials diff --git a/src/sage/rings/polynomial/ore_polynomial_ring.py b/src/sage/rings/polynomial/ore_polynomial_ring.py index f28b90ad198..f6d20bfeed9 100644 --- a/src/sage/rings/polynomial/ore_polynomial_ring.py +++ b/src/sage/rings/polynomial/ore_polynomial_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat r""" Univariate Ore polynomial rings diff --git a/src/sage/rings/polynomial/padics/all.py b/src/sage/rings/polynomial/padics/all.py index e69de29bb2d..01c9cb07cd5 100644 --- a/src/sage/rings/polynomial/padics/all.py +++ b/src/sage/rings/polynomial/padics/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-pari diff --git a/src/sage/rings/polynomial/padics/polynomial_padic.py b/src/sage/rings/polynomial/padics/polynomial_padic.py index 30222f0ad59..9b1b784f640 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Base class for generic `p`-adic polynomials diff --git a/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py b/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py index 668f66fe574..a47b734ed2f 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari # sage.doctest: needs sage.libs.ntl """ `p`-adic Capped Relative Dense Polynomials diff --git a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py index 4db824cd0cc..307fc606a9d 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic_flat.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic_flat.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ `p`-adic Flat Polynomials """ diff --git a/src/sage/rings/polynomial/pbori/PyPolyBoRi.py b/src/sage/rings/polynomial/pbori/PyPolyBoRi.py index aa341f35c5d..032ec85161c 100644 --- a/src/sage/rings/polynomial/pbori/PyPolyBoRi.py +++ b/src/sage/rings/polynomial/pbori/PyPolyBoRi.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial r""" PolyBoRi's interface to libpolybori/BRiAL diff --git a/src/sage/rings/polynomial/pbori/__init__.py b/src/sage/rings/polynomial/pbori/__init__.py index 325ed646516..257a9b7d6a7 100644 --- a/src/sage/rings/polynomial/pbori/__init__.py +++ b/src/sage/rings/polynomial/pbori/__init__.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial """The PolyBoRi package implements a framework for computations with Polynomials in Boolean Ring. The core of PolyBoRi is a C++ library, which provides high-level data types for Boolean polynomials and monomials, diff --git a/src/sage/rings/polynomial/pbori/blocks.py b/src/sage/rings/polynomial/pbori/blocks.py index dac6ed81303..127cc826e58 100644 --- a/src/sage/rings/polynomial/pbori/blocks.py +++ b/src/sage/rings/polynomial/pbori/blocks.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial import sys from itertools import chain, islice diff --git a/src/sage/rings/polynomial/pbori/cnf.py b/src/sage/rings/polynomial/pbori/cnf.py index 61d85866013..a38c998d9fd 100644 --- a/src/sage/rings/polynomial/pbori/cnf.py +++ b/src/sage/rings/polynomial/pbori/cnf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from random import Random from sage.rings.polynomial.pbori.pbori import if_then_else as ite from .PyPolyBoRi import Polynomial diff --git a/src/sage/rings/polynomial/pbori/easy_polynomials.py b/src/sage/rings/polynomial/pbori/easy_polynomials.py index 8451e7536ee..0b24da41ded 100644 --- a/src/sage/rings/polynomial/pbori/easy_polynomials.py +++ b/src/sage/rings/polynomial/pbori/easy_polynomials.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from .interpolate import variety_lex_leading_terms, nf_lex_points from .pbori import easy_linear_factors diff --git a/src/sage/rings/polynomial/pbori/fglm.py b/src/sage/rings/polynomial/pbori/fglm.py index 60559b31b85..f9e0d3a4fe4 100644 --- a/src/sage/rings/polynomial/pbori/fglm.py +++ b/src/sage/rings/polynomial/pbori/fglm.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from .pbori import BooleSet, FGLMStrategy from .PyPolyBoRi import BoolePolynomialVector, Polynomial diff --git a/src/sage/rings/polynomial/pbori/frontend.py b/src/sage/rings/polynomial/pbori/frontend.py index b0072cd5abf..94f03a44490 100644 --- a/src/sage/rings/polynomial/pbori/frontend.py +++ b/src/sage/rings/polynomial/pbori/frontend.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial # Import basic functionality r""" This module defines an initial ring, and patches the declare_ring to use diff --git a/src/sage/rings/polynomial/pbori/gbcore.py b/src/sage/rings/polynomial/pbori/gbcore.py index 8371577157d..5f5a8437d10 100644 --- a/src/sage/rings/polynomial/pbori/gbcore.py +++ b/src/sage/rings/polynomial/pbori/gbcore.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial import contextlib from copy import copy from itertools import chain diff --git a/src/sage/rings/polynomial/pbori/gbrefs.py b/src/sage/rings/polynomial/pbori/gbrefs.py index 4ac92f359c2..39b29af0baa 100644 --- a/src/sage/rings/polynomial/pbori/gbrefs.py +++ b/src/sage/rings/polynomial/pbori/gbrefs.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial import gzip from io import StringIO import base64 as uu diff --git a/src/sage/rings/polynomial/pbori/heuristics.py b/src/sage/rings/polynomial/pbori/heuristics.py index 5dcfca16f87..053694a7ba2 100644 --- a/src/sage/rings/polynomial/pbori/heuristics.py +++ b/src/sage/rings/polynomial/pbori/heuristics.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from .PyPolyBoRi import Polynomial, gauss_on_polys diff --git a/src/sage/rings/polynomial/pbori/interpolate.py b/src/sage/rings/polynomial/pbori/interpolate.py index 783e1209e2a..3136bf8eb3e 100644 --- a/src/sage/rings/polynomial/pbori/interpolate.py +++ b/src/sage/rings/polynomial/pbori/interpolate.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial # Copyright (c) 2005-2007 by The PolyBoRi Team from time import process_time as clock from random import Random diff --git a/src/sage/rings/polynomial/pbori/interred.py b/src/sage/rings/polynomial/pbori/interred.py index 9ecb705057f..712ddbbc890 100644 --- a/src/sage/rings/polynomial/pbori/interred.py +++ b/src/sage/rings/polynomial/pbori/interred.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from .pbori import ReductionStrategy from .PyPolyBoRi import Polynomial diff --git a/src/sage/rings/polynomial/pbori/ll.py b/src/sage/rings/polynomial/pbori/ll.py index 9ec3a57bb4c..0e51cea2907 100644 --- a/src/sage/rings/polynomial/pbori/ll.py +++ b/src/sage/rings/polynomial/pbori/ll.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from .pbori import (top_index, if_then_else, substitute_variables, BooleSet, ll_red_nf_redsb, ll_red_nf_noredsb, diff --git a/src/sage/rings/polynomial/pbori/meson.build.in b/src/sage/rings/polynomial/pbori/meson.build.in new file mode 100644 index 00000000000..ed5a4b421ee --- /dev/null +++ b/src/sage/rings/polynomial/pbori/meson.build.in @@ -0,0 +1,7 @@ +brial = declare_dependency( + dependencies: [ + cc.find_library('brial', required: false), + ] +) +# Cannot be found via pkg-config +brial_groebner = cc.find_library('brial_groebner') diff --git a/src/sage/rings/polynomial/pbori/nf.py b/src/sage/rings/polynomial/pbori/nf.py index 004abef5243..3a5f26177df 100644 --- a/src/sage/rings/polynomial/pbori/nf.py +++ b/src/sage/rings/polynomial/pbori/nf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from sage.rings.polynomial.pbori.pbori import mod_mon_set from .pbori import (BooleSet, GroebnerStrategy, ReductionStrategy, parallel_reduce, easy_linear_factors) diff --git a/src/sage/rings/polynomial/pbori/parallel.py b/src/sage/rings/polynomial/pbori/parallel.py index 134ee6b2adb..2ef6840b449 100644 --- a/src/sage/rings/polynomial/pbori/parallel.py +++ b/src/sage/rings/polynomial/pbori/parallel.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial r""" parallel.py PolyBoRi diff --git a/src/sage/rings/polynomial/pbori/pbori.pxd b/src/sage/rings/polynomial/pbori/pbori.pxd index ae4ac1353d2..1cb2e136f8b 100644 --- a/src/sage/rings/polynomial/pbori/pbori.pxd +++ b/src/sage/rings/polynomial/pbori/pbori.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from libcpp.memory cimport unique_ptr, shared_ptr, make_shared from sage.rings.polynomial.multi_polynomial_ring_base cimport MPolynomialRing_base, BooleanPolynomialRing_base diff --git a/src/sage/rings/polynomial/pbori/pbori.pyx b/src/sage/rings/polynomial/pbori/pbori.pyx index 686edf8892d..0a1eb3b12a8 100644 --- a/src/sage/rings/polynomial/pbori/pbori.pyx +++ b/src/sage/rings/polynomial/pbori/pbori.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial # distutils: libraries = brial brial_groebner M4RI_LIBRARIES LIBPNG_LIBRARIES # distutils: library_dirs = M4RI_LIBDIR LIBPNG_LIBDIR # distutils: include_dirs = M4RI_INCDIR LIBPNG_INCDIR diff --git a/src/sage/rings/polynomial/pbori/randompoly.py b/src/sage/rings/polynomial/pbori/randompoly.py index 34cc53d5dd4..c0aaf1079c8 100644 --- a/src/sage/rings/polynomial/pbori/randompoly.py +++ b/src/sage/rings/polynomial/pbori/randompoly.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from random import Random from pprint import pformat diff --git a/src/sage/rings/polynomial/pbori/rank.py b/src/sage/rings/polynomial/pbori/rank.py index 98d0a1727c9..358311ba53f 100644 --- a/src/sage/rings/polynomial/pbori/rank.py +++ b/src/sage/rings/polynomial/pbori/rank.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial def input_signals(p): return list((p + p.lex_lead()).vars_as_monomial().variables()) diff --git a/src/sage/rings/polynomial/pbori/specialsets.py b/src/sage/rings/polynomial/pbori/specialsets.py index 9c5b4bdefc8..bb6a4d806c9 100644 --- a/src/sage/rings/polynomial/pbori/specialsets.py +++ b/src/sage/rings/polynomial/pbori/specialsets.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from .pbori import (top_index, if_then_else, mod_mon_set, BooleSet, BooleConstant) from .PyPolyBoRi import (Polynomial, Monomial, Variable) diff --git a/src/sage/rings/polynomial/pbori/statistics.py b/src/sage/rings/polynomial/pbori/statistics.py index efd49fcd005..aa5a9660402 100644 --- a/src/sage/rings/polynomial/pbori/statistics.py +++ b/src/sage/rings/polynomial/pbori/statistics.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-brial from .pbori import top_index, BooleConstant from .PyPolyBoRi import Monomial, Polynomial diff --git a/src/sage/rings/polynomial/plural.pxd b/src/sage/rings/polynomial/plural.pxd index 90b79947592..0c1eaa5ec53 100644 --- a/src/sage/rings/polynomial/plural.pxd +++ b/src/sage/rings/polynomial/plural.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular from sage.libs.singular.decl cimport * from sage.rings.ring cimport Ring from sage.structure.element cimport RingElement, Element diff --git a/src/sage/rings/polynomial/plural.pyx b/src/sage/rings/polynomial/plural.pyx index 35de7feefe5..5e366af9395 100644 --- a/src/sage/rings/polynomial/plural.pyx +++ b/src/sage/rings/polynomial/plural.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-singular r""" Noncommutative polynomials via libSINGULAR/Plural diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index 69ddc888378..12c8f77843a 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories cdef class PolyDict: cdef dict __repn diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index fe2438c8e4f..03798c9130b 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Generic data structures for multivariate polynomials diff --git a/src/sage/rings/polynomial/polynomial_compiled.pxd b/src/sage/rings/polynomial/polynomial_compiled.pxd index a7fca760037..cad4880c609 100644 --- a/src/sage/rings/polynomial/polynomial_compiled.pxd +++ b/src/sage/rings/polynomial/polynomial_compiled.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.misc.binary_tree import BinaryTree from sage.misc.binary_tree cimport BinaryTree diff --git a/src/sage/rings/polynomial/polynomial_compiled.pyx b/src/sage/rings/polynomial/polynomial_compiled.pyx index dbdd9d55b82..17cff2fdb0c 100644 --- a/src/sage/rings/polynomial/polynomial_compiled.pyx +++ b/src/sage/rings/polynomial/polynomial_compiled.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Polynomial Compilers diff --git a/src/sage/rings/polynomial/polynomial_complex_arb.pxd b/src/sage/rings/polynomial/polynomial_complex_arb.pxd index bda5cc66008..4c198a4b945 100644 --- a/src/sage/rings/polynomial/polynomial_complex_arb.pxd +++ b/src/sage/rings/polynomial/polynomial_complex_arb.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.flint.acb_poly cimport * from sage.rings.polynomial.polynomial_element cimport Polynomial diff --git a/src/sage/rings/polynomial/polynomial_complex_arb.pyx b/src/sage/rings/polynomial/polynomial_complex_arb.pyx index 7f4fc81a4e5..eb2a9028dca 100644 --- a/src/sage/rings/polynomial/polynomial_complex_arb.pyx +++ b/src/sage/rings/polynomial/polynomial_complex_arb.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Univariate polynomials over `\CC` with Arb ball coefficients. diff --git a/src/sage/rings/polynomial/polynomial_element.pxd b/src/sage/rings/polynomial/polynomial_element.pxd index a8f2cf3057b..f5b9363cc4c 100644 --- a/src/sage/rings/polynomial/polynomial_element.pxd +++ b/src/sage/rings/polynomial/polynomial_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element import Element from sage.structure.element cimport Element, CommutativeAlgebraElement, ModuleElement from sage.structure.parent cimport Parent diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index 2449b3208ae..ad4dd18606d 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Univariate polynomial base class diff --git a/src/sage/rings/polynomial/polynomial_element_generic.py b/src/sage/rings/polynomial/polynomial_element_generic.py index c3df26200e2..53b1b58bfb1 100644 --- a/src/sage/rings/polynomial/polynomial_element_generic.py +++ b/src/sage/rings/polynomial/polynomial_element_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Univariate Polynomials over domains and fields @@ -990,7 +991,10 @@ def gcd(self, other, algorithm=None): implementation = "FLINT" else: implementation = "NTL" - D = PolynomialRing(S.base_ring(),'x',implementation=implementation) + try: + D = PolynomialRing(S.base_ring(),'x',implementation=implementation) + except ImportError: + D = PolynomialRing(S.base_ring(),'x') g = D(self).gcd(D(other)) return S(g) elif algorithm == "generic": diff --git a/src/sage/rings/polynomial/polynomial_fateman.py b/src/sage/rings/polynomial/polynomial_fateman.py index ab13dd72708..19f0f9cf926 100644 --- a/src/sage/rings/polynomial/polynomial_fateman.py +++ b/src/sage/rings/polynomial/polynomial_fateman.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories "Polynomial multiplication by Kronecker substitution" ################################################################################ # Copyright (C) 2007 William Stein diff --git a/src/sage/rings/polynomial/polynomial_gf2x.pxd b/src/sage/rings/polynomial/polynomial_gf2x.pxd index 293715c0379..74ae9d5c08f 100644 --- a/src/sage/rings/polynomial/polynomial_gf2x.pxd +++ b/src/sage/rings/polynomial/polynomial_gf2x.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox from sage.libs.ntl.GF2X cimport GF2X_c ctypedef GF2X_c celement diff --git a/src/sage/rings/polynomial/polynomial_gf2x.pyx b/src/sage/rings/polynomial/polynomial_gf2x.pyx index cf4a224dda9..c350f2292f2 100644 --- a/src/sage/rings/polynomial/polynomial_gf2x.pyx +++ b/src/sage/rings/polynomial/polynomial_gf2x.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-linbox # distutils: libraries = gmp NTL_LIBRARIES # distutils: library_dirs = NTL_LIBDIR # distutils: extra_link_args = NTL_LIBEXTRA diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pxd b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pxd index b1b593d6a26..3a84ded6d0e 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pxd +++ b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.flint.types cimport fmpz_poly_t from sage.rings.polynomial.polynomial_element cimport Polynomial diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx index fc2ab9b584e..18c8bc75ed4 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_integer_dense_flint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = NTL_LIBRARIES gmp # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pxd b/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pxd index fcd907e1abe..7df59e9bc75 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pxd +++ b/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.types cimport ZZX_c from sage.rings.polynomial.polynomial_element cimport Polynomial diff --git a/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx b/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx index 142c7b324ad..046fa808e3f 100644 --- a/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx +++ b/src/sage/rings/polynomial/polynomial_integer_dense_ntl.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pxd b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pxd index 6934acfee8d..96409fb31d5 100644 --- a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pxd +++ b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.structure.element cimport Element, ModuleElement, RingElement from sage.rings.polynomial.polynomial_element cimport Polynomial diff --git a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx index 68605382f1f..aeb7eab6052 100644 --- a/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx +++ b/src/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # distutils: libraries = NTL_LIBRARIES gmp # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/polynomial/polynomial_number_field.pyx b/src/sage/rings/polynomial/polynomial_number_field.pyx index 7cef7645964..bde433dd3ea 100644 --- a/src/sage/rings/polynomial/polynomial_number_field.pyx +++ b/src/sage/rings/polynomial/polynomial_number_field.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Univariate polynomials over number fields diff --git a/src/sage/rings/polynomial/polynomial_quotient_ring.py b/src/sage/rings/polynomial/polynomial_quotient_ring.py index e12977e8464..c9deb7ff79f 100644 --- a/src/sage/rings/polynomial/polynomial_quotient_ring.py +++ b/src/sage/rings/polynomial/polynomial_quotient_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.pari """ Quotients of Univariate Polynomial Rings diff --git a/src/sage/rings/polynomial/polynomial_quotient_ring_element.py b/src/sage/rings/polynomial/polynomial_quotient_ring_element.py index 919b4b856d4..febfc60fde1 100644 --- a/src/sage/rings/polynomial/polynomial_quotient_ring_element.py +++ b/src/sage/rings/polynomial/polynomial_quotient_ring_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.pari r""" Elements of Quotients of Univariate Polynomial Rings @@ -561,15 +562,17 @@ def field_extension(self, names): f = R.hom([alpha], F, check=False) - from sage.rings.number_field.number_field_rel import NumberField_relative - if isinstance(F, NumberField_relative): - - base_map = F.base_field().hom([R.base_ring().gen()]) - g = F.Hom(R)(x, base_map) - + try: + from sage.rings.number_field.number_field_rel import NumberField_relative + except ImportError: + pass else: - g = F.hom([x], R, check=False) + if isinstance(F, NumberField_relative): + base_map = F.base_field().hom([R.base_ring().gen()]) + g = F.Hom(R)(x, base_map) + return F, f, g + g = F.hom([x], R, check=False) return F, f, g def charpoly(self, var): diff --git a/src/sage/rings/polynomial/polynomial_rational_flint.pxd b/src/sage/rings/polynomial/polynomial_rational_flint.pxd index f4644f19d04..60671b0ebab 100644 --- a/src/sage/rings/polynomial/polynomial_rational_flint.pxd +++ b/src/sage/rings/polynomial/polynomial_rational_flint.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + ############################################################################### # Copyright (C) 2010 Sebastian Pancratz # # # diff --git a/src/sage/rings/polynomial/polynomial_rational_flint.pyx b/src/sage/rings/polynomial/polynomial_rational_flint.pyx index ceaa9d7b2d5..80ba762aeed 100644 --- a/src/sage/rings/polynomial/polynomial_rational_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_rational_flint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = NTL_LIBRARIES gmp # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx b/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx index cfcdcabdcb5..70706be9d8e 100644 --- a/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx +++ b/src/sage/rings/polynomial/polynomial_real_mpfr_dense.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Dense univariate polynomials over `\RR`, implemented using MPFR diff --git a/src/sage/rings/polynomial/polynomial_ring.py b/src/sage/rings/polynomial/polynomial_ring.py index 2bda9f6f9c3..4eae07058e0 100644 --- a/src/sage/rings/polynomial/polynomial_ring.py +++ b/src/sage/rings/polynomial/polynomial_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Univariate Polynomial Rings diff --git a/src/sage/rings/polynomial/polynomial_ring_constructor.py b/src/sage/rings/polynomial/polynomial_ring_constructor.py index 5cbc74dd1d5..1c67d83fa79 100644 --- a/src/sage/rings/polynomial/polynomial_ring_constructor.py +++ b/src/sage/rings/polynomial/polynomial_ring_constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Constructors for polynomial rings diff --git a/src/sage/rings/polynomial/polynomial_ring_homomorphism.pxd b/src/sage/rings/polynomial/polynomial_ring_homomorphism.pxd index eccb83b1ec2..5d6b14623c3 100644 --- a/src/sage/rings/polynomial/polynomial_ring_homomorphism.pxd +++ b/src/sage/rings/polynomial/polynomial_ring_homomorphism.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.morphism cimport RingHomomorphism_from_base cdef class PolynomialRingHomomorphism_from_base(RingHomomorphism_from_base): diff --git a/src/sage/rings/polynomial/polynomial_ring_homomorphism.pyx b/src/sage/rings/polynomial/polynomial_ring_homomorphism.pyx index 087e520dc23..abd98dccafe 100644 --- a/src/sage/rings/polynomial/polynomial_ring_homomorphism.pyx +++ b/src/sage/rings/polynomial/polynomial_ring_homomorphism.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Ring homomorphisms from a polynomial ring to another ring diff --git a/src/sage/rings/polynomial/polynomial_singular_interface.py b/src/sage/rings/polynomial/polynomial_singular_interface.py index 1bdca3af614..fde45d02270 100644 --- a/src/sage/rings/polynomial/polynomial_singular_interface.py +++ b/src/sage/rings/polynomial/polynomial_singular_interface.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Polynomial Interfaces to Singular @@ -69,6 +70,9 @@ def _do_singular_init_(singular, base_ring, char, _vars, order): // block 2 : ordering C, None) """ + if singular is None: + from sage.interfaces.singular import singular + make_ring = lambda s: singular.ring(s, _vars, order=order) if base_ring is ZZ: @@ -332,6 +336,8 @@ def _singular_(self, singular=None): R = self.__singular if R.parent() is not singular: raise ValueError + elif singular is None: + from sage.interfaces.singular import singular R._check_valid() if self.base_ring() is ZZ or self.base_ring().is_prime_field(): return R diff --git a/src/sage/rings/polynomial/polynomial_template.pxi b/src/sage/rings/polynomial/polynomial_template.pxi index b76d62a9e92..93530f96578 100644 --- a/src/sage/rings/polynomial/polynomial_template.pxi +++ b/src/sage/rings/polynomial/polynomial_template.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl """ Polynomial Template for C/C++ Library Interfaces """ diff --git a/src/sage/rings/polynomial/polynomial_template_header.pxi b/src/sage/rings/polynomial/polynomial_template_header.pxi index 64ab106f314..091f92a9d05 100644 --- a/src/sage/rings/polynomial/polynomial_template_header.pxi +++ b/src/sage/rings/polynomial/polynomial_template_header.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl """ Polynomial Template for C/C++ Library Interfaces """ diff --git a/src/sage/rings/polynomial/polynomial_zmod_flint.pxd b/src/sage/rings/polynomial/polynomial_zmod_flint.pxd index dfab67882fc..2afe965b653 100644 --- a/src/sage/rings/polynomial/polynomial_zmod_flint.pxd +++ b/src/sage/rings/polynomial/polynomial_zmod_flint.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.flint.types cimport nmod_poly_t, nmod_poly_struct, fmpz_poly_t from sage.structure.parent cimport Parent from sage.rings.integer cimport Integer diff --git a/src/sage/rings/polynomial/polynomial_zmod_flint.pyx b/src/sage/rings/polynomial/polynomial_zmod_flint.pyx index 5b3539d6b70..0049e65480c 100644 --- a/src/sage/rings/polynomial/polynomial_zmod_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_zmod_flint.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: libraries = gmp NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR diff --git a/src/sage/rings/polynomial/polynomial_zz_pex.pxd b/src/sage/rings/polynomial/polynomial_zz_pex.pxd index b3cd775542e..8b0479efd1a 100644 --- a/src/sage/rings/polynomial/polynomial_zz_pex.pxd +++ b/src/sage/rings/polynomial/polynomial_zz_pex.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.ntl.ZZ_pEX cimport ZZ_pEX_c from sage.libs.ntl.ntl_ZZ_pEContext cimport ZZ_pEContext_ptrs from sage.rings.integer cimport Integer diff --git a/src/sage/rings/polynomial/polynomial_zz_pex.pyx b/src/sage/rings/polynomial/polynomial_zz_pex.pyx index ec33846f2d9..57b18de6966 100644 --- a/src/sage/rings/polynomial/polynomial_zz_pex.pyx +++ b/src/sage/rings/polynomial/polynomial_zz_pex.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl # sage.doctest: needs sage.libs.ntl sage.rings.finite_rings # distutils: libraries = NTL_LIBRARIES gmp # distutils: extra_compile_args = NTL_CFLAGS diff --git a/src/sage/rings/polynomial/real_roots.pxd b/src/sage/rings/polynomial/real_roots.pxd index 17b3ef6d8b8..a6a9e5b49a8 100644 --- a/src/sage/rings/polynomial/real_roots.pxd +++ b/src/sage/rings/polynomial/real_roots.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.rings.rational cimport Rational from sage.modules.vector_integer_dense cimport Vector_integer_dense from sage.modules.vector_real_double_dense cimport Vector_real_double_dense diff --git a/src/sage/rings/polynomial/real_roots.pyx b/src/sage/rings/polynomial/real_roots.pyx index a91a95a1d55..0b20cd50a02 100644 --- a/src/sage/rings/polynomial/real_roots.pyx +++ b/src/sage/rings/polynomial/real_roots.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs numpy sage.libs.linbox """ Isolate Real Roots of Real Polynomials diff --git a/src/sage/rings/polynomial/refine_root.pyx b/src/sage/rings/polynomial/refine_root.pyx index 1d6eb6bb146..ac1e6847d32 100644 --- a/src/sage/rings/polynomial/refine_root.pyx +++ b/src/sage/rings/polynomial/refine_root.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint """ Refine polynomial roots using Newton--Raphson diff --git a/src/sage/rings/polynomial/skew_polynomial_element.pxd b/src/sage/rings/polynomial/skew_polynomial_element.pxd index 1eb38b5b474..aad3d2791f9 100644 --- a/src/sage/rings/polynomial/skew_polynomial_element.pxd +++ b/src/sage/rings/polynomial/skew_polynomial_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.rings.polynomial.ore_polynomial_element cimport OrePolynomial_generic_dense cdef class SkewPolynomial_generic_dense(OrePolynomial_generic_dense): diff --git a/src/sage/rings/polynomial/skew_polynomial_element.pyx b/src/sage/rings/polynomial/skew_polynomial_element.pyx index 70bc7f5b448..b15f9a90802 100644 --- a/src/sage/rings/polynomial/skew_polynomial_element.pyx +++ b/src/sage/rings/polynomial/skew_polynomial_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat r""" Univariate skew polynomials diff --git a/src/sage/rings/polynomial/skew_polynomial_finite_field.pxd b/src/sage/rings/polynomial/skew_polynomial_finite_field.pxd index f27cfdd6ff1..acb0e1bfe5e 100644 --- a/src/sage/rings/polynomial/skew_polynomial_finite_field.pxd +++ b/src/sage/rings/polynomial/skew_polynomial_finite_field.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.rings.polynomial.skew_polynomial_finite_order cimport SkewPolynomial_finite_order_dense cdef class SkewPolynomial_finite_field_dense (SkewPolynomial_finite_order_dense): diff --git a/src/sage/rings/polynomial/skew_polynomial_finite_field.pyx b/src/sage/rings/polynomial/skew_polynomial_finite_field.pyx index 0c8c660c18c..5198c517337 100644 --- a/src/sage/rings/polynomial/skew_polynomial_finite_field.pyx +++ b/src/sage/rings/polynomial/skew_polynomial_finite_field.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.rings.finite_rings r""" Univariate dense skew polynomials over finite fields diff --git a/src/sage/rings/polynomial/skew_polynomial_finite_order.pxd b/src/sage/rings/polynomial/skew_polynomial_finite_order.pxd index 438773a39ef..876c15e505c 100644 --- a/src/sage/rings/polynomial/skew_polynomial_finite_order.pxd +++ b/src/sage/rings/polynomial/skew_polynomial_finite_order.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.rings.polynomial.skew_polynomial_element cimport SkewPolynomial_generic_dense cdef class SkewPolynomial_finite_order_dense (SkewPolynomial_generic_dense): diff --git a/src/sage/rings/polynomial/skew_polynomial_finite_order.pyx b/src/sage/rings/polynomial/skew_polynomial_finite_order.pyx index f90484cba62..cb3fb77d595 100644 --- a/src/sage/rings/polynomial/skew_polynomial_finite_order.pyx +++ b/src/sage/rings/polynomial/skew_polynomial_finite_order.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat sage.rings.finite_rings r""" Univariate dense skew polynomials over a field with a finite order automorphism diff --git a/src/sage/rings/polynomial/skew_polynomial_ring.py b/src/sage/rings/polynomial/skew_polynomial_ring.py index 6feadce07b1..706da5653e8 100644 --- a/src/sage/rings/polynomial/skew_polynomial_ring.py +++ b/src/sage/rings/polynomial/skew_polynomial_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.combinat r""" Univariate skew polynomial rings diff --git a/src/sage/rings/polynomial/symmetric_ideal.py b/src/sage/rings/polynomial/symmetric_ideal.py index 869af07d904..88207c51f2a 100644 --- a/src/sage/rings/polynomial/symmetric_ideal.py +++ b/src/sage/rings/polynomial/symmetric_ideal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.singular """ Symmetric Ideals of Infinite Polynomial Rings diff --git a/src/sage/rings/polynomial/symmetric_reduction.pxd b/src/sage/rings/polynomial/symmetric_reduction.pxd index 49bd292f995..5b6a616ca54 100644 --- a/src/sage/rings/polynomial/symmetric_reduction.pxd +++ b/src/sage/rings/polynomial/symmetric_reduction.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories cdef class SymmetricReductionStrategy: cdef list _lm cdef list _lengths diff --git a/src/sage/rings/polynomial/symmetric_reduction.pyx b/src/sage/rings/polynomial/symmetric_reduction.pyx index 0794ca8a941..4d5f57b024a 100644 --- a/src/sage/rings/polynomial/symmetric_reduction.pyx +++ b/src/sage/rings/polynomial/symmetric_reduction.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.libs.singular r""" Symmetric Reduction of Infinite Polynomials diff --git a/src/sage/rings/polynomial/term_order.py b/src/sage/rings/polynomial/term_order.py index 1bed10ba867..3824ef8d218 100644 --- a/src/sage/rings/polynomial/term_order.py +++ b/src/sage/rings/polynomial/term_order.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Term orders diff --git a/src/sage/rings/polynomial/toy_buchberger.py b/src/sage/rings/polynomial/toy_buchberger.py index f00f4bdbabd..1df09aae86f 100644 --- a/src/sage/rings/polynomial/toy_buchberger.py +++ b/src/sage/rings/polynomial/toy_buchberger.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Educational versions of Groebner basis algorithms diff --git a/src/sage/rings/polynomial/toy_d_basis.py b/src/sage/rings/polynomial/toy_d_basis.py index fe8b367cb22..6f2b045524d 100644 --- a/src/sage/rings/polynomial/toy_d_basis.py +++ b/src/sage/rings/polynomial/toy_d_basis.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Educational version of the `d`-Groebner basis algorithm over PIDs diff --git a/src/sage/rings/polynomial/toy_variety.py b/src/sage/rings/polynomial/toy_variety.py index ba67a1ece2e..aea6e774728 100644 --- a/src/sage/rings/polynomial/toy_variety.py +++ b/src/sage/rings/polynomial/toy_variety.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Educational versions of Groebner basis algorithms: triangular factorization diff --git a/src/sage/rings/polynomial/weil/all.py b/src/sage/rings/polynomial/weil/all.py index bb0a807c3da..94578021f15 100644 --- a/src/sage/rings/polynomial/weil/all.py +++ b/src/sage/rings/polynomial/weil/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint from sage.misc.lazy_import import lazy_import lazy_import('sage.rings.polynomial.weil.weil_polynomials', 'WeilPolynomials') del lazy_import diff --git a/src/sage/rings/polynomial/weil/power_sums.c b/src/sage/rings/polynomial/weil/power_sums.c index a89786cb22e..359b5368124 100644 --- a/src/sage/rings/polynomial/weil/power_sums.c +++ b/src/sage/rings/polynomial/weil/power_sums.c @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-flint + */ /* Low-level code to exhaust over trees of Weil polynomials. This code does not implement parallelism; see the Cython wrapper. diff --git a/src/sage/rings/polynomial/weil/power_sums.h b/src/sage/rings/polynomial/weil/power_sums.h index 74209bf89f5..100b8fc7f8b 100644 --- a/src/sage/rings/polynomial/weil/power_sums.h +++ b/src/sage/rings/polynomial/weil/power_sums.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-flint + */ #pragma once #include #include diff --git a/src/sage/rings/polynomial/weil/weil_polynomials.pyx b/src/sage/rings/polynomial/weil/weil_polynomials.pyx index e2dd7bd04e7..7d4bd936f8a 100755 --- a/src/sage/rings/polynomial/weil/weil_polynomials.pyx +++ b/src/sage/rings/polynomial/weil/weil_polynomials.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Iterator for Weil polynomials. @@ -50,7 +51,6 @@ from cysignals.signals cimport sig_on, sig_off from sage.rings.rational_field import QQ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing -from sage.functions.generalized import sgn from sage.rings.integer cimport Integer from sage.libs.gmp.types cimport mpz_t @@ -58,7 +58,7 @@ from sage.libs.gmp.mpz cimport mpz_set from sage.libs.flint.fmpz cimport * from sage.libs.flint.fmpz_vec cimport * -cdef extern from "sage/rings/polynomial/weil/power_sums.c": +cdef extern from "power_sums.c": ctypedef struct ps_static_data_t: pass @@ -319,7 +319,7 @@ class WeilPolynomials_iter(): for _ in range(d2+1-len(coefflist)): coefflist.append(0) modlist.append(1) - coeffsign = sgn(coefflist[0]) + coeffsign = coefflist[0].sign() coefflist = [x*coeffsign for x in reversed(coefflist)] if node_limit is None: node_limit = -1 diff --git a/src/sage/rings/power_series_mpoly.pxd b/src/sage/rings/power_series_mpoly.pxd index d8816e694b7..ad0723ed59c 100644 --- a/src/sage/rings/power_series_mpoly.pxd +++ b/src/sage/rings/power_series_mpoly.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport ModuleElement from sage.rings.power_series_ring_element cimport PowerSeries diff --git a/src/sage/rings/power_series_mpoly.pyx b/src/sage/rings/power_series_mpoly.pyx index 741b0ad94e7..de6f76cf108 100644 --- a/src/sage/rings/power_series_mpoly.pyx +++ b/src/sage/rings/power_series_mpoly.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # NOT ready to be used -- possibly should be deleted. from sage.rings.power_series_ring_element cimport PowerSeries diff --git a/src/sage/rings/power_series_pari.pxd b/src/sage/rings/power_series_pari.pxd index 35b37929c33..21028c6861a 100644 --- a/src/sage/rings/power_series_pari.pxd +++ b/src/sage/rings/power_series_pari.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + from cypari2.gen cimport Gen as pari_gen from sage.rings.power_series_ring_element cimport PowerSeries diff --git a/src/sage/rings/power_series_pari.pyx b/src/sage/rings/power_series_pari.pyx index 8f7ff769dd1..e800ca7710f 100644 --- a/src/sage/rings/power_series_pari.pyx +++ b/src/sage/rings/power_series_pari.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-pari + r""" Power series implemented using PARI diff --git a/src/sage/rings/power_series_poly.pxd b/src/sage/rings/power_series_poly.pxd index e37e1fb26cf..e31c8bf6feb 100644 --- a/src/sage/rings/power_series_poly.pxd +++ b/src/sage/rings/power_series_poly.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.power_series_ring_element cimport PowerSeries from sage.rings.polynomial.polynomial_element cimport Polynomial from sage.categories.action cimport Action diff --git a/src/sage/rings/power_series_poly.pyx b/src/sage/rings/power_series_poly.pyx index 309d72c8f6a..d27bd60f4f8 100644 --- a/src/sage/rings/power_series_poly.pyx +++ b/src/sage/rings/power_series_poly.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Power Series Methods @@ -1080,7 +1081,7 @@ cdef class PowerSeries_poly(PowerSeries): f2 = f.__pari__() g = f2.serreverse() return PowerSeries_poly(f.parent(), g.Vec(-out_prec), out_prec) - except (TypeError,ValueError,AttributeError,PariError): + except (TypeError, ValueError, AttributeError, PariError, ModuleNotFoundError): # if pari fails, continue with Lagrange inversion from sage.misc.verbose import verbose verbose("passing to pari failed; trying Lagrange inversion") @@ -1142,18 +1143,18 @@ cdef class PowerSeries_poly(PowerSeries): EXAMPLES:: sage: z = PowerSeriesRing(QQ, 'z').gen() - sage: exp(z).pade(4, 0) + sage: z.exp().pade(4, 0) 1/24*z^4 + 1/6*z^3 + 1/2*z^2 + z + 1 - sage: exp(z).pade(1, 1) + sage: z.exp().pade(1, 1) (-z - 2)/(z - 2) - sage: exp(z).pade(3, 3) + sage: z.exp().pade(3, 3) (-z^3 - 12*z^2 - 60*z - 120)/(z^3 - 12*z^2 + 60*z - 120) - sage: log(1-z).pade(4, 4) + sage: (1 - z).log().pade(4, 4) (25/6*z^4 - 130/3*z^3 + 105*z^2 - 70*z)/(z^4 - 20*z^3 + 90*z^2 - 140*z + 70) - sage: sqrt(1+z).pade(3, 2) + sage: (1 + z).sqrt().pade(3, 2) (1/6*z^3 + 3*z^2 + 8*z + 16/3)/(z^2 + 16/3*z + 16/3) - sage: exp(2*z).pade(3, 3) + sage: (2*z).exp().pade(3, 3) (-z^3 - 6*z^2 - 15*z - 15)/(z^3 - 6*z^2 + 15*z - 15) TESTS: @@ -1162,8 +1163,8 @@ cdef class PowerSeries_poly(PowerSeries): sage: # needs sage.rings.real_mpfr sage: R. = RR[[]] - sage: f = exp(2*z) - sage: f.pade(3, 3) # abs tol 1e-10 + sage: f = (2*z).exp() + sage: f.pade(3, 3) # abs tol 1e-10 (-z^3 - 6.0*z^2 - 15.0*z - 15.0)/(z^3 - 6.0*z^2 + 15.0*z - 15.0) When precision is too low:: diff --git a/src/sage/rings/power_series_ring.py b/src/sage/rings/power_series_ring.py index e6c932aadff..496b7f0d8e1 100644 --- a/src/sage/rings/power_series_ring.py +++ b/src/sage/rings/power_series_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Power Series Rings @@ -40,10 +41,10 @@ ring:: sage: R. = PowerSeriesRing(QQ, default_prec=10) - sage: sin(x) + sage: x.sin() x - 1/6*x^3 + 1/120*x^5 - 1/5040*x^7 + 1/362880*x^9 + O(x^10) sage: R. = PowerSeriesRing(QQ, default_prec=15) - sage: sin(x) + sage: x.sin() x - 1/6*x^3 + 1/120*x^5 - 1/5040*x^7 + 1/362880*x^9 - 1/39916800*x^11 + 1/6227020800*x^13 + O(x^15) diff --git a/src/sage/rings/power_series_ring_element.pxd b/src/sage/rings/power_series_ring_element.pxd index e5c031ee147..d9b04b287ed 100644 --- a/src/sage/rings/power_series_ring_element.pxd +++ b/src/sage/rings/power_series_ring_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport AlgebraElement, RingElement cdef class PowerSeries(AlgebraElement): diff --git a/src/sage/rings/power_series_ring_element.pyx b/src/sage/rings/power_series_ring_element.pyx index b1ca6ea4ab1..cbddd7bc50c 100644 --- a/src/sage/rings/power_series_ring_element.pyx +++ b/src/sage/rings/power_series_ring_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Power Series diff --git a/src/sage/rings/puiseux_series_ring.py b/src/sage/rings/puiseux_series_ring.py index 06b752f92df..224685b5444 100644 --- a/src/sage/rings/puiseux_series_ring.py +++ b/src/sage/rings/puiseux_series_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Puiseux Series Ring diff --git a/src/sage/rings/puiseux_series_ring_element.pxd b/src/sage/rings/puiseux_series_ring_element.pxd index 50852a42d33..1719cd3e118 100644 --- a/src/sage/rings/puiseux_series_ring_element.pxd +++ b/src/sage/rings/puiseux_series_ring_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport AlgebraElement, ModuleElement from sage.rings.laurent_series_ring_element cimport LaurentSeries diff --git a/src/sage/rings/puiseux_series_ring_element.pyx b/src/sage/rings/puiseux_series_ring_element.pyx index 902ce96bd7c..b4a32bf81cd 100644 --- a/src/sage/rings/puiseux_series_ring_element.pyx +++ b/src/sage/rings/puiseux_series_ring_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Puiseux Series Ring Element @@ -875,6 +876,7 @@ cdef class PuiseuxSeries(AlgebraElement): EXAMPLES:: + sage: # needs sage.rings.finite_rings sage: P. = PolynomialRing(GF(5)) sage: R. = PuiseuxSeriesRing(P) sage: p = 3*y*x**(-2/3) + 2*y**2*x**(1/5); p @@ -948,6 +950,7 @@ cdef class PuiseuxSeries(AlgebraElement): EXAMPLES:: + sage: # needs sage.rings.finite_rings sage: R. = PuiseuxSeriesRing(GF(3)) sage: p = (x**(-1/3) + 2*x**3)**2; p x^(-2/3) + x^(8/3) + x^6 diff --git a/src/sage/rings/qqbar.py b/src/sage/rings/qqbar.py index 300d64b8279..60a0a05e439 100644 --- a/src/sage/rings/qqbar.py +++ b/src/sage/rings/qqbar.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: needs sage.libs.linbox r""" Algebraic numbers diff --git a/src/sage/rings/qqbar_decorators.py b/src/sage/rings/qqbar_decorators.py index 7343a0b9b08..8f946e16e07 100644 --- a/src/sage/rings/qqbar_decorators.py +++ b/src/sage/rings/qqbar_decorators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.number_field """ QQbar decorators diff --git a/src/sage/rings/quotient_ring.py b/src/sage/rings/quotient_ring.py index 4cf3979265f..05ff144e90c 100644 --- a/src/sage/rings/quotient_ring.py +++ b/src/sage/rings/quotient_ring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Quotient Rings diff --git a/src/sage/rings/quotient_ring_element.py b/src/sage/rings/quotient_ring_element.py index 6699ae9f74b..924f41ed154 100644 --- a/src/sage/rings/quotient_ring_element.py +++ b/src/sage/rings/quotient_ring_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Quotient Ring Elements diff --git a/src/sage/rings/rational.pxd b/src/sage/rings/rational.pxd index f42f86515d3..aeb8ab68841 100644 --- a/src/sage/rings/rational.pxd +++ b/src/sage/rings/rational.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.libs.gmp.types cimport mpq_t cimport sage.structure.element diff --git a/src/sage/rings/rational.pyx b/src/sage/rings/rational.pyx index 272650abeef..8f6540fa7ee 100644 --- a/src/sage/rings/rational.pyx +++ b/src/sage/rings/rational.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # distutils: libraries = NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS # distutils: include_dirs = NTL_INCDIR @@ -67,6 +68,8 @@ import fractions import sage.rings.rational_field +cimport sage.rings.integer as integer + from sage.arith.long cimport integer_check_long_py from sage.categories.morphism cimport Morphism from sage.categories.map cimport Map @@ -598,7 +601,7 @@ cdef class Rational(sage.structure.element.FieldElement): elif isinstance(x, integer.Integer): set_from_Integer(self, x) - elif isinstance(x, sage.rings.real_mpfr.RealNumber): + elif isinstance(x, RealNumber_classes): if x == 0: mpq_set_si(self.value, 0, 1) @@ -674,14 +677,23 @@ cdef class Rational(sage.structure.element.FieldElement): mpq_set(self.value, temp_rational.value) elif isinstance(x, (float, sage.rings.real_double.RealDoubleElement)): - self.__set_value(sage.rings.real_mpfr.RealNumber(sage.rings.real_mpfr.RR, x), base) + try: + from sage.rings.real_mpfr import RR, RealNumber + except ImportError: + if base: + raise + from fractions import Fraction + self.__set_value(Fraction.from_float(float(x)), 0) + else: + self.__set_value(RealNumber(RR, x), base) elif is_numpy_type(type(x)): import numpy if isinstance(x, numpy.integer): self.__set_value(integer.Integer(x), base) elif isinstance(x, numpy.floating): - self.__set_value(sage.rings.real_mpfr.RR(x), base) + from sage.rings.real_mpfr import RR + self.__set_value(RR(x), base) else: raise TypeError("unable to convert {!r} to a rational".format(x)) diff --git a/src/sage/rings/rational_field.py b/src/sage/rings/rational_field.py index 47508909c91..a295bcaf539 100644 --- a/src/sage/rings/rational_field.py +++ b/src/sage/rings/rational_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Field `\QQ` of Rational Numbers @@ -335,8 +336,16 @@ def completion(self, p, prec, extras={}): """ from sage.rings.infinity import Infinity if p == Infinity: - from sage.rings.real_field import create_RealField - return create_RealField(prec, **extras) + try: + from sage.rings.real_field import create_RealField + except ImportError: + if prec == 53: + from sage.rings.real_double import RDF + return RDF + else: + raise + else: + return create_RealField(prec, **extras) else: from sage.rings.padics.factory import Qp return Qp(p, prec, **extras) @@ -836,7 +845,6 @@ def hilbert_symbol_negative_at_S(self, S, b, check=True): from sage.matrix.constructor import matrix from sage.modules.free_module import VectorSpace from sage.rings.finite_rings.finite_field_constructor import FiniteField as GF - from sage.rings.padics.factory import Qp from sage.sets.primes import Primes # input checks @@ -859,6 +867,7 @@ def hilbert_symbol_negative_at_S(self, S, b, check=True): if check and not is_prime(p): raise ValueError("all entries in list must be prime" " or -1 for infinite place") + from sage.rings.padics.factory import Qp R = Qp(p) if R(b).is_square(): raise ValueError("second argument must be a nonsquare with" diff --git a/src/sage/rings/real_arb.pxd b/src/sage/rings/real_arb.pxd index 6743fa1c80b..2ff63e73623 100644 --- a/src/sage/rings/real_arb.pxd +++ b/src/sage/rings/real_arb.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-flint + from sage.libs.flint.arb cimport arb_t from sage.libs.mpfi.types cimport mpfi_t from sage.rings.real_mpfi cimport RealIntervalField_class, RealIntervalFieldElement diff --git a/src/sage/rings/real_arb.pyx b/src/sage/rings/real_arb.pyx index 3c063f193a8..c6471fa7899 100644 --- a/src/sage/rings/real_arb.pyx +++ b/src/sage/rings/real_arb.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Arbitrary precision real balls diff --git a/src/sage/rings/real_double.pxd b/src/sage/rings/real_double.pxd index 06d4121ef26..8eb81cb039d 100644 --- a/src/sage/rings/real_double.pxd +++ b/src/sage/rings/real_double.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.element cimport RingElement, ModuleElement, Element, FieldElement from sage.rings.ring cimport Field cimport sage.rings.abc diff --git a/src/sage/rings/real_double.pyx b/src/sage/rings/real_double.pyx index 129603749d3..e2474c6ad2e 100644 --- a/src/sage/rings/real_double.pyx +++ b/src/sage/rings/real_double.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Double precision floating point real numbers @@ -1897,6 +1898,96 @@ cdef class RealDoubleElement(FieldElement): """ return self.nth_root(3) + def sincos(self): + """ + Return a pair consisting of the sine and cosine of ``self``. + + EXAMPLES:: + + sage: t = RDF.pi()/6 + sage: t.sincos() + (0.49999999999999994, 0.8660254037844387) + """ + return self.sin(), self.cos() + + def arccos(self): + """ + Return the inverse cosine of ``self``. + + EXAMPLES:: + + sage: q = RDF.pi()/3 + sage: i = q.cos() + sage: i.arccos() == q + True + """ + return self._new_c(libc.math.acos(self._value)) + + def arcsin(self): + """ + Return the inverse sine of ``self``. + + EXAMPLES:: + + sage: q = RDF.pi()/5 + sage: i = q.sin() + sage: i.arcsin() == q + True + """ + return self._new_c(libc.math.asin(self._value)) + + def arctan(self): + """ + Return the inverse tangent of ``self``. + + EXAMPLES:: + + sage: q = RDF.pi()/5 + sage: i = q.tan() + sage: i.arctan() == q + True + """ + return self._new_c(libc.math.atan(self._value)) + + def sech(self): + r""" + Return the hyperbolic secant of ``self``. + + EXAMPLES:: + + sage: RDF(pi).sech() # needs sage.symbolic + 0.08626673833405443 + sage: CDF(pi).sech() # needs sage.symbolic + 0.08626673833405443 + """ + return 1/self.cosh() + + def csch(self): + r""" + Return the hyperbolic cosecant of ``self``. + + EXAMPLES:: + + sage: RDF(pi).csch() # needs sage.symbolic + 0.08658953753004694 + sage: CDF(pi).csch() # rel tol 1e-15 # needs sage.symbolic + 0.08658953753004696 + """ + return 1/self.sinh() + + def coth(self): + r""" + Return the hyperbolic cotangent of ``self``. + + EXAMPLES:: + + sage: RDF(pi).coth() # needs sage.symbolic + 1.003741873197321 + sage: CDF(pi).coth() # needs sage.symbolic + 1.0037418731973213 + """ + return self.cosh() / self.sinh() + def agm(self, other): r""" Return the arithmetic-geometric mean of ``self`` and ``other``. The @@ -1958,6 +2049,200 @@ cdef class RealDoubleElement(FieldElement): algdep = algebraic_dependency + # The following methods are redefined by RealDoubleElement_gsl. + # In the doctests, we invoke the methods defined here explicitly. + + cpdef _pow_(self, other): + """ + Return ``self`` raised to the real double power ``other``. + + EXAMPLES:: + + sage: a = RDF('1.23456') + sage: from sage.rings.real_double import RealDoubleElement + sage: RealDoubleElement._pow_(a, a) + 1.2971114817819216 + + TESTS:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: RealDoubleElement._pow_(RDF(0), RDF(0.5)) + 0.0 + sage: RealDoubleElement._pow_(RDF(0), RDF(1/2)) + 0.0 + sage: RealDoubleElement._pow_(RDF(0), RDF(0)) + 1.0 + sage: RealDoubleElement._pow_(RDF(0), RDF(-1)) + Traceback (most recent call last): + ... + ZeroDivisionError: 0.0 cannot be raised to a negative power + sage: RealDoubleElement._pow_(RDF(-1), RDF(0)) + 1.0 + sage: RealDoubleElement._pow_(RDF(-1), RDF(1)) + -1.0 + sage: RealDoubleElement._pow_(RDF(-1), RDF(0.5)) + Traceback (most recent call last): + ... + ValueError: negative number cannot be raised to a fractional power + """ + cdef double v = self._value + if v >= 0: + if v == 1: + return self + elif other == 0: + return self._new_c(1.0) + elif v == 0: + if other < 0: + raise ZeroDivisionError("0.0 cannot be raised to a negative power") + return self + else: # v < 0 + expmod2 = libc.math.fmod(other, 2.0) + if expmod2 != 0.0 and expmod2 != 1.0: + raise ValueError("negative number cannot be raised to a fractional power") + return self._new_c(self._value ** (other)._value) + + def cos(self): + """ + Return the cosine of ``self``. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: t = RDF.pi()/2 + sage: RealDoubleElement.cos(t) + 6.123233995736766e-17 + """ + return self._new_c(libc.math.cos(self._value)) + + def sin(self): + """ + Return the sine of ``self``. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: RealDoubleElement.sin(RDF(2)) + 0.9092974268256817 + """ + return self._new_c(libc.math.sin(self._value)) + + def tan(self): + """ + Return the tangent of ``self``. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: q = RDF.pi()/3 + sage: RealDoubleElement.tan(q) + 1.7320508075688767 + sage: q = RDF.pi()/6 + sage: RealDoubleElement.tan(q) + 0.5773502691896257 + """ + return self._new_c(libc.math.tan(self._value)) + + def hypot(self, other): + r""" + Compute the value `\sqrt{s^2 + o^2}` where `s` is ``self`` and `o` + is ``other`` in such a way as to avoid overflow. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: x = RDF(4e300); y = RDF(3e300) + sage: RealDoubleElement.hypot(x, y) + 5e+300 + sage: sqrt(x^2+y^2) # overflow + +infinity + """ + return self._new_c(libc.math.hypot(self._value, float(other))) + + def cosh(self): + """ + Return the hyperbolic cosine of ``self``. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: q = RDF.pi()/12 + sage: RealDoubleElement.cosh(q) + 1.0344656400955106 + """ + return self._new_c(libc.math.cosh(self._value)) + + def sinh(self): + """ + Return the hyperbolic sine of ``self``. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: q = RDF.pi()/12 + sage: RealDoubleElement.sinh(q) + 0.26480022760227073 + """ + return self._new_c(libc.math.sinh(self._value)) + + def tanh(self): + """ + Return the hyperbolic tangent of ``self``. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: q = RDF.pi()/12 + sage: RealDoubleElement.tanh(q) + 0.25597778924568454 + """ + return self._new_c(libc.math.tanh(self._value)) + + def acosh(self): + """ + Return the hyperbolic inverse cosine of ``self``. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: q = RDF.pi()/2 + sage: i = RealDoubleElement.cosh(q); i + 2.5091784786580567 + sage: abs(RealDoubleElement.acosh(i) - q) < 1e-15 + True + """ + return self._new_c(libc.math.acosh(self._value)) + + def arcsinh(self): + """ + Return the hyperbolic inverse sine of ``self``. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: q = RDF.pi()/2 + sage: i = RealDoubleElement.sinh(q); i + 2.3012989023072947 + sage: abs(RealDoubleElement.arcsinh(i) - q) < 1e-15 + True + """ + return self._new_c(libc.math.asinh(self._value)) + + def arctanh(self): + """ + Return the hyperbolic inverse tangent of ``self``. + + EXAMPLES:: + + sage: from sage.rings.real_double import RealDoubleElement + sage: q = RDF.pi()/2 + sage: i = RealDoubleElement.tanh(q); i + 0.9171523356672744 + sage: RealDoubleElement.arctanh(i) - q # rel tol 1 + 4.440892098500626e-16 + """ + return self._new_c(libc.math.atanh(self._value)) + + cdef class ToRDF(Morphism): def __init__(self, R): """ diff --git a/src/sage/rings/real_double_element_gsl.pxd b/src/sage/rings/real_double_element_gsl.pxd index 8025174d15c..7cc9786efa5 100644 --- a/src/sage/rings/real_double_element_gsl.pxd +++ b/src/sage/rings/real_double_element_gsl.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.rings.real_double cimport RealDoubleElement diff --git a/src/sage/rings/real_double_element_gsl.pyx b/src/sage/rings/real_double_element_gsl.pyx index 001564dee37..0f9e26ac427 100644 --- a/src/sage/rings/real_double_element_gsl.pyx +++ b/src/sage/rings/real_double_element_gsl.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Double Precision Real Numbers, implementation using GSL """ @@ -532,18 +533,6 @@ cdef class RealDoubleElement_gsl(RealDoubleElement): a = self._new_c(gsl_sf_sin(self._value) / cos) return a - def sincos(self): - """ - Return a pair consisting of the sine and cosine of ``self``. - - EXAMPLES:: - - sage: t = RDF.pi()/6 - sage: t.sincos() - (0.49999999999999994, 0.8660254037844387) - """ - return self.sin(), self.cos() - def hypot(self, other): r""" Compute the value `\sqrt{s^2 + o^2}` where `s` is ``self`` and `o` @@ -562,45 +551,6 @@ cdef class RealDoubleElement_gsl(RealDoubleElement): sig_off() return a - def arccos(self): - """ - Return the inverse cosine of ``self``. - - EXAMPLES:: - - sage: q = RDF.pi()/3 - sage: i = q.cos() - sage: i.arccos() == q - True - """ - return self._new_c(libc.math.acos(self._value)) - - def arcsin(self): - """ - Return the inverse sine of ``self``. - - EXAMPLES:: - - sage: q = RDF.pi()/5 - sage: i = q.sin() - sage: i.arcsin() == q - True - """ - return self._new_c(libc.math.asin(self._value)) - - def arctan(self): - """ - Return the inverse tangent of ``self``. - - EXAMPLES:: - - sage: q = RDF.pi()/5 - sage: i = q.tan() - sage: i.arctan() == q - True - """ - return self._new_c(libc.math.atan(self._value)) - def cosh(self): """ Return the hyperbolic cosine of ``self``. @@ -679,45 +629,6 @@ cdef class RealDoubleElement_gsl(RealDoubleElement): """ return self._new_c(gsl_atanh(self._value)) - def sech(self): - r""" - Return the hyperbolic secant of ``self``. - - EXAMPLES:: - - sage: RDF(pi).sech() - 0.08626673833405443 - sage: CDF(pi).sech() - 0.08626673833405443 - """ - return 1/self.cosh() - - def csch(self): - r""" - Return the hyperbolic cosecant of ``self``. - - EXAMPLES:: - - sage: RDF(pi).csch() - 0.08658953753004694 - sage: CDF(pi).csch() # rel tol 1e-15 - 0.08658953753004696 - """ - return 1/self.sinh() - - def coth(self): - r""" - Return the hyperbolic cotangent of ``self``. - - EXAMPLES:: - - sage: RDF(pi).coth() - 1.003741873197321 - sage: CDF(pi).coth() - 1.0037418731973213 - """ - return self.cosh() / self.sinh() - def erf(self): """ Return the value of the error function on ``self``. diff --git a/src/sage/rings/real_field.py b/src/sage/rings/real_field.py index d0302c47ee5..c62d5fdab70 100644 --- a/src/sage/rings/real_field.py +++ b/src/sage/rings/real_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules def create_RealField(prec=53, type='MPFR', rnd='RNDN', sci_not=0): """ Create a real field with given precision, type, rounding mode and diff --git a/src/sage/rings/real_interval_absolute.pyx b/src/sage/rings/real_interval_absolute.pyx index 50baf63a0e9..745b766883d 100644 --- a/src/sage/rings/real_interval_absolute.pyx +++ b/src/sage/rings/real_interval_absolute.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # sage.doctest: # needs sage.symbolic """ Real intervals with a fixed absolute precision diff --git a/src/sage/rings/real_lazy.pxd b/src/sage/rings/real_lazy.pxd index 60a6580a550..18dcaded7cc 100644 --- a/src/sage/rings/real_lazy.pxd +++ b/src/sage/rings/real_lazy.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.rings.ring cimport Field from sage.structure.element cimport RingElement, ModuleElement, Element, FieldElement diff --git a/src/sage/rings/real_lazy.pyx b/src/sage/rings/real_lazy.pyx index 8fe3a8281d0..1e8a43bcf6f 100644 --- a/src/sage/rings/real_lazy.pyx +++ b/src/sage/rings/real_lazy.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.real_interval_field sage.rings.real_mpfr """ Lazy real and complex numbers @@ -178,7 +179,10 @@ cdef class LazyField(Field): from sage.sets.pythonclass import Set_PythonType return LazyWrapperMorphism(Set_PythonType(R), self) elif R.is_exact(): - ivf = self.interval_field() + try: + ivf = self.interval_field() + except ImportError: + return None mor = ivf.coerce_map_from(R) # Indirect coercions might lead to loops both in the coercion # discovery algorithm and when trying to convert LazyWrappers, @@ -944,7 +948,12 @@ cdef class LazyWrapper(LazyFieldElement): FieldElement.__init__(self, parent) self._value = value if check: - self._parent.interval_field()(value) + try: + ivf = self._parent.interval_field() + except ImportError: + pass + else: + ivf(value) def __neg__(self): """ diff --git a/src/sage/rings/real_mpfi.pxd b/src/sage/rings/real_mpfi.pxd index f107dbdd89a..d1275e93e6e 100644 --- a/src/sage/rings/real_mpfi.pxd +++ b/src/sage/rings/real_mpfi.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-ntl from sage.libs.mpfr.types cimport mpfr_prec_t from sage.libs.mpfi.types cimport mpfi_t diff --git a/src/sage/rings/real_mpfi.pyx b/src/sage/rings/real_mpfi.pyx index 11953a50ab5..3355c311a9d 100644 --- a/src/sage/rings/real_mpfi.pyx +++ b/src/sage/rings/real_mpfi.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint r""" Arbitrary precision real intervals using MPFI diff --git a/src/sage/rings/real_mpfr.pxd b/src/sage/rings/real_mpfr.pxd index 785d402836c..f9df65470a9 100644 --- a/src/sage/rings/real_mpfr.pxd +++ b/src/sage/rings/real_mpfr.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.libs.mpfr.types cimport mpfr_rnd_t, mpfr_t, mpfr_prec_t cimport sage.rings.abc diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx index 7e1ab748b55..7c46f32e8d8 100644 --- a/src/sage/rings/real_mpfr.pyx +++ b/src/sage/rings/real_mpfr.pyx @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + r""" Arbitrary precision floating point real numbers using GNU MPFR @@ -140,7 +142,7 @@ from sage.ext.stdsage cimport PY_NEW from sage.libs.gmp.mpz cimport * from sage.libs.gmp.pylong cimport mpz_set_pylong from sage.libs.mpfr cimport * -from sage.libs.mpmath.utils cimport mpfr_to_mpfval +from sage.libs.mpmath.sage_utils cimport mpfr_to_mpfval from sage.misc.randstate cimport randstate, current_randstate from sage.structure.element cimport Element @@ -150,8 +152,6 @@ from sage.structure.richcmp cimport rich_to_bool_sgn cdef bin_op from sage.structure.element import bin_op -from sage.libs.mpmath.utils cimport mpfr_to_mpfval - from sage.rings.integer cimport Integer from sage.rings.rational cimport Rational from sage.rings.real_double cimport RealDoubleElement @@ -1670,7 +1670,7 @@ cdef class RealNumber(sage.structure.element.RingElement): ....: for rnd_dir in ('RNDN', 'RNDD', 'RNDU', 'RNDZ'): ....: fld = RealField(prec, rnd=rnd_dir) ....: var = polygen(fld) - ....: for v in [NaN, -infinity, -20, -e, 0, 1, 2^500, -2^4000, -2^-500, 2^-4000] + [fld.random_element() for _ in range(5)]: + ....: for v in values + [fld.random_element() for _ in range(5)]: ....: for preparse in (True, False, None): ....: _ = sage_input(fld(v), verify=True, preparse=preparse) ....: _ = sage_input(fld(v) * var, verify=True, preparse=preparse) @@ -5293,8 +5293,8 @@ cdef class RealNumber(sage.structure.element.RingElement): if parent._prec > SIG_PREC_THRESHOLD: sig_off() return x - from sage.libs.mpmath.utils import call - from mpmath import loggamma + from sage.libs.mpmath.sage_utils import call + from sage.libs.mpmath.all import loggamma return call(loggamma, mpfr_to_mpfval(self.value), parent=parent) def zeta(self): diff --git a/src/sage/rings/ring_extension.pxd b/src/sage/rings/ring_extension.pxd index 478bd6eef75..917cd952430 100644 --- a/src/sage/rings/ring_extension.pxd +++ b/src/sage/rings/ring_extension.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.categories.map cimport Map from sage.rings.ring cimport CommutativeRing diff --git a/src/sage/rings/ring_extension.pyx b/src/sage/rings/ring_extension.pyx index 174af6dd415..aff3e09cc9d 100644 --- a/src/sage/rings/ring_extension.pyx +++ b/src/sage/rings/ring_extension.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Extension of rings @@ -1938,6 +1939,7 @@ cdef class RingExtension_generic(CommutativeRing): :: + sage: # needs sage.rings.finite_rings sage: F = GF(11) sage: A. = F[] sage: K = Frac(F).over(F) @@ -1954,6 +1956,7 @@ cdef class RingExtension_generic(CommutativeRing): Ensure issue :issue:`34692` is fixed:: + sage: # needs sage.rings.finite_rings sage: Fq = GF(11) sage: FqX. = Fq[] sage: k = Frac(FqX) diff --git a/src/sage/rings/ring_extension_conversion.pxd b/src/sage/rings/ring_extension_conversion.pxd index e3815a411ba..11c2b2b291c 100644 --- a/src/sage/rings/ring_extension_conversion.pxd +++ b/src/sage/rings/ring_extension_conversion.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.rings.ring_extension cimport RingExtension_generic diff --git a/src/sage/rings/ring_extension_conversion.pyx b/src/sage/rings/ring_extension_conversion.pyx index 482b74552c8..5b7f645b434 100644 --- a/src/sage/rings/ring_extension_conversion.pyx +++ b/src/sage/rings/ring_extension_conversion.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.finite_rings ############################################################################# diff --git a/src/sage/rings/ring_extension_element.pxd b/src/sage/rings/ring_extension_element.pxd index 6b62ad58c06..af53fd9876e 100644 --- a/src/sage/rings/ring_extension_element.pxd +++ b/src/sage/rings/ring_extension_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.rings.ring cimport CommutativeRing from sage.structure.element cimport Element from sage.structure.element cimport CommutativeAlgebraElement diff --git a/src/sage/rings/ring_extension_element.pyx b/src/sage/rings/ring_extension_element.pyx index 67b6aa90879..7504b13a03c 100644 --- a/src/sage/rings/ring_extension_element.pyx +++ b/src/sage/rings/ring_extension_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Elements lying in extension of rings @@ -325,7 +326,7 @@ cdef class RingExtensionElement(CommutativeAlgebraElement): sage: f = E(1) sage: g = f.in_base(); g 1 - sage: g.parent() + sage: g.parent() # needs sage.rings.number_field Finite Field in z2 of size 5^2 TESTS:: diff --git a/src/sage/rings/ring_extension_homset.py b/src/sage/rings/ring_extension_homset.py index d2c13a11f0e..df9e3fd149b 100644 --- a/src/sage/rings/ring_extension_homset.py +++ b/src/sage/rings/ring_extension_homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.rings.finite_rings r""" Homset between extensions of rings diff --git a/src/sage/rings/ring_extension_morphism.pxd b/src/sage/rings/ring_extension_morphism.pxd index a02aff31a50..ad62ba49a81 100644 --- a/src/sage/rings/ring_extension_morphism.pxd +++ b/src/sage/rings/ring_extension_morphism.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.structure.element cimport Element from sage.categories.map cimport Map from sage.rings.morphism cimport RingMap diff --git a/src/sage/rings/ring_extension_morphism.pyx b/src/sage/rings/ring_extension_morphism.pyx index 2768bdac81c..2a4fdce0d88 100644 --- a/src/sage/rings/ring_extension_morphism.pyx +++ b/src/sage/rings/ring_extension_morphism.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Morphisms between extension of rings diff --git a/src/sage/rings/semirings/all.py b/src/sage/rings/semirings/all.py index 55e69042077..d186e4b9fc7 100644 --- a/src/sage/rings/semirings/all.py +++ b/src/sage/rings/semirings/all.py @@ -1,2 +1,4 @@ +# sage_setup: distribution = sagemath-categories + from sage.rings.semirings.non_negative_integer_semiring import NonNegativeIntegerSemiring, NN from sage.rings.semirings.tropical_semiring import TropicalSemiring diff --git a/src/sage/rings/semirings/non_negative_integer_semiring.py b/src/sage/rings/semirings/non_negative_integer_semiring.py index 4fc0309a44d..990b5d05878 100644 --- a/src/sage/rings/semirings/non_negative_integer_semiring.py +++ b/src/sage/rings/semirings/non_negative_integer_semiring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Non Negative Integer Semiring """ diff --git a/src/sage/rings/semirings/tropical_semiring.pyx b/src/sage/rings/semirings/tropical_semiring.pyx index 205966541ab..018d21d20a9 100644 --- a/src/sage/rings/semirings/tropical_semiring.pyx +++ b/src/sage/rings/semirings/tropical_semiring.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Tropical Semirings diff --git a/src/sage/rings/sum_of_squares.pxd b/src/sage/rings/sum_of_squares.pxd index d9f2e5ae4fd..a091a030d36 100644 --- a/src/sage/rings/sum_of_squares.pxd +++ b/src/sage/rings/sum_of_squares.pxd @@ -1,2 +1,3 @@ +# sage_setup: distribution = sagemath-categories from libc.stdint cimport uint_fast32_t, uint32_t cdef int two_squares_c(uint_fast32_t n, uint_fast32_t res[2]) noexcept diff --git a/src/sage/rings/sum_of_squares.pyx b/src/sage/rings/sum_of_squares.pyx index bd403de75e9..ac035ed7c4e 100644 --- a/src/sage/rings/sum_of_squares.pyx +++ b/src/sage/rings/sum_of_squares.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # distutils: libraries = m r""" Fast decomposition of small integers into sums of squares diff --git a/src/sage/rings/tate_algebra.py b/src/sage/rings/tate_algebra.py index d80060696be..e27d894718e 100644 --- a/src/sage/rings/tate_algebra.py +++ b/src/sage/rings/tate_algebra.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Tate algebras diff --git a/src/sage/rings/tate_algebra_element.pxd b/src/sage/rings/tate_algebra_element.pxd index 3cafe330fb0..b6b3642bb55 100644 --- a/src/sage/rings/tate_algebra_element.pxd +++ b/src/sage/rings/tate_algebra_element.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.structure.element cimport Element from sage.structure.element cimport MonoidElement from sage.structure.element cimport CommutativeAlgebraElement diff --git a/src/sage/rings/tate_algebra_element.pyx b/src/sage/rings/tate_algebra_element.pyx index 022b5d1c880..34f2e3ec89a 100644 --- a/src/sage/rings/tate_algebra_element.pyx +++ b/src/sage/rings/tate_algebra_element.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Tate algebra element diff --git a/src/sage/rings/tate_algebra_ideal.pxd b/src/sage/rings/tate_algebra_ideal.pxd index e5581e06b8c..010c29201f1 100644 --- a/src/sage/rings/tate_algebra_ideal.pxd +++ b/src/sage/rings/tate_algebra_ideal.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.rings.tate_algebra_element cimport TateAlgebraTerm from sage.rings.tate_algebra_element cimport TateAlgebraElement diff --git a/src/sage/rings/tate_algebra_ideal.pyx b/src/sage/rings/tate_algebra_ideal.pyx index 830b01686c2..6efbcbe7887 100644 --- a/src/sage/rings/tate_algebra_ideal.pyx +++ b/src/sage/rings/tate_algebra_ideal.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Ideals in Tate algebra @@ -691,7 +692,7 @@ cdef TateAlgebraElement reduce(gb, TateAlgebraElement v, stopval): TESTS:: - sage: cython(''' # optional - sage.misc.cython + sage: cython(''' # optional - sage.misc.cython ....: from sage.rings.tate_algebra_ideal cimport reduce ....: def python_reduce(gb, v, stopval): ....: return reduce(gb, v, stopval) diff --git a/src/sage/rings/tests.py b/src/sage/rings/tests.py index 3796ef7b276..21e7055217b 100644 --- a/src/sage/rings/tests.py +++ b/src/sage/rings/tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Tests for rings diff --git a/src/sage/rings/universal_cyclotomic_field.py b/src/sage/rings/universal_cyclotomic_field.py index 35c6b90a76b..2c80e71e94d 100644 --- a/src/sage/rings/universal_cyclotomic_field.py +++ b/src/sage/rings/universal_cyclotomic_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-gap # sage.doctest: needs sage.libs.gap r""" Universal cyclotomic field diff --git a/src/sage/rings/valuation/all.py b/src/sage/rings/valuation/all.py index ebebe8f7a1f..052f7265e1f 100644 --- a/src/sage/rings/valuation/all.py +++ b/src/sage/rings/valuation/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.misc.lazy_import import lazy_import lazy_import('sage.rings.valuation.gauss_valuation', 'GaussValuation') diff --git a/src/sage/rings/valuation/augmented_valuation.py b/src/sage/rings/valuation/augmented_valuation.py index b9f0229f787..ed42e4c39fd 100644 --- a/src/sage/rings/valuation/augmented_valuation.py +++ b/src/sage/rings/valuation/augmented_valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Augmented valuations on polynomial rings diff --git a/src/sage/rings/valuation/developing_valuation.py b/src/sage/rings/valuation/developing_valuation.py index 8b77224f591..909e2a03122 100644 --- a/src/sage/rings/valuation/developing_valuation.py +++ b/src/sage/rings/valuation/developing_valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Valuations on polynomial rings based on `\phi`-adic expansions diff --git a/src/sage/rings/valuation/gauss_valuation.py b/src/sage/rings/valuation/gauss_valuation.py index ca67b25274e..501c3b12b16 100644 --- a/src/sage/rings/valuation/gauss_valuation.py +++ b/src/sage/rings/valuation/gauss_valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari """ Gauss valuations on polynomial rings diff --git a/src/sage/rings/valuation/inductive_valuation.py b/src/sage/rings/valuation/inductive_valuation.py index 470e4990bed..0f61329c179 100644 --- a/src/sage/rings/valuation/inductive_valuation.py +++ b/src/sage/rings/valuation/inductive_valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Inductive valuations on polynomial rings diff --git a/src/sage/rings/valuation/limit_valuation.py b/src/sage/rings/valuation/limit_valuation.py index 86a64d23f99..d315d2b5fe7 100644 --- a/src/sage/rings/valuation/limit_valuation.py +++ b/src/sage/rings/valuation/limit_valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Valuations which are defined as limits of valuations. diff --git a/src/sage/rings/valuation/mapped_valuation.py b/src/sage/rings/valuation/mapped_valuation.py index 0c9dde8d423..9c040000e83 100644 --- a/src/sage/rings/valuation/mapped_valuation.py +++ b/src/sage/rings/valuation/mapped_valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Valuations which are implemented through a map to another valuation diff --git a/src/sage/rings/valuation/scaled_valuation.py b/src/sage/rings/valuation/scaled_valuation.py index 458400a7e0f..110a060bc4c 100644 --- a/src/sage/rings/valuation/scaled_valuation.py +++ b/src/sage/rings/valuation/scaled_valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Valuations which are scaled versions of another valuation diff --git a/src/sage/rings/valuation/trivial_valuation.py b/src/sage/rings/valuation/trivial_valuation.py index a8c2ff16618..f3371558247 100644 --- a/src/sage/rings/valuation/trivial_valuation.py +++ b/src/sage/rings/valuation/trivial_valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Trivial valuations diff --git a/src/sage/rings/valuation/valuation.py b/src/sage/rings/valuation/valuation.py index bbc5bdf1db0..4edf76b1ca1 100644 --- a/src/sage/rings/valuation/valuation.py +++ b/src/sage/rings/valuation/valuation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Discrete valuations diff --git a/src/sage/rings/valuation/valuation_space.py b/src/sage/rings/valuation/valuation_space.py index 24e5f598624..0063740308b 100644 --- a/src/sage/rings/valuation/valuation_space.py +++ b/src/sage/rings/valuation/valuation_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Spaces of valuations diff --git a/src/sage/rings/valuation/valuations_catalog.py b/src/sage/rings/valuation/valuations_catalog.py index 64effaf13a6..86227c4cf6b 100644 --- a/src/sage/rings/valuation/valuations_catalog.py +++ b/src/sage/rings/valuation/valuations_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari from sage.misc.lazy_import import lazy_import lazy_import('sage.rings.padics.padic_valuation', 'pAdicValuation') diff --git a/src/sage/rings/valuation/value_group.py b/src/sage/rings/valuation/value_group.py index f3afd30c413..5a6390b2e2d 100644 --- a/src/sage/rings/valuation/value_group.py +++ b/src/sage/rings/valuation/value_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-pari r""" Value groups of discrete valuations diff --git a/src/sage/sandpiles/all.py b/src/sage/sandpiles/all.py index 8d26966aa38..32bf34baaa4 100644 --- a/src/sage/sandpiles/all.py +++ b/src/sage/sandpiles/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs from sage.misc.lazy_import import lazy_import lazy_import('sage.sandpiles.sandpile', 'Sandpile') diff --git a/src/sage/sandpiles/examples.py b/src/sage/sandpiles/examples.py index 279d0cfae0c..ac444224193 100644 --- a/src/sage/sandpiles/examples.py +++ b/src/sage/sandpiles/examples.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-graphs +# sage.doctest: needs sage.modules """ Examples of Sandpile diff --git a/src/sage/sandpiles/sandpile.py b/src/sage/sandpiles/sandpile.py index 6fb9720b945..de2c719995f 100644 --- a/src/sage/sandpiles/sandpile.py +++ b/src/sage/sandpiles/sandpile.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-graphs +# sage.doctest: needs sage.modules """ Sandpiles @@ -228,7 +230,7 @@ Some various ways of creating Sandpiles:: - sage: S = sandpiles.Complete(4) # for more options enter ``sandpile.TAB`` + sage: S = sandpiles.Complete(4) # for more options, enter ``sandpile.TAB`` sage: S = sandpiles.Wheel(6) A multidigraph with loops (vertices 0, 1, 2; for example, there is a directed @@ -328,37 +330,37 @@ from IPython.lib import pretty -from sage.calculus.functional import derivative +from sage.arith.functions import lcm +from sage.arith.misc import binomial, falling_factorial +from sage.arith.srange import xsrange from sage.combinat.integer_vector import integer_vectors_nk_fast_iter -from sage.combinat.parking_functions import ParkingFunctions -from sage.combinat.set_partition import SetPartitions -from sage.combinat.vector_partition import IntegerVectorsIterator -from sage.functions.log import exp -from sage.arith.misc import binomial -from sage.geometry.polyhedron.constructor import Polyhedron -from sage.graphs.graph import Graph +from sage.features.four_ti_2 import FourTi2Executable from sage.graphs.digraph import DiGraph -from sage.probability.probability_distribution import GeneralDiscreteDistribution -from sage.topology.simplicial_complex import SimplicialComplex -from sage.interfaces.singular import singular -from sage.matrix.constructor import matrix, identity_matrix +from sage.graphs.graph import Graph from sage.misc.functional import det, denominator +from sage.misc.lazy_import import lazy_import from sage.misc.misc import exists from sage.misc.misc_c import prod from sage.misc.temporary_file import tmp_filename -from sage.arith.srange import xsrange -from sage.modules.free_module_element import vector -from sage.misc.lazy_import import lazy_import -from sage.arith.functions import lcm -from sage.arith.misc import falling_factorial from sage.rings.integer import Integer from sage.rings.integer_ring import ZZ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.rings.rational_field import QQ -from sage.symbolic.constants import I, pi -from sage.symbolic.ring import SR -from sage.features.four_ti_2 import FourTi2Executable +from sage.topology.simplicial_complex import SimplicialComplex + +lazy_import("sage.calculus.functional", "derivative") +lazy_import("sage.combinat.parking_functions", "ParkingFunctions") +lazy_import("sage.combinat.set_partition", "SetPartitions") +lazy_import("sage.combinat.vector_partition", "IntegerVectorsIterator") +lazy_import("sage.functions.log", "exp") +lazy_import("sage.geometry.polyhedron.constructor", "Polyhedron") +lazy_import("sage.interfaces.singular", "singular") +lazy_import("sage.matrix.constructor", ["matrix", "identity_matrix"]) +lazy_import("sage.modules.free_module_element", "vector") lazy_import("sage.plot.colors", "rainbow") +lazy_import("sage.probability.probability_distribution", "GeneralDiscreteDistribution") +lazy_import("sage.symbolic.constants", ["I", "pi"]) +lazy_import("sage.symbolic.ring", "SR") def _sandpile_help(cls, usage, verbose=True): @@ -784,7 +786,7 @@ def show(self, **kwds): INPUT: - - ``kwds`` -- (optional) arguments passed to the show method for Graph or DiGraph + - ``kwds`` -- (optional) arguments passed to the show method for :class:`Graph` or :class:`DiGraph` EXAMPLES:: @@ -803,7 +805,7 @@ def show3d(self, **kwds): INPUT: - - ``kwds`` -- (optional) arguments passed to the show method for Graph or DiGraph + - ``kwds`` -- (optional) arguments passed to the show method for :class:`Graph` or :class:`DiGraph` EXAMPLES:: @@ -5790,7 +5792,7 @@ def show(self, heights=True, directed=None, **kwds): - ``directed`` -- (optional) whether to draw directed edges - - ``kwds`` -- (optional) arguments passed to the show method for Graph + - ``kwds`` -- (optional) arguments passed to the :meth:`~sage.graphs.graph.Graph.show` EXAMPLES:: @@ -5828,25 +5830,25 @@ def sandlib(selector=None): INPUT: - - ``selector`` -- (optional) identifier or None + - ``selector`` -- (optional) identifier or ``None`` OUTPUT: Sandpile or description EXAMPLES:: - sage: from sage.sandpiles.sandpile import sandlib - sage: sandlib() - Sandpiles in the sandlib: - ci1 : complete intersection, non-DAG but equivalent to a DAG - generic : generic digraph with 6 vertices - genus2 : Undirected graph of genus 2 - gor : Gorenstein but not a complete intersection - kite : generic undirected graphs with 5 vertices - riemann-roch1 : directed graph with postulation 9 and 3 maximal weight superstables - riemann-roch2 : directed graph with a superstable not majorized by a maximal superstable - sage: S = sandlib('gor') - sage: S.resolution() # needs sage.libs.singular - 'R^1 <-- R^5 <-- R^5 <-- R^1' + sage: from sage.sandpiles.sandpile import sandlib + sage: sandlib() + Sandpiles in the sandlib: + ci1 : complete intersection, non-DAG but equivalent to a DAG + generic : generic digraph with 6 vertices + genus2 : Undirected graph of genus 2 + gor : Gorenstein but not a complete intersection + kite : generic undirected graphs with 5 vertices + riemann-roch1 : directed graph with postulation 9 and 3 maximal weight superstables + riemann-roch2 : directed graph with a superstable not majorized by a maximal superstable + sage: S = sandlib('gor') + sage: S.resolution() # needs sage.libs.singular + 'R^1 <-- R^5 <-- R^5 <-- R^1' """ # The convention is for the sink to be zero. sandpiles = { diff --git a/src/sage/sat/all.py b/src/sage/sat/all.py index ad1a0ec2c14..a3300520490 100644 --- a/src/sage/sat/all.py +++ b/src/sage/sat/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from sage.misc.lazy_import import lazy_import lazy_import('sage.sat.solvers.satsolver', 'SAT') del lazy_import diff --git a/src/sage/sat/boolean_polynomials.py b/src/sage/sat/boolean_polynomials.py index bad6b33d4d3..f5ed7290476 100644 --- a/src/sage/sat/boolean_polynomials.py +++ b/src/sage/sat/boolean_polynomials.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: optional - pycryptosat, needs sage.modules sage.rings.polynomial.pbori """ SAT Functions for Boolean Polynomials diff --git a/src/sage/sat/converters/__init__.py b/src/sage/sat/converters/__init__.py index bb7b60bbb9c..1a945d09d04 100644 --- a/src/sage/sat/converters/__init__.py +++ b/src/sage/sat/converters/__init__.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from sage.misc.lazy_import import lazy_import from .anf2cnf import ANF2CNFConverter diff --git a/src/sage/sat/converters/anf2cnf.py b/src/sage/sat/converters/anf2cnf.py index eafc8b0a440..75c3fc944b8 100644 --- a/src/sage/sat/converters/anf2cnf.py +++ b/src/sage/sat/converters/anf2cnf.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Abstract ANF to CNF Converter diff --git a/src/sage/sat/converters/polybori.py b/src/sage/sat/converters/polybori.py index d57f1c12c02..e2ee4db88a5 100644 --- a/src/sage/sat/converters/polybori.py +++ b/src/sage/sat/converters/polybori.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.rings.polynomial.pbori """ An ANF to CNF Converter using a Dense/Sparse Strategy @@ -31,7 +32,6 @@ from random import Random from sage.rings.polynomial.pbori.pbori import if_then_else as ite from sage.rings.integer_ring import ZZ -from sage.functions.other import ceil from sage.misc.cachefunc import cached_method, cached_function from sage.combinat.permutation import Permutations from sage.sat.converters import ANF2CNFConverter @@ -465,7 +465,7 @@ def split_xor(self, monomial_list, equal_zero): c = self.cutting_number nm = len(monomial_list) - step = ceil((c-2)/ZZ(nm) * nm) + step = ((c-2)/ZZ(nm) * nm).ceil() M = [] new_variables = [] diff --git a/src/sage/sat/solvers/__init__.py b/src/sage/sat/solvers/__init__.py index 27b47db2d51..d3dbc2f9a75 100644 --- a/src/sage/sat/solvers/__init__.py +++ b/src/sage/sat/solvers/__init__.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat from .satsolver import SatSolver from .cryptominisat import CryptoMiniSat diff --git a/src/sage/sat/solvers/cryptominisat.py b/src/sage/sat/solvers/cryptominisat.py index e23c3491ccc..26ccb7b1541 100644 --- a/src/sage/sat/solvers/cryptominisat.py +++ b/src/sage/sat/solvers/cryptominisat.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" CryptoMiniSat Solver diff --git a/src/sage/sat/solvers/dimacs.py b/src/sage/sat/solvers/dimacs.py index 61d5460d432..e15d4c1eaec 100644 --- a/src/sage/sat/solvers/dimacs.py +++ b/src/sage/sat/solvers/dimacs.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ SAT-Solvers via DIMACS Files diff --git a/src/sage/sat/solvers/picosat.py b/src/sage/sat/solvers/picosat.py index fb8c10afd80..2be249a598a 100644 --- a/src/sage/sat/solvers/picosat.py +++ b/src/sage/sat/solvers/picosat.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat r""" PicoSAT Solver diff --git a/src/sage/sat/solvers/sat_lp.py b/src/sage/sat/solvers/sat_lp.py index 5a027f6ae9b..fc5c95c2000 100644 --- a/src/sage/sat/solvers/sat_lp.py +++ b/src/sage/sat/solvers/sat_lp.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat # sage.doctest: needs sage.numerical.mip r""" Solve SAT problems Integer Linear Programming diff --git a/src/sage/sat/solvers/satsolver.pxd b/src/sage/sat/solvers/satsolver.pxd index 7fd0ac7e798..14d8d2cf880 100644 --- a/src/sage/sat/solvers/satsolver.pxd +++ b/src/sage/sat/solvers/satsolver.pxd @@ -1,2 +1,3 @@ +# sage_setup: distribution = sagemath-combinat cdef class SatSolver: pass diff --git a/src/sage/sat/solvers/satsolver.pyx b/src/sage/sat/solvers/satsolver.pyx index 9de7b4a9ca7..d16c7a26798 100644 --- a/src/sage/sat/solvers/satsolver.pyx +++ b/src/sage/sat/solvers/satsolver.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-combinat """ Abstract SAT Solver diff --git a/src/sage/schemes/affine/affine_homset.py b/src/sage/schemes/affine/affine_homset.py index e2dc72eadd0..5ad6f2113db 100755 --- a/src/sage/schemes/affine/affine_homset.py +++ b/src/sage/schemes/affine/affine_homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Set of homomorphisms between two affine schemes diff --git a/src/sage/schemes/affine/affine_morphism.py b/src/sage/schemes/affine/affine_morphism.py index 0eba4c662ec..0914818d36d 100755 --- a/src/sage/schemes/affine/affine_morphism.py +++ b/src/sage/schemes/affine/affine_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Morphisms on affine schemes diff --git a/src/sage/schemes/affine/affine_point.py b/src/sage/schemes/affine/affine_point.py index eb13ba7c2cd..b604951576b 100755 --- a/src/sage/schemes/affine/affine_point.py +++ b/src/sage/schemes/affine/affine_point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Points on affine varieties diff --git a/src/sage/schemes/affine/affine_rational_point.py b/src/sage/schemes/affine/affine_rational_point.py index 034637c8862..180c51352f3 100755 --- a/src/sage/schemes/affine/affine_rational_point.py +++ b/src/sage/schemes/affine/affine_rational_point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Enumeration of rational points on affine schemes diff --git a/src/sage/schemes/affine/affine_space.py b/src/sage/schemes/affine/affine_space.py index b21ac4a7de6..be9279dda8c 100755 --- a/src/sage/schemes/affine/affine_space.py +++ b/src/sage/schemes/affine/affine_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Affine `n` space over a ring """ diff --git a/src/sage/schemes/affine/affine_subscheme.py b/src/sage/schemes/affine/affine_subscheme.py index a6b550c6ec8..e22bf3f2ce3 100755 --- a/src/sage/schemes/affine/affine_subscheme.py +++ b/src/sage/schemes/affine/affine_subscheme.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Subschemes of affine space diff --git a/src/sage/schemes/affine/all.py b/src/sage/schemes/affine/all.py index e761ce307c9..ac08e989715 100644 --- a/src/sage/schemes/affine/all.py +++ b/src/sage/schemes/affine/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """nodoctest all.py -- export of affine to Sage """ diff --git a/src/sage/schemes/all.py b/src/sage/schemes/all.py index f5126a0dee1..412ade4da0d 100644 --- a/src/sage/schemes/all.py +++ b/src/sage/schemes/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ all.py -- export of schemes to Sage """ @@ -20,6 +21,9 @@ # https://www.gnu.org/licenses/ # ***************************************************************************** +from sage.schemes.all__sagemath_categories import * +from sage.schemes.all__sagemath_polyhedra import * + from sage.schemes.jacobians.all import * from sage.schemes.hyperelliptic_curves.all import * @@ -32,16 +36,6 @@ from sage.schemes.plane_quartics.all import * -from sage.schemes.generic.all import * - -from sage.schemes.toric.all import * - -from sage.schemes.affine.all import * - -from sage.schemes.projective.all import * - -from sage.schemes.product_projective.all import * - from sage.schemes.cyclic_covers.all import * from sage.schemes.berkovich.all import * diff --git a/src/sage/schemes/all__sagemath_categories.py b/src/sage/schemes/all__sagemath_categories.py new file mode 100644 index 00000000000..9a7ba63755f --- /dev/null +++ b/src/sage/schemes/all__sagemath_categories.py @@ -0,0 +1,5 @@ +# sage_setup: distribution = sagemath-categories +from sage.schemes.generic.all import * +from sage.schemes.affine.all import * +from sage.schemes.projective.all import * +from sage.schemes.product_projective.all import * diff --git a/src/sage/schemes/all__sagemath_ntl.py b/src/sage/schemes/all__sagemath_ntl.py new file mode 100644 index 00000000000..4d8e422331a --- /dev/null +++ b/src/sage/schemes/all__sagemath_ntl.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-ntl diff --git a/src/sage/schemes/all__sagemath_polyhedra.py b/src/sage/schemes/all__sagemath_polyhedra.py new file mode 100644 index 00000000000..5e0c6205c55 --- /dev/null +++ b/src/sage/schemes/all__sagemath_polyhedra.py @@ -0,0 +1,2 @@ +# sage_setup: distribution = sagemath-polyhedra +from sage.schemes.toric.all import * diff --git a/src/sage/schemes/berkovich/all.py b/src/sage/schemes/berkovich/all.py index 18b4254e4a8..ca838f75500 100644 --- a/src/sage/schemes/berkovich/all.py +++ b/src/sage/schemes/berkovich/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """nodoctest all.py -- export of Berkovich spaces to all of Sage """ diff --git a/src/sage/schemes/berkovich/berkovich_cp_element.py b/src/sage/schemes/berkovich/berkovich_cp_element.py index cf232a02a71..7d0aa569cd7 100755 --- a/src/sage/schemes/berkovich/berkovich_cp_element.py +++ b/src/sage/schemes/berkovich/berkovich_cp_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" Elements of Berkovich space. diff --git a/src/sage/schemes/berkovich/berkovich_space.py b/src/sage/schemes/berkovich/berkovich_space.py index f5455937b43..8de7d5a3814 100755 --- a/src/sage/schemes/berkovich/berkovich_space.py +++ b/src/sage/schemes/berkovich/berkovich_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" Berkovich Space over `\CC_p` diff --git a/src/sage/schemes/curves/affine_curve.py b/src/sage/schemes/curves/affine_curve.py index 0b647c8411b..d285803fdfd 100755 --- a/src/sage/schemes/curves/affine_curve.py +++ b/src/sage/schemes/curves/affine_curve.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.singular r""" Affine curves diff --git a/src/sage/schemes/curves/all.py b/src/sage/schemes/curves/all.py index 848daa43470..90bb158a46f 100644 --- a/src/sage/schemes/curves/all.py +++ b/src/sage/schemes/curves/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Plane curves """ diff --git a/src/sage/schemes/curves/closed_point.py b/src/sage/schemes/curves/closed_point.py index 384487a4fd0..25cba470a0d 100755 --- a/src/sage/schemes/curves/closed_point.py +++ b/src/sage/schemes/curves/closed_point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Closed points of integral curves diff --git a/src/sage/schemes/curves/constructor.py b/src/sage/schemes/curves/constructor.py index beff4dd649d..930f6054790 100755 --- a/src/sage/schemes/curves/constructor.py +++ b/src/sage/schemes/curves/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.singular """ Curve constructor diff --git a/src/sage/schemes/curves/curve.py b/src/sage/schemes/curves/curve.py index be072ba3873..c6e4f91f73e 100755 --- a/src/sage/schemes/curves/curve.py +++ b/src/sage/schemes/curves/curve.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.singular """ Base class of curves diff --git a/src/sage/schemes/curves/point.py b/src/sage/schemes/curves/point.py index e74e009b1ce..803cb9fcf7e 100755 --- a/src/sage/schemes/curves/point.py +++ b/src/sage/schemes/curves/point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.singular """ Rational points of curves diff --git a/src/sage/schemes/curves/projective_curve.py b/src/sage/schemes/curves/projective_curve.py index 77c94b61c04..a07a1752812 100755 --- a/src/sage/schemes/curves/projective_curve.py +++ b/src/sage/schemes/curves/projective_curve.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.singular r""" Projective curves diff --git a/src/sage/schemes/curves/zariski_vankampen.py b/src/sage/schemes/curves/zariski_vankampen.py index f410a73f8fc..c37c35daf6d 100755 --- a/src/sage/schemes/curves/zariski_vankampen.py +++ b/src/sage/schemes/curves/zariski_vankampen.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.geometry.polyhedron sage.graphs sage.groups sage.rings.number_field r""" Zariski-Van Kampen method implementation diff --git a/src/sage/schemes/cyclic_covers/all.py b/src/sage/schemes/cyclic_covers/all.py index 88b3d6b3f04..1cb47c3ca74 100644 --- a/src/sage/schemes/cyclic_covers/all.py +++ b/src/sage/schemes/cyclic_covers/all.py @@ -1 +1,3 @@ +# sage_setup: distribution = sagemath-schemes + from sage.schemes.cyclic_covers.constructor import CyclicCover diff --git a/src/sage/schemes/cyclic_covers/charpoly_frobenius.py b/src/sage/schemes/cyclic_covers/charpoly_frobenius.py index 649e565e797..5cc199b9085 100755 --- a/src/sage/schemes/cyclic_covers/charpoly_frobenius.py +++ b/src/sage/schemes/cyclic_covers/charpoly_frobenius.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" Computation of the Frobenius polynomial using Newton's identities diff --git a/src/sage/schemes/cyclic_covers/constructor.py b/src/sage/schemes/cyclic_covers/constructor.py index 92366cfbb79..34d05686531 100755 --- a/src/sage/schemes/cyclic_covers/constructor.py +++ b/src/sage/schemes/cyclic_covers/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Cyclic cover curve constructor """ diff --git a/src/sage/schemes/cyclic_covers/cycliccover_finite_field.py b/src/sage/schemes/cyclic_covers/cycliccover_finite_field.py index 850d9e975ea..f92cb975568 100755 --- a/src/sage/schemes/cyclic_covers/cycliccover_finite_field.py +++ b/src/sage/schemes/cyclic_covers/cycliccover_finite_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.finite_rings r""" diff --git a/src/sage/schemes/cyclic_covers/cycliccover_generic.py b/src/sage/schemes/cyclic_covers/cycliccover_generic.py index 9b21549a8b1..bafdcaa829e 100755 --- a/src/sage/schemes/cyclic_covers/cycliccover_generic.py +++ b/src/sage/schemes/cyclic_covers/cycliccover_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Cyclic covers curves over a general ring diff --git a/src/sage/schemes/elliptic_curves/BSD.py b/src/sage/schemes/elliptic_curves/BSD.py index 7b64cd63883..8ca794f77f4 100755 --- a/src/sage/schemes/elliptic_curves/BSD.py +++ b/src/sage/schemes/elliptic_curves/BSD.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes "Birch and Swinnerton-Dyer formulas" from sage.arith.misc import prime_divisors diff --git a/src/sage/schemes/elliptic_curves/Qcurves.py b/src/sage/schemes/elliptic_curves/Qcurves.py index b8e9b7411fb..27368b6d903 100755 --- a/src/sage/schemes/elliptic_curves/Qcurves.py +++ b/src/sage/schemes/elliptic_curves/Qcurves.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Testing whether elliptic curves over number fields are `\QQ`-curves diff --git a/src/sage/schemes/elliptic_curves/all.py b/src/sage/schemes/elliptic_curves/all.py index df527315527..47bd099a20b 100644 --- a/src/sage/schemes/elliptic_curves/all.py +++ b/src/sage/schemes/elliptic_curves/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Exported elliptic curves functionality """ diff --git a/src/sage/schemes/elliptic_curves/cardinality.py b/src/sage/schemes/elliptic_curves/cardinality.py index aaa1cf85542..da502f50767 100644 --- a/src/sage/schemes/elliptic_curves/cardinality.py +++ b/src/sage/schemes/elliptic_curves/cardinality.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.finite_rings """ Specific algorithms to compute cardinality of elliptic curves over a finite field diff --git a/src/sage/schemes/elliptic_curves/cm.py b/src/sage/schemes/elliptic_curves/cm.py index 6760719e789..f9051a53607 100755 --- a/src/sage/schemes/elliptic_curves/cm.py +++ b/src/sage/schemes/elliptic_curves/cm.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Complex multiplication for elliptic curves diff --git a/src/sage/schemes/elliptic_curves/constructor.py b/src/sage/schemes/elliptic_curves/constructor.py index 831ee47e280..af0e1597d4b 100755 --- a/src/sage/schemes/elliptic_curves/constructor.py +++ b/src/sage/schemes/elliptic_curves/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Elliptic curve constructor diff --git a/src/sage/schemes/elliptic_curves/ec_database.py b/src/sage/schemes/elliptic_curves/ec_database.py index 7d418feb437..3d2979ab545 100755 --- a/src/sage/schemes/elliptic_curves/ec_database.py +++ b/src/sage/schemes/elliptic_curves/ec_database.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Tables of elliptic curves of given rank diff --git a/src/sage/schemes/elliptic_curves/ell_curve_isogeny.py b/src/sage/schemes/elliptic_curves/ell_curve_isogeny.py index ba752e11c10..691fda3ca69 100755 --- a/src/sage/schemes/elliptic_curves/ell_curve_isogeny.py +++ b/src/sage/schemes/elliptic_curves/ell_curve_isogeny.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Isogenies @@ -191,6 +192,7 @@ def isogeny_codomain_from_kernel(E, kernel): EXAMPLES:: + sage: # needs sage.rings.finite_rings sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import isogeny_codomain_from_kernel sage: E = EllipticCurve(GF(7), [1,0,1,0,1]) sage: R. = GF(7)[] @@ -398,6 +400,7 @@ def compute_codomain_kohel(E, kernel): EXAMPLES:: + sage: # needs sage.rings.finite_rings sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_codomain_kohel sage: E = EllipticCurve(GF(19), [1,2,3,4,5]) sage: phi = EllipticCurveIsogeny(E, [9,1]) @@ -3705,6 +3708,7 @@ def compute_intermediate_curves(E1, E2): EXAMPLES:: + sage: # needs sage.rings.finite_rings sage: from sage.schemes.elliptic_curves.ell_curve_isogeny import compute_intermediate_curves sage: E = EllipticCurve(GF(83), [1,0,1,1,0]) sage: R. = GF(83)[]; f = x + 24 diff --git a/src/sage/schemes/elliptic_curves/ell_egros.py b/src/sage/schemes/elliptic_curves/ell_egros.py index 365070a3809..6059a73d353 100755 --- a/src/sage/schemes/elliptic_curves/ell_egros.py +++ b/src/sage/schemes/elliptic_curves/ell_egros.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Elliptic curves with prescribed good reduction diff --git a/src/sage/schemes/elliptic_curves/ell_field.py b/src/sage/schemes/elliptic_curves/ell_field.py index a63dbf57809..ecfbddf54e6 100755 --- a/src/sage/schemes/elliptic_curves/ell_field.py +++ b/src/sage/schemes/elliptic_curves/ell_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Elliptic curves over a general field diff --git a/src/sage/schemes/elliptic_curves/ell_finite_field.py b/src/sage/schemes/elliptic_curves/ell_finite_field.py index 50106558570..68f2f87de30 100755 --- a/src/sage/schemes/elliptic_curves/ell_finite_field.py +++ b/src/sage/schemes/elliptic_curves/ell_finite_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Elliptic curves over finite fields diff --git a/src/sage/schemes/elliptic_curves/ell_generic.py b/src/sage/schemes/elliptic_curves/ell_generic.py index 6ca3f1fdb46..6ca5f3b0cd9 100755 --- a/src/sage/schemes/elliptic_curves/ell_generic.py +++ b/src/sage/schemes/elliptic_curves/ell_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Elliptic curves over a general ring diff --git a/src/sage/schemes/elliptic_curves/ell_local_data.py b/src/sage/schemes/elliptic_curves/ell_local_data.py index 7434659b5a2..2214d1b7f82 100755 --- a/src/sage/schemes/elliptic_curves/ell_local_data.py +++ b/src/sage/schemes/elliptic_curves/ell_local_data.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Local data for elliptic curves over number fields diff --git a/src/sage/schemes/elliptic_curves/ell_modular_symbols.py b/src/sage/schemes/elliptic_curves/ell_modular_symbols.py index b6bdccff654..99e2746fc15 100755 --- a/src/sage/schemes/elliptic_curves/ell_modular_symbols.py +++ b/src/sage/schemes/elliptic_curves/ell_modular_symbols.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Modular symbols attached to elliptic curves over `\QQ` diff --git a/src/sage/schemes/elliptic_curves/ell_number_field.py b/src/sage/schemes/elliptic_curves/ell_number_field.py index eea2e5cc243..e28b7c5c7fb 100755 --- a/src/sage/schemes/elliptic_curves/ell_number_field.py +++ b/src/sage/schemes/elliptic_curves/ell_number_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.number_field r""" Elliptic curves over number fields diff --git a/src/sage/schemes/elliptic_curves/ell_padic_field.py b/src/sage/schemes/elliptic_curves/ell_padic_field.py index 32f4a48a807..8010f54a0a7 100755 --- a/src/sage/schemes/elliptic_curves/ell_padic_field.py +++ b/src/sage/schemes/elliptic_curves/ell_padic_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics """ Elliptic curves over `p`-adic fields diff --git a/src/sage/schemes/elliptic_curves/ell_point.py b/src/sage/schemes/elliptic_curves/ell_point.py index 0da080ffdbe..af427914c1f 100755 --- a/src/sage/schemes/elliptic_curves/ell_point.py +++ b/src/sage/schemes/elliptic_curves/ell_point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Points on elliptic curves diff --git a/src/sage/schemes/elliptic_curves/ell_rational_field.py b/src/sage/schemes/elliptic_curves/ell_rational_field.py index 0bc71b09d42..080683b0ad6 100755 --- a/src/sage/schemes/elliptic_curves/ell_rational_field.py +++ b/src/sage/schemes/elliptic_curves/ell_rational_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Elliptic curves over the rational numbers diff --git a/src/sage/schemes/elliptic_curves/ell_tate_curve.py b/src/sage/schemes/elliptic_curves/ell_tate_curve.py index 7defaf1d50c..b7374d707bd 100755 --- a/src/sage/schemes/elliptic_curves/ell_tate_curve.py +++ b/src/sage/schemes/elliptic_curves/ell_tate_curve.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Tate's parametrisation of `p`-adic curves with multiplicative reduction diff --git a/src/sage/schemes/elliptic_curves/ell_torsion.py b/src/sage/schemes/elliptic_curves/ell_torsion.py index ade14590440..25573381f93 100755 --- a/src/sage/schemes/elliptic_curves/ell_torsion.py +++ b/src/sage/schemes/elliptic_curves/ell_torsion.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Torsion subgroups of elliptic curves over number fields (including `\QQ`) diff --git a/src/sage/schemes/elliptic_curves/ell_wp.py b/src/sage/schemes/elliptic_curves/ell_wp.py index 5c8e7930830..7960ace732c 100755 --- a/src/sage/schemes/elliptic_curves/ell_wp.py +++ b/src/sage/schemes/elliptic_curves/ell_wp.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Weierstrass `\wp`-function for elliptic curves @@ -328,6 +329,7 @@ def solve_linear_differential_system(a, b, c, alpha): EXAMPLES:: + sage: # needs sage.rings.finite_rings sage: from sage.schemes.elliptic_curves.ell_wp import solve_linear_differential_system sage: k = GF(17) sage: R. = PowerSeriesRing(k) diff --git a/src/sage/schemes/elliptic_curves/formal_group.py b/src/sage/schemes/elliptic_curves/formal_group.py index 3524c492a2f..b9411f057b6 100755 --- a/src/sage/schemes/elliptic_curves/formal_group.py +++ b/src/sage/schemes/elliptic_curves/formal_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Formal groups of elliptic curves diff --git a/src/sage/schemes/elliptic_curves/gal_reps.py b/src/sage/schemes/elliptic_curves/gal_reps.py index b9360acdf56..a2caf75f155 100755 --- a/src/sage/schemes/elliptic_curves/gal_reps.py +++ b/src/sage/schemes/elliptic_curves/gal_reps.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Galois representations attached to elliptic curves diff --git a/src/sage/schemes/elliptic_curves/gal_reps_number_field.py b/src/sage/schemes/elliptic_curves/gal_reps_number_field.py index a4eb66a6df7..28d42ed4b5c 100755 --- a/src/sage/schemes/elliptic_curves/gal_reps_number_field.py +++ b/src/sage/schemes/elliptic_curves/gal_reps_number_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.number_field r""" Galois representations for elliptic curves over number fields diff --git a/src/sage/schemes/elliptic_curves/gp_simon.py b/src/sage/schemes/elliptic_curves/gp_simon.py index 6be377e2f74..8d81b3af7cc 100644 --- a/src/sage/schemes/elliptic_curves/gp_simon.py +++ b/src/sage/schemes/elliptic_curves/gp_simon.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.libs.pari """ Denis Simon's PARI scripts diff --git a/src/sage/schemes/elliptic_curves/heegner.py b/src/sage/schemes/elliptic_curves/heegner.py index 1bff085023c..cfedf7de867 100755 --- a/src/sage/schemes/elliptic_curves/heegner.py +++ b/src/sage/schemes/elliptic_curves/heegner.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.number_field r""" Heegner points on elliptic curves over the rational numbers diff --git a/src/sage/schemes/elliptic_curves/height.py b/src/sage/schemes/elliptic_curves/height.py index 53f440f5db4..39ee323c78a 100755 --- a/src/sage/schemes/elliptic_curves/height.py +++ b/src/sage/schemes/elliptic_curves/height.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Canonical heights for elliptic curves over number fields diff --git a/src/sage/schemes/elliptic_curves/hom.py b/src/sage/schemes/elliptic_curves/hom.py index 7bf61914f9a..23bfeeb79e4 100755 --- a/src/sage/schemes/elliptic_curves/hom.py +++ b/src/sage/schemes/elliptic_curves/hom.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Elliptic-curve morphisms diff --git a/src/sage/schemes/elliptic_curves/hom_composite.py b/src/sage/schemes/elliptic_curves/hom_composite.py index 6952f2a0e11..b64c0734776 100755 --- a/src/sage/schemes/elliptic_curves/hom_composite.py +++ b/src/sage/schemes/elliptic_curves/hom_composite.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Composite morphisms of elliptic curves @@ -458,6 +459,7 @@ def from_factors(cls, maps, E=None, strict=True): EXAMPLES:: + sage: # needs sage.rings.finite_rings sage: from sage.schemes.elliptic_curves.hom_composite import EllipticCurveHom_composite sage: E = EllipticCurve(GF(43), [1,0]) sage: P, = E.gens() @@ -469,7 +471,7 @@ def from_factors(cls, maps, E=None, strict=True): TESTS:: sage: E = EllipticCurve('4730k1') - sage: EllipticCurveHom_composite.from_factors([], E) == E.scalar_multiplication(1) + sage: EllipticCurveHom_composite.from_factors([], E) == E.scalar_multiplication(1) # needs sage.rings.finite_rings True :: @@ -571,6 +573,7 @@ def _repr_(self): TESTS:: + sage: # needs sage.rings.finite_rings sage: from sage.schemes.elliptic_curves.hom_composite import EllipticCurveHom_composite sage: E = EllipticCurve(GF(43), [1,0]) sage: P, = E.gens() @@ -606,6 +609,7 @@ def factors(self): EXAMPLES:: + sage: # needs sage.rings.finite_rings sage: from sage.schemes.elliptic_curves.hom_composite import EllipticCurveHom_composite sage: E = EllipticCurve(GF(43), [1,0]) sage: P, = E.gens() diff --git a/src/sage/schemes/elliptic_curves/hom_frobenius.py b/src/sage/schemes/elliptic_curves/hom_frobenius.py index 66aa3a5b5a4..2daa4348905 100644 --- a/src/sage/schemes/elliptic_curves/hom_frobenius.py +++ b/src/sage/schemes/elliptic_curves/hom_frobenius.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.finite_rings r""" Frobenius isogenies of elliptic curves diff --git a/src/sage/schemes/elliptic_curves/hom_scalar.py b/src/sage/schemes/elliptic_curves/hom_scalar.py index de3a02c9b9d..8b9eb2292d2 100644 --- a/src/sage/schemes/elliptic_curves/hom_scalar.py +++ b/src/sage/schemes/elliptic_curves/hom_scalar.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Scalar-multiplication morphisms of elliptic curves diff --git a/src/sage/schemes/elliptic_curves/hom_sum.py b/src/sage/schemes/elliptic_curves/hom_sum.py index 50f03d6d761..db4a5d38e4c 100755 --- a/src/sage/schemes/elliptic_curves/hom_sum.py +++ b/src/sage/schemes/elliptic_curves/hom_sum.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Sums of morphisms of elliptic curves diff --git a/src/sage/schemes/elliptic_curves/hom_velusqrt.py b/src/sage/schemes/elliptic_curves/hom_velusqrt.py index d8cf1971f45..19c53cb6245 100755 --- a/src/sage/schemes/elliptic_curves/hom_velusqrt.py +++ b/src/sage/schemes/elliptic_curves/hom_velusqrt.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Square‑root Vélu algorithm for elliptic-curve isogenies diff --git a/src/sage/schemes/elliptic_curves/isogeny_class.py b/src/sage/schemes/elliptic_curves/isogeny_class.py index 13edc68a022..1ce74403b47 100755 --- a/src/sage/schemes/elliptic_curves/isogeny_class.py +++ b/src/sage/schemes/elliptic_curves/isogeny_class.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.number_field r""" Isogeny class of elliptic curves over number fields diff --git a/src/sage/schemes/elliptic_curves/isogeny_small_degree.py b/src/sage/schemes/elliptic_curves/isogeny_small_degree.py index 6a0194fb0f9..1ab8318833e 100755 --- a/src/sage/schemes/elliptic_curves/isogeny_small_degree.py +++ b/src/sage/schemes/elliptic_curves/isogeny_small_degree.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Isogenies of small prime degree diff --git a/src/sage/schemes/elliptic_curves/jacobian.py b/src/sage/schemes/elliptic_curves/jacobian.py index 8aa868dcc92..be312e8e20d 100755 --- a/src/sage/schemes/elliptic_curves/jacobian.py +++ b/src/sage/schemes/elliptic_curves/jacobian.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Construct elliptic curves as Jacobians diff --git a/src/sage/schemes/elliptic_curves/kodaira_symbol.py b/src/sage/schemes/elliptic_curves/kodaira_symbol.py index 50f94199a36..83278202b98 100755 --- a/src/sage/schemes/elliptic_curves/kodaira_symbol.py +++ b/src/sage/schemes/elliptic_curves/kodaira_symbol.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Kodaira symbols diff --git a/src/sage/schemes/elliptic_curves/kraus.py b/src/sage/schemes/elliptic_curves/kraus.py index 49dff06b493..b14ba458d99 100755 --- a/src/sage/schemes/elliptic_curves/kraus.py +++ b/src/sage/schemes/elliptic_curves/kraus.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Global and semi-global minimal models for elliptic curves over number fields diff --git a/src/sage/schemes/elliptic_curves/lseries_ell.py b/src/sage/schemes/elliptic_curves/lseries_ell.py index 74f5233c0e1..337496b3075 100755 --- a/src/sage/schemes/elliptic_curves/lseries_ell.py +++ b/src/sage/schemes/elliptic_curves/lseries_ell.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ `L`-series for elliptic curves diff --git a/src/sage/schemes/elliptic_curves/mod5family.py b/src/sage/schemes/elliptic_curves/mod5family.py index 64069c342b7..19943d6cf55 100644 --- a/src/sage/schemes/elliptic_curves/mod5family.py +++ b/src/sage/schemes/elliptic_curves/mod5family.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Elliptic curves with congruent mod-5 representation diff --git a/src/sage/schemes/elliptic_curves/mod_poly.py b/src/sage/schemes/elliptic_curves/mod_poly.py index 02ba61efb41..62db4629d40 100755 --- a/src/sage/schemes/elliptic_curves/mod_poly.py +++ b/src/sage/schemes/elliptic_curves/mod_poly.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Modular polynomials for elliptic curves diff --git a/src/sage/schemes/elliptic_curves/mod_sym_num.pyx b/src/sage/schemes/elliptic_curves/mod_sym_num.pyx index e55500f0d0f..5ddc641ee43 100755 --- a/src/sage/schemes/elliptic_curves/mod_sym_num.pyx +++ b/src/sage/schemes/elliptic_curves/mod_sym_num.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes #cdivision=False #cython: cdivision_warnings=False #cython: profile=False diff --git a/src/sage/schemes/elliptic_curves/modular_parametrization.py b/src/sage/schemes/elliptic_curves/modular_parametrization.py index 2df0d64f5cc..1c62952df30 100755 --- a/src/sage/schemes/elliptic_curves/modular_parametrization.py +++ b/src/sage/schemes/elliptic_curves/modular_parametrization.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Modular parametrization of elliptic curves over `\QQ` diff --git a/src/sage/schemes/elliptic_curves/padic_lseries.py b/src/sage/schemes/elliptic_curves/padic_lseries.py index 1fcc30764b2..cd5fe188bf7 100755 --- a/src/sage/schemes/elliptic_curves/padic_lseries.py +++ b/src/sage/schemes/elliptic_curves/padic_lseries.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics r""" `p`-adic `L`-functions of elliptic curves diff --git a/src/sage/schemes/elliptic_curves/padics.py b/src/sage/schemes/elliptic_curves/padics.py index 87f985e7052..e071b1cedb0 100755 --- a/src/sage/schemes/elliptic_curves/padics.py +++ b/src/sage/schemes/elliptic_curves/padics.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics # # All these methods are imported in EllipticCurve_rational_field, diff --git a/src/sage/schemes/elliptic_curves/period_lattice.py b/src/sage/schemes/elliptic_curves/period_lattice.py index e6008a09279..4e3b7fe423a 100755 --- a/src/sage/schemes/elliptic_curves/period_lattice.py +++ b/src/sage/schemes/elliptic_curves/period_lattice.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Period lattices of elliptic curves and related functions diff --git a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx index 40b92ab23eb..2a4c68b9d42 100755 --- a/src/sage/schemes/elliptic_curves/period_lattice_region.pyx +++ b/src/sage/schemes/elliptic_curves/period_lattice_region.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.complex_double sage.symbolic r""" Regions in fundamental domains of period lattices diff --git a/src/sage/schemes/elliptic_curves/saturation.py b/src/sage/schemes/elliptic_curves/saturation.py index 9772b8f1d09..04d0d7d99f2 100755 --- a/src/sage/schemes/elliptic_curves/saturation.py +++ b/src/sage/schemes/elliptic_curves/saturation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.finite_rings sage.rings.number_field r""" Saturation of Mordell-Weil groups of elliptic curves over number fields diff --git a/src/sage/schemes/elliptic_curves/sha_tate.py b/src/sage/schemes/elliptic_curves/sha_tate.py index 83922981a63..02cd050fc92 100755 --- a/src/sage/schemes/elliptic_curves/sha_tate.py +++ b/src/sage/schemes/elliptic_curves/sha_tate.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Tate-Shafarevich group diff --git a/src/sage/schemes/elliptic_curves/weierstrass_morphism.py b/src/sage/schemes/elliptic_curves/weierstrass_morphism.py index bbd3bc1e9d6..edb738f82a1 100755 --- a/src/sage/schemes/elliptic_curves/weierstrass_morphism.py +++ b/src/sage/schemes/elliptic_curves/weierstrass_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Isomorphisms between Weierstrass models of elliptic curves diff --git a/src/sage/schemes/elliptic_curves/weierstrass_transform.py b/src/sage/schemes/elliptic_curves/weierstrass_transform.py index fcbd4e84023..eb59d42951f 100755 --- a/src/sage/schemes/elliptic_curves/weierstrass_transform.py +++ b/src/sage/schemes/elliptic_curves/weierstrass_transform.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Morphism to bring a genus-one curve into Weierstrass form diff --git a/src/sage/schemes/generic/algebraic_scheme.py b/src/sage/schemes/generic/algebraic_scheme.py index 9a0afa5fb93..da5294d1f29 100755 --- a/src/sage/schemes/generic/algebraic_scheme.py +++ b/src/sage/schemes/generic/algebraic_scheme.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Algebraic schemes diff --git a/src/sage/schemes/generic/all.py b/src/sage/schemes/generic/all.py index a58cc24efd2..58686520213 100644 --- a/src/sage/schemes/generic/all.py +++ b/src/sage/schemes/generic/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # code exports from sage.schemes.generic.spec import Spec diff --git a/src/sage/schemes/generic/ambient_space.py b/src/sage/schemes/generic/ambient_space.py index 0a624197b07..424e856f68e 100755 --- a/src/sage/schemes/generic/ambient_space.py +++ b/src/sage/schemes/generic/ambient_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Ambient spaces """ diff --git a/src/sage/schemes/generic/divisor.py b/src/sage/schemes/generic/divisor.py index 441efbf36e7..95f6e2526de 100755 --- a/src/sage/schemes/generic/divisor.py +++ b/src/sage/schemes/generic/divisor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.schemes """ Divisors on schemes diff --git a/src/sage/schemes/generic/divisor_group.py b/src/sage/schemes/generic/divisor_group.py index 0b11b1d0982..6da2187fe48 100755 --- a/src/sage/schemes/generic/divisor_group.py +++ b/src/sage/schemes/generic/divisor_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Divisor groups diff --git a/src/sage/schemes/generic/glue.py b/src/sage/schemes/generic/glue.py index 7733030a2ab..c49eeb83239 100755 --- a/src/sage/schemes/generic/glue.py +++ b/src/sage/schemes/generic/glue.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Scheme obtained by gluing two other schemes """ diff --git a/src/sage/schemes/generic/homset.py b/src/sage/schemes/generic/homset.py index 370049d2238..c043809c048 100755 --- a/src/sage/schemes/generic/homset.py +++ b/src/sage/schemes/generic/homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Set of homomorphisms between two schemes diff --git a/src/sage/schemes/generic/hypersurface.py b/src/sage/schemes/generic/hypersurface.py index a6bb63040b5..913d13bb334 100755 --- a/src/sage/schemes/generic/hypersurface.py +++ b/src/sage/schemes/generic/hypersurface.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.schemes r""" Hypersurfaces in affine and projective space diff --git a/src/sage/schemes/generic/morphism.py b/src/sage/schemes/generic/morphism.py index 56bfb8da197..ac0019c17b8 100755 --- a/src/sage/schemes/generic/morphism.py +++ b/src/sage/schemes/generic/morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Scheme morphism diff --git a/src/sage/schemes/generic/point.py b/src/sage/schemes/generic/point.py index 4158b350c16..2377df5f57f 100755 --- a/src/sage/schemes/generic/point.py +++ b/src/sage/schemes/generic/point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Points on schemes """ diff --git a/src/sage/schemes/generic/scheme.py b/src/sage/schemes/generic/scheme.py index 5cae30dae3a..952d95daa82 100755 --- a/src/sage/schemes/generic/scheme.py +++ b/src/sage/schemes/generic/scheme.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Schemes diff --git a/src/sage/schemes/generic/spec.py b/src/sage/schemes/generic/spec.py index 5c699c0d004..67b5e207d85 100755 --- a/src/sage/schemes/generic/spec.py +++ b/src/sage/schemes/generic/spec.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ The Spec functor diff --git a/src/sage/schemes/hyperelliptic_curves/all.py b/src/sage/schemes/hyperelliptic_curves/all.py index 044c97cd498..01603fb4b66 100644 --- a/src/sage/schemes/hyperelliptic_curves/all.py +++ b/src/sage/schemes/hyperelliptic_curves/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-schemes + from sage.schemes.hyperelliptic_curves.constructor import HyperellipticCurve from sage.schemes.hyperelliptic_curves.kummer_surface import KummerSurface from sage.schemes.hyperelliptic_curves.mestre import ( diff --git a/src/sage/schemes/hyperelliptic_curves/all__sagemath_ntl.py b/src/sage/schemes/hyperelliptic_curves/all__sagemath_ntl.py new file mode 100644 index 00000000000..4d8e422331a --- /dev/null +++ b/src/sage/schemes/hyperelliptic_curves/all__sagemath_ntl.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-ntl diff --git a/src/sage/schemes/hyperelliptic_curves/constructor.py b/src/sage/schemes/hyperelliptic_curves/constructor.py index b3c006b2c19..d307651f269 100755 --- a/src/sage/schemes/hyperelliptic_curves/constructor.py +++ b/src/sage/schemes/hyperelliptic_curves/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Hyperelliptic curve constructor diff --git a/src/sage/schemes/hyperelliptic_curves/hypellfrob.pyx b/src/sage/schemes/hyperelliptic_curves/hypellfrob.pyx index 2b14032ffc9..c2cf7872fc6 100755 --- a/src/sage/schemes/hyperelliptic_curves/hypellfrob.pyx +++ b/src/sage/schemes/hyperelliptic_curves/hypellfrob.pyx @@ -1,12 +1,13 @@ +# sage_setup: distribution = sagemath-ntl # distutils: language = c++ # distutils: sources = sage/schemes/hyperelliptic_curves/hypellfrob/hypellfrob.cpp sage/schemes/hyperelliptic_curves/hypellfrob/recurrences_ntl.cpp # distutils: depends = sage/schemes/hyperelliptic_curves/hypellfrob/hypellfrob.h sage/schemes/hyperelliptic_curves/hypellfrob/recurrences_ntl.h -# distutils: include_dirs = sage/libs/ntl/ sage/schemes/hyperelliptic_curves/hypellfrob/ NTL_INCDIR +# distutils: include_dirs = NTL_INCDIR # distutils: libraries = gmp NTL_LIBRARIES # distutils: extra_compile_args = NTL_CFLAGS # distutils: library_dirs = NTL_LIBDIR # distutils: extra_link_args = NTL_LIBEXTRA -# sage.doctest: needs sage.libs.ntl sage.modules sage.rings.padics +# sage.doctest: needs sage.libs.linbox sage.libs.ntl sage.modules sage.rings.padics r""" Frobenius on Monsky-Washnitzer cohomology of a hyperelliptic curve @@ -60,7 +61,7 @@ from sage.libs.ntl.conversion cimport set_ntl_matrix_modn_dense include "sage/libs/ntl/decl.pxi" -cdef extern from "hypellfrob.h": +cdef extern from "hypellfrob/hypellfrob.h": int hypellfrob_matrix "hypellfrob::matrix" (mat_ZZ_c output, ZZ_c p, int N, ZZX_c Q) void interval_products_wrapper \ diff --git a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py index 469e3eaa2f8..eaa846da74e 100755 --- a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py +++ b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.finite_rings r""" Hyperelliptic curves over a finite field diff --git a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_g2.py b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_g2.py index b2850e39cbd..900327c2e54 100644 --- a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_g2.py +++ b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_g2.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Hyperelliptic curves of genus 2 over a general ring """ diff --git a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py index 61cd934c0a0..c78f7f515c9 100755 --- a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py +++ b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Hyperelliptic curves over a general ring diff --git a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py index 654e33c80fc..0e74d9c1fb8 100755 --- a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py +++ b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.padics """ Hyperelliptic curves over a `p`-adic field diff --git a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py index dc9ddc3e3f5..e1ca8493d78 100755 --- a/src/sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py +++ b/src/sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Hyperelliptic curves over the rationals """ diff --git a/src/sage/schemes/hyperelliptic_curves/invariants.py b/src/sage/schemes/hyperelliptic_curves/invariants.py index 3910594a5af..6c0bddf1553 100755 --- a/src/sage/schemes/hyperelliptic_curves/invariants.py +++ b/src/sage/schemes/hyperelliptic_curves/invariants.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Compute invariants of quintics and sextics via 'Ueberschiebung' diff --git a/src/sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py b/src/sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py index 032bc3105ba..6f1760caeab 100755 --- a/src/sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py +++ b/src/sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Some functions regarding geometric endomorphism rings of Jacobians of hyperelliptic curves. diff --git a/src/sage/schemes/hyperelliptic_curves/jacobian_g2.py b/src/sage/schemes/hyperelliptic_curves/jacobian_g2.py index 970bb9cfbf0..d4fa2b6dcdd 100644 --- a/src/sage/schemes/hyperelliptic_curves/jacobian_g2.py +++ b/src/sage/schemes/hyperelliptic_curves/jacobian_g2.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Jacobian of a hyperelliptic curve of genus 2 """ diff --git a/src/sage/schemes/hyperelliptic_curves/jacobian_generic.py b/src/sage/schemes/hyperelliptic_curves/jacobian_generic.py index efc2a805bc0..5f82ae19274 100755 --- a/src/sage/schemes/hyperelliptic_curves/jacobian_generic.py +++ b/src/sage/schemes/hyperelliptic_curves/jacobian_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Jacobian of a general hyperelliptic curve """ diff --git a/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py b/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py index 0fdea5814f0..24e035a10a7 100644 --- a/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py +++ b/src/sage/schemes/hyperelliptic_curves/jacobian_homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Rational point sets on a Jacobian diff --git a/src/sage/schemes/hyperelliptic_curves/jacobian_morphism.py b/src/sage/schemes/hyperelliptic_curves/jacobian_morphism.py index c0cbccd84ea..4b281365c04 100755 --- a/src/sage/schemes/hyperelliptic_curves/jacobian_morphism.py +++ b/src/sage/schemes/hyperelliptic_curves/jacobian_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Jacobian 'morphism' as a class in the Picard group diff --git a/src/sage/schemes/hyperelliptic_curves/kummer_surface.py b/src/sage/schemes/hyperelliptic_curves/kummer_surface.py index 8cf0104c560..2c4493959a7 100644 --- a/src/sage/schemes/hyperelliptic_curves/kummer_surface.py +++ b/src/sage/schemes/hyperelliptic_curves/kummer_surface.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Kummer surfaces over a general ring """ diff --git a/src/sage/schemes/hyperelliptic_curves/meson.build.in b/src/sage/schemes/hyperelliptic_curves/meson.build.in new file mode 100644 index 00000000000..ca45bd10f62 --- /dev/null +++ b/src/sage/schemes/hyperelliptic_curves/meson.build.in @@ -0,0 +1 @@ +inc_hypellfrob = include_directories('hypellfrob') diff --git a/src/sage/schemes/hyperelliptic_curves/mestre.py b/src/sage/schemes/hyperelliptic_curves/mestre.py index c1ea50fbda4..291702ff9a6 100755 --- a/src/sage/schemes/hyperelliptic_curves/mestre.py +++ b/src/sage/schemes/hyperelliptic_curves/mestre.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Mestre's algorithm diff --git a/src/sage/schemes/hyperelliptic_curves/monsky_washnitzer.py b/src/sage/schemes/hyperelliptic_curves/monsky_washnitzer.py index a533b7d4e92..a4f4c3b76ea 100755 --- a/src/sage/schemes/hyperelliptic_curves/monsky_washnitzer.py +++ b/src/sage/schemes/hyperelliptic_curves/monsky_washnitzer.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Computation of Frobenius matrix on Monsky-Washnitzer cohomology diff --git a/src/sage/schemes/jacobians/abstract_jacobian.py b/src/sage/schemes/jacobians/abstract_jacobian.py index 6ec2880a627..7c58ba6d8d7 100755 --- a/src/sage/schemes/jacobians/abstract_jacobian.py +++ b/src/sage/schemes/jacobians/abstract_jacobian.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Jacobians of curves diff --git a/src/sage/schemes/jacobians/all.py b/src/sage/schemes/jacobians/all.py index ec769450947..9179802b171 100644 --- a/src/sage/schemes/jacobians/all.py +++ b/src/sage/schemes/jacobians/all.py @@ -1 +1,3 @@ -#from abstract_jacobian import is_Jacobian, Jacobian +# sage_setup: distribution = sagemath-schemes + +# from abstract_jacobian import is_Jacobian, Jacobian diff --git a/src/sage/schemes/overview.py b/src/sage/schemes/overview.py index d0db1c884e4..36612de2e6c 100644 --- a/src/sage/schemes/overview.py +++ b/src/sage/schemes/overview.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Scheme implementation overview diff --git a/src/sage/schemes/plane_conics/all.py b/src/sage/schemes/plane_conics/all.py index 0ac534ebe27..c3b1170b6b4 100644 --- a/src/sage/schemes/plane_conics/all.py +++ b/src/sage/schemes/plane_conics/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Plane conics """ diff --git a/src/sage/schemes/plane_conics/con_field.py b/src/sage/schemes/plane_conics/con_field.py index 8ad15fdf5b4..7512e687067 100755 --- a/src/sage/schemes/plane_conics/con_field.py +++ b/src/sage/schemes/plane_conics/con_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Projective plane conics over a field @@ -1134,7 +1135,7 @@ def rational_point(self, algorithm='default', read_cache=True): sage: G = Conic([L.gen(), 30, -21]) sage: G.has_rational_point(algorithm='magma') # optional - magma False - sage: G.has_rational_point(read_cache=False) # needs sage.libs.pari + sage: G.has_rational_point(read_cache=False) # needs sage.libs.pari False sage: G.has_rational_point(algorithm='local', ....: read_cache=False) diff --git a/src/sage/schemes/plane_conics/con_finite_field.py b/src/sage/schemes/plane_conics/con_finite_field.py index 3562b2e2765..eb283b04817 100755 --- a/src/sage/schemes/plane_conics/con_finite_field.py +++ b/src/sage/schemes/plane_conics/con_finite_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.finite_rings r""" Projective plane conics over finite fields diff --git a/src/sage/schemes/plane_conics/con_number_field.py b/src/sage/schemes/plane_conics/con_number_field.py index e09a1f60262..7682a31d9bc 100755 --- a/src/sage/schemes/plane_conics/con_number_field.py +++ b/src/sage/schemes/plane_conics/con_number_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs sage.rings.number_field r""" Projective plane conics over a number field diff --git a/src/sage/schemes/plane_conics/con_rational_field.py b/src/sage/schemes/plane_conics/con_rational_field.py index 329193bb5b5..acd4df947eb 100755 --- a/src/sage/schemes/plane_conics/con_rational_field.py +++ b/src/sage/schemes/plane_conics/con_rational_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Projective plane conics over `\QQ` diff --git a/src/sage/schemes/plane_conics/con_rational_function_field.py b/src/sage/schemes/plane_conics/con_rational_function_field.py index 26522878918..087c14adc24 100755 --- a/src/sage/schemes/plane_conics/con_rational_function_field.py +++ b/src/sage/schemes/plane_conics/con_rational_function_field.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Projective plane conics over a rational function field @@ -214,7 +215,7 @@ def has_rational_point(self, point=False, algorithm='default', sage: b = (-3*t^3 + 8*t + 1/2)/(-1/3*t^3 + 3/2*t^2 + 1/12*t + 1/2) sage: c = (1232009/225*t^25 - 1015925057/8100*t^24 + 1035477411553/1458000*t^23 + 7901338091/30375*t^22 - 1421379260447/729000*t^21 + 266121260843/972000*t^20 + 80808723191/486000*t^19 - 516656082523/972000*t^18 + 21521589529/40500*t^17 + 4654758997/21600*t^16 - 20064038625227/9720000*t^15 - 173054270347/324000*t^14 + 536200870559/540000*t^13 - 12710739349/50625*t^12 - 197968226971/135000*t^11 - 134122025657/810000*t^10 + 22685316301/120000*t^9 - 2230847689/21600*t^8 - 70624099679/270000*t^7 - 4298763061/270000*t^6 - 41239/216000*t^5 - 13523/36000*t^4 + 493/36000*t^3 + 83/2400*t^2 + 1/300*t + 1/200)/(-27378/125*t^17 + 504387/500*t^16 - 97911/2000*t^15 + 1023531/4000*t^14 + 1874841/8000*t^13 + 865381/12000*t^12 + 15287/375*t^11 + 6039821/6000*t^10 + 599437/1500*t^9 + 18659/250*t^8 + 1218059/6000*t^7 + 2025127/3000*t^6 + 1222759/6000*t^5 + 38573/200*t^4 + 8323/125*t^3 + 15453/125*t^2 + 17031/500*t + 441/10) sage: C = Conic([a,b,c]) - sage: C.has_rational_point(point=True) # long time (4 seconds) # needs sage.libs.singular + sage: C.has_rational_point(point=True) # long time (4 seconds) # needs sage.libs.singular (True, ((-2/117*t^8 + 304/1053*t^7 + 40/117*t^6 - 1/27*t^5 - 110/351*t^4 - 2/195*t^3 + 11/351*t^2 + 1/117)/(t^4 + 2/39*t^3 + 4/117*t^2 + 2/39*t + 14/39) : -5/3*t^4 + 19*t^3 : 1)) diff --git a/src/sage/schemes/plane_conics/constructor.py b/src/sage/schemes/plane_conics/constructor.py index 38652c9c555..06b32957edc 100755 --- a/src/sage/schemes/plane_conics/constructor.py +++ b/src/sage/schemes/plane_conics/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes r""" Plane conic constructor diff --git a/src/sage/schemes/plane_quartics/all.py b/src/sage/schemes/plane_quartics/all.py index 1f60d332efe..d0e58a36de1 100644 --- a/src/sage/schemes/plane_quartics/all.py +++ b/src/sage/schemes/plane_quartics/all.py @@ -1 +1,3 @@ +# sage_setup: distribution = sagemath-schemes + from sage.schemes.plane_quartics.quartic_constructor import QuarticCurve diff --git a/src/sage/schemes/plane_quartics/quartic_constructor.py b/src/sage/schemes/plane_quartics/quartic_constructor.py index 29d49c2d2c4..c9d6c690a40 100755 --- a/src/sage/schemes/plane_quartics/quartic_constructor.py +++ b/src/sage/schemes/plane_quartics/quartic_constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Quartic curve constructor """ diff --git a/src/sage/schemes/plane_quartics/quartic_generic.py b/src/sage/schemes/plane_quartics/quartic_generic.py index e41eb64d316..fa074011710 100755 --- a/src/sage/schemes/plane_quartics/quartic_generic.py +++ b/src/sage/schemes/plane_quartics/quartic_generic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes """ Plane quartic curves over a general ring diff --git a/src/sage/schemes/product_projective/all.py b/src/sage/schemes/product_projective/all.py index e529331007b..56ec5181f39 100644 --- a/src/sage/schemes/product_projective/all.py +++ b/src/sage/schemes/product_projective/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.misc.lazy_import import lazy_import lazy_import('sage.schemes.product_projective.space', 'ProductProjectiveSpaces') diff --git a/src/sage/schemes/product_projective/homset.py b/src/sage/schemes/product_projective/homset.py index 658417398b9..b48ed18fef3 100755 --- a/src/sage/schemes/product_projective/homset.py +++ b/src/sage/schemes/product_projective/homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Set of homomorphisms diff --git a/src/sage/schemes/product_projective/morphism.py b/src/sage/schemes/product_projective/morphism.py index e2ebb4e1834..e0f9ecd0051 100755 --- a/src/sage/schemes/product_projective/morphism.py +++ b/src/sage/schemes/product_projective/morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Polynomial morphisms for products of projective spaces diff --git a/src/sage/schemes/product_projective/point.py b/src/sage/schemes/product_projective/point.py index 7cbe0065de5..a4ca38a60d5 100755 --- a/src/sage/schemes/product_projective/point.py +++ b/src/sage/schemes/product_projective/point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Points for products of projective spaces diff --git a/src/sage/schemes/product_projective/rational_point.py b/src/sage/schemes/product_projective/rational_point.py index 1f29206dfd1..e590ec643aa 100755 --- a/src/sage/schemes/product_projective/rational_point.py +++ b/src/sage/schemes/product_projective/rational_point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Enumeration of rational points on product projective schemes diff --git a/src/sage/schemes/product_projective/space.py b/src/sage/schemes/product_projective/space.py index f183d2676aa..282de2fe9a6 100755 --- a/src/sage/schemes/product_projective/space.py +++ b/src/sage/schemes/product_projective/space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Products of projective spaces diff --git a/src/sage/schemes/product_projective/subscheme.py b/src/sage/schemes/product_projective/subscheme.py index 511f10a973e..3efad930cea 100755 --- a/src/sage/schemes/product_projective/subscheme.py +++ b/src/sage/schemes/product_projective/subscheme.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Subschemes of products of projective spaces diff --git a/src/sage/schemes/projective/all.py b/src/sage/schemes/projective/all.py index b9e210c8ae0..4dcc66d77da 100644 --- a/src/sage/schemes/projective/all.py +++ b/src/sage/schemes/projective/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """nodoctest all.py -- export of projective schemes to Sage """ diff --git a/src/sage/schemes/projective/proj_bdd_height.py b/src/sage/schemes/projective/proj_bdd_height.py index 232f51188b4..90fb51d3952 100755 --- a/src/sage/schemes/projective/proj_bdd_height.py +++ b/src/sage/schemes/projective/proj_bdd_height.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Points of bounded height in projective spaces diff --git a/src/sage/schemes/projective/projective_homset.py b/src/sage/schemes/projective/projective_homset.py index 7f86f7ea0f6..4e83879eb56 100755 --- a/src/sage/schemes/projective/projective_homset.py +++ b/src/sage/schemes/projective/projective_homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Set of homomorphisms between two projective schemes diff --git a/src/sage/schemes/projective/projective_morphism.py b/src/sage/schemes/projective/projective_morphism.py index 20031e81a41..ff3f1797550 100755 --- a/src/sage/schemes/projective/projective_morphism.py +++ b/src/sage/schemes/projective/projective_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Morphisms on projective schemes @@ -68,6 +69,7 @@ from sage.categories.homset import Hom, End from sage.categories.number_fields import NumberFields from sage.misc.cachefunc import cached_method +from sage.misc.misc_c import prod from sage.misc.lazy_attribute import lazy_attribute from sage.misc.lazy_import import lazy_import from sage.misc.misc_c import prod diff --git a/src/sage/schemes/projective/projective_point.py b/src/sage/schemes/projective/projective_point.py index 7f941ec6726..9b8fd92fb96 100755 --- a/src/sage/schemes/projective/projective_point.py +++ b/src/sage/schemes/projective/projective_point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Points on projective varieties diff --git a/src/sage/schemes/projective/projective_rational_point.py b/src/sage/schemes/projective/projective_rational_point.py index 82653894cca..9d1fd4feee2 100755 --- a/src/sage/schemes/projective/projective_rational_point.py +++ b/src/sage/schemes/projective/projective_rational_point.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Enumeration of rational points on projective schemes diff --git a/src/sage/schemes/projective/projective_space.py b/src/sage/schemes/projective/projective_space.py index 9f010391eec..e6656812d38 100755 --- a/src/sage/schemes/projective/projective_space.py +++ b/src/sage/schemes/projective/projective_space.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Projective `n` space over a ring diff --git a/src/sage/schemes/projective/projective_subscheme.py b/src/sage/schemes/projective/projective_subscheme.py index a0c571de25b..975f03fbb6a 100755 --- a/src/sage/schemes/projective/projective_subscheme.py +++ b/src/sage/schemes/projective/projective_subscheme.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Subschemes of projective space diff --git a/src/sage/schemes/riemann_surfaces/all.py b/src/sage/schemes/riemann_surfaces/all.py index e69de29bb2d..c05f67159dc 100644 --- a/src/sage/schemes/riemann_surfaces/all.py +++ b/src/sage/schemes/riemann_surfaces/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-schemes diff --git a/src/sage/schemes/riemann_surfaces/riemann_surface.py b/src/sage/schemes/riemann_surfaces/riemann_surface.py index 701f6523065..14d1fe02a25 100755 --- a/src/sage/schemes/riemann_surfaces/riemann_surface.py +++ b/src/sage/schemes/riemann_surfaces/riemann_surface.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-schemes # sage.doctest: needs scipy sage.graphs sage.groups r""" Riemann matrices and endomorphism rings of algebraic Riemann surfaces diff --git a/src/sage/schemes/toric/all.py b/src/sage/schemes/toric/all.py index 17965d2899c..95b4c41f292 100644 --- a/src/sage/schemes/toric/all.py +++ b/src/sage/schemes/toric/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs from sage.misc.lazy_import import lazy_import diff --git a/src/sage/schemes/toric/chow_group.py b/src/sage/schemes/toric/chow_group.py index 3087ed5b301..9f6bd3da0c0 100755 --- a/src/sage/schemes/toric/chow_group.py +++ b/src/sage/schemes/toric/chow_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" The Chow group of a toric variety diff --git a/src/sage/schemes/toric/divisor.py b/src/sage/schemes/toric/divisor.py index 1da707e0cb6..b61a27e5e88 100755 --- a/src/sage/schemes/toric/divisor.py +++ b/src/sage/schemes/toric/divisor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Toric divisors and divisor classes diff --git a/src/sage/schemes/toric/divisor_class.pyx b/src/sage/schemes/toric/divisor_class.pyx index 98ed1b377b3..c1e2d34ad81 100755 --- a/src/sage/schemes/toric/divisor_class.pyx +++ b/src/sage/schemes/toric/divisor_class.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Toric rational divisor classes diff --git a/src/sage/schemes/toric/fano_variety.py b/src/sage/schemes/toric/fano_variety.py index 77a14643e4b..50eccde91bb 100755 --- a/src/sage/schemes/toric/fano_variety.py +++ b/src/sage/schemes/toric/fano_variety.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Fano toric varieties @@ -546,8 +547,10 @@ def CPRFanoToricVariety(Delta=None, # single facet of Delta_polar, otherwise they do not form a # subdivision of the face fan of Delta_polar if check: - facet_sets = [frozenset(facet.ambient_point_indices()) - for facet in Delta_polar.facets()] + ambient_points = Delta_polar.ambient().points() + facet_sets = [frozenset(Pindex for Pindex, point in enumerate(ambient_points) + if normal*point + Delta_polar.facet_constant(Hindex) == 0) + for Hindex, normal in enumerate(Delta_polar.facet_normals())] for chart in charts: is_bad = True for fset in facet_sets: diff --git a/src/sage/schemes/toric/homset.py b/src/sage/schemes/toric/homset.py index 87f648e1a9d..5e8b33805c2 100755 --- a/src/sage/schemes/toric/homset.py +++ b/src/sage/schemes/toric/homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Set of homomorphisms between two toric varieties diff --git a/src/sage/schemes/toric/ideal.py b/src/sage/schemes/toric/ideal.py index 4c171595e6a..e3f5f6d116d 100755 --- a/src/sage/schemes/toric/ideal.py +++ b/src/sage/schemes/toric/ideal.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs sage.libs.singular r""" Toric ideals diff --git a/src/sage/schemes/toric/library.py b/src/sage/schemes/toric/library.py index 6f833c5c5d2..84fe9dc4fbd 100755 --- a/src/sage/schemes/toric/library.py +++ b/src/sage/schemes/toric/library.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Library of toric varieties diff --git a/src/sage/schemes/toric/morphism.py b/src/sage/schemes/toric/morphism.py index f226aa61790..84980f21128 100755 --- a/src/sage/schemes/toric/morphism.py +++ b/src/sage/schemes/toric/morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Morphisms of toric varieties diff --git a/src/sage/schemes/toric/points.py b/src/sage/schemes/toric/points.py index ea2f09405a3..71fa7fb0342 100755 --- a/src/sage/schemes/toric/points.py +++ b/src/sage/schemes/toric/points.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs """ Enumerate points of a toric variety diff --git a/src/sage/schemes/toric/sheaf/all.py b/src/sage/schemes/toric/sheaf/all.py index e69de29bb2d..ca4c26e905d 100644 --- a/src/sage/schemes/toric/sheaf/all.py +++ b/src/sage/schemes/toric/sheaf/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-polyhedra diff --git a/src/sage/schemes/toric/sheaf/constructor.py b/src/sage/schemes/toric/sheaf/constructor.py index 925451654ad..06af08b5caa 100755 --- a/src/sage/schemes/toric/sheaf/constructor.py +++ b/src/sage/schemes/toric/sheaf/constructor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Construct sheaves on toric varieties diff --git a/src/sage/schemes/toric/sheaf/klyachko.py b/src/sage/schemes/toric/sheaf/klyachko.py index a2e80dd7fa6..3f35f7cd26c 100755 --- a/src/sage/schemes/toric/sheaf/klyachko.py +++ b/src/sage/schemes/toric/sheaf/klyachko.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs """ Klyachko bundles and sheaves diff --git a/src/sage/schemes/toric/toric_subscheme.py b/src/sage/schemes/toric/toric_subscheme.py index 908ef979984..f053bb981ee 100755 --- a/src/sage/schemes/toric/toric_subscheme.py +++ b/src/sage/schemes/toric/toric_subscheme.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Subschemes of toric space diff --git a/src/sage/schemes/toric/variety.py b/src/sage/schemes/toric/variety.py index 2bc696b4183..f5fb15b4f22 100755 --- a/src/sage/schemes/toric/variety.py +++ b/src/sage/schemes/toric/variety.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Toric varieties diff --git a/src/sage/schemes/toric/weierstrass.py b/src/sage/schemes/toric/weierstrass.py index 8e0feb88c2c..e1c6cb13a21 100755 --- a/src/sage/schemes/toric/weierstrass.py +++ b/src/sage/schemes/toric/weierstrass.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Weierstrass form of a toric elliptic curve diff --git a/src/sage/schemes/toric/weierstrass_covering.py b/src/sage/schemes/toric/weierstrass_covering.py index 82c300c1f7a..eab9ff94015 100755 --- a/src/sage/schemes/toric/weierstrass_covering.py +++ b/src/sage/schemes/toric/weierstrass_covering.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Map to the Weierstrass form of a toric elliptic curve diff --git a/src/sage/schemes/toric/weierstrass_higher.py b/src/sage/schemes/toric/weierstrass_higher.py index 1e88b1dd952..c6eecfec056 100755 --- a/src/sage/schemes/toric/weierstrass_higher.py +++ b/src/sage/schemes/toric/weierstrass_higher.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-polyhedra # sage.doctest: needs sage.geometry.polyhedron sage.graphs r""" Weierstrass for elliptic curves in higher codimension diff --git a/src/sage/sets/all.py b/src/sage/sets/all.py index 8cdd85ed269..ce54f9cf6b1 100644 --- a/src/sage/sets/all.py +++ b/src/sage/sets/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.misc.lazy_import import lazy_import lazy_import('sage.sets.real_set', 'RealSet') from sage.sets.set import Set diff --git a/src/sage/sets/cartesian_product.py b/src/sage/sets/cartesian_product.py index e29a4fb1a2f..87916eb68bc 100644 --- a/src/sage/sets/cartesian_product.py +++ b/src/sage/sets/cartesian_product.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Cartesian products diff --git a/src/sage/sets/condition_set.py b/src/sage/sets/condition_set.py index a0d618ebdde..4a22982b3ae 100644 --- a/src/sage/sets/condition_set.py +++ b/src/sage/sets/condition_set.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Subsets of a Universe Defined by Predicates """ diff --git a/src/sage/sets/disjoint_set.pxd b/src/sage/sets/disjoint_set.pxd index 4d981718568..073bc1e86fc 100644 --- a/src/sage/sets/disjoint_set.pxd +++ b/src/sage/sets/disjoint_set.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2009 Sebastien Labbe # diff --git a/src/sage/sets/disjoint_set.pyx b/src/sage/sets/disjoint_set.pyx index ddd9a95a310..358b4b68f6e 100644 --- a/src/sage/sets/disjoint_set.pyx +++ b/src/sage/sets/disjoint_set.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Disjoint-set data structure diff --git a/src/sage/sets/disjoint_union_enumerated_sets.py b/src/sage/sets/disjoint_union_enumerated_sets.py index 97243f90d11..7356e4c7fa4 100644 --- a/src/sage/sets/disjoint_union_enumerated_sets.py +++ b/src/sage/sets/disjoint_union_enumerated_sets.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Disjoint union of enumerated sets diff --git a/src/sage/sets/family.pxd b/src/sage/sets/family.pxd index f5d8f755ecc..5459ef38e0b 100644 --- a/src/sage/sets/family.pxd +++ b/src/sage/sets/family.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.parent cimport Parent diff --git a/src/sage/sets/family.pyx b/src/sage/sets/family.pyx index f87768f3989..af91892d426 100644 --- a/src/sage/sets/family.pyx +++ b/src/sage/sets/family.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Families diff --git a/src/sage/sets/finite_enumerated_set.py b/src/sage/sets/finite_enumerated_set.py index ce959031800..b3c41e154b8 100644 --- a/src/sage/sets/finite_enumerated_set.py +++ b/src/sage/sets/finite_enumerated_set.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Finite Enumerated Sets """ diff --git a/src/sage/sets/finite_set_map_cy.pxd b/src/sage/sets/finite_set_map_cy.pxd index daa46c099e0..2a18a9ff2f8 100644 --- a/src/sage/sets/finite_set_map_cy.pxd +++ b/src/sage/sets/finite_set_map_cy.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2010 Florent Hivert , # diff --git a/src/sage/sets/finite_set_map_cy.pyx b/src/sage/sets/finite_set_map_cy.pyx index 335e4cfb5e7..1a6ae3cf46a 100644 --- a/src/sage/sets/finite_set_map_cy.pyx +++ b/src/sage/sets/finite_set_map_cy.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Data structures for maps between finite sets diff --git a/src/sage/sets/finite_set_maps.py b/src/sage/sets/finite_set_maps.py index 290e32d5e3c..9b9d5aacd52 100644 --- a/src/sage/sets/finite_set_maps.py +++ b/src/sage/sets/finite_set_maps.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Maps between finite sets diff --git a/src/sage/sets/image_set.py b/src/sage/sets/image_set.py index a518dc58f93..80d996a0d12 100644 --- a/src/sage/sets/image_set.py +++ b/src/sage/sets/image_set.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Image Sets """ diff --git a/src/sage/sets/integer_range.py b/src/sage/sets/integer_range.py index 1406ddc9b28..c3faf807ebc 100644 --- a/src/sage/sets/integer_range.py +++ b/src/sage/sets/integer_range.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Integer Range diff --git a/src/sage/sets/non_negative_integers.py b/src/sage/sets/non_negative_integers.py index ab7960df3d1..6eb72c0248c 100644 --- a/src/sage/sets/non_negative_integers.py +++ b/src/sage/sets/non_negative_integers.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Non Negative Integers """ diff --git a/src/sage/sets/positive_integers.py b/src/sage/sets/positive_integers.py index 31502df53d8..3cbba01c2d0 100644 --- a/src/sage/sets/positive_integers.py +++ b/src/sage/sets/positive_integers.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Positive Integers """ diff --git a/src/sage/sets/primes.py b/src/sage/sets/primes.py index ac33901a73b..fc4e8b02d29 100644 --- a/src/sage/sets/primes.py +++ b/src/sage/sets/primes.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ The set of prime numbers diff --git a/src/sage/sets/real_set.py b/src/sage/sets/real_set.py index f819597fcde..0c575d5e16e 100644 --- a/src/sage/sets/real_set.py +++ b/src/sage/sets/real_set.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories # sage.doctest: needs sage.rings.real_interval_field sage.rings.real_mpfr """ Subsets of the Real Line diff --git a/src/sage/sets/recursively_enumerated_set.pxd b/src/sage/sets/recursively_enumerated_set.pxd index 48c8312456c..68ba0914c7b 100644 --- a/src/sage/sets/recursively_enumerated_set.pxd +++ b/src/sage/sets/recursively_enumerated_set.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories #***************************************************************************** # Copyright (C) 2014 Sage # diff --git a/src/sage/sets/recursively_enumerated_set.pyx b/src/sage/sets/recursively_enumerated_set.pyx index 3d9d4a00f75..e347569a2c4 100644 --- a/src/sage/sets/recursively_enumerated_set.pyx +++ b/src/sage/sets/recursively_enumerated_set.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Recursively Enumerated Sets @@ -31,9 +32,9 @@ help with the enumeration. In this example, the seed is 0 and the successor function is either ``+2`` or ``+3``. This is the set of nonnegative linear combinations of 2 and 3:: - sage: succ = lambda a:[a+2,a+3] - sage: C = RecursivelyEnumeratedSet([0], succ) - sage: C + sage: def succ(a): + ....: return [a + 2, a + 3] + sage: C = RecursivelyEnumeratedSet([0], succ); C A recursively enumerated set (breadth first search) Breadth first search:: @@ -54,9 +55,12 @@ The origin ``(0, 0)`` as seed and the upper, lower, left and right lattice point as successor function. This function is symmetric since `p` is a successor of `q` if and only if `q` is a successor or `p`:: - sage: succ = lambda a: [(a[0]-1,a[1]), (a[0],a[1]-1), (a[0]+1,a[1]), (a[0],a[1]+1)] + sage: def succ(a): + ....: return [(a[0] - 1, a[1]), (a[0], a[1] - 1), + ....: (a[0] + 1, a[1]), (a[0], a[1] + 1)] sage: seeds = [(0,0)] - sage: C = RecursivelyEnumeratedSet(seeds, succ, structure='symmetric', enumeration='depth') + sage: C = RecursivelyEnumeratedSet(seeds, succ, structure='symmetric', + ....: enumeration='depth') sage: C A recursively enumerated set with a symmetric structure (depth first search) @@ -140,7 +144,8 @@ empty word by appending the letter `a` or `b` as a successor function. This set has a forest structure:: sage: seeds = [''] - sage: succ = lambda w: [w+'a', w+'b'] + sage: def succ(w): + ....: return [w + 'a', w + 'b'] sage: C = RecursivelyEnumeratedSet(seeds, succ, structure='forest') sage: C An enumerated set with a forest structure @@ -335,9 +340,9 @@ def RecursivelyEnumeratedSet(seeds, successors, structure=None, A recursive set with no other information:: - sage: f = lambda a: [a+3, a+5] - sage: C = RecursivelyEnumeratedSet([0], f) - sage: C + sage: def f(a): + ....: return [a + 3, a + 5] + sage: C = RecursivelyEnumeratedSet([0], f); C A recursively enumerated set (breadth first search) sage: it = iter(C) sage: [next(it) for _ in range(10)] @@ -357,9 +362,9 @@ def RecursivelyEnumeratedSet(seeds, successors, structure=None, A recursive set given by a symmetric relation:: - sage: f = lambda a: [a-1,a+1] - sage: C = RecursivelyEnumeratedSet([10, 15], f, structure='symmetric') - sage: C + sage: def f(a): + ....: return [a - 1, a + 1] + sage: C = RecursivelyEnumeratedSet([10, 15], f, structure='symmetric'); C A recursively enumerated set with a symmetric structure (breadth first search) sage: it = iter(C) sage: [next(it) for _ in range(7)] @@ -381,7 +386,8 @@ def RecursivelyEnumeratedSet(seeds, successors, structure=None, If you do not set a good structure, you might obtain bad results, like elements generated twice:: - sage: f = lambda a: [a-1,a+1] + sage: def f(a): + ....: return [a - 1, a + 1] sage: C = RecursivelyEnumeratedSet([0], f, structure='graded') sage: it = iter(C) sage: [next(it) for _ in range(7)] @@ -436,7 +442,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a:[a+1] + sage: def f(a): + ....: return [a + 1] Different structure for the sets:: @@ -464,7 +471,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): r""" TESTS:: - sage: f = lambda a: [a+3, a+5] + sage: def f(a): + ....: return [a + 3, a + 5] sage: C = RecursivelyEnumeratedSet([0], f) sage: C A recursively enumerated set (breadth first search) @@ -554,7 +562,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a: [a+3, a+5] + sage: def f(a): + ....: return [a + 3, a + 5] sage: C = RecursivelyEnumeratedSet([0], f) sage: len(C) Traceback (most recent call last): @@ -572,7 +581,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a: [a+3, a+5] + sage: def f(a): + ....: return [a + 3, a + 5] sage: it_naive = iter(RecursivelyEnumeratedSet([0], f, enumeration='naive')) sage: it_depth = iter(RecursivelyEnumeratedSet([0], f, enumeration='depth')) sage: it_breadth = iter(RecursivelyEnumeratedSet([0], f, enumeration='breadth')) @@ -606,7 +616,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a:[a+3,a+5] + sage: def f(a): + ....: return [a + 3, a + 5] sage: R = RecursivelyEnumeratedSet([0], f) sage: R A recursively enumerated set (breadth first search) @@ -630,7 +641,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): r""" TESTS:: - sage: f = lambda x: [x-1, x+1] + sage: def f(x): + ....: return [x - 1, x + 1] sage: RecursivelyEnumeratedSet([1], f, structure=None) A recursively enumerated set (breadth first search) @@ -709,7 +721,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a: [a+3, a+5] + sage: def f(a): + ....: return [a + 3, a + 5] sage: C = RecursivelyEnumeratedSet([0], f) sage: it = C.graded_component_iterator() # todo: not implemented """ @@ -735,7 +748,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a: [a+3, a+5] + sage: def f(a): + ....: return [a + 3, a + 5] sage: C = RecursivelyEnumeratedSet([0], f) sage: C.graded_component(0) Traceback (most recent call last): @@ -760,7 +774,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a: [a-1, a+1] + sage: def f(a): + ....: return [a - 1, a + 1] sage: S = RecursivelyEnumeratedSet([5, 10], f, structure='symmetric') sage: it = S.elements_of_depth_iterator(2) sage: sorted(it) @@ -784,7 +799,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a: [a+3, a+5] + sage: def f(a): + ....: return [a + 3, a + 5] sage: C = RecursivelyEnumeratedSet([0], f) sage: it = C.breadth_first_search_iterator() sage: [next(it) for _ in range(10)] @@ -820,7 +836,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a: [a+3, a+5] + sage: def f(a): + ....: return [a + 3, a + 5] sage: C = RecursivelyEnumeratedSet([0], f) sage: it = C._breadth_first_search_iterator_using_queue() sage: [next(it) for _ in range(10)] @@ -880,7 +897,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: f = lambda a: [a+3, a+5] + sage: def f(a): + ....: return [a + 3, a + 5] sage: C = RecursivelyEnumeratedSet([0], f) sage: it = C.depth_first_search_iterator() sage: [next(it) for _ in range(10)] @@ -919,7 +937,8 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): EXAMPLES:: - sage: child = lambda i: [(i+3) % 10, (i+8) % 10] + sage: def child(i): + ....: return [(i+3) % 10, (i+8) % 10] sage: R = RecursivelyEnumeratedSet([0], child) sage: R.to_digraph() # needs sage.graphs Looped multi-digraph on 10 vertices @@ -927,8 +946,10 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): Digraph of a recursively enumerated set with a symmetric structure of infinite cardinality using ``max_depth`` argument:: - sage: succ = lambda a: [(a[0]-1,a[1]), (a[0],a[1]-1), (a[0]+1,a[1]), (a[0],a[1]+1)] - sage: seeds = [(0,0)] + sage: def succ(a): + ....: return [(a[0] - 1, a[1]), (a[0], a[1] - 1), + ....: (a[0] + 1, a[1]), (a[0], a[1] + 1)] + sage: seeds = [(0, 0)] sage: C = RecursivelyEnumeratedSet(seeds, succ, structure='symmetric') sage: C.to_digraph(max_depth=3) # needs sage.graphs Looped multi-digraph on 41 vertices @@ -942,9 +963,10 @@ cdef class RecursivelyEnumeratedSet_generic(Parent): Digraph of a recursively enumerated set with a graded structure:: - sage: f = lambda a: [a+1, a+I] + sage: def f(a): + ....: return [a + 1, a + I] sage: C = RecursivelyEnumeratedSet([0], f, structure='graded') - sage: C.to_digraph(max_depth=4) # needs sage.graphs + sage: C.to_digraph(max_depth=4) # needs sage.graphs sage.symbolic Looped multi-digraph on 21 vertices """ successors = self.successors @@ -968,7 +990,8 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): EXAMPLES:: - sage: f = lambda a: [a-1,a+1] + sage: def f(a): + ....: return [a - 1, a + 1] sage: C = RecursivelyEnumeratedSet([0], f, structure='symmetric') sage: C A recursively enumerated set with a symmetric structure (breadth first search) @@ -980,7 +1003,7 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): Do not use lambda functions for saving purposes:: - sage: f = lambda a: [a-1,a+1] + sage: f = lambda a: [a - 1, a + 1] sage: C = RecursivelyEnumeratedSet([0], f, structure='symmetric') sage: loads(dumps(C)) Traceback (most recent call last): @@ -989,7 +1012,8 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): This works in the command line but apparently not as a doctest:: - sage: def f(a): return [a-1,a+1] + sage: def f(a): + ....: return [a - 1, a + 1] sage: C = RecursivelyEnumeratedSet([0], f, structure='symmetric') sage: loads(dumps(C)) Traceback (most recent call last): @@ -1014,7 +1038,9 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): EXAMPLES:: - sage: f = lambda a: [(a[0]-1,a[1]), (a[0],a[1]-1), (a[0]+1,a[1]), (a[0],a[1]+1)] + sage: def f(a): + ....: return [(a[0] - 1, a[1]), (a[0], a[1] - 1), + ....: (a[0] + 1, a[1]), (a[0], a[1] + 1)] sage: C = RecursivelyEnumeratedSet([(0,0)], f, structure='symmetric') sage: s = list(C.breadth_first_search_iterator(max_depth=2)); s [(0, 0), @@ -1075,7 +1101,8 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): EXAMPLES:: - sage: f = lambda a: [a-1, a+1] + sage: def f(a): + ....: return [a - 1, a + 1] sage: S = RecursivelyEnumeratedSet([10], f, structure='symmetric') sage: it = S.graded_component_iterator() sage: [sorted(next(it)) for _ in range(5)] @@ -1083,7 +1110,8 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): Starting with two generators:: - sage: f = lambda a: [a-1, a+1] + sage: def f(a): + ....: return [a - 1, a + 1] sage: S = RecursivelyEnumeratedSet([5, 10], f, structure='symmetric') sage: it = S.graded_component_iterator() sage: [sorted(next(it)) for _ in range(5)] @@ -1156,7 +1184,8 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): EXAMPLES:: - sage: f = lambda a: [a-1,a+1] + sage: def f(a): + ....: return [a - 1, a + 1] sage: C = RecursivelyEnumeratedSet([10, 15], f, structure='symmetric') sage: for i in range(5): sorted(C.graded_component(i)) [10, 15] @@ -1220,7 +1249,8 @@ cdef class RecursivelyEnumeratedSet_symmetric(RecursivelyEnumeratedSet_generic): EXAMPLES:: - sage: f = lambda a: [a-1, a+1] + sage: def f(a): + ....: return [a - 1, a + 1] sage: S = RecursivelyEnumeratedSet([5, 10], f, structure='symmetric') sage: it = S.graded_component_iterator() sage: [sorted(next(it)) for _ in range(3)] # indirect doctest @@ -1249,7 +1279,8 @@ cdef class RecursivelyEnumeratedSet_graded(RecursivelyEnumeratedSet_generic): EXAMPLES:: - sage: f = lambda a: [(a[0]+1,a[1]), (a[0],a[1]+1)] + sage: def f(a): + ....: return [(a[0] + 1, a[1]), (a[0], a[1] + 1)] sage: C = RecursivelyEnumeratedSet([(0,0)], f, structure='graded', max_depth=3) sage: C A recursively enumerated set with a graded structure (breadth first @@ -1277,7 +1308,8 @@ cdef class RecursivelyEnumeratedSet_graded(RecursivelyEnumeratedSet_generic): EXAMPLES:: - sage: f = lambda a: [(a[0]+1,a[1]), (a[0],a[1]+1)] + sage: def f(a): + ....: return [(a[0] + 1, a[1]), (a[0], a[1] + 1)] sage: C = RecursivelyEnumeratedSet([(0,0)], f, structure='graded') sage: list(C.breadth_first_search_iterator(max_depth=3)) [(0, 0), @@ -1321,7 +1353,8 @@ cdef class RecursivelyEnumeratedSet_graded(RecursivelyEnumeratedSet_generic): EXAMPLES:: - sage: f = lambda a: [(a[0]+1,a[1]), (a[0],a[1]+1)] + sage: def f(a): + ....: return [(a[0] + 1, a[1]), (a[0], a[1] + 1)] sage: C = RecursivelyEnumeratedSet([(0,0)], f, structure='graded', max_depth=3) sage: it = C.graded_component_iterator() sage: for _ in range(4): sorted(next(it)) @@ -1431,7 +1464,8 @@ cdef class RecursivelyEnumeratedSet_graded(RecursivelyEnumeratedSet_generic): EXAMPLES:: - sage: f = lambda a: [(a[0]+1,a[1]), (a[0],a[1]+1)] + sage: def f(a): + ....: return [(a[0] + 1, a[1]), (a[0], a[1] + 1)] sage: C = RecursivelyEnumeratedSet([(0,0)], f, structure='graded') sage: it = C.graded_component_iterator() sage: [sorted(next(it)) for _ in range(2)] # indirect doctest @@ -1520,7 +1554,9 @@ def search_forest_iterator(roots, children, algorithm='depth'): letters in `0,1,2` without repetitions, sorted by length; the leaves are therefore permutations:: - sage: list(search_forest_iterator([[]], lambda l: [l + [i] for i in range(3) if i not in l], + sage: def f(l): + ....: return [l + [i] for i in range(3) if i not in l] + sage: list(search_forest_iterator([[]], f, ....: algorithm='breadth')) [[], [0], [1], [2], @@ -1627,10 +1663,13 @@ class RecursivelyEnumeratedSet_forest(Parent): builds the set of all ordered pairs `(i,j)` of nonnegative integers such that `j\leq 1`:: + sage: def f(l): + ....: if l[1] == 0: + ....: return [(l[0] + 1, l[1]), (l[0], 1)] + ....: else: + ....: return [(l[0], l[1] + 1)] sage: from sage.sets.recursively_enumerated_set import RecursivelyEnumeratedSet_forest - sage: I = RecursivelyEnumeratedSet_forest([(0,0)], - ....: lambda l: [(l[0]+1, l[1]), (l[0], 1)] - ....: if l[1] == 0 else [(l[0], l[1]+1)]) + sage: I = RecursivelyEnumeratedSet_forest([(0, 0)], f) With a depth first search, only the elements of the form `(i,0)` are generated:: @@ -1780,10 +1819,15 @@ class RecursivelyEnumeratedSet_forest(Parent): EXAMPLES:: sage: from sage.sets.recursively_enumerated_set import RecursivelyEnumeratedSet_forest - sage: I = RecursivelyEnumeratedSet_forest([(0,0)], lambda l: [(l[0]+1, l[1]), (l[0], 1)] if l[1] == 0 else [(l[0], l[1]+1)]) + sage: def f(l): + ....: if l[1] == 0: + ....: return [(l[0] + 1, l[1]), (l[0], 1)] + ....: else: + ....: return [(l[0], l[1] + 1)] + sage: I = RecursivelyEnumeratedSet_forest([(0, 0)], f) sage: [i for i in I.roots()] [(0, 0)] - sage: I = RecursivelyEnumeratedSet_forest([(0,0),(1,1)], lambda l: [(l[0]+1, l[1]), (l[0], 1)] if l[1] == 0 else [(l[0], l[1]+1)]) + sage: I = RecursivelyEnumeratedSet_forest([(0, 0), (1, 1)], f) sage: [i for i in I.roots()] [(0, 0), (1, 1)] """ @@ -1800,7 +1844,12 @@ class RecursivelyEnumeratedSet_forest(Parent): EXAMPLES:: sage: from sage.sets.recursively_enumerated_set import RecursivelyEnumeratedSet_forest - sage: I = RecursivelyEnumeratedSet_forest([(0,0)], lambda l: [(l[0]+1, l[1]), (l[0], 1)] if l[1] == 0 else [(l[0], l[1]+1)]) + sage: def f(l): + ....: if l[1] == 0: + ....: return [(l[0] + 1, l[1]), (l[0], 1)] + ....: else: + ....: return [(l[0], l[1] + 1)] + sage: I = RecursivelyEnumeratedSet_forest([(0, 0)], f) sage: [i for i in I.children((0,0))] [(1, 0), (0, 1)] sage: [i for i in I.children((1,0))] @@ -1861,12 +1910,21 @@ class RecursivelyEnumeratedSet_forest(Parent): sage: from sage.sets.recursively_enumerated_set import RecursivelyEnumeratedSet_forest sage: f = RecursivelyEnumeratedSet_forest([[]], - ....: lambda l: [l+[0], l+[1]] if len(l) < 3 else []) + ....: lambda l: [l + [0], l + [1]] if len(l) < 3 else []) sage: list(f.breadth_first_search_iterator()) - [[], [0], [1], [0, 0], [0, 1], [1, 0], [1, 1], [0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]] - sage: S = RecursivelyEnumeratedSet_forest([(0,0)], - ....: lambda x : [(x[0], x[1]+1)] if x[1] != 0 else [(x[0]+1,0), (x[0],1)], - ....: post_process = lambda x: x if ((is_prime(x[0]) and is_prime(x[1])) and ((x[0] - x[1]) == 2)) else None) + [[], [0], [1], [0, 0], [0, 1], [1, 0], [1, 1], + [0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]] + sage: def f(x): + ....: if x[1] != 0: + ....: return [(x[0], x[1] + 1)] + ....: else: + ....: return [(x[0] + 1, 0), (x[0], 1)] + sage: def post_process(x): + ....: if (is_prime(x[0]) and is_prime(x[1])) and ((x[0] - x[1]) == 2): + ....: return x + ....: return None + sage: S = RecursivelyEnumeratedSet_forest([(0, 0)], f, + ....: post_process=post_process) sage: p = S.breadth_first_search_iterator() sage: [next(p), next(p), next(p), next(p), next(p), next(p), next(p)] [(5, 3), (7, 5), (13, 11), (19, 17), (31, 29), (43, 41), (61, 59)] @@ -1916,14 +1974,21 @@ class RecursivelyEnumeratedSet_forest(Parent): EXAMPLES:: sage: from sage.sets.recursively_enumerated_set import RecursivelyEnumeratedSet_forest - sage: S = RecursivelyEnumeratedSet_forest([(0,0)] , - ....: lambda x : [(x[0], x[1]+1)] if x[1] != 0 else [(x[0]+1,0), (x[0],1)], - ....: post_process = lambda x: x if ((is_prime(x[0]) and is_prime(x[1])) - ....: and ((x[0] - x[1]) == 2)) else None) + sage: def f(x): + ....: if x[1] != 0: + ....: return [(x[0], x[1] + 1)] + ....: else: + ....: return [(x[0] + 1, 0), (x[0], 1)] + sage: def post_process(x): + ....: if (is_prime(x[0]) and is_prime(x[1])) and ((x[0] - x[1]) == 2): + ....: return x + ....: return None + sage: S = RecursivelyEnumeratedSet_forest([(0, 0)], f, + ....: post_process=post_process) sage: p = S.elements_of_depth_iterator(8) sage: next(p) (5, 3) - sage: S = RecursivelyEnumeratedSet_forest(NN, lambda x : [], + sage: S = RecursivelyEnumeratedSet_forest(NN, lambda x: [], ....: lambda x: x^2 if x.is_prime() else None) sage: p = S.elements_of_depth_iterator(0) sage: [next(p), next(p), next(p), next(p), next(p)] diff --git a/src/sage/sets/set.py b/src/sage/sets/set.py index 55d5639e706..1f0cbbd14ab 100644 --- a/src/sage/sets/set.py +++ b/src/sage/sets/set.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Sets diff --git a/src/sage/sets/set_from_iterator.py b/src/sage/sets/set_from_iterator.py index 0020ca080a1..25596e38af4 100644 --- a/src/sage/sets/set_from_iterator.py +++ b/src/sage/sets/set_from_iterator.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Enumerated set from iterator diff --git a/src/sage/sets/totally_ordered_finite_set.py b/src/sage/sets/totally_ordered_finite_set.py index 757146ed323..8730988c99a 100644 --- a/src/sage/sets/totally_ordered_finite_set.py +++ b/src/sage/sets/totally_ordered_finite_set.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories """ Totally Ordered Finite Sets diff --git a/src/sage/stats/all.py b/src/sage/stats/all.py index 34b229fa8ac..2636682e270 100644 --- a/src/sage/stats/all.py +++ b/src/sage/stats/all.py @@ -1,11 +1,16 @@ -import sage.stats.distributions.catalog as distributions +# sage_setup: distribution = sagemath-modules -from sage.stats.r import ttest from sage.stats.basic_stats import (mean, mode, std, variance, median, moving_average) from sage.stats.hmm import all as hmm +import sage.stats.distributions.catalog as distributions + +from sage.misc.lazy_import import lazy_import + +lazy_import("sage.stats.r", "ttest") # We lazy_import the following modules since they import numpy which # slows down sage startup -from sage.misc.lazy_import import lazy_import + lazy_import("sage.stats.time_series", ["TimeSeries", "autoregressive_fit"]) lazy_import("sage.stats.intlist", ["IntList"]) +del lazy_import diff --git a/src/sage/stats/basic_stats.py b/src/sage/stats/basic_stats.py index 47d890cf0ab..b3e521068ff 100644 --- a/src/sage/stats/basic_stats.py +++ b/src/sage/stats/basic_stats.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ Basic Statistics diff --git a/src/sage/stats/distributions/all.py b/src/sage/stats/distributions/all.py index d37a8563ec6..22eb34f328c 100644 --- a/src/sage/stats/distributions/all.py +++ b/src/sage/stats/distributions/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # We lazy_import the following modules since they import numpy which # slows down sage startup from sage.misc.lazy_import import lazy_import diff --git a/src/sage/stats/distributions/dgs.h b/src/sage/stats/distributions/dgs.h index f81119df4b3..180beefa6cc 100644 --- a/src/sage/stats/distributions/dgs.h +++ b/src/sage/stats/distributions/dgs.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-modules + */ /** * \file dgs.h * diff --git a/src/sage/stats/distributions/dgs.pxd b/src/sage/stats/distributions/dgs.pxd index 614db1388b5..1ca5f4b23f1 100644 --- a/src/sage/stats/distributions/dgs.pxd +++ b/src/sage/stats/distributions/dgs.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ AUTHOR: Martin Albrecht """ @@ -7,7 +8,7 @@ from sage.libs.gmp.random cimport gmp_randstate_t from sage.libs.mpfr.types cimport mpfr_t from libc.stdint cimport uint64_t -cdef extern from "sage/stats/distributions/dgs.h": +cdef extern from "dgs.h": int DGS_BERN_UNIFORM_DEFAULT_LENGTH int DGS_BERN_UNIFORM_MAX_LENGTH diff --git a/src/sage/stats/distributions/dgs_bern.c b/src/sage/stats/distributions/dgs_bern.c index 635ace85fa3..5f06e0198a0 100644 --- a/src/sage/stats/distributions/dgs_bern.c +++ b/src/sage/stats/distributions/dgs_bern.c @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-modules + */ /****************************************************************************** * * DGS - Discrete Gaussian Samplers diff --git a/src/sage/stats/distributions/dgs_bern.h b/src/sage/stats/distributions/dgs_bern.h index a120cb292ca..5b1142147cd 100644 --- a/src/sage/stats/distributions/dgs_bern.h +++ b/src/sage/stats/distributions/dgs_bern.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-modules + */ /** Bernoulli samplers. diff --git a/src/sage/stats/distributions/dgs_gauss.h b/src/sage/stats/distributions/dgs_gauss.h index 4e3d310e196..b8e50a32298 100644 --- a/src/sage/stats/distributions/dgs_gauss.h +++ b/src/sage/stats/distributions/dgs_gauss.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-modules + */ /** Discrete Gaussians over the Integers. diff --git a/src/sage/stats/distributions/dgs_gauss_dp.c b/src/sage/stats/distributions/dgs_gauss_dp.c index 2741c43dc5e..7efd4d21a2b 100644 --- a/src/sage/stats/distributions/dgs_gauss_dp.c +++ b/src/sage/stats/distributions/dgs_gauss_dp.c @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-modules + */ /****************************************************************************** * * DGS - Discrete Gaussian Samplers diff --git a/src/sage/stats/distributions/dgs_gauss_mp.c b/src/sage/stats/distributions/dgs_gauss_mp.c index d83098b839b..7c8208a4650 100644 --- a/src/sage/stats/distributions/dgs_gauss_mp.c +++ b/src/sage/stats/distributions/dgs_gauss_mp.c @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-modules + */ /****************************************************************************** * * DGS - Discrete Gaussian Samplers diff --git a/src/sage/stats/distributions/dgs_misc.h b/src/sage/stats/distributions/dgs_misc.h index 8679696b52e..ad7580ce1c9 100644 --- a/src/sage/stats/distributions/dgs_misc.h +++ b/src/sage/stats/distributions/dgs_misc.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-modules + */ /** * \file dgs_misc.h * diff --git a/src/sage/stats/distributions/discrete_gaussian_integer.pxd b/src/sage/stats/distributions/discrete_gaussian_integer.pxd index d6edbe88d43..d671070f2fb 100644 --- a/src/sage/stats/distributions/discrete_gaussian_integer.pxd +++ b/src/sage/stats/distributions/discrete_gaussian_integer.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-modules + from sage.rings.integer cimport Integer from sage.rings.real_mpfr cimport RealNumber from sage.stats.distributions.dgs cimport dgs_disc_gauss_mp_t, dgs_disc_gauss_dp_t diff --git a/src/sage/stats/distributions/discrete_gaussian_integer.pyx b/src/sage/stats/distributions/discrete_gaussian_integer.pyx index 4fd8d24b1f4..56b874d7766 100644 --- a/src/sage/stats/distributions/discrete_gaussian_integer.pyx +++ b/src/sage/stats/distributions/discrete_gaussian_integer.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.symbolic # # distutils: sources = sage/stats/distributions/dgs_gauss_mp.c sage/stats/distributions/dgs_gauss_dp.c sage/stats/distributions/dgs_bern.c diff --git a/src/sage/stats/distributions/discrete_gaussian_lattice.py b/src/sage/stats/distributions/discrete_gaussian_lattice.py index fe1c1b8e5d1..d1bc8495ced 100644 --- a/src/sage/stats/distributions/discrete_gaussian_lattice.py +++ b/src/sage/stats/distributions/discrete_gaussian_lattice.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Discrete Gaussian Samplers over Lattices @@ -59,20 +60,19 @@ # policies, either expressed or implied, of the FreeBSD Project. # *****************************************************************************/ -from sage.functions.log import exp -from sage.rings.real_mpfr import RealField -from sage.rings.integer_ring import ZZ -from sage.rings.rational_field import QQ -from sage.stats.distributions.discrete_gaussian_integer import DiscreteGaussianDistributionIntegerSampler -from sage.structure.sage_object import SageObject -from sage.misc.cachefunc import cached_method -from sage.misc.functional import sqrt -from sage.misc.prandom import normalvariate -from sage.misc.verbose import verbose -from sage.symbolic.constants import pi from sage.matrix.constructor import matrix +from sage.misc.lazy_import import lazy_import from sage.modules.free_module import FreeModule from sage.modules.free_module_element import vector +from sage.rings.integer_ring import ZZ +from sage.rings.rational_field import QQ +from sage.rings.real_mpfr import RR +from sage.rings.real_mpfr import RealField +from sage.structure.sage_object import SageObject + +lazy_import("sage.functions.log", "exp") + +from .discrete_gaussian_integer import DiscreteGaussianDistributionIntegerSampler def _iter_vectors(n, lower, upper, step=None): diff --git a/src/sage/stats/distributions/discrete_gaussian_polynomial.py b/src/sage/stats/distributions/discrete_gaussian_polynomial.py index da15257c617..b7004216218 100644 --- a/src/sage/stats/distributions/discrete_gaussian_polynomial.py +++ b/src/sage/stats/distributions/discrete_gaussian_polynomial.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Discrete Gaussian Samplers for `\ZZ[x]` @@ -73,7 +74,9 @@ class DiscreteGaussianDistributionPolynomialSampler(SageObject): True sage: gs = DiscreteGaussianDistributionPolynomialSampler(ZZ['x'], 8, 3.0) sage: [gs() for _ in range(3)] # random - [4*x^7 + 4*x^6 - 4*x^5 + 2*x^4 + x^3 - 4*x + 7, -5*x^6 + 4*x^5 - 3*x^3 + 4*x^2 + x, 2*x^7 + 2*x^6 + 2*x^5 - x^4 - 2*x^2 + 3*x + 1] + [4*x^7 + 4*x^6 - 4*x^5 + 2*x^4 + x^3 - 4*x + 7, + -5*x^6 + 4*x^5 - 3*x^3 + 4*x^2 + x, + 2*x^7 + 2*x^6 + 2*x^5 - x^4 - 2*x^2 + 3*x + 1] .. automethod:: __init__ .. automethod:: __call__ diff --git a/src/sage/stats/hmm/all.py b/src/sage/stats/hmm/all.py index 4666e022fac..1bea3cdd941 100644 --- a/src/sage/stats/hmm/all.py +++ b/src/sage/stats/hmm/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules ############################################################################# # Copyright (C) 2010 William Stein # Distributed under the terms of the GNU General Public License (GPL), v2+. diff --git a/src/sage/stats/hmm/chmm.pyx b/src/sage/stats/hmm/chmm.pyx index 540f91356d0..46945534ded 100644 --- a/src/sage/stats/hmm/chmm.pyx +++ b/src/sage/stats/hmm/chmm.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs numpy r""" Continuous Emission Hidden Markov Models diff --git a/src/sage/stats/hmm/distributions.pxd b/src/sage/stats/hmm/distributions.pxd index aafc0b90b96..f7262ef0ba1 100644 --- a/src/sage/stats/hmm/distributions.pxd +++ b/src/sage/stats/hmm/distributions.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules ############################################################################# # Copyright (C) 2010 William Stein # Distributed under the terms of the GNU General Public License (GPL) diff --git a/src/sage/stats/hmm/distributions.pyx b/src/sage/stats/hmm/distributions.pyx index ed79d289ed6..7eef7f880b0 100644 --- a/src/sage/stats/hmm/distributions.pyx +++ b/src/sage/stats/hmm/distributions.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy r""" Distributions used in implementing Hidden Markov Models diff --git a/src/sage/stats/hmm/hmm.pxd b/src/sage/stats/hmm/hmm.pxd index 1abcb95392b..db69471b83a 100644 --- a/src/sage/stats/hmm/hmm.pxd +++ b/src/sage/stats/hmm/hmm.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules ############################################################################# # Copyright (C) 2010 William Stein # Distributed under the terms of the GNU General Public License (GPL) v2+. diff --git a/src/sage/stats/hmm/hmm.pyx b/src/sage/stats/hmm/hmm.pyx index e471a42d97f..ef15e6abaf1 100644 --- a/src/sage/stats/hmm/hmm.pyx +++ b/src/sage/stats/hmm/hmm.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs numpy sage.modules r""" Hidden Markov Models diff --git a/src/sage/stats/hmm/util.pxd b/src/sage/stats/hmm/util.pxd index b0d399d9aaf..31a65495e31 100644 --- a/src/sage/stats/hmm/util.pxd +++ b/src/sage/stats/hmm/util.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.stats.time_series cimport TimeSeries cdef class HMM_Util: diff --git a/src/sage/stats/hmm/util.pyx b/src/sage/stats/hmm/util.pyx index c43abc73f75..f1b68be65cd 100644 --- a/src/sage/stats/hmm/util.pyx +++ b/src/sage/stats/hmm/util.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy """ Hidden Markov Models -- Utility functions diff --git a/src/sage/stats/intlist.pxd b/src/sage/stats/intlist.pxd index d63971aac14..e6708c7aaf0 100644 --- a/src/sage/stats/intlist.pxd +++ b/src/sage/stats/intlist.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules ############################################################################# # Copyright (C) 2010 William Stein # Distributed under the terms of the GNU General Public License (GPL) v2+. diff --git a/src/sage/stats/intlist.pyx b/src/sage/stats/intlist.pyx index 6f337badad5..c7036ddbca0 100644 --- a/src/sage/stats/intlist.pyx +++ b/src/sage/stats/intlist.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy """ C Int Lists diff --git a/src/sage/stats/r.py b/src/sage/stats/r.py index 63398fb1a44..f4fd1139247 100644 --- a/src/sage/stats/r.py +++ b/src/sage/stats/r.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules """ T-test using R diff --git a/src/sage/stats/time_series.pxd b/src/sage/stats/time_series.pxd index 86a9095ba75..e127c87d15d 100644 --- a/src/sage/stats/time_series.pxd +++ b/src/sage/stats/time_series.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules cdef class TimeSeries: cdef double* _values cdef Py_ssize_t _length diff --git a/src/sage/stats/time_series.pyx b/src/sage/stats/time_series.pyx index e4845126012..14268474a9b 100644 --- a/src/sage/stats/time_series.pyx +++ b/src/sage/stats/time_series.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: optional - numpy r""" Time Series diff --git a/src/sage/structure/all.py b/src/sage/structure/all.py index 40b9daa67e8..0d76e4bf046 100644 --- a/src/sage/structure/all.py +++ b/src/sage/structure/all.py @@ -1,4 +1,5 @@ # sage_setup: distribution = sagemath-objects + from sage.structure.factorization import Factorization from sage.structure.sequence import Sequence, seq diff --git a/src/sage/structure/coerce.pxd b/src/sage/structure/coerce.pxd index 0d2cd13f1d8..fc2d9e90af1 100644 --- a/src/sage/structure/coerce.pxd +++ b/src/sage/structure/coerce.pxd @@ -1,4 +1,5 @@ # sage_setup: distribution = sagemath-objects + from sage.structure.parent cimport Parent from sage.structure.coerce_dict cimport TripleDict diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx index cc15eff82e9..a937f42b249 100644 --- a/src/sage/structure/coerce.pyx +++ b/src/sage/structure/coerce.pyx @@ -471,8 +471,8 @@ cpdef bint is_numpy_type(t) noexcept: cpdef bint is_mpmath_type(t) noexcept: r""" - Check whether the type ``t`` is a type whose name starts with either - ``mpmath.`` or ``sage.libs.mpmath.``. + Check whether the type ``t`` is a type whose name starts with + ``sage.libs.mpmath.``. EXAMPLES:: @@ -480,12 +480,12 @@ cpdef bint is_mpmath_type(t) noexcept: sage: from sage.structure.coerce import is_mpmath_type sage: is_mpmath_type(int) False - sage: import mpmath - sage: is_mpmath_type(mpmath.mpc(2)) + sage: import sage.libs.mpmath.all + sage: is_mpmath_type(sage.libs.mpmath.all.mpc(2)) False - sage: is_mpmath_type(type(mpmath.mpc(2))) + sage: is_mpmath_type(type(sage.libs.mpmath.all.mpc(2))) True - sage: is_mpmath_type(type(mpmath.mpf(2))) + sage: is_mpmath_type(type(sage.libs.mpmath.all.mpf(2))) True """ return isinstance(t, type) and \ diff --git a/src/sage/structure/element.pxd b/src/sage/structure/element.pxd index cc1bf225710..b06874d3a55 100644 --- a/src/sage/structure/element.pxd +++ b/src/sage/structure/element.pxd @@ -1,4 +1,5 @@ # sage_setup: distribution = sagemath-objects + from sage.structure.sage_object cimport SageObject from sage.structure.parent cimport Parent from sage.misc.inherit_comparison cimport InheritComparisonMetaclass diff --git a/src/sage/structure/element.pyx b/src/sage/structure/element.pyx index 5f1db5de82b..67be1b22808 100644 --- a/src/sage/structure/element.pyx +++ b/src/sage/structure/element.pyx @@ -3291,13 +3291,13 @@ cdef class CommutativeRingElement(RingElement): x sage: f = x^2 - 4*x + 4; f.sqrt(all=True) [x - 2, -x + 2] - sage: sqrtx = x.sqrt(name='y'); sqrtx + sage: sqrtx = x.sqrt(name='y'); sqrtx # needs sage.libs.singular y - sage: sqrtx^2 + sage: sqrtx^2 # needs sage.libs.singular x - sage: x.sqrt(all=true, name='y') + sage: x.sqrt(all=true, name='y') # needs sage.libs.singular [y, -y] - sage: x.sqrt(extend=False, all=True) + sage: x.sqrt(extend=False, all=True) # needs sage.libs.singular [] sage: x.sqrt() Traceback (most recent call last): diff --git a/src/sage/structure/factory.pyx b/src/sage/structure/factory.pyx index bde82e5d18f..bffe5fb3ac7 100644 --- a/src/sage/structure/factory.pyx +++ b/src/sage/structure/factory.pyx @@ -768,7 +768,16 @@ def lookup_global(name): module, name = name.rsplit('.', 1) all = __import__(module, fromlist=[name]) else: - import sage.all as all + try: + import sage.all as all + except ImportError: + try: + import sage.all__sagemath_modules as all + except ImportError: + try: + import sage.all__sagemath_pari as all + except ImportError: + import sage.all__sagemath_categories as all return getattr(all, name) diff --git a/src/sage/structure/sage_object.pyx b/src/sage/structure/sage_object.pyx index 7102316be70..c6dc911a0e5 100644 --- a/src/sage/structure/sage_object.pyx +++ b/src/sage/structure/sage_object.pyx @@ -841,7 +841,7 @@ cdef class SageObject: EXAMPLES:: sage: n = -3/7 - sage: n._magma_init_(magma) + sage: n._magma_init_(magma) # optional - magma '-3/7' Some other examples that illustrate conversion to Magma. diff --git a/src/sage/symbolic/all.py b/src/sage/symbolic/all.py index 8e1c9600409..1ff2a51a3f8 100644 --- a/src/sage/symbolic/all.py +++ b/src/sage/symbolic/all.py @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-symbolics + from sage.symbolic.ring import SR from sage.symbolic.constants import (pi, e, NaN, golden_ratio, log2, euler_gamma, catalan, khinchin, twinprime, mertens, glaisher) diff --git a/src/sage/symbolic/all__sagemath_categories.py b/src/sage/symbolic/all__sagemath_categories.py new file mode 100644 index 00000000000..b230a6a2ad9 --- /dev/null +++ b/src/sage/symbolic/all__sagemath_categories.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-categories diff --git a/src/sage/libs/mpmath/__init__.py b/src/sage/symbolic/all__sagemath_standard_no_symbolics.py similarity index 100% rename from src/sage/libs/mpmath/__init__.py rename to src/sage/symbolic/all__sagemath_standard_no_symbolics.py diff --git a/src/sage/symbolic/assumptions.py b/src/sage/symbolic/assumptions.py index 9eef304c6fc..3923fa9104d 100644 --- a/src/sage/symbolic/assumptions.py +++ b/src/sage/symbolic/assumptions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Assumptions diff --git a/src/sage/symbolic/benchmark.py b/src/sage/symbolic/benchmark.py index 89a62a422c6..8fa96eac0c2 100644 --- a/src/sage/symbolic/benchmark.py +++ b/src/sage/symbolic/benchmark.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Benchmarks diff --git a/src/sage/symbolic/callable.py b/src/sage/symbolic/callable.py index 3a7b7f553a6..d2c04b8157f 100644 --- a/src/sage/symbolic/callable.py +++ b/src/sage/symbolic/callable.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Callable Symbolic Expressions diff --git a/src/sage/symbolic/comparison_impl.pxi b/src/sage/symbolic/comparison_impl.pxi index 8d1bd2e03d6..7d32405e1b8 100644 --- a/src/sage/symbolic/comparison_impl.pxi +++ b/src/sage/symbolic/comparison_impl.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Comparison of Symbolic Expressions diff --git a/src/sage/symbolic/complexity_measures.py b/src/sage/symbolic/complexity_measures.py index a7b66fa5db0..a37eac4aa3a 100644 --- a/src/sage/symbolic/complexity_measures.py +++ b/src/sage/symbolic/complexity_measures.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Complexity Measures diff --git a/src/sage/symbolic/constants.py b/src/sage/symbolic/constants.py index f7177a24994..804c9ee37db 100644 --- a/src/sage/symbolic/constants.py +++ b/src/sage/symbolic/constants.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Mathematical constants diff --git a/src/sage/symbolic/constants_c_impl.pxi b/src/sage/symbolic/constants_c_impl.pxi index 0ebd28e8aa3..be120b6b97c 100644 --- a/src/sage/symbolic/constants_c_impl.pxi +++ b/src/sage/symbolic/constants_c_impl.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ The constant `e` """ diff --git a/src/sage/symbolic/expression.pxd b/src/sage/symbolic/expression.pxd index 33e352b7f3d..afd28c1d25c 100644 --- a/src/sage/symbolic/expression.pxd +++ b/src/sage/symbolic/expression.pxd @@ -1,3 +1,5 @@ +# sage_setup: distribution = sagemath-symbolics + cpdef _repr_Expression(x) cpdef _latex_Expression(x) cpdef new_Expression(parent, x) diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx index ca523ee9a95..e5c6fe2f308 100644 --- a/src/sage/symbolic/expression.pyx +++ b/src/sage/symbolic/expression.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # distutils: sources = sage/symbolic/ginac/add.cpp sage/symbolic/ginac/archive.cpp sage/symbolic/ginac/assume.cpp sage/symbolic/ginac/basic.cpp sage/symbolic/ginac/cmatcher.cpp sage/symbolic/ginac/constant.cpp sage/symbolic/ginac/context.cpp sage/symbolic/ginac/ex.cpp sage/symbolic/ginac/expair.cpp sage/symbolic/ginac/expairseq.cpp sage/symbolic/ginac/exprseq.cpp sage/symbolic/ginac/fderivative.cpp sage/symbolic/ginac/function.cpp sage/symbolic/ginac/function_info.cpp sage/symbolic/ginac/infinity.cpp sage/symbolic/ginac/infoflagbase.cpp sage/symbolic/ginac/inifcns.cpp sage/symbolic/ginac/inifcns_comb.cpp sage/symbolic/ginac/inifcns_gamma.cpp sage/symbolic/ginac/inifcns_hyperb.cpp sage/symbolic/ginac/inifcns_hyperg.cpp sage/symbolic/ginac/inifcns_nstdsums.cpp sage/symbolic/ginac/inifcns_orthopoly.cpp sage/symbolic/ginac/inifcns_trans.cpp sage/symbolic/ginac/inifcns_trig.cpp sage/symbolic/ginac/inifcns_zeta.cpp sage/symbolic/ginac/lst.cpp sage/symbolic/ginac/matrix.cpp sage/symbolic/ginac/mpoly-ginac.cpp sage/symbolic/ginac/mpoly-singular.cpp sage/symbolic/ginac/mpoly.cpp sage/symbolic/ginac/mul.cpp sage/symbolic/ginac/normal.cpp sage/symbolic/ginac/numeric.cpp sage/symbolic/ginac/operators.cpp sage/symbolic/ginac/order.cpp sage/symbolic/ginac/power.cpp sage/symbolic/ginac/print.cpp sage/symbolic/ginac/pseries.cpp sage/symbolic/ginac/py_funcs.cpp sage/symbolic/ginac/registrar.cpp sage/symbolic/ginac/relational.cpp sage/symbolic/ginac/remember.cpp sage/symbolic/ginac/sum.cpp sage/symbolic/ginac/symbol.cpp sage/symbolic/ginac/templates.cpp sage/symbolic/ginac/upoly-ginac.cpp sage/symbolic/ginac/useries.cpp sage/symbolic/ginac/utils.cpp sage/symbolic/ginac/wildcard.cpp # distutils: language = c++ # distutils: libraries = flint gmp SINGULAR_LIBRARIES diff --git a/src/sage/symbolic/expression_conversion_algebraic.py b/src/sage/symbolic/expression_conversion_algebraic.py index 9772fb8d94a..184b7f89062 100644 --- a/src/sage/symbolic/expression_conversion_algebraic.py +++ b/src/sage/symbolic/expression_conversion_algebraic.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Conversion of symbolic expressions to algebraic numbers """ diff --git a/src/sage/symbolic/expression_conversion_sympy.py b/src/sage/symbolic/expression_conversion_sympy.py index df7fda7fbed..90954ebc9b2 100644 --- a/src/sage/symbolic/expression_conversion_sympy.py +++ b/src/sage/symbolic/expression_conversion_sympy.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics # sage.doctest: needs sympy r""" Conversion of symbolic expressions to SymPy diff --git a/src/sage/symbolic/expression_conversions.py b/src/sage/symbolic/expression_conversions.py index 2d59c66293c..6b1e7572c63 100644 --- a/src/sage/symbolic/expression_conversions.py +++ b/src/sage/symbolic/expression_conversions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Conversion of symbolic expressions to other types @@ -26,7 +27,9 @@ from sage.functions.all import exp from sage.symbolic.operators import arithmetic_operators, relation_operators, FDerivativeOperator, add_vararg, mul_vararg from sage.rings.number_field.number_field_element_base import NumberFieldElement_base -from sage.rings.universal_cyclotomic_field import UniversalCyclotomicField + +lazy_import('sage.symbolic.expression_conversion_sympy', ['SympyConverter', 'sympy_converter']) +lazy_import('sage.symbolic.expression_conversion_algebraic', ['AlgebraicConverter', 'algebraic']) lazy_import('sage.symbolic.expression_conversion_sympy', ['SympyConverter', 'sympy_converter']) lazy_import('sage.symbolic.expression_conversion_algebraic', ['AlgebraicConverter', 'algebraic']) diff --git a/src/sage/symbolic/function.pxd b/src/sage/symbolic/function.pxd index db1ba6c5d54..a3235c3f4c0 100644 --- a/src/sage/symbolic/function.pxd +++ b/src/sage/symbolic/function.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories from sage.structure.sage_object cimport SageObject cdef class Function(SageObject): diff --git a/src/sage/symbolic/function.pyx b/src/sage/symbolic/function.pyx index 362d01ea297..6793f94eb64 100644 --- a/src/sage/symbolic/function.pyx +++ b/src/sage/symbolic/function.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Classes for symbolic functions @@ -155,6 +156,7 @@ try: get_sfunction_from_hash, get_sfunction_from_serial as get_sfunction_from_serial ) except ImportError: + call_registered_function = None register_or_update_function = None @@ -403,7 +405,7 @@ cdef class Function(SageObject): except AttributeError: return NotImplemented - def __call__(self, *args, bint coerce=True, bint hold=False): + def __call__(self, *args, bint coerce=True, bint hold=False, dont_call_method_on_arg=None): """ Evaluates this function at the given arguments. @@ -525,6 +527,19 @@ cdef class Function(SageObject): # to a numeric type at the end symbolic_input = any(isinstance(arg, Expression) for arg in args) + if call_registered_function is None: + try: + evalf = self._evalf_ + except AttributeError: + if len(args) == 1 and not dont_call_method_on_arg: + method = getattr(args[0], self._name, None) + if callable(method): + return method() + else: + result = evalf(*args) + if result is not None: + return result + from sage.symbolic.ring import SR if coerce: @@ -804,14 +819,13 @@ cdef class Function(SageObject): 123 sage: del mpmath.noMpmathFn """ - import mpmath - from sage.libs.mpmath.utils import mpmath_to_sage, sage_to_mpmath - prec = mpmath.mp.prec - args = [mpmath_to_sage(x, prec) - if isinstance(x, (mpmath.mpf, mpmath.mpc)) else x + from sage.libs.mpmath.all import mp, mpf, mpc + from sage.libs.mpmath.sage_utils import mpmath_to_sage, sage_to_mpmath + args = [mpmath_to_sage(x, mp.prec) + if isinstance(x, (mpf, mpc)) else x for x in args] res = self(*args) - res = sage_to_mpmath(res, prec) + res = sage_to_mpmath(res, mp.prec) return res @@ -993,7 +1007,7 @@ cdef class BuiltinFunction(Function): import numpy as module custom = self._eval_numpy_ elif any(is_mpmath_type(type(arg)) for arg in args): - import mpmath as module + import sage.libs.mpmath.all as module custom = self._eval_mpmath_ elif all(isinstance(arg, float) for arg in args): # We do not include the factorial here as @@ -1044,7 +1058,7 @@ cdef class BuiltinFunction(Function): res = self._evalf_try_(*args) if res is None: res = super().__call__( - *args, coerce=coerce, hold=hold) + *args, coerce=coerce, hold=hold, dont_call_method_on_arg=dont_call_method_on_arg) # Convert the output back to the corresponding # Python type if possible. @@ -1073,17 +1087,16 @@ cdef class BuiltinFunction(Function): return res p = res.parent() - from sage.rings.complex_double import CDF from sage.rings.integer_ring import ZZ - from sage.rings.real_double import RDF if ZZ.has_coerce_map_from(p): return int(res) - elif RDF.has_coerce_map_from(p): + from sage.rings.real_double import RDF + if RDF.has_coerce_map_from(p): return float(res) - elif CDF.has_coerce_map_from(p): + from sage.rings.complex_double import CDF + if CDF.has_coerce_map_from(p): return complex(res) - else: - return res + return res cdef _is_registered(self): """ diff --git a/src/sage/symbolic/function_factory.py b/src/sage/symbolic/function_factory.py index d626eb9bd65..6733fb67cfb 100644 --- a/src/sage/symbolic/function_factory.py +++ b/src/sage/symbolic/function_factory.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Factory for symbolic functions """ diff --git a/src/sage/symbolic/getitem_impl.pxi b/src/sage/symbolic/getitem_impl.pxi index cbc5f6b9c97..25ec91c625a 100644 --- a/src/sage/symbolic/getitem_impl.pxi +++ b/src/sage/symbolic/getitem_impl.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics "Operands" # **************************************************************************** diff --git a/src/sage/symbolic/integration/all.py b/src/sage/symbolic/integration/all.py index e69de29bb2d..332eaf1cdb6 100644 --- a/src/sage/symbolic/integration/all.py +++ b/src/sage/symbolic/integration/all.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-symbolics diff --git a/src/sage/symbolic/integration/external.py b/src/sage/symbolic/integration/external.py index 5f647228564..c34ca6b34f3 100644 --- a/src/sage/symbolic/integration/external.py +++ b/src/sage/symbolic/integration/external.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """Symbolic Integration via External Software TESTS:: diff --git a/src/sage/symbolic/integration/integral.py b/src/sage/symbolic/integration/integral.py index 6bb2592a668..942f9c7b29c 100644 --- a/src/sage/symbolic/integration/integral.py +++ b/src/sage/symbolic/integration/integral.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Symbolic Integration """ diff --git a/src/sage/symbolic/maxima_wrapper.py b/src/sage/symbolic/maxima_wrapper.py index ca30af3efcf..3868ee20ad4 100644 --- a/src/sage/symbolic/maxima_wrapper.py +++ b/src/sage/symbolic/maxima_wrapper.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics "Access to Maxima methods" ############################################################################### diff --git a/src/sage/symbolic/meson.build.in b/src/sage/symbolic/meson.build.in new file mode 100644 index 00000000000..af62952ba40 --- /dev/null +++ b/src/sage/symbolic/meson.build.in @@ -0,0 +1,2 @@ +inc_ginac = include_directories('ginac') +inc_pynac = include_directories('.') diff --git a/src/sage/symbolic/operators.py b/src/sage/symbolic/operators.py index 4e1debed2b7..81170e2620c 100644 --- a/src/sage/symbolic/operators.py +++ b/src/sage/symbolic/operators.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics "Operators" import operator diff --git a/src/sage/symbolic/pynac.pxi b/src/sage/symbolic/pynac.pxi index 4bdbcd99526..885f4aef621 100644 --- a/src/sage/symbolic/pynac.pxi +++ b/src/sage/symbolic/pynac.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Declarations for pynac, a Python frontend for ginac diff --git a/src/sage/symbolic/pynac_constant_impl.pxi b/src/sage/symbolic/pynac_constant_impl.pxi index a158bbae1d9..001bfde8ffe 100644 --- a/src/sage/symbolic/pynac_constant_impl.pxi +++ b/src/sage/symbolic/pynac_constant_impl.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Wrapper around Pynac's constants """ diff --git a/src/sage/symbolic/pynac_function_impl.pxi b/src/sage/symbolic/pynac_function_impl.pxi index a9faf2e7de7..b545b690bae 100644 --- a/src/sage/symbolic/pynac_function_impl.pxi +++ b/src/sage/symbolic/pynac_function_impl.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics cpdef call_registered_function(unsigned serial, int nargs, list args, diff --git a/src/sage/symbolic/pynac_impl.pxi b/src/sage/symbolic/pynac_impl.pxi index 967ff18d020..d5f1065583e 100644 --- a/src/sage/symbolic/pynac_impl.pxi +++ b/src/sage/symbolic/pynac_impl.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Pynac interface """ @@ -43,8 +44,13 @@ from sage.libs.gmp.all cimport * from sage.libs.gsl.types cimport * from sage.libs.gsl.complex cimport * from sage.libs.gsl.gamma cimport gsl_sf_lngamma_complex_e -from sage.libs.mpmath import utils as mpmath_utils -from sage.libs.pari.all import pari +from sage.libs.mpmath.sage_utils import call as _mpmath_call +from sage.libs.mpmath.all import ( + loggamma as _mpmath_loggamma, + polylog as _mpmath_polylog, + psi as _mpmath_psi, + stieltjes as _mpmath_stieltjes +) from sage.misc.persist import loads, dumps from sage.rings.integer_ring import ZZ from sage.rings.integer cimport Integer, smallInteger @@ -57,6 +63,11 @@ from sage.structure.coerce cimport coercion_model from sage.structure.element cimport Element, parent from sage.symbolic.function cimport Function +try: + from sage.libs.pari.all import pari +except ImportError: + pass + ################################################################# # Symbolic function helpers ################################################################# @@ -1628,12 +1639,11 @@ cdef py_stieltjes(x): n = ZZ(x) if n < 0: raise ValueError("Stieltjes constant of negative index") - import mpmath if isinstance(x, Element) and hasattr((x)._parent, 'prec'): prec = (x)._parent.prec() else: prec = 53 - return mpmath_utils.call(mpmath.stieltjes, n, prec=prec) + return _mpmath_call(_mpmath_stieltjes, n, prec=prec) def py_stieltjes_for_doctests(x): @@ -1989,8 +1999,6 @@ cdef py_lgamma(x): sage: py_lgamma(ComplexField(100).0) -0.65092319930185633888521683150 - 1.8724366472624298171188533494*I """ - from mpmath import loggamma - try: return x.log_gamma() except AttributeError: @@ -1998,7 +2006,7 @@ cdef py_lgamma(x): try: return RR(x).log_gamma() except TypeError: - return mpmath_utils.call(loggamma, x, parent=parent(x)) + return _mpmath_call(_mpmath_loggamma, x, parent=parent(x)) def py_lgamma_for_doctests(x): @@ -2132,12 +2140,11 @@ cdef py_li(x, n, parent): sage: py_li(0, 1, float) 0.000000000000000 """ - import mpmath try: prec = parent.prec() except AttributeError: prec = 53 - return mpmath_utils.call(mpmath.polylog, n, x, prec=prec) + return _mpmath_call(_mpmath_polylog, n, x, prec=prec) def py_li_for_doctests(x, n, parent): @@ -2168,12 +2175,11 @@ cdef py_psi(x): sage: euler_gamma.n() 0.577215664901533 """ - import mpmath if isinstance(x, Element) and hasattr((x)._parent, 'prec'): prec = (x)._parent.prec() else: prec = 53 - return mpmath_utils.call(mpmath.psi, 0, x, prec=prec) + return _mpmath_call(_mpmath_psi, 0, x, prec=prec) def py_psi_for_doctests(x): @@ -2197,12 +2203,11 @@ cdef py_psi2(n, x): sage: py_psi2(2, 1) -2.40411380631919 """ - import mpmath if isinstance(x, Element) and hasattr((x)._parent, 'prec'): prec = (x)._parent.prec() else: prec = 53 - return mpmath_utils.call(mpmath.psi, n, x, prec=prec) + return _mpmath_call(_mpmath_psi, n, x, prec=prec) def py_psi2_for_doctests(n, x): @@ -2226,12 +2231,11 @@ cdef py_li2(x): sage: py_li2(-1.1) -0.890838090262283 """ - import mpmath if isinstance(x, Element) and hasattr((x)._parent, 'prec'): prec = (x)._parent.prec() else: prec = 53 - return mpmath_utils.call(mpmath.polylog, 2, x, prec=prec) + return _mpmath_call(_mpmath_polylog, 2, x, prec=prec) def py_li2_for_doctests(x): @@ -2468,8 +2472,12 @@ def init_pynac_I(): ((3*I + 4)*x - 5)*x """ global pynac_I - from sage.rings.number_field.number_field import GaussianField - pynac_I = GaussianField().gen() + try: + from sage.rings.number_field.number_field import GaussianField + pynac_I = GaussianField().gen() + except ImportError: + from sage.rings.cc import CC + pynac_I = CC(0, 1) ginac_pyinit_I(pynac_I) from sage.symbolic.ring import SR return new_Expression_from_GEx(SR, g_I) diff --git a/src/sage/symbolic/pynac_wrap.h b/src/sage/symbolic/pynac_wrap.h index 29963590023..2429c65de7d 100644 --- a/src/sage/symbolic/pynac_wrap.h +++ b/src/sage/symbolic/pynac_wrap.h @@ -1,3 +1,5 @@ +/* sage_setup: distribution = sagemath-symbolics + */ /******************************************************************************* Sage: Open Source Mathematical Software Copyright (C) 2008 William Stein diff --git a/src/sage/symbolic/random_tests.py b/src/sage/symbolic/random_tests.py index 3291fe3cea0..1fd30566674 100644 --- a/src/sage/symbolic/random_tests.py +++ b/src/sage/symbolic/random_tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Randomized tests of GiNaC / PyNaC """ diff --git a/src/sage/symbolic/relation.py b/src/sage/symbolic/relation.py index fd0a0784e11..a5d46073dab 100644 --- a/src/sage/symbolic/relation.py +++ b/src/sage/symbolic/relation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Symbolic Equations and Inequalities diff --git a/src/sage/symbolic/ring.pxd b/src/sage/symbolic/ring.pxd index 9e628098dd1..7f5a96be693 100644 --- a/src/sage/symbolic/ring.pxd +++ b/src/sage/symbolic/ring.pxd @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics cimport sage.rings.abc cdef class SymbolicRing(sage.rings.abc.SymbolicRing): diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx index 32afe8d3a62..cf8ff3bec22 100644 --- a/src/sage/symbolic/ring.pyx +++ b/src/sage/symbolic/ring.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ The symbolic ring """ diff --git a/src/sage/symbolic/series_impl.pxi b/src/sage/symbolic/series_impl.pxi index b66e43aae86..556f3134aa7 100644 --- a/src/sage/symbolic/series_impl.pxi +++ b/src/sage/symbolic/series_impl.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Symbolic Series diff --git a/src/sage/symbolic/subring.py b/src/sage/symbolic/subring.py index 20f5bf62287..75ef1647855 100644 --- a/src/sage/symbolic/subring.py +++ b/src/sage/symbolic/subring.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" Subrings of the Symbolic Ring diff --git a/src/sage/symbolic/substitution_map_impl.pxi b/src/sage/symbolic/substitution_map_impl.pxi index 4db772ec930..a0f5da3ea3b 100644 --- a/src/sage/symbolic/substitution_map_impl.pxi +++ b/src/sage/symbolic/substitution_map_impl.pxi @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Substitution Maps diff --git a/src/sage/symbolic/symbols.py b/src/sage/symbolic/symbols.py index 1669aee6e67..4d705c1beac 100644 --- a/src/sage/symbolic/symbols.py +++ b/src/sage/symbolic/symbols.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-categories r""" Symbol table """ diff --git a/src/sage/symbolic/symengine.py b/src/sage/symbolic/symengine.py index 5c3a46eb8b0..5954616e336 100644 --- a/src/sage/symbolic/symengine.py +++ b/src/sage/symbolic/symengine.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics r""" EXAMPLES:: diff --git a/src/sage/symbolic/tests.py b/src/sage/symbolic/tests.py index 6743f0b4205..a96d9e37b39 100644 --- a/src/sage/symbolic/tests.py +++ b/src/sage/symbolic/tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Tests for the Sage/Pynac interaction """ diff --git a/src/sage/symbolic/units.py b/src/sage/symbolic/units.py index 2593b67476e..204f0b04c8e 100644 --- a/src/sage/symbolic/units.py +++ b/src/sage/symbolic/units.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-symbolics """ Units of measurement diff --git a/src/sage/tensor/all.py b/src/sage/tensor/all.py index e73549851e5..15ed68111f2 100644 --- a/src/sage/tensor/all.py +++ b/src/sage/tensor/all.py @@ -1 +1,3 @@ +# sage_setup: distribution = sagemath-modules + from sage.tensor.modules.all import * diff --git a/src/sage/tensor/modules/all.py b/src/sage/tensor/modules/all.py index 4571a720ea5..98108a4359d 100644 --- a/src/sage/tensor/modules/all.py +++ b/src/sage/tensor/modules/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules from sage.misc.lazy_import import lazy_import lazy_import('sage.tensor.modules.finite_rank_free_module', 'FiniteRankFreeModule') diff --git a/src/sage/tensor/modules/alternating_contr_tensor.py b/src/sage/tensor/modules/alternating_contr_tensor.py index ca03cbfa14f..9dda9ed0e12 100644 --- a/src/sage/tensor/modules/alternating_contr_tensor.py +++ b/src/sage/tensor/modules/alternating_contr_tensor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Alternating contravariant tensors on free modules diff --git a/src/sage/tensor/modules/comp.py b/src/sage/tensor/modules/comp.py index 32ac954c7b4..896c63cfe21 100644 --- a/src/sage/tensor/modules/comp.py +++ b/src/sage/tensor/modules/comp.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Components as indexed sets of ring elements @@ -2579,7 +2580,7 @@ def symmetrize(self, *pos): ....: for i in range(3) for j in range(3) for k in range(3)) True """ - from sage.groups.perm_gps.permgroup_named import SymmetricGroup + from sage.combinat.permutation import Permutations if not pos: pos = tuple(range(self._nid)) else: @@ -2595,17 +2596,17 @@ def symmetrize(self, *pos): else: result = CompWithSym(self._ring, self._frame, self._nid, self._sindex, self._output_formatter, sym=pos) - sym_group = SymmetricGroup(n_sym) + sym_group = Permutations(n_sym) for ind in result.non_redundant_index_generator(): sum = 0 for perm in sym_group.list(): # action of the permutation on [0,1,...,n_sym-1]: - perm_action = [x - 1 for x in perm.domain()] + perm_action = [x - 1 for x in perm] ind_perm = list(ind) for k in range(n_sym): ind_perm[pos[perm_action[k]]] = ind[pos[k]] sum += self[[ind_perm]] - result[[ind]] = sum / sym_group.order() + result[[ind]] = sum / sym_group.cardinality() return result def antisymmetrize(self, *pos): @@ -2727,7 +2728,7 @@ def antisymmetrize(self, *pos): sage: c.antisymmetrize(2,0) == c.antisymmetrize(0,2) True """ - from sage.groups.perm_gps.permgroup_named import SymmetricGroup + from sage.combinat.permutation import Permutations if not pos: pos = tuple(range(self._nid)) else: @@ -2743,12 +2744,12 @@ def antisymmetrize(self, *pos): else: result = CompWithSym(self._ring, self._frame, self._nid, self._sindex, self._output_formatter, antisym=pos) - sym_group = SymmetricGroup(n_sym) + sym_group = Permutations(n_sym) for ind in result.non_redundant_index_generator(): sum = 0 for perm in sym_group.list(): # action of the permutation on [0,1,...,n_sym-1]: - perm_action = [x - 1 for x in perm.domain()] + perm_action = [x - 1 for x in perm] ind_perm = list(ind) for k in range(n_sym): ind_perm[pos[perm_action[k]]] = ind[pos[k]] @@ -2756,7 +2757,7 @@ def antisymmetrize(self, *pos): sum += self[[ind_perm]] else: sum -= self[[ind_perm]] - result[[ind]] = sum / sym_group.order() + result[[ind]] = sum / sym_group.cardinality() return result def _matrix_(self): @@ -4259,7 +4260,7 @@ def symmetrize(self, *pos): sage: s == 0 # because (1,2) are involved in the original antisymmetry True """ - from sage.groups.perm_gps.permgroup_named import SymmetricGroup + from sage.combinat.permutation import Permutations if not pos: pos = tuple(range(self._nid)) else: @@ -4341,17 +4342,17 @@ def symmetrize(self, *pos): # Symmetrization # n_sym = len(pos) # number of indices involved in the symmetry - sym_group = SymmetricGroup(n_sym) + sym_group = Permutations(n_sym) for ind in result.non_redundant_index_generator(): sum = 0 - for perm in sym_group.list(): + for perm in sym_group: # action of the permutation on [0,1,...,n_sym-1]: - perm_action = [x - 1 for x in perm.domain()] + perm_action = [x - 1 for x in perm] ind_perm = list(ind) for k in range(n_sym): ind_perm[pos[perm_action[k]]] = ind[pos[k]] sum += self[[ind_perm]] - result[[ind]] = sum / sym_group.order() + result[[ind]] = sum / sym_group.cardinality() return result def antisymmetrize(self, *pos): @@ -4519,7 +4520,8 @@ def antisymmetrize(self, *pos): sage: s[2,1,0,1] # the antisymmetry (0,2) holds -27/2 """ - from sage.groups.perm_gps.permgroup_named import SymmetricGroup + from sage.combinat.permutation import Permutations + if not pos: pos = tuple(range(self._nid)) else: @@ -4603,12 +4605,12 @@ def antisymmetrize(self, *pos): # Antisymmetrization # n_sym = len(pos) # number of indices involved in the antisymmetry - sym_group = SymmetricGroup(n_sym) + sym_group = Permutations(n_sym) for ind in result.non_redundant_index_generator(): sum = 0 for perm in sym_group.list(): # action of the permutation on [0,1,...,n_sym-1]: - perm_action = [x - 1 for x in perm.domain()] + perm_action = [x - 1 for x in perm] ind_perm = list(ind) for k in range(n_sym): ind_perm[pos[perm_action[k]]] = ind[pos[k]] @@ -4616,7 +4618,7 @@ def antisymmetrize(self, *pos): sum += self[[ind_perm]] else: sum -= self[[ind_perm]] - result[[ind]] = sum / sym_group.order() + result[[ind]] = sum / sym_group.cardinality() return result diff --git a/src/sage/tensor/modules/ext_pow_free_module.py b/src/sage/tensor/modules/ext_pow_free_module.py index e5218372a8f..171287a693c 100644 --- a/src/sage/tensor/modules/ext_pow_free_module.py +++ b/src/sage/tensor/modules/ext_pow_free_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Exterior powers of free modules diff --git a/src/sage/tensor/modules/finite_rank_free_module.py b/src/sage/tensor/modules/finite_rank_free_module.py index 3ef4c119b81..bf18e97c6e4 100644 --- a/src/sage/tensor/modules/finite_rank_free_module.py +++ b/src/sage/tensor/modules/finite_rank_free_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Free modules of finite rank diff --git a/src/sage/tensor/modules/format_utilities.py b/src/sage/tensor/modules/format_utilities.py index d00e00f8071..4b86d5a33fd 100644 --- a/src/sage/tensor/modules/format_utilities.py +++ b/src/sage/tensor/modules/format_utilities.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Formatting utilities diff --git a/src/sage/tensor/modules/free_module_alt_form.py b/src/sage/tensor/modules/free_module_alt_form.py index b9d9f98ef63..c3e59d9cbde 100644 --- a/src/sage/tensor/modules/free_module_alt_form.py +++ b/src/sage/tensor/modules/free_module_alt_form.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Alternating forms on free modules diff --git a/src/sage/tensor/modules/free_module_automorphism.py b/src/sage/tensor/modules/free_module_automorphism.py index 3a826b1e0ef..cf89d528bb9 100644 --- a/src/sage/tensor/modules/free_module_automorphism.py +++ b/src/sage/tensor/modules/free_module_automorphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Free module automorphisms diff --git a/src/sage/tensor/modules/free_module_basis.py b/src/sage/tensor/modules/free_module_basis.py index f882b88e300..98c6b3886e5 100644 --- a/src/sage/tensor/modules/free_module_basis.py +++ b/src/sage/tensor/modules/free_module_basis.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Free module bases diff --git a/src/sage/tensor/modules/free_module_element.py b/src/sage/tensor/modules/free_module_element.py index 2f783c57eb5..9f5fecc9f4c 100644 --- a/src/sage/tensor/modules/free_module_element.py +++ b/src/sage/tensor/modules/free_module_element.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Elements of free modules of finite rank diff --git a/src/sage/tensor/modules/free_module_homset.py b/src/sage/tensor/modules/free_module_homset.py index 18311ae3373..0da30ef0157 100644 --- a/src/sage/tensor/modules/free_module_homset.py +++ b/src/sage/tensor/modules/free_module_homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Sets of morphisms between free modules diff --git a/src/sage/tensor/modules/free_module_linear_group.py b/src/sage/tensor/modules/free_module_linear_group.py index 9893ba32420..761bed8381f 100644 --- a/src/sage/tensor/modules/free_module_linear_group.py +++ b/src/sage/tensor/modules/free_module_linear_group.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" General linear group of a free module diff --git a/src/sage/tensor/modules/free_module_morphism.py b/src/sage/tensor/modules/free_module_morphism.py index cb119b3eecb..9ad5a52ec59 100644 --- a/src/sage/tensor/modules/free_module_morphism.py +++ b/src/sage/tensor/modules/free_module_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Free module morphisms diff --git a/src/sage/tensor/modules/free_module_tensor.py b/src/sage/tensor/modules/free_module_tensor.py index 94974e6059b..960153c8e3d 100644 --- a/src/sage/tensor/modules/free_module_tensor.py +++ b/src/sage/tensor/modules/free_module_tensor.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Tensors on free modules diff --git a/src/sage/tensor/modules/reflexive_module.py b/src/sage/tensor/modules/reflexive_module.py index 073f76e4659..82646094800 100644 --- a/src/sage/tensor/modules/reflexive_module.py +++ b/src/sage/tensor/modules/reflexive_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Base classes for reflexive modules """ diff --git a/src/sage/tensor/modules/tensor_free_module.py b/src/sage/tensor/modules/tensor_free_module.py index 8a02751c471..0cd8a5f2852 100644 --- a/src/sage/tensor/modules/tensor_free_module.py +++ b/src/sage/tensor/modules/tensor_free_module.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Tensor products of free modules diff --git a/src/sage/tensor/modules/tensor_free_submodule.py b/src/sage/tensor/modules/tensor_free_submodule.py index 576d411fd8c..2a3e87d443b 100644 --- a/src/sage/tensor/modules/tensor_free_submodule.py +++ b/src/sage/tensor/modules/tensor_free_submodule.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Free submodules of tensor modules defined by monoterm symmetries diff --git a/src/sage/tensor/modules/tensor_free_submodule_basis.py b/src/sage/tensor/modules/tensor_free_submodule_basis.py index 8cf2602e4ab..c2e36343905 100644 --- a/src/sage/tensor/modules/tensor_free_submodule_basis.py +++ b/src/sage/tensor/modules/tensor_free_submodule_basis.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules r""" Standard bases of free submodules of tensor modules defined by some monoterm symmetries diff --git a/src/sage/tensor/modules/tensor_with_indices.py b/src/sage/tensor/modules/tensor_with_indices.py index e65277935a7..409ac245008 100644 --- a/src/sage/tensor/modules/tensor_with_indices.py +++ b/src/sage/tensor/modules/tensor_with_indices.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-modules # sage.doctest: needs sage.groups r""" Index notation for tensors diff --git a/src/sage/tests/__init__.py b/src/sage/tests/__init__.py index e69de29bb2d..62acb4df510 100644 --- a/src/sage/tests/__init__.py +++ b/src/sage/tests/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-repl diff --git a/src/sage/tests/all.py b/src/sage/tests/all.py index c0f6f2877d5..382623d080e 100644 --- a/src/sage/tests/all.py +++ b/src/sage/tests/all.py @@ -1,2 +1,3 @@ +# sage_setup: distribution = sagemath-repl """ """ diff --git a/src/sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py b/src/sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py index 14b142fcab8..0810f39825d 100644 --- a/src/sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py +++ b/src/sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.graphs sage.modules r""" This file contains doctests of the article :: diff --git a/src/sage/tests/arxiv_0812_2725.py b/src/sage/tests/arxiv_0812_2725.py index 9bacb5c18aa..85be592a03f 100644 --- a/src/sage/tests/arxiv_0812_2725.py +++ b/src/sage/tests/arxiv_0812_2725.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.combinat r""" Sage code for computing k-distant crossing numbers. diff --git a/src/sage/tests/benchmark.py b/src/sage/tests/benchmark.py index 8a481a2b959..022d4dc6b40 100644 --- a/src/sage/tests/benchmark.py +++ b/src/sage/tests/benchmark.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.symbolic """ Benchmarks diff --git a/src/sage/tests/book_schilling_zabrocki_kschur_primer.py b/src/sage/tests/book_schilling_zabrocki_kschur_primer.py index 69f1e2a1dca..767c73ea20f 100644 --- a/src/sage/tests/book_schilling_zabrocki_kschur_primer.py +++ b/src/sage/tests/book_schilling_zabrocki_kschur_primer.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.combinat sage.graphs sage.groups r""" This file contains doctests for the Chapter "k-Schur function primer" diff --git a/src/sage/tests/book_stein_ent.py b/src/sage/tests/book_stein_ent.py index a4b7632705f..30fe79ccdbe 100644 --- a/src/sage/tests/book_stein_ent.py +++ b/src/sage/tests/book_stein_ent.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.libs.pari """ This file contains all the example code from the published book diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/__init__.py b/src/sage/tests/books/computational-mathematics-with-sagemath/__init__.py index e69de29bb2d..62acb4df510 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/__init__.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-repl diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py index 90db67c02e1..2cb1be82700 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./calculus_doctest.sage) was *autogenerated* from ./calculus.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py index 08a76fd6dfb..a3750c39886 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./combinat_doctest.sage) was *autogenerated* from ./combinat.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py index 4de87024131..13f21c194de 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./domaines_doctest.sage) was *autogenerated* from ./domaines.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py index 7b6587ecaf6..75773ac02f2 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./float_doctest.sage) was *autogenerated* from ./float.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py index 0e79bd37093..5f5933e2774 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./graphique_doctest.sage) was *autogenerated* from ./graphique.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py index cd467529f20..eab3eacea83 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./graphtheory_doctest.sage) was *autogenerated* from ./graphtheory.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/integration_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/integration_doctest.py index bf0bb747282..7c83a056c06 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/integration_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/integration_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./integration_doctest.sage) was *autogenerated* from ./integration.tex, with sagetex.sty version 2011/05/27 v2.3.1. @@ -127,7 +128,7 @@ Sage example in ./integration.tex, line 785:: - sage: import mpmath + sage: import sage.libs.mpmath.all as mpmath sage: mpmath.mp.prec = 53 sage: mpmath.quad(lambda x: mpmath.sin(mpmath.sin(x)), [0, 1]) mpf('0.43060610312069059') @@ -257,7 +258,6 @@ Sage example in ./integration.tex, line 1399:: - sage: import mpmath sage: mpmath.mp.prec = 53 sage: sol = mpmath.odefun(lambda t, y: y, 0, 1) sage: sol(1) diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/linalg_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/linalg_doctest.py index e904843bfdd..7ab78cf7ae6 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/linalg_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/linalg_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./linalg_doctest.sage) was *autogenerated* from ./linalg.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/linsolve_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/linsolve_doctest.py index e5f90964e0c..679b87b82ee 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/linsolve_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/linsolve_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl r""" This file (./linsolve_doctest.sage) was *autogenerated* from ./linsolve.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/lp_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/lp_doctest.py index 733f62c6b13..f9d1d9f3244 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/lp_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/lp_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./lp_doctest.sage) was *autogenerated* from ./lp.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py index 24d438dca07..d22451776c8 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./mpoly_doctest.sage) was *autogenerated* from ./mpoly.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py index e7e42260188..c519f24ed67 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./nonlinear_doctest.sage) was *autogenerated* from ./nonlinear.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py index c167763ae2c..259604268af 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./numbertheory_doctest.sage) was *autogenerated* from ./numbertheory.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py index 1aeac9980ff..9d883b312c3 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./polynomes_doctest.sage) was *autogenerated* from ./polynomes.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py index feb5391b4d6..94a297839c9 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./premierspas_doctest.sage) was *autogenerated* from ./premierspas.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py index b13a93914ec..dc5846aa595 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./programmation_doctest.sage) was *autogenerated* from ./programmation.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py index 8ac271ac7ca..813d05999d1 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./recequadiff_doctest.sage) was *autogenerated* from ./recequadiff.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py index e69de29bb2d..62acb4df510 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-repl diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/calculus_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/calculus_doctest.py index 71233bfa13c..a4105a10331 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/calculus_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/calculus_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/calculus_doctest.sage) was *autogenerated* from ./sol/calculus.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/combinat_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/combinat_doctest.py index 1de4b577556..f6d883d6b0a 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/combinat_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/combinat_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/combinat_doctest.sage) was *autogenerated* from ./sol/combinat.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/domaines_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/domaines_doctest.py index 8746bdf0a1e..5e305e04344 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/domaines_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/domaines_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/domaines_doctest.sage) was *autogenerated* from ./sol/domaines.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/float_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/float_doctest.py index ebec4373196..66c2d95d483 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/float_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/float_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/float_doctest.sage) was *autogenerated* from ./sol/float.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py index 4871ae52f98..17002dc7cdd 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/graphique_doctest.sage) was *autogenerated* from ./sol/graphique.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphtheory_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphtheory_doctest.py index f32f65028af..42b6cd5a1a3 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphtheory_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/graphtheory_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/graphtheory_doctest.sage) was *autogenerated* from ./sol/graphtheory.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/integration_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/integration_doctest.py index bc72ba61068..6fa0b90ed76 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/integration_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/integration_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/integration_doctest.sage) was *autogenerated* from ./sol/integration.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/linalg_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/linalg_doctest.py index 512ea11566f..d64d7230cf0 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/linalg_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/linalg_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/linalg_doctest.sage) was *autogenerated* from ./sol/linalg.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/linsolve_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/linsolve_doctest.py index 201e2dee16e..97a4889670f 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/linsolve_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/linsolve_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/linsolve_doctest.sage) was *autogenerated* from ./sol/linsolve.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/lp_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/lp_doctest.py index c0b9f1070bc..ecae2f4349e 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/lp_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/lp_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/lp_doctest.sage) was *autogenerated* from ./sol/lp.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/mpoly_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/mpoly_doctest.py index 8cc61cf22cf..4cb88a06176 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/mpoly_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/mpoly_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/mpoly_doctest.sage) was *autogenerated* from ./sol/mpoly.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/nonlinear_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/nonlinear_doctest.py index a296d48d995..b25f4d318bc 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/nonlinear_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/nonlinear_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/nonlinear_doctest.sage) was *autogenerated* from ./sol/nonlinear.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/numbertheory_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/numbertheory_doctest.py index 3899766500d..a599ee24058 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/numbertheory_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/numbertheory_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/numbertheory_doctest.sage) was *autogenerated* from ./sol/numbertheory.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/polynomes_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/polynomes_doctest.py index 5c6120ff591..9c9ded1ca33 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/polynomes_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/polynomes_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/polynomes_doctest.sage) was *autogenerated* from ./sol/polynomes.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/recequadiff_doctest.py b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/recequadiff_doctest.py index ea9cded4344..7be0d3348a8 100644 --- a/src/sage/tests/books/computational-mathematics-with-sagemath/sol/recequadiff_doctest.py +++ b/src/sage/tests/books/computational-mathematics-with-sagemath/sol/recequadiff_doctest.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file (./sol/recequadiff_doctest.sage) was *autogenerated* from ./sol/recequadiff.tex, with sagetex.sty version 2011/05/27 v2.3.1. diff --git a/src/sage/tests/books/judson-abstract-algebra/__init__.py b/src/sage/tests/books/judson-abstract-algebra/__init__.py index e69de29bb2d..62acb4df510 100644 --- a/src/sage/tests/books/judson-abstract-algebra/__init__.py +++ b/src/sage/tests/books/judson-abstract-algebra/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-repl diff --git a/src/sage/tests/books/judson-abstract-algebra/actions-sage-exercises.py b/src/sage/tests/books/judson-abstract-algebra/actions-sage-exercises.py index c9cc977d85f..58e9a5735b7 100644 --- a/src/sage/tests/books/judson-abstract-algebra/actions-sage-exercises.py +++ b/src/sage/tests/books/judson-abstract-algebra/actions-sage-exercises.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/actions-sage.py b/src/sage/tests/books/judson-abstract-algebra/actions-sage.py index b9d9559566a..06df6127b27 100644 --- a/src/sage/tests/books/judson-abstract-algebra/actions-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/actions-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/algcodes-sage.py b/src/sage/tests/books/judson-abstract-algebra/algcodes-sage.py index e84413ce308..da7d2401a24 100644 --- a/src/sage/tests/books/judson-abstract-algebra/algcodes-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/algcodes-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/boolean-sage.py b/src/sage/tests/books/judson-abstract-algebra/boolean-sage.py index 65d125b5aa3..aebe4e84a51 100644 --- a/src/sage/tests/books/judson-abstract-algebra/boolean-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/boolean-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/cosets-sage-exercises.py b/src/sage/tests/books/judson-abstract-algebra/cosets-sage-exercises.py index 7841f9c1300..ebbe60c048a 100644 --- a/src/sage/tests/books/judson-abstract-algebra/cosets-sage-exercises.py +++ b/src/sage/tests/books/judson-abstract-algebra/cosets-sage-exercises.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/cosets-sage.py b/src/sage/tests/books/judson-abstract-algebra/cosets-sage.py index cb261f2dddb..fc6c637d8fd 100644 --- a/src/sage/tests/books/judson-abstract-algebra/cosets-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/cosets-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/crypt-sage.py b/src/sage/tests/books/judson-abstract-algebra/crypt-sage.py index 550850705ed..fbf8905b1d7 100644 --- a/src/sage/tests/books/judson-abstract-algebra/crypt-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/crypt-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/cyclic-sage.py b/src/sage/tests/books/judson-abstract-algebra/cyclic-sage.py index 75b848d6439..fc74463cebd 100644 --- a/src/sage/tests/books/judson-abstract-algebra/cyclic-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/cyclic-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/domains-sage.py b/src/sage/tests/books/judson-abstract-algebra/domains-sage.py index 08705184685..eb75c3471f0 100644 --- a/src/sage/tests/books/judson-abstract-algebra/domains-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/domains-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/fields-sage.py b/src/sage/tests/books/judson-abstract-algebra/fields-sage.py index 1d37d74452c..3aec2120573 100644 --- a/src/sage/tests/books/judson-abstract-algebra/fields-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/fields-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/finite-sage.py b/src/sage/tests/books/judson-abstract-algebra/finite-sage.py index b1cc3e857e5..c7e9982b05d 100644 --- a/src/sage/tests/books/judson-abstract-algebra/finite-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/finite-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/galois-sage.py b/src/sage/tests/books/judson-abstract-algebra/galois-sage.py index 9af165c8904..9545092c2ab 100644 --- a/src/sage/tests/books/judson-abstract-algebra/galois-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/galois-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/groups-sage.py b/src/sage/tests/books/judson-abstract-algebra/groups-sage.py index fb2c96ca25b..143f666ff63 100644 --- a/src/sage/tests/books/judson-abstract-algebra/groups-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/groups-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/homomorph-sage-exercises.py b/src/sage/tests/books/judson-abstract-algebra/homomorph-sage-exercises.py index 5bc958041d3..cd8c6877675 100644 --- a/src/sage/tests/books/judson-abstract-algebra/homomorph-sage-exercises.py +++ b/src/sage/tests/books/judson-abstract-algebra/homomorph-sage-exercises.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/homomorph-sage.py b/src/sage/tests/books/judson-abstract-algebra/homomorph-sage.py index 0cd9dbaebe2..4ce271bb122 100644 --- a/src/sage/tests/books/judson-abstract-algebra/homomorph-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/homomorph-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/integers-sage.py b/src/sage/tests/books/judson-abstract-algebra/integers-sage.py index ca79ab8b89a..f795e60fa15 100644 --- a/src/sage/tests/books/judson-abstract-algebra/integers-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/integers-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/isomorph-sage.py b/src/sage/tests/books/judson-abstract-algebra/isomorph-sage.py index 4bfe69e1963..22c4dce9f5b 100644 --- a/src/sage/tests/books/judson-abstract-algebra/isomorph-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/isomorph-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/normal-sage.py b/src/sage/tests/books/judson-abstract-algebra/normal-sage.py index c8f26d1317b..29b0c2b9848 100644 --- a/src/sage/tests/books/judson-abstract-algebra/normal-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/normal-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/permute-sage.py b/src/sage/tests/books/judson-abstract-algebra/permute-sage.py index 66e908cc056..90267f518f7 100644 --- a/src/sage/tests/books/judson-abstract-algebra/permute-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/permute-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/poly-sage.py b/src/sage/tests/books/judson-abstract-algebra/poly-sage.py index 7aaa67ac4fb..f3f0d30b109 100644 --- a/src/sage/tests/books/judson-abstract-algebra/poly-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/poly-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/rings-sage.py b/src/sage/tests/books/judson-abstract-algebra/rings-sage.py index 124530d5b2d..80b19a65853 100644 --- a/src/sage/tests/books/judson-abstract-algebra/rings-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/rings-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/sets-sage.py b/src/sage/tests/books/judson-abstract-algebra/sets-sage.py index 1f331278a3b..825e83577d6 100644 --- a/src/sage/tests/books/judson-abstract-algebra/sets-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/sets-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/struct-sage.py b/src/sage/tests/books/judson-abstract-algebra/struct-sage.py index 1509cf22334..73eadcd1717 100644 --- a/src/sage/tests/books/judson-abstract-algebra/struct-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/struct-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/sylow-sage.py b/src/sage/tests/books/judson-abstract-algebra/sylow-sage.py index 67b628c1571..579412b2edb 100644 --- a/src/sage/tests/books/judson-abstract-algebra/sylow-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/sylow-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/vect-sage-exercises.py b/src/sage/tests/books/judson-abstract-algebra/vect-sage-exercises.py index fd74f44465e..ac3129a62ff 100644 --- a/src/sage/tests/books/judson-abstract-algebra/vect-sage-exercises.py +++ b/src/sage/tests/books/judson-abstract-algebra/vect-sage-exercises.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/books/judson-abstract-algebra/vect-sage.py b/src/sage/tests/books/judson-abstract-algebra/vect-sage.py index 23f624da585..926bfcc9e9a 100644 --- a/src/sage/tests/books/judson-abstract-algebra/vect-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/vect-sage.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl ## Sage Doctest File ## #**************************************# #* Generated from PreTeXt source *# diff --git a/src/sage/tests/cmdline.py b/src/sage/tests/cmdline.py index 406bf1befab..829f93a3133 100644 --- a/src/sage/tests/cmdline.py +++ b/src/sage/tests/cmdline.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl r""" This file contains some tests that Sage command line options actually do something. @@ -552,6 +553,7 @@ def test_executable(args, input='', timeout=100.0, pydebug_ignore_warnings=False Some programs of which we check functionality using only ``--version``:: + sage: # needs sage.symbolic sage: (out, err, ret) = test_executable(["sage", "--maxima", "--version"]) sage: out.find("Maxima ") >= 0 True diff --git a/src/sage/tests/combinatorial_hopf_algebras.py b/src/sage/tests/combinatorial_hopf_algebras.py index 33c0472f404..7e5010f22ea 100644 --- a/src/sage/tests/combinatorial_hopf_algebras.py +++ b/src/sage/tests/combinatorial_hopf_algebras.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.combinat sage.modules r""" Tests For Combinatorial Hopf Algebras diff --git a/src/sage/tests/cython.pyx b/src/sage/tests/cython.pyx index 431de078431..fd028dc2901 100644 --- a/src/sage/tests/cython.pyx +++ b/src/sage/tests/cython.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ This file collects tests requiring Cython. """ diff --git a/src/sage/tests/finite_poset.py b/src/sage/tests/finite_poset.py index 3d4cec06129..db34bc98f80 100644 --- a/src/sage/tests/finite_poset.py +++ b/src/sage/tests/finite_poset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.graphs sage.modules """ This file contains test functions that can be used to search diff --git a/src/sage/tests/functools_partial_src.py b/src/sage/tests/functools_partial_src.py index e8c983356aa..673fcc24a3d 100644 --- a/src/sage/tests/functools_partial_src.py +++ b/src/sage/tests/functools_partial_src.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl r""" Ensure that ``functools.partial`` is correctly handled by :func:`~sage.misc.sageinspect.sage_getsourcelines`. diff --git a/src/sage/tests/gosper-sum.py b/src/sage/tests/gosper-sum.py index 84679ac0ff3..6c0f43340a2 100644 --- a/src/sage/tests/gosper-sum.py +++ b/src/sage/tests/gosper-sum.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.symbolic """ Some tests about Gosper sums. diff --git a/src/sage/tests/lazy_imports.py b/src/sage/tests/lazy_imports.py index a1c72e64468..63e015ebcc6 100644 --- a/src/sage/tests/lazy_imports.py +++ b/src/sage/tests/lazy_imports.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.all r""" TESTS: diff --git a/src/sage/tests/memcheck/__init__.py b/src/sage/tests/memcheck/__init__.py index e69de29bb2d..62acb4df510 100644 --- a/src/sage/tests/memcheck/__init__.py +++ b/src/sage/tests/memcheck/__init__.py @@ -0,0 +1 @@ +# sage_setup: distribution = sagemath-repl diff --git a/src/sage/tests/memcheck/run_tests.py b/src/sage/tests/memcheck/run_tests.py index 6ff4503a81b..69554601383 100644 --- a/src/sage/tests/memcheck/run_tests.py +++ b/src/sage/tests/memcheck/run_tests.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl import types diff --git a/src/sage/tests/memcheck/run_tests_in_valgrind.py b/src/sage/tests/memcheck/run_tests_in_valgrind.py index df5ad0e92b2..307154c11f2 100644 --- a/src/sage/tests/memcheck/run_tests_in_valgrind.py +++ b/src/sage/tests/memcheck/run_tests_in_valgrind.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ Launch valgrind and run the memory leak tests diff --git a/src/sage/tests/memcheck/symbolic_expression.py b/src/sage/tests/memcheck/symbolic_expression.py index 52182fbe62d..80ae3b32fee 100644 --- a/src/sage/tests/memcheck/symbolic_expression.py +++ b/src/sage/tests/memcheck/symbolic_expression.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl from sage.tests.memcheck.verify_no_leak import verify_no_leak diff --git a/src/sage/tests/memcheck/verify_no_leak.py b/src/sage/tests/memcheck/verify_no_leak.py index 17a3b4975aa..d638893cbf3 100644 --- a/src/sage/tests/memcheck/verify_no_leak.py +++ b/src/sage/tests/memcheck/verify_no_leak.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl from typing import Callable, Any import valgrind diff --git a/src/sage/tests/modular_group_cohomology.py b/src/sage/tests/modular_group_cohomology.py index 0ef6d7f2b96..332006496a4 100644 --- a/src/sage/tests/modular_group_cohomology.py +++ b/src/sage/tests/modular_group_cohomology.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: optional - p_group_cohomology r""" Tests for the optional ``p_group_cohomology`` package. diff --git a/src/sage/tests/numpy.py b/src/sage/tests/numpy.py index e6dd28afb5a..a532a9ea40b 100644 --- a/src/sage/tests/numpy.py +++ b/src/sage/tests/numpy.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs numpy r""" TESTS: diff --git a/src/sage/tests/parigp.py b/src/sage/tests/parigp.py index c7cf9ab5b96..47abb56c04d 100644 --- a/src/sage/tests/parigp.py +++ b/src/sage/tests/parigp.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.libs.pari sage.modules r""" This file is meant to catch errors in the PARI/GP package which are not @@ -56,7 +57,7 @@ sage: p = next_prime(2^328) sage: E = EllipticCurve(GF(p), [6,1]) # needs sage.schemes - sage: E.cardinality() # long time (108s on sage.math, 2013), optional - pari_seadata, needs sage.schemes + sage: E.cardinality() # long time (108s on sage.math, 2013), optional - pari_seadata, needs sage.schemes 546812681195752981093125556779405341338292357723293496548601032930284335897180749997402596957976244 Create a number field with Galois group `A4`. Group `A4` corresponds to diff --git a/src/sage/tests/startup.py b/src/sage/tests/startup.py index 00142bc6ba7..69627375dd2 100644 --- a/src/sage/tests/startup.py +++ b/src/sage/tests/startup.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl r""" Ensure that certain modules are not loaded on startup. diff --git a/src/sage/tests/stl_vector.pyx b/src/sage/tests/stl_vector.pyx index e7b3ec06cb6..db068b0b48a 100644 --- a/src/sage/tests/stl_vector.pyx +++ b/src/sage/tests/stl_vector.pyx @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # distutils: language = c++ """ Example of a class wrapping an STL vector diff --git a/src/sage/tests/symbolic-series.py b/src/sage/tests/symbolic-series.py index 5e53d1e07af..0fdaa6b1ce5 100644 --- a/src/sage/tests/symbolic-series.py +++ b/src/sage/tests/symbolic-series.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: needs sage.symbolic """ Tests for the fast univariate series expansion in Pynac diff --git a/src/sage/tests/sympy.py b/src/sage/tests/sympy.py index 6ff569cae57..e18f61074b5 100644 --- a/src/sage/tests/sympy.py +++ b/src/sage/tests/sympy.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl # sage.doctest: optional - sympy r""" TESTS: diff --git a/src/sage/tests/test_deprecation.py b/src/sage/tests/test_deprecation.py index a8e6ff9c99b..a79e1a2bc79 100644 --- a/src/sage/tests/test_deprecation.py +++ b/src/sage/tests/test_deprecation.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-repl """ Tests Deprecation diff --git a/src/sage/topology/all.py b/src/sage/topology/all.py index 18b553e873d..16dfcf79d17 100644 --- a/src/sage/topology/all.py +++ b/src/sage/topology/all.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs from sage.topology.simplicial_complex import SimplicialComplex, Simplex diff --git a/src/sage/topology/cell_complex.py b/src/sage/topology/cell_complex.py index 7b64a3d36dd..7b434b4a03e 100644 --- a/src/sage/topology/cell_complex.py +++ b/src/sage/topology/cell_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Generic cell complexes diff --git a/src/sage/topology/cubical_complex.py b/src/sage/topology/cubical_complex.py index 055a597776e..5fa6174e502 100644 --- a/src/sage/topology/cubical_complex.py +++ b/src/sage/topology/cubical_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Finite cubical complexes diff --git a/src/sage/topology/delta_complex.py b/src/sage/topology/delta_complex.py index b9ce4d5fb62..7004bd60d09 100644 --- a/src/sage/topology/delta_complex.py +++ b/src/sage/topology/delta_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Finite Delta-complexes diff --git a/src/sage/topology/filtered_simplicial_complex.py b/src/sage/topology/filtered_simplicial_complex.py index e468b80c662..2cf00a8d885 100644 --- a/src/sage/topology/filtered_simplicial_complex.py +++ b/src/sage/topology/filtered_simplicial_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Finite filtered complexes diff --git a/src/sage/topology/moment_angle_complex.py b/src/sage/topology/moment_angle_complex.py index 3291b9ef104..ad88152958d 100644 --- a/src/sage/topology/moment_angle_complex.py +++ b/src/sage/topology/moment_angle_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs """ Moment-angle complexes diff --git a/src/sage/topology/simplicial_complex.py b/src/sage/topology/simplicial_complex.py index 54166cf4f1f..74ac18a4dd1 100644 --- a/src/sage/topology/simplicial_complex.py +++ b/src/sage/topology/simplicial_complex.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Finite simplicial complexes @@ -926,9 +927,10 @@ class SimplicialComplex(Parent, GenericCellComplex): or e.g. the simplicial complex of all 168 hyperovals of the projective plane of order 4:: - sage: l = designs.ProjectiveGeometryDesign(2, 1, GF(4,name='a')) # needs sage.rings.finite_rings + sage: # needs sage.combinat sage.rings.finite_rings + sage: l = designs.ProjectiveGeometryDesign(2, 1, GF(4,name='a')) sage: f = lambda S: not any(len(set(S).intersection(x))>2 for x in l) - sage: SimplicialComplex(from_characteristic_function=(f, l.ground_set())) # needs sage.rings.finite_rings, long time + sage: SimplicialComplex(from_characteristic_function=(f, l.ground_set())) # long time Simplicial complex with 21 vertices and 168 facets TESTS: diff --git a/src/sage/topology/simplicial_complex_catalog.py b/src/sage/topology/simplicial_complex_catalog.py index dff18de22a0..8a0b547e2c2 100644 --- a/src/sage/topology/simplicial_complex_catalog.py +++ b/src/sage/topology/simplicial_complex_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs """ Catalog of simplicial complexes diff --git a/src/sage/topology/simplicial_complex_examples.py b/src/sage/topology/simplicial_complex_examples.py index 97958848bb0..4ab592464e4 100644 --- a/src/sage/topology/simplicial_complex_examples.py +++ b/src/sage/topology/simplicial_complex_examples.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs """ Examples of simplicial complexes diff --git a/src/sage/topology/simplicial_complex_homset.py b/src/sage/topology/simplicial_complex_homset.py index 7b9aceb8b64..200be5d0984 100644 --- a/src/sage/topology/simplicial_complex_homset.py +++ b/src/sage/topology/simplicial_complex_homset.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Homsets between simplicial complexes diff --git a/src/sage/topology/simplicial_complex_morphism.py b/src/sage/topology/simplicial_complex_morphism.py index 02fbef2402e..169939dcf67 100644 --- a/src/sage/topology/simplicial_complex_morphism.py +++ b/src/sage/topology/simplicial_complex_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Morphisms of simplicial complexes @@ -403,7 +404,8 @@ def associated_chain_complex_morphism(self, base_ring=ZZ, [ 0 0 0], 2: []} sage: X = SimplicialComplex([[0, 1]], is_mutable=False) - sage: Hom(X,X)({0:1, 1:0}).associated_chain_complex_morphism()._matrix_dictionary + sage: g = {0:1, 1:0} + sage: Hom(X, X)(X).associated_chain_complex_morphism()._matrix_dictionary {0: [0 1] [1 0], 1: [-1]} diff --git a/src/sage/topology/simplicial_set.py b/src/sage/topology/simplicial_set.py index 974feac8510..4114270dadf 100644 --- a/src/sage/topology/simplicial_set.py +++ b/src/sage/topology/simplicial_set.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Simplicial sets diff --git a/src/sage/topology/simplicial_set_catalog.py b/src/sage/topology/simplicial_set_catalog.py index 0269c8f6628..927cf7a3103 100644 --- a/src/sage/topology/simplicial_set_catalog.py +++ b/src/sage/topology/simplicial_set_catalog.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Catalog of simplicial sets diff --git a/src/sage/topology/simplicial_set_constructions.py b/src/sage/topology/simplicial_set_constructions.py index 4e17179e8bf..d4bef2a0b03 100644 --- a/src/sage/topology/simplicial_set_constructions.py +++ b/src/sage/topology/simplicial_set_constructions.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Methods of constructing simplicial sets @@ -950,6 +951,7 @@ def factor(self, i, as_subset=False): {0: 0, 1: 0, 2: Z} sage: K.factor(0) is S2 + ....: True sage: K.factor(0, as_subset=True) is S2 False diff --git a/src/sage/topology/simplicial_set_examples.py b/src/sage/topology/simplicial_set_examples.py index 367a00413b7..616e4b6deed 100644 --- a/src/sage/topology/simplicial_set_examples.py +++ b/src/sage/topology/simplicial_set_examples.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Examples of simplicial sets. @@ -145,7 +146,7 @@ def __hash__(self): EXAMPLES:: sage: G3 = groups.permutation.Cyclic(3) # needs sage.groups - sage: hash(G3.nerve()) # random # needs sage.groups + sage: hash(G3.nerve()) # random # needs sage.groups 17 Different instances yield different base points, hence different hashes:: diff --git a/src/sage/topology/simplicial_set_morphism.py b/src/sage/topology/simplicial_set_morphism.py index 9d54e2e1b5e..3fe4d433643 100644 --- a/src/sage/topology/simplicial_set_morphism.py +++ b/src/sage/topology/simplicial_set_morphism.py @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-graphs # sage.doctest: needs sage.graphs r""" Morphisms and homsets for simplicial sets diff --git a/src/sage_setup/__init__.py b/src/sage_setup/__init__.py index e69de29bb2d..e7b88606df7 100644 --- a/src/sage_setup/__init__.py +++ b/src/sage_setup/__init__.py @@ -0,0 +1,156 @@ +def sage_setup(distributions, *, + interpreters=(), + required_modules=(), optional_modules=(), + recurse_packages=(), + package_data=None): + r""" + Replacement for :func:`setuptools.setup` for building distribution packages of the Sage library + + INPUT: + + - ``distributions`` -- (typically one-element) sequence of strings, the distribution names + shipped with this distribution package. + + - ``interpreters`` -- sequence of strings, the interpreters to build with :mod:`sage_setup.autogen`. + + - ``required_modules`` -- sequence of strings, pkgconfig modules that are required for the build. + + - ``optional_modules`` -- sequence of strings, pkgconfig modules to checked for the build. + + - ``package_data`` -- ``None`` or a dictionary mapping package names to lists of filename + glob patterns, the package data to install. + + * If ``None``, all of ``package_data`` is taken from ``pyproject.toml``. + + * If a dictionary, use it as package data and ignore ``package_data`` in ``pyproject.toml``. + """ + import time + + from setuptools import setup, find_namespace_packages + from distutils import log + from setuptools.dist import Distribution + from sage_setup.command.sage_build_ext_minimal import sage_build_ext_minimal + from sage_setup.command.sage_build_py import sage_build_py + from sage_setup.cython_options import compiler_directives, compile_time_env_variables + from sage_setup.extensions import create_extension + from sage_setup.find import find_python_sources, find_extra_files + + # Work around a Cython problem in Python 3.8.x on macOS + # https://github.com/cython/cython/issues/3262 + import os + if os.uname().sysname == 'Darwin': + import multiprocessing + multiprocessing.set_start_method('fork', force=True) + + # setuptools plugins considered harmful: + # If build isolation is not in use and setuptools_scm is installed, + # then its file_finders entry point is invoked, which we don't need. + # Workaround from ​https://github.com/pypa/setuptools_scm/issues/190#issuecomment-351181286 + try: + import setuptools_scm.integration + setuptools_scm.integration.find_files = lambda _: [] + except ImportError: + pass + + # And with setuptools_scm 8, we get more trouble: + # LookupError: pyproject.toml does not contain a tool.setuptools_scm section + # LookupError: setuptools-scm was unable to detect version ... + # We just remove all handling of "setuptools.finalize_distribution_options" entry points. + Distribution._removed = staticmethod(lambda ep: True) + + # Different workaround: disable `walk_revctrl` in setuptools + # This is needed for setuptools_scm >= 8, should work for any version + import setuptools.command.egg_info + setuptools.command.egg_info.walk_revctrl = lambda: () + + import sys + + from sage_setup.excepthook import excepthook + sys.excepthook = excepthook + + from sage_setup.setenv import setenv + setenv() + + import sage.env + sage.env.default_required_modules = required_modules + sage.env.default_optional_modules = optional_modules + + cmdclass = dict(build_ext=sage_build_ext_minimal, + build_py=sage_build_py) + + sdist = len(sys.argv) > 1 and (sys.argv[1] in ["sdist", "egg_info", "dist_info"]) + + # ######################################################## + # ## Discovering Sources + # ######################################################## + if sdist: + extensions = [] + python_modules = [] + python_packages = [] + else: + if interpreters: + log.info("Generating auto-generated sources") + # from sage_setup.autogen import autogen_all + # autogen_all() + from sage_setup.autogen.interpreters import rebuild + rebuild(os.path.join("sage", "ext", "interpreters"), + interpreters=interpreters, + distribution=distributions[0], force=True) + + log.info("Discovering Python/Cython source code....") + t = time.time() + + python_packages, python_modules, cython_modules = find_python_sources( + '.', ['sage'], distributions=distributions) + extra_files = find_extra_files( + '.', ['sage'], '/doesnotexist', distributions=distributions) + + python_packages += find_namespace_packages(where='.', include=recurse_packages) + + if package_data is not None: + package_data.update({"": [f + for pkg, files in extra_files.items() + for f in files]}) + python_packages += list(package_data) + + log.warn('python_packages = {0}'.format(sorted(python_packages))) + log.warn('python_modules = {0}'.format(sorted(m if isinstance(m, str) else m.name for m in python_modules))) + log.warn('cython_modules = {0}'.format(sorted(m if isinstance(m, str) else m.name for m in cython_modules))) + log.warn('package_data = {0}'.format(package_data)) + + log.info(f"Discovered Python/Cython sources, time: {(time.time() - t):.2f} seconds.") + + # from sage_build_cython: + import Cython.Compiler.Options + Cython.Compiler.Options.embed_pos_in_docstring = True + gdb_debug = os.environ.get('SAGE_DEBUG', None) != 'no' + + try: + from Cython.Build import cythonize + from sage.env import cython_aliases, sage_include_directories + from sage.misc.package_dir import cython_namespace_package_support + with cython_namespace_package_support(): + extensions = cythonize( + cython_modules, + include_path=sage_include_directories(use_sources=True) + ['.'], + compile_time_env=compile_time_env_variables(), + compiler_directives=compiler_directives(False), + aliases=cython_aliases(), + create_extension=create_extension, + gdb_debug=gdb_debug, + nthreads=4) + except Exception as exception: + log.warn(f"Exception while cythonizing source files: {repr(exception)}") + raise + + kwds = {} + + if package_data is not None: + kwds['package_data'] = package_data + + setup(cmdclass=cmdclass, + packages=python_packages, + py_modules=python_modules, + ext_modules=extensions, + **kwds + ) diff --git a/src/sage_setup/autogen/flint/templates/flint_sage.pyx.template b/src/sage_setup/autogen/flint/templates/flint_sage.pyx.template index b77c1a764aa..00aa1abc953 100644 --- a/src/sage_setup/autogen/flint/templates/flint_sage.pyx.template +++ b/src/sage_setup/autogen/flint/templates/flint_sage.pyx.template @@ -1,3 +1,4 @@ +# sage_setup: distribution = sagemath-flint # distutils: extra_compile_args = -D_XPG6 # WARNING: src/sage/libs/flint/flint_sage.pyx is generated from diff --git a/src/sage_setup/autogen/giacpy-mkkeywords.py b/src/sage_setup/autogen/giacpy-mkkeywords.py index c1a277b119c..87cca8ede2e 100644 --- a/src/sage_setup/autogen/giacpy-mkkeywords.py +++ b/src/sage_setup/autogen/giacpy-mkkeywords.py @@ -66,7 +66,8 @@ # building auto-methods.pxi -Mi = open("auto-methods.pxi","w") +Mi = open("auto-methods.pxi", "w") +Mi.write("# sage_setup: distribution = sagemath-giac\n") Mi.write("# file auto generated by mkkeywords.py\n") s = 'cdef class GiacMethods_base:\n """\n Wrapper for a giac ``gen`` containing auto-generated methods.\n' s += '\n This class does not manage the ``gen`` inside in any way. It is just\n a dumb wrapper.' @@ -87,6 +88,7 @@ # building keywords.pxi with open("keywords.pxi", "w") as Fi: + Fi.write("# sage_setup: distribution = sagemath-giac\n") Fi.write("# file auto generated by mkkeywords.py\n") Fi.write("blacklist = " + str(blacklist) + "\n\n") Fi.write("toremove = " + str(toremove) + "\n\n") diff --git a/src/sage_setup/autogen/interpreters/__init__.py b/src/sage_setup/autogen/interpreters/__init__.py index 75096d06b80..4fb572cb1a3 100644 --- a/src/sage_setup/autogen/interpreters/__init__.py +++ b/src/sage_setup/autogen/interpreters/__init__.py @@ -134,7 +134,7 @@ ] -def build_interp(interp_spec, dir): +def build_interp(interp_spec, dir, distribution=None): r""" Given an InterpreterSpec, write the C interpreter and the Cython wrapper (generate a pyx and a pxd file). @@ -157,7 +157,13 @@ def build_interp(interp_spec, dir): filename = '{}_{}.{}'.format(filename_root, interp_spec.name, ext) method = getattr(ig, 'get_{}'.format(method)) path = os.path.join(dir, filename) - write_if_changed(path, method()) + contents = method() + if distribution is not None: + if ext in ['pxd', 'pyx']: + contents = f'# sage_setup: distribution = {distribution}\n' + contents + else: + contents = f'/* sage_setup: distribution = {distribution}\n */\n' + contents + write_if_changed(path, contents) def rebuild(dirname, force=False, interpreters=None, distribution=None): @@ -260,7 +266,9 @@ class NeedToRebuild(Exception): return # Up-to-date for interp in _INTERPRETERS: - build_interp(interp(), dirname) + build_interp(interp(), dirname, distribution=distribution) with open(os.path.join(dirname, all_py), 'w') as f: + if distribution is not None: + f.write(f"# sage_setup: distribution = {distribution}\n") f.write("# " + AUTOGEN_WARN) diff --git a/src/sage_setup/autogen/interpreters/specs/cdf.py b/src/sage_setup/autogen/interpreters/specs/cdf.py index c9ea258e221..29699d6070d 100644 --- a/src/sage_setup/autogen/interpreters/specs/cdf.py +++ b/src/sage_setup/autogen/interpreters/specs/cdf.py @@ -145,11 +145,6 @@ def __init__(self): """) self.pxd_header = ri(0, """ - # This is to work around a header incompatibility with PARI using - # "I" as variable conflicting with the complex "I". - # If we cimport pari earlier, we avoid this problem. - cimport cypari2.types - # We need the type double_complex to work around # http://trac.cython.org/ticket/869 # so this is a bit hackish. diff --git a/src/sage_setup/autogen/meson/__init__.py b/src/sage_setup/autogen/meson/__init__.py new file mode 100644 index 00000000000..92da4b1ad23 --- /dev/null +++ b/src/sage_setup/autogen/meson/__init__.py @@ -0,0 +1,364 @@ +# Small script that generates a meson.build file in the given folder. +# The generated build file contains all python files as `install_sources` and all cython files as `extension_module` + +import os +import sys + +from collections import defaultdict +from difflib import unified_diff +from pathlib import Path +from tempfile import NamedTemporaryFile +from types import SimpleNamespace + + +def distribution_condition(distribution: str) -> str: + distribution_variable = 'distribution_' + distribution.replace('-', '_') + return f"get_variable('{distribution_variable}', false)" + + +def distributions_shorthand(distributions: set) -> str: + + sagemath_distributions = sorted(distribution.removeprefix('sagemath-') + for distribution in distributions + if distribution.startswith('sagemath-')) + distributions = sorted(distribution or "''" # the catch-all distribution + for distribution in distributions + if not distribution.startswith('sagemath-')) + if len(sagemath_distributions) > 1: + distributions.insert(0, 'sagemath-{' + ','.join(sagemath_distributions) + '}') + elif sagemath_distributions: + distributions.insert(0, 'sagemath-' + sagemath_distributions[0]) + if distributions: + return ', '.join(distributions) + return 'no distribution' + + +def log_update(operation, meson_build_path, distributions, has_cython): + line = f'{operation:12}{meson_build_path}' + line = f'{line:62} # {distributions_shorthand(distributions)}' + if len(distributions) == 1 and has_cython: + line += ', has Cython modules' + print(line, file=sys.stderr) + + +def run(folder: Path, output_dir: Path, folder_rel_to_src=None, dry_run=False, force=False, monolithic=False): + + if not folder.is_dir(): + print(f'Error: {folder} is not a directory') + return + try: + from sage.env import SAGE_SRC + except ImportError: + folder_rel_to_src = folder.relative_to('src') + else: + try: + folder_rel_to_src = folder.relative_to(SAGE_SRC) + except ValueError: + folder_rel_to_src = folder.resolve().relative_to(Path(SAGE_SRC).resolve()) + + if monolithic: + def read_distribution(path): + return '' + else: + from sage.misc.package_dir import read_distribution + + recurse_subdirs = {} + by_distribution = defaultdict(lambda: SimpleNamespace(python_files=[], + cython_c_files=[], + cython_cpp_files=[], + install_subdirs=[])) + distributions = set() + subdirs = sorted(list(folder.glob('*/'))) + has_cython = False + + for subdir in subdirs: + if subdir.name.startswith('_') or subdir.name.startswith('.') or subdir.name.endswith('.egg-info'): + continue + subdir_distributions, subdir_has_cython = run(subdir, output_dir / subdir.name, + dry_run=dry_run, force=force, monolithic=monolithic) + has_cython = has_cython or subdir_has_cython + if not subdir_distributions: + pass + elif not monolithic or len(subdir_distributions) > 1 or subdir_has_cython: + recurse_subdirs[subdir] = subdir_distributions + else: + by_distribution[list(subdir_distributions)[0]].install_subdirs.append(subdir) + distributions.update(subdir_distributions) + + python_files = sorted(list(folder.glob('*.py')) + list(folder.glob('*.pxd')) + list(folder.glob('*.h'))) + cython_files = sorted(list(folder.glob('*.pyx'))) + + def get_metadata(path: Path): + with open(path, 'r') as file: + metadata = SimpleNamespace() + metadata.path = path + metadata.distribution = read_distribution(path) + + if path.suffix not in [".pxd", ".pxi", ".pyx"]: + return metadata + + metadata.libraries = [] + for line in file: + if not line: + pass + elif line.startswith('# distutils: libraries ='): + libraries = line.split('libraries =')[1].strip().split() + libraries = [ + library + .replace('ARB_LIBRARY', 'arb') + .replace('NTL_LIBRARIES', 'ntl') + .replace('SINGULAR_LIBRARIES', 'singular') + .replace('LINBOX_LIBRARIES', 'linbox') + .replace('FFLASFFPACK_LIBRARIES', 'fflas') + .replace('GSL_LIBRARIES', 'gsl') + .replace('M4RI_LIBRARIES', 'm4ri') + .replace('GDLIB_LIBRARIES', 'gd') + .replace('LIBPNG_LIBRARIES', 'png') + .replace('CBLAS_LIBRARIES', 'cblas') + .replace('ZLIB_LIBRARIES', 'zlib') + .replace('Lfunction', 'lfunction') + for library in libraries] + try: + libraries.remove('CYGWIN_SQLITE3_LIBS') + except ValueError: + pass + metadata.libraries += libraries + elif line.startswith('#'): + pass + else: + break + + metadata.inc_dirs = [] + c_file = path.with_suffix('.c') + cpp_file = path.with_suffix('.cpp') + if not monolithic or cpp_file.exists(): + metadata.is_cpp = True + c_file = cpp_file + else: + metadata.is_cpp = False + if monolithic or c_file.exists(): + metadata.not_yet_on_conda = False + with open(c_file, 'r') as c_file: + contents = c_file.read() + known_inc_dirs = { + 'sage/cpython/': 'inc_cpython', + 'sage/rings': 'inc_rings', + 'sage/rings/finite_rings': 'inc_rings_finite', + 'sage/libs/flint': 'inc_flint', + 'sage/libs/gsl': 'inc_gsl', + 'sage/libs/ntl': 'inc_ntl', + 'sage/libs/arb': 'inc_arb', + 'sage/data_structures': 'inc_data_structures', + 'sage/ext/': 'inc_ext', + 'numpy/core/include/': 'inc_numpy', + 'sage/symbolic/ginac/': 'inc_ginac', + 'sage/symbolic/pynac_wrap.h': 'inc_pynac', + 'sage/groups/perm_gps/partn_ref2/': 'inc_partn_ref2', + 'sage/ext/interpreters/': 'inc_interpreters', + } + for known_inc_dir in known_inc_dirs: + if known_inc_dir in contents: + metadata.inc_dirs.append(known_inc_dirs[known_inc_dir]) + known_libs = { + 'cypari2/': 'cypari2', + 'cysignals/': 'cysignals', + '/gmp.h': 'gmp', + '/iml.h': 'iml', + '/m4ri/': 'm4ri', + '/pari/': 'pari', + '/flint/': 'flint', + '/fflas-ffpack/': 'fflas', + '/givaro/': 'givaro', + '/gmp++/': 'gmpxx', + '/linbox/': 'linbox', + '/gsl/': 'gsl', + 'mpfr.h': 'mpfr', + 'arb.h': 'flint', + 'mpfi.h': 'mpfi', + 'mpc.h': 'mpc', + 'gmpy2/': 'gmpy2', + } + for known_lib in known_libs: + if known_lib in contents: + metadata.libraries.append(known_libs[known_lib]) + else: + metadata.not_yet_on_conda = metadata.is_cpp is False + + return metadata + + python_files = [get_metadata(file) for file in python_files] + cython_files = [get_metadata(file) for file in cython_files] + cython_c_files = [file for file in cython_files if not file.is_cpp] + cython_cpp_files = [file for file in cython_files if file.is_cpp] + all_libraries = sorted(set(library for file in cython_files for library in file.libraries) | {'gmp'}) + all_inc_dirs = sorted(set(inc_dir for file in cython_files for inc_dir in file.inc_dirs)) + + template_path = folder / 'meson.build.in' + meson_build_path = output_dir / 'meson.build' + if not dry_run and not force and meson_build_path.exists(): + print(f'Error: {meson_build_path} already exists, use --force to overwrite') + return + + for python_file in python_files: + by_distribution[python_file.distribution].python_files.append(python_file) + for cython_c_file in cython_c_files: + by_distribution[cython_c_file.distribution].cython_c_files.append(cython_c_file) + for cython_cpp_file in cython_cpp_files: + by_distribution[cython_cpp_file.distribution].cython_cpp_files.append(cython_cpp_file) + + distributions.update(by_distribution) + if cython_files: + has_cython = True + + if monolithic and not has_cython and len(distributions) <= 1: + # No need for a meson.build file + try: + meson_build_path.unlink() + except FileNotFoundError: + log_update('Not writing', meson_build_path, distributions, has_cython) + else: + log_update('Removing', meson_build_path, distributions, has_cython) + return distributions, has_cython + + os.makedirs(meson_build_path.parent, exist_ok=True) + + with NamedTemporaryFile(mode='w', prefix=meson_build_path.name, + dir=meson_build_path.parent, delete=False) if not dry_run else sys.stdout as meson_build: + + if not monolithic: + meson_build.write(f"# Automatically generated by sage-generate-meson; do not edit manually\n\n") + + try: + with open(template_path, "r") as template: + if not monolithic: + meson_build.write(f"#line 1 {template_path}\n") + for line in template: + meson_build.write(line) + if not monolithic: + meson_build.write(f"\n# Automatically generated from here\n\n") + except FileNotFoundError: + pass + + for distribution, files in by_distribution.items(): + + if len(distributions) > 1: + meson_build.write(f"if {distribution_condition(distribution)}\n") + + if files.python_files: + meson_build.write('py.install_sources(\n') + for file in files.python_files: + meson_build.write(f" '{file.path.name}',\n") + meson_build.write(f" subdir: '{folder_rel_to_src}',\n") + meson_build.write(')\n') + + if files.cython_c_files: + meson_build.write('\n') + meson_build.write('extension_data = {\n') + for file in files.cython_c_files: + if file.not_yet_on_conda: + meson_build.write(f" # '{file.path.stem}': files('{file.path.name}'), # not yet on conda\n") + else: + meson_build.write(f" '{file.path.stem}': files('{file.path.name}'),\n") + meson_build.write('}\n\n') + + meson_build.write('foreach name, pyx : extension_data\n') + meson_build.write(" py.extension_module(name,\n") + meson_build.write(" sources: pyx,\n") + meson_build.write(f" subdir: '{folder_rel_to_src}',\n") + meson_build.write(' install: true,\n') + meson_build.write(f" include_directories: [{', '.join(all_inc_dirs)}],\n") + meson_build.write(f" dependencies: [py_dep{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") + meson_build.write(' )\n') + meson_build.write('endforeach\n') + + if files.cython_cpp_files: + meson_build.write('\n') + meson_build.write('extension_data_cpp = {\n') + for file in files.cython_cpp_files: + if file.not_yet_on_conda: + meson_build.write(f" # '{file.path.stem}': files('{file.path.name}'), # not yet on conda\n") + else: + meson_build.write(f" '{file.path.stem}': files('{file.path.name}'),\n") + meson_build.write('}\n\n') + + meson_build.write('foreach name, pyx : extension_data_cpp\n') + meson_build.write(" py.extension_module(name,\n") + meson_build.write(" sources: pyx,\n") + meson_build.write(f" subdir: '{folder_rel_to_src}',\n") + meson_build.write(' install: true,\n') + meson_build.write(' override_options : [\'cython_language=cpp\'],\n') + meson_build.write(f" include_directories: [{', '.join(all_inc_dirs)}],\n") + meson_build.write(f" dependencies: [py_dep{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") + meson_build.write(' )\n') + meson_build.write('endforeach\n') + + if not monolithic and files.install_subdirs: + for subdir in files.install_subdirs: + meson_build.write(f"install_subdir('{subdir.name}', install_dir: sage_install_dir / '{folder_rel_to_src.relative_to('sage')}')\n") + meson_build.write('\n') + + if len(distributions) > 1: + meson_build.write('endif ########################################################################\n') + + meson_build.write('\n') + + if monolithic: + for subdir in sorted(set(recurse_subdirs).union(files.install_subdirs)): + if subdir in recurse_subdirs: + meson_build.write(f"subdir('{subdir.name}')\n") + else: + meson_build.write(f"install_subdir('{subdir.name}', install_dir: sage_install_dir / '{folder_rel_to_src.relative_to('sage')}')\n") + else: + for subdir, subdir_distributions in recurse_subdirs.items(): + condition = " or ".join(distribution_condition(distribution) + for distribution in sorted(subdir_distributions)) + meson_build.write(f"if {condition}\n subdir('{subdir.name}')\nendif\n") + + meson_build_tmp_path = Path(meson_build.name) + + try: + with open(meson_build_path, "r") as old: + old_lines = list(old) + except FileNotFoundError: + log_update('Creating', meson_build_path, distributions, has_cython) + meson_build_tmp_path.rename(meson_build_path) + else: + with open(meson_build_tmp_path, "r") as new: + new_lines = list(new) + changes = list(unified_diff(old_lines, new_lines, str(meson_build_path), str(os.path.relpath(meson_build_tmp_path)))) + if changes: + meson_build_tmp_path.replace(meson_build_path) + log_update('Updating', meson_build_path, distributions, has_cython) + sys.stdout.writelines(changes) + else: + log_update('Unchanged', meson_build_path, distributions, has_cython) + meson_build_tmp_path.unlink() + + return distributions, has_cython + + +def generate_meson(): + import argparse + + parser = argparse.ArgumentParser(description='Generate meson.build file for a given folder.') + parser.add_argument('folder', type=str, nargs='?', default='.', + help='folder for which the meson.build file will be generated') + parser.add_argument('--dry-run', '-n', action='store_true', + help='do not write any files, just print the output') + parser.add_argument('--force', '-f', action='store_true', + help='overwrite existing meson.build files') + parser.add_argument('--output-dir', type=str, default=None, + help='folder where the generated meson.build files will be generated') + parser.add_argument('--monolithic', action='store_true', + help='ignore distributions') + + args = parser.parse_args() + + folder = Path(args.folder) + if args.output_dir is None: + output_dir = folder + else: + output_dir = Path(args.output_dir) + + run(folder, output_dir, dry_run=args.dry_run, force=args.force, monolithic=args.monolithic) + return 0 diff --git a/src/sage_setup/find.py b/src/sage_setup/find.py index 5447f6418a4..5e0f4c3204c 100644 --- a/src/sage_setup/find.py +++ b/src/sage_setup/find.py @@ -118,7 +118,9 @@ def find_python_sources(src_dir, modules=['sage'], distributions=None, Filtering by distribution (distribution package):: sage: find_python_sources(SAGE_SRC, distributions=['sagemath-tdlib']) - ([], [], []) + ([], + [...], + []) Benchmarking:: @@ -133,7 +135,7 @@ def find_python_sources(src_dir, modules=['sage'], distributions=None, sage: find_python_sources(SAGE_SRC, modules=['sage_setup']) (['sage_setup', ...], [...'sage_setup.find'...], []) """ - from setuptools import Extension + from setuptools.extension import Extension PYMOD_EXT = get_extensions('source')[0] @@ -149,13 +151,12 @@ def find_python_sources(src_dir, modules=['sage'], distributions=None, for module in modules: for dirpath, dirnames, filenames in os.walk(module): package = dirpath.replace(os.path.sep, '.') - if not is_package_or_namespace_package_dir(dirpath): + if not is_package_or_namespace_package_dir(dirpath, distribution_filter=distribution_filter): # Skip any subdirectories dirnames[:] = [] continue # Ordinary package or namespace package. - if distributions is None or '' in distributions: - python_packages.append(package) + python_packages.append(package) for filename in filenames: base, ext = os.path.splitext(filename) @@ -262,7 +263,7 @@ def _cythonized_dir(src_dir=None, editable_install=None): def find_extra_files(src_dir, modules, cythonized_dir, special_filenames=[], *, - distributions=None): + distributions=None, exclude_distributions=None): """ Find all extra files which should be installed. @@ -295,6 +296,11 @@ def find_extra_files(src_dir, modules, cythonized_dir, special_filenames=[], *, ``distribution`` (from a ``# sage_setup: distribution = PACKAGE`` directive in the file) is an element of ``distributions``. + - ``exclude_distributions`` -- (default: ``None``) if not ``None``, + should be a sequence or set of strings: exclude modules whose + ``distribution`` (from a ``# sage_setup: distribution = PACKAGE`` + directive in the module source file) is in ``exclude_distributions``. + OUTPUT: dict with items ``{dir: files}`` where ``dir`` is a directory relative to ``src_dir`` and ``files`` is a list of filenames inside that directory. @@ -313,12 +319,14 @@ def find_extra_files(src_dir, modules, cythonized_dir, special_filenames=[], *, data_files = {} cy_exts = ('.pxd', '.pxi', '.pyx') + distribution_filter = SourceDistributionFilter(distributions, exclude_distributions) + cwd = os.getcwd() try: os.chdir(src_dir) for module in modules: for dir, dirnames, filenames in os.walk(module): - if not is_package_or_namespace_package_dir(dir): + if not is_package_or_namespace_package_dir(dir, distribution_filter=distribution_filter): continue sdir = os.path.join(src_dir, dir) cydir = os.path.join(cythonized_dir, dir) diff --git a/src/setup.cfg.m4 b/src/setup.cfg.m4 deleted file mode 100644 index 969793209c8..00000000000 --- a/src/setup.cfg.m4 +++ /dev/null @@ -1,138 +0,0 @@ -include(`sage_spkg_versions.m4')dnl' -*- conf-unix -*- -[metadata] -name = sagemath-standard -version = file: VERSION.txt -description = Sage: Open Source Mathematics Software: Standard Python Library -long_description = file: README.rst -long_description_content_type = text/x-rst -license_files = LICENSE.txt -include(`setup_cfg_metadata.m4')dnl' - -[options] -python_requires = >=3.9, <3.13 -install_requires = - SPKG_INSTALL_REQUIRES_six -dnl From build/pkgs/sagelib/dependencies - SPKG_INSTALL_REQUIRES_conway_polynomials - SPKG_INSTALL_REQUIRES_cypari - SPKG_INSTALL_REQUIRES_cysignals - SPKG_INSTALL_REQUIRES_cython - SPKG_INSTALL_REQUIRES_gmpy2 - SPKG_INSTALL_REQUIRES_importlib_metadata - SPKG_INSTALL_REQUIRES_importlib_resources - SPKG_INSTALL_REQUIRES_jupyter_core - SPKG_INSTALL_REQUIRES_lrcalc_python - SPKG_INSTALL_REQUIRES_memory_allocator - SPKG_INSTALL_REQUIRES_numpy - SPKG_INSTALL_REQUIRES_pkgconfig - SPKG_INSTALL_REQUIRES_pplpy - SPKG_INSTALL_REQUIRES_primecountpy - SPKG_INSTALL_REQUIRES_requests - SPKG_INSTALL_REQUIRES_typing_extensions -dnl From Makefile.in: SAGERUNTIME - SPKG_INSTALL_REQUIRES_ipython - SPKG_INSTALL_REQUIRES_pexpect -dnl From Makefile.in: DOC_DEPENDENCIES - sphinx >=5.2, <9 - SPKG_INSTALL_REQUIRES_networkx - SPKG_INSTALL_REQUIRES_scipy - SPKG_INSTALL_REQUIRES_sympy - SPKG_INSTALL_REQUIRES_matplotlib - SPKG_INSTALL_REQUIRES_pillow - SPKG_INSTALL_REQUIRES_mpmath - SPKG_INSTALL_REQUIRES_ipykernel - SPKG_INSTALL_REQUIRES_jupyter_client - SPKG_INSTALL_REQUIRES_ipywidgets - SPKG_INSTALL_REQUIRES_fpylll -dnl pycryptosat # Sage distribution installs it as part of cryptominisat. According to its README on https://pypi.org/project/pycryptosat/: "The pycryptosat python package compiles while compiling CryptoMiniSat. It cannot be compiled on its own, it must be compiled at the same time as CryptoMiniSat." -dnl Packages with important upper version bounds - SPKG_INSTALL_REQUIRES_ptyprocess - -scripts = - # The sage script - bin/sage - # Other scripts that should be in the path also for OS packaging of sage: - bin/sage-eval - # Included because it is useful for doctesting/coverage testing user scripts too: - bin/sage-runtests - bin/sage-fixdoctests - bin/sage-coverage - # The following is deprecated but might still be used in user package install scripts - bin/sage-cython - # Helper scripts invoked by sage script - # (they would actually belong to something like libexec) - bin/sage-cachegrind - bin/sage-callgrind - bin/sage-massif - bin/sage-omega - bin/sage-valgrind - bin/sage-venv-config - bin/sage-version.sh - bin/sage-cleaner - # Only makes sense in sage-the-distribution. TODO: Move to another installation script. - bin/sage-list-packages - # Uncategorized scripts in alphabetical order - bin/math-readline - bin/sage-env - # sage-env-config -- installed by sage_conf - # sage-env-config.in -- not to be installed - bin/sage-grep - bin/sage-grepdoc - bin/sage-inline-fortran - bin/sage-ipynb2rst - bin/sage-ipython - bin/sage-notebook - bin/sage-num-threads.py - bin/sage-preparse - bin/sage-python - bin/sage-run - bin/sage-run-cython - bin/sage-startuptime.py - bin/sage-update-version - -[options.package_data] - -sage.libs.gap = - sage.gaprc - -sage.interfaces = - sage-maxima.lisp - -sage.doctest = - tests/* - -sage.repl.rich_output = - example* - -sage = - ext_data/* - ext_data/kenzo/* - ext_data/singular/* - ext_data/singular/function_field/* - ext_data/images/* - ext_data/doctest/* - ext_data/doctest/invalid/* - ext_data/gap/* - ext_data/gap/joyner/* - ext_data/mwrank/* - ext_data/notebook-ipython/* - ext_data/nbconvert/* - ext_data/graphs/* - ext_data/pari/* - ext_data/pari/dokchitser/* - ext_data/pari/buzzard/* - ext_data/pari/simon/* - ext_data/magma/* - ext_data/magma/latex/* - ext_data/magma/sage/* - ext_data/valgrind/* - ext_data/threejs/* - -[options.extras_require] -R = SPKG_INSTALL_REQUIRES_rpy2 -bliss = SPKG_INSTALL_REQUIRES_sagemath_bliss -coxeter3 = SPKG_INSTALL_REQUIRES_sagemath_coxeter3 -mcqd = SPKG_INSTALL_REQUIRES_sagemath_mcqd -meataxe = SPKG_INSTALL_REQUIRES_sagemath_meataxe -sirocco = SPKG_INSTALL_REQUIRES_sagemath_sirocco -tdlib = SPKG_INSTALL_REQUIRES_sagemath_tdlib diff --git a/src/setup.py b/src/setup.py index dfa2e59b2e1..a50b60f2ab1 100755 --- a/src/setup.py +++ b/src/setup.py @@ -76,7 +76,7 @@ log.info("Discovering Python/Cython source code...") - optional_packages = ['mcqd', 'bliss', 'tdlib', + optional_packages = ['mcqd', 'bliss', 'brial', 'tdlib', 'coxeter3', 'sirocco', 'meataxe'] distributions_to_exclude = [f"sagemath-{pkg}" for pkg in optional_packages] diff --git a/src/tox.ini b/src/tox.ini index 42f976e070d..c15d478496d 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -224,6 +224,7 @@ commands = find {posargs:{toxinidir}/sage/} \ -name "*.zip" -prune -o \ -name "*~*" -prune -o \ -name ".DS_Store" -prune -o \ + -name "_vendor" -prune -o \ -exec relint -c {toxinidir}/.relint.yml \{\} + [testenv:codespell] diff --git a/tox.ini b/tox.ini index 654e221aa07..2c48d3132fe 100644 --- a/tox.ini +++ b/tox.ini @@ -193,9 +193,9 @@ setenv = maximal: IGNORE_MISSING_SYSTEM_PACKAGES=yes # What system packages should be installed. Default: All standard packages with spkg-configure. SAGE_PACKAGE_LIST_ARGS=--has-file=spkg-configure.m4 :standard: - recommended: EXTRA_SAGE_PACKAGES_3=_recommended $(head -n 1 build/pkgs/_recommended/dependencies) + recommended: EXTRA_SAGE_PACKAGES_3=$(sage-package list --include-dependencies _recommended) incremental: EXTRA_SAGE_PACKAGES_4=git - develop: EXTRA_SAGE_PACKAGES_4=_develop $(head -n 1 build/pkgs/_develop/dependencies) + develop: EXTRA_SAGE_PACKAGES_4=$(sage-package list --include-dependencies _develop) minimal: SAGE_PACKAGE_LIST_ARGS=_prereq maximal: SAGE_PACKAGE_LIST_ARGS=:standard: :optional: sitepackages: ENABLE_SYSTEM_SITE_PACKAGES=yes @@ -748,7 +748,7 @@ commands = # local-root: Assume we are root, run the system package commands # local-sudo: Use sudo to run the system package commands as root # - local-{root,sudo}: bash -c 'case "{env:SKIP_SYSTEM_PKG_INSTALL:}" in 1|y*|Y*);; *) eval $(build/bin/sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} update) ;; esac' + local-{root,sudo}: bash -c 'case "{env:SKIP_SYSTEM_PKG_INSTALL:}" in 1|y*|Y*);; *) export PATH="build/bin:$PATH" && eval $(sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} update) ;; esac' local-{root,sudo}: bash -c 'case "{env:SKIP_SYSTEM_PKG_INSTALL:}" in 1|y*|Y*);; *) export PATH="build/bin:$PATH" && eval $(sage-print-system-package-command {env:SYSTEM} {env:__SUDO:} --yes --no-install-recommends --spkg install $(sage-package list {env:SAGE_PACKAGE_LIST_ARGS}) {env:ALL_EXTRA_SAGE_PACKAGES}) || [ "$IGNORE_MISSING_SYSTEM_PACKAGES" = yes ] && echo "(ignoring errors)" ;; esac' # # All "local" environments @@ -759,7 +759,7 @@ commands = local: bash -c 'if [ ! -d prefix -o -L prefix ]; then rm -f prefix; ln -sf {env:PREFIX:{envdir}/local} prefix; fi' ##commands = - docker: bash -c 'BUILD_TAG={env:DOCKER_TAG:$(git describe --dirty --always)} .ci/write-dockerfile.sh {env:SYSTEM} "{env:SAGE_PACKAGE_LIST_ARGS:}" {env:WITH_SYSTEM_SPKG} {env:IGNORE_MISSING_SYSTEM_PACKAGES} "{env:ALL_EXTRA_SAGE_PACKAGES}" > {envdir}/Dockerfile' + docker: bash -c 'export PATH="build/bin:$PATH" && .ci/write-dockerfile.sh {env:SYSTEM} "{env:SAGE_PACKAGE_LIST_ARGS:}" {env:WITH_SYSTEM_SPKG} {env:IGNORE_MISSING_SYSTEM_PACKAGES} "{env:ALL_EXTRA_SAGE_PACKAGES}" > {envdir}/Dockerfile' # From https://hub.docker.com/r/multiarch/ubuntu-core/ # configure binfmt-support on the Docker host (works locally or remotely, i.e: using boot2docker) docker-{arm64,armhf}: docker run --rm --privileged multiarch/qemu-user-static:register --reset