Add a very lax mypy configuration, add it to tox -e linting, and fix/ignore the few errors that come up. The idea is to get it running before diving in too much. This enables: - Progressively adding type annotations and enabling more strict options, which will improve the codebase (IMO). - Annotating the public API in-line, and eventually exposing it to library users who use type checkers (with a py.typed file). Though, none of this is done yet. Refs https://github.com/pytest-dev/pytest/issues/3342.
85 lines
2.5 KiB
YAML
85 lines
2.5 KiB
YAML
exclude: doc/en/example/py2py3/test_py2.py
|
|
repos:
|
|
- repo: https://github.com/python/black
|
|
rev: 19.3b0
|
|
hooks:
|
|
- id: black
|
|
args: [--safe, --quiet]
|
|
language_version: python3
|
|
- repo: https://github.com/asottile/blacken-docs
|
|
rev: v1.0.0
|
|
hooks:
|
|
- id: blacken-docs
|
|
additional_dependencies: [black==19.3b0]
|
|
language_version: python3
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v2.2.3
|
|
hooks:
|
|
- id: trailing-whitespace
|
|
- id: end-of-file-fixer
|
|
- id: fix-encoding-pragma
|
|
args: [--remove]
|
|
- id: check-yaml
|
|
- id: debug-statements
|
|
exclude: _pytest/debugging.py
|
|
language_version: python3
|
|
- repo: https://gitlab.com/pycqa/flake8
|
|
rev: 3.7.7
|
|
hooks:
|
|
- id: flake8
|
|
language_version: python3
|
|
additional_dependencies: [flake8-typing-imports]
|
|
- repo: https://github.com/asottile/reorder_python_imports
|
|
rev: v1.4.0
|
|
hooks:
|
|
- id: reorder-python-imports
|
|
args: ['--application-directories=.:src', --py3-plus]
|
|
- repo: https://github.com/asottile/pyupgrade
|
|
rev: v1.18.0
|
|
hooks:
|
|
- id: pyupgrade
|
|
args: [--py3-plus]
|
|
- repo: https://github.com/pre-commit/pygrep-hooks
|
|
rev: v1.4.0
|
|
hooks:
|
|
- id: rst-backticks
|
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
rev: v0.711
|
|
hooks:
|
|
- id: mypy
|
|
name: mypy (src)
|
|
files: ^src/
|
|
args: []
|
|
- id: mypy
|
|
name: mypy (testing)
|
|
files: ^testing/
|
|
args: []
|
|
- repo: local
|
|
hooks:
|
|
- id: rst
|
|
name: rst
|
|
entry: rst-lint --encoding utf-8
|
|
files: ^(CHANGELOG.rst|HOWTORELEASE.rst|README.rst|TIDELIFT.rst|changelog/.*)$
|
|
language: python
|
|
additional_dependencies: [pygments, restructuredtext_lint]
|
|
- id: changelogs-rst
|
|
name: changelog filenames
|
|
language: fail
|
|
entry: 'changelog files must be named ####.(feature|bugfix|doc|deprecation|removal|vendor|trivial).rst'
|
|
exclude: changelog/(\d+\.(feature|bugfix|doc|deprecation|removal|vendor|trivial).rst|README.rst|_template.rst)
|
|
files: ^changelog/
|
|
- id: py-deprecated
|
|
name: py library is deprecated
|
|
language: pygrep
|
|
entry: >
|
|
(?x)\bpy\.(
|
|
_code\.|
|
|
builtin\.|
|
|
code\.|
|
|
io\.(BytesIO|saferepr)|
|
|
path\.local\.sysfind|
|
|
process\.|
|
|
std\.
|
|
)
|
|
types: [python]
|