[tox:tox]
envlist = py{36,37,38,39,310,311,312}
skip_missing_interpreters = True
skipsdist = True

[testenv]
deps =
    numpy
setenv =
    SDL_AUDIODRIVER=disk
    SDL_VIDEODRIVER=dummy
passenv =
    PORTMIDI_INC_PORTTIME
commands =
    python -m buildconfig -auto
    pip install .
    python -m pygame.tests

[options.entry_points]
pyinstaller40 =
	hook-dirs = pygame.__pyinstaller:get_hook_dirs

# ignore-words-list is a comma-separated list of lowercase words to be
#   ignored by codespell.  Typos should be fixed but for instance Mechanim
#   is the name of a software product so we want codespell to ignore that.
[codespell]
skip = ./docs/es/*,./src_c/*,setup.py,*.json
ignore-words-list = ags,ans,appen,datas,fo,likey,mechanim,nd,nin,nnumber,paeth,pevents,rocess,statics,testin
quiet-level = 35

[isort]
include_trailing_comma = True
known_first_party = pygame
known_third_party = numpy, distutils, setuptools, sphinx
line_length = 88
multi_line_output = 3
src_paths = src_py

[pylint.MESSAGES CONTROL]
extension-pkg-whitelist=pygame
enable=
    use-symbolic-message-instead,

disable=
    attribute-defined-outside-init,
    broad-except,
    duplicate-code,
    empty-docstring,
    fixme,
    global-statement,
    global-variable-undefined,
    import-error,
    import-outside-toplevel,
    invalid-name,
    missing-docstring,
    no-member,
    protected-access,
    raise-missing-from,
    redefined-builtin,
    redefined-outer-name,
    super-with-arguments,
    too-few-public-methods,
    too-many-arguments,
    too-many-branches,
    too-many-instance-attributes,
    too-many-lines,
    too-many-locals,
    undefined-all-variable,
    undefined-variable,
    unused-import, # False positive because there are no __all__ sometime.
    useless-object-inheritance,
    wrong-import-order,
    wrong-import-position,
