# Tox (http://tox.testrun.org/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.

[tox]
envlist = py27, py35, py36, py37, docs

[testenv]
setenv =
    PYTHONHASHSEED = 42
    # hooks for coverage exclusions based on Python major version
    py35,py36: PY_MAJOR_VERSION = py3
    py27: PY_MAJOR_VERSION = py2
commands =
    python setup.py build_ext --inplace
    py27,py35,py36: pytest -v --cov=numcodecs numcodecs
    py37: pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs
    coverage report -m
    py37: flake8 --max-line-length=100 numcodecs
    pip freeze
deps =
    py27: backports.lzma
    -rrequirements_dev.txt
    -rrequirements_test.txt

[testenv:docs]
basepython = python2.7
changedir = docs
deps =
    -rrequirements_rtfd.txt
commands =
    sphinx-build -W -b html -d {envtmpdir}/doctrees .  {envtmpdir}/html

# Tox (http://tox.testrun.org/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.

[tox]
envlist = py27, py35, py36, py37, docs

[testenv]
setenv =
    PYTHONHASHSEED = 42
    # hooks for coverage exclusions based on Python major version
    py35,py36: PY_MAJOR_VERSION = py3
    py27: PY_MAJOR_VERSION = py2
commands =
    python setup.py build_ext --inplace
    py27,py35,py36: pytest -v --cov=numcodecs numcodecs
    py37: pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs
    coverage report -m
    py37: flake8 numcodecs
    pip freeze
deps =
    py27: backports.lzma
    -rrequirements_dev.txt
    -rrequirements_test.txt

[testenv:docs]
basepython = python2.7
changedir = docs
deps =
    -rrequirements_rtfd.txt
commands =
    sphinx-build -W -b html -d {envtmpdir}/doctrees .  {envtmpdir}/html

[flake8]
max-line-length = 100

Configure flake8's line length as 100
Configure flake8's line length as 100

This allows users to run `flake8 numcodecs` and pick up the desired
configuration by default.
