[tox]
envlist =
    py{38,39,310,311,312}
    pypy
    py{38,39,310,311,312}-nodeps
    py{38,39,310,311,312}-jenkins
    py-travis

[testenv]
; simplify numpy installation
setenv =
    LAPACK=
    ATLAS=None
    PYTHONWARNINGS=ignore

; Copy all environment variables to the tox test environment
passenv = *

deps =
    numpy
    text-unidecode
    twython
    pyparsing
    pytest
    pytest-cov
    pytest-mock
    python-crfsuite
    regex
    click
    joblib
    tqdm
    matplotlib
    markdown-it-py
    mdit-py-plugins
    mdit-plain
    pyyaml

changedir = nltk/test
commands =
    ; scipy and scikit-learn requires numpy even to run setup.py so
    ; they can't be installed in one command
    pip install scipy scikit-learn

    ; pytest --cov=nltk --cov-report html:{envdir}/docs nltk/test/
    pytest

[testenv:pypy]
; numpy is bundled with pypy; coverage is extra slow and
; the coverage results are not that different from CPython.
deps =
    pytest
    pytest-mock
    twython

commands =
    pytest

[testenv:py38-nodeps]
basepython = python3.8
deps =
    pytest
    pytest-mock
commands = pytest

[testenv:py39-nodeps]
basepython = python3.9
deps =
    pytest
    pytest-mock
commands = pytest

[testenv:py310-nodeps]
basepython = python3.10
deps =
    pytest
    pytest-mock
commands = pytest

[testenv:py311-nodeps]
basepython = python3.11
deps =
    pytest
    pytest-mock
commands = pytest

[testenv:py312-nodeps]
basepython = python3.12
deps =
    pytest
    pytest-mock
commands = pytest

# Use minor version agnostic basepython, but specify testenv
# control Python2/3 versions using jenkins' user-defined matrix instead.
# Available Python versions: http://repository-cloudbees.forge.cloudbees.com/distributions/ci-addons/python/fc25/

[testenv:py-travis]
extras = all
setenv =
    NLTK_DATA = {homedir}/nltk_data/
commands = {toxinidir}/tools/travis/coverage-pylint.sh

[testenv:py-travis-third-party]
extras = all
setenv =
	STANFORD_MODELS = {homedir}/third/stanford-parser/
	STANFORD_PARSER = {homedir}/third/stanford-parser/
	STANFORD_POSTAGGER = {homedir}/third/stanford-postagger/
    NLTK_DATA = {homedir}/nltk_data/

commands =
    {toxinidir}/tools/travis/third-party.sh
    {toxinidir}/tools/travis/coverage-pylint.sh

[testenv:py3-runtime-check]
; nltk should be runnable in an env with nothing installed
basepython = python3
deps =
commands = python -c "import nltk"

[isort]
profile=black
