# To build and test in the tox environment:1#2# make SAGE_WHEELS=yes sagemath_categories-build-deps sagemath_repl && ./sage -sh -c '(cd pkgs/sagemath-categories && SAGE_NUM_THREADS=8 tox -v -v -v -e sagepython-sagewheels-nopypi-norequirements)'3#4# After this, to test interactively:5#6# pkgs/sagemath-categories/.tox/sagepython-sagewheels-nopypi-norequirements/bin/sage7#8[tox]9envlist =10sagepython-sagewheels-nopypi-norequirements1112requires =13# Auto-provision a modern tox.14# [pkgenv] added in 4.2 - https://tox.wiki/en/latest/upgrading.html#packaging-configuration-and-inheritance15# Because of https://github.com/tox-dev/tox/issues/3238, need <4.14.116tox>=4.217tox<4.14.11819[pkgenv]20# Environment in which to build the sdist.21# https://tox.wiki/en/latest/upgrading.html#packaging-environments22passenv =23# Variables set by .homebrew-build-env24CPATH25LIBRARY_PATH26PKG_CONFIG_PATH27# Parallel build28SAGE_NUM_THREADS29SAGE_NUM_THREADS_PARALLEL30MAKEFLAGS31# SAGE_VENV only for referring to the basepython or finding the wheels32sagepython, sagewheels: SAGE_VENV33# Location of the wheels34sagewheels: SAGE_SPKG_WHEELS3536setenv =37# We supply pip options by environment variables so that they38# apply both to the installation of the dependencies and of the package39sagewheels: PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels}40nopypi: PIP_NO_INDEX=true4142[testenv]43deps =44!norequirements: -rrequirements.txt4546extras = test4748passenv = {[pkgenv]passenv}4950setenv = {[pkgenv]setenv}51# Sage scripts such as sage-runtests like to use $HOME/.sage52HOME={envdir}53# Stop 'sage -t --installed' from picking up doc installed in SAGE_LOCAL54SAGE_DOC=/doesnotexist55KNOWN_TEST_FAILURES={toxinidir}/known-test-failures.json56# See src/bin/sage-env57PYDEVD_DISABLE_FILE_VALIDATION=15859allowlist_externals =60bash6162commands =63# Beware of the treacherous non-src layout. "./sage/" shadows the installed sage package.64{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.categories.all'6566# Test that importing sage.categories.all initializes categories67{envpython} -c 'import sys; "" in sys.path and sys.path.remove(""); from sage.categories.all import *; SimplicialComplexes(); FunctionFields()'6869bash -c 'cd $(python -c "import sys; \"\" in sys.path and sys.path.remove(\"\"); from sage.env import SAGE_LIB; print(SAGE_LIB)") \70&& sage-runtests -p --force-lib --initial --environment=sage.all__sagemath_categories --probe all --baseline-stats-path=$KNOWN_TEST_FAILURES --optional=sage --installed'7172[testenv:.tox]73# Allow access to PyPI for auto-provisioning a suitable tox version74passenv =75setenv = PIP_NO_INDEX=false7677[testenv:.pkg-sagepython]78# Environment in which to build the sdist.79# inherits from [pkgenv] - https://tox.wiki/en/latest/upgrading.html#packaging-environments80basepython = {env:SAGE_VENV}/bin/python38182[testenv:.pkg-sagepython-sagewheels-nopypi]83passenv = {[pkgenv]passenv}84SAGE_VENV85SAGE_SPKG_WHEELS8687setenv = {[pkgenv]setenv}88PIP_FIND_LINKS=file://{env:SAGE_SPKG_WHEELS:{env:SAGE_VENV:{toxinidir}/../../../../venv}/var/lib/sage/wheels}89PIP_NO_INDEX=true9091basepython = {env:SAGE_VENV}/bin/python39293[testenv:.pkg-sagepython-sagewheels-nopypi-editable]94config_settings_build_editable =95editable_mode = strict969798[testenv:sagepython]99basepython = {env:SAGE_VENV}/bin/python3100package_env = .pkg-sagepython101102[testenv:sagepython-sagewheels-nopypi]103basepython = {env:SAGE_VENV}/bin/python3104package_env = .pkg-sagepython-sagewheels-nopypi105106[testenv:sagepython-sagewheels]107basepython = {env:SAGE_VENV}/bin/python108package_env = .pkg-sagepython109110[testenv:sagepython-norequirements]111basepython = {env:SAGE_VENV}/bin/python3112package_env = .pkg-sagepython113114115[testenv:sagepython-sagewheels-nopypi-norequirements]116basepython = {env:SAGE_VENV}/bin/python3117package_env = .pkg-sagepython-sagewheels-nopypi118119[testenv:sagepython-sagewheels-nopypi-editable]120basepython = {env:SAGE_VENV}/bin/python3121package_env = .pkg-sagepython-sagewheels-nopypi-editable122package = editable123deps = -r requirements-editable.txt124config_settings_build_editable =125editable_mode = strict126127128