# Ensure that this file do not contain non-ascii characters
# as flake8 can fail to parse the file on OS X and Windows

[tox]
skipsdist = False
envlist =
    py36
    py37
    py38
    py39
    py310
    pep8

[testenv]
usedevelop = True
basepython =
    py36: python3.6
    py37: python3.7
    py38: python3.8
    py39: python3.9
    py310: python3.10

deps = 
    -r{toxinidir}/requirements.txt
    -r{toxinidir}/tests/requirements.txt
commands =
    coverage run --source=moderngl_window -m pytest tests/
    coverage report

[testenv:pep8]
usedevelop = false
deps = flake8
basepython = python3.9
commands = flake8

[pytest]
norecursedirs = tests/* .venv/* .tox/* build/ examples/ .venv


[flake8]
# H405: multi line docstring summary not separated with an empty line
# D100: Missing docstring in public module
# D101: Missing docstring in public class
# D102: Missing docstring in public method
# D103: Missing docstring in public function
# D104: Missing docstring in public package
# D105: Missing docstring in magic method
# D200: One-line docstring should fit on one line with quotes
# D202: No blank lines allowed after function docstring
# D203: 1 blank required before class docstring.
# D204: 1 blank required after class docstring
# D205: Blank line required between one-line summary and description.
# D207: Docstring is under-indented
# D208: Docstring is over-indented
# D211: No blank lines allowed before class docstring
# D301: Use r""" if any backslashes in a docstring
# D400: First line should end with a period.
# D401: First line should be in imperative mood.
# *** E302 expected 2 blank lines, found 1
# *** W503 line break before binary operator
ignore = H405,D100,D101,D102,D103,D104,D105,D200,D202,D203,D204,D205,D211,D301,D400,D401,W503
show-source = True
max-line-length = 120
exclude = .tox,.venv*,tests,examples,build,random_fun,conf.py
