--- a
+++ b/tox.ini
@@ -0,0 +1,164 @@
+; a generative tox configuration, see: https://testrun.org/tox/latest/config.html#generative-envlist
+
+[tox]
+envlist =
+    clean,
+    check,
+    {py36},
+    report,
+    docs,
+    tf2
+
+[testenv:tf2]
+basepython =
+    {tf2}: {env:TOXPYTHON:python3.7}
+setenv =
+    PYTHONPATH={toxinidir}/tests
+    PYTHONUNBUFFERED=yes
+passenv =
+    *
+usedevelop = false
+install_command = pip install --no-cache-dir {packages}
+list_depencencies_command =
+    setuptools
+deps =
+    cython
+    pytest
+    pytest-travis-fold
+    pytest-cov
+    numpy
+    progress
+    pandas
+    Biopython==1.77
+    keras==2.4.3
+    tensorflow==2.2.0
+    h5py<3.0.0
+    pyBigWig
+    pybedtools
+    pysam<0.16,!=0.15.3
+    urllib3
+    matplotlib
+    seaborn
+    scikit-learn
+    pydot
+commands =
+    {posargs:py.test --cov --cov-report=term-missing -vv tests -p no:warnings}
+
+[testenv]
+basepython =
+    pypy: {env:TOXPYTHON:pypy}
+    {docs,spell}: {env:TOXPYTHON:python3.6}
+    {py36}: {env:TOXPYTHON:python3.6}
+    {bootstrap,clean,check,report,coveralls,codecov}: {env:TOXPYTHON:python3}
+setenv =
+    PYTHONPATH={toxinidir}/tests
+    PYTHONUNBUFFERED=yes
+passenv =
+    *
+usedevelop = false
+install_command = pip install --no-cache-dir {packages}
+list_depencencies_command =
+    setuptools
+deps =
+    cython
+    pytest
+    pytest-travis-fold
+    pytest-cov
+    numpy
+    progress
+    pandas
+    Biopython==1.77
+    keras==2.2.4
+    tensorflow==1.14.0
+    h5py<3.0.0
+    pyBigWig
+    pybedtools
+    pysam<0.16,!=0.15.3
+    urllib3
+    matplotlib
+    seaborn
+    scikit-learn
+    pydot
+commands =
+    {posargs:py.test --cov --cov-report=term-missing -vv tests -p no:warnings}
+
+[testenv:bootstrap]
+deps =
+    jinja2
+    matrix
+skip_install = true
+commands =
+    python ci/bootstrap.py
+[testenv:spell]
+setenv =
+    SPELLCHECK=1
+commands =
+    - sphinx-build -b spelling docs dist/docs
+skip_install = true
+recreate = true
+deps =
+    -r{toxinidir}/docs/requirements.txt
+    sphinxcontrib-spelling
+    pyenchant
+
+[testenv:docs]
+deps =
+    -r{toxinidir}/docs/requirements.txt
+commands =
+    - sphinx-build {posargs:-E} -b html docs dist/docs
+    - sphinx-build -b linkcheck docs dist/docs
+
+[testenv:check]
+deps =
+    docutils
+    check-manifest
+    bleach>=2.0
+    pylama
+    pylint
+    progress
+    readme-renderer
+    pygments
+    isort
+    numpy
+    pybedtools
+    keras
+    pandas
+    Biopython==1.77
+skip_install = true
+ignore_errors = true
+commands =
+    python setup.py check --metadata --restructuredtext
+    check-manifest {toxinidir}
+    - isort -q --check-only --diff --recursive src tests setup.py -s tests/test_coverage.py
+    - pylint --rcfile .pylintrc -r y setup.py
+    - pylint --rcfile .pylintrc -r y src/janggu
+
+
+[testenv:coveralls]
+deps =
+    coveralls
+skip_install = true
+commands =
+    coveralls []
+
+[testenv:codecov]
+deps =
+    codecov
+skip_install = true
+commands =
+    coverage xml --ignore-errors
+    codecov []
+
+
+[testenv:report]
+deps = coverage
+skip_install = true
+commands =
+    - coverage combine --append || true
+    coverage report
+    coverage html
+
+[testenv:clean]
+commands = coverage erase
+skip_install = true
+deps = coverage