[tox] requires = tox>=4 toxworkdir=/tmp/.tensile-tox labels = precommit = format, lint, isort, unittest prepr = format, lint, isort, unittest, ci, hostlibtest static = format, lint, isort [vars] client_build_dir = {toxinidir}/build/client client_path = {[vars]client_build_dir}/tensile-client hostlibtest_build_dir = build_hostlibtest options = --verbose \ --basetemp={envtmpdir} \ --color=yes \ --numprocesses=4 \ --prebuilt-client={[vars]client_path} [testenv] basepython = python3 deps = -r{toxinidir}/requirements.txt joblib filelock pytest>=7.2.0 pytest-xdist>=3.3.0 commands = python3 -c 'raise Exception("Default tox commands are not supported, specify one with the `-e` option")' [testenv:ci] deps = {[testenv]deps} invoke setenv = TENSILE_CLIENT_ARGS = {env:TENSILE_CLIENT_ARGS:} commands = invoke build-client {env:TENSILE_CLIENT_ARGS} py.test {toxinidir}/Tensile/Tests {[vars]options} {posargs:-m pre_checkin} [testenv:unittest] deps = {[testenv]deps} pytest-cov>=5.0.0 commands = coverage erase pytest {toxinidir}/Tensile/Tests {[vars]options} -m unit --cov-append --cov=Tensile --cov-report=term {posargs} [testenv:hostlibtest] deps = invoke commands = invoke hostlibtest --clean --configure --build {posargs} [testenv:docs] skip_install = true change_dir = {toxinidir}/docs deps = -r docs/sphinx/requirements.txt commands = python3 -m sphinx -T -b html -d _build/doctrees -D language=en -v . _build/html [testenv:lint] skip_install = true deps = -r{toxinidir}/requirements.txt flake8 commands = flake8 {toxinidir}/Tensile [testenv:format] skip_install = true deps = black==24.4 commands = black \ --line-length=100 \ {toxinidir}/docs/ \ {toxinidir}/Tensile/Parallel.py \ {toxinidir}/Tensile/TensileCreateLibrary.py \ {toxinidir}/Tensile/TensileCreateLib/ \ {toxinidir}/Tensile/BuildCommands/ \ {toxinidir}/Tensile/Utilities/Toolchain.py \ {toxinidir}/Tensile/Tests/unit/test_TensileCreateLibrary.py \ {toxinidir}/Tensile/Tests/unit/test_KernelFileContext.py \ {toxinidir}/Tensile/Tests/unit/test_AsmRegisterPool.py \ {posargs} [testenv:isort] description = "Sorts import statements for less merge conflicts" skip_install = true deps = isort==5.13.2 commands = isort \ --profile=black \ {toxinidir}/docs/ \ {toxinidir}/Tensile/Parallel.py \ {toxinidir}/Tensile/TensileCreateLibrary.py \ {toxinidir}/Tensile/TensileCreateLib/ \ {toxinidir}/Tensile/BuildCommands/ \ {toxinidir}/Tensile/Utilities/Toolchain.py \ {toxinidir}/Tensile/Tests/unit/test_TensileCreateLibrary.py \ {toxinidir}/Tensile/Tests/unit/test_KernelFileContext.py \ {toxinidir}/Tensile/Tests/unit/test_AsmRegisterPool.py \ {posargs} [flake8] exclude = .git,build*,dist,.cache,*~ per-file-ignores = Tensile/Utilities/ConditionalImports.py:F401 max-line-length = 132 ignore = # All E class violations are errors reported by pycodestyle E, # All W class violations are warnings reported by pycodestyle W, # This mostly just leaves pyflakes errors. F824 # false positives `global globalParameters` is unused: name is never assigned in scope