repos: - repo: https://github.com/python/black rev: 19.3b0 hooks: - id: black exclude: > (?x)^( .*_pb2.py| .*_pb2_grpc.py )$ - repo: https://github.com/pre-commit/mirrors-mypy rev: v0.761 hooks: - id: mypy name: mypy-ml-agents files: "ml-agents/.*" args: [--ignore-missing-imports, --disallow-incomplete-defs] - id: mypy name: mypy-ml-agents-envs files: "ml-agents-envs/.*" # Exclude protobuf files and don't follow them when imported exclude: ".*_pb2.py" args: [--ignore-missing-imports, --disallow-incomplete-defs] - id: mypy name: mypy-gym-unity files: "gym-unity/.*" args: [--ignore-missing-imports, --disallow-incomplete-defs] - repo: https://github.com/pre-commit/pre-commit-hooks rev: v2.4.0 hooks: - id: mixed-line-ending exclude: > (?x)^( .*cs.meta| .*.css| .*.meta )$ args: [--fix=lf] - id: flake8 exclude: > (?x)^( .*_pb2.py| .*_pb2_grpc.py )$ # flake8-tidy-imports is used for banned-modules, not actually tidying additional_dependencies: [flake8-comprehensions==3.1.4, flake8-tidy-imports==4.0.0, flake8-bugbear==20.1.2] - id: trailing-whitespace name: trailing-whitespace-markdown types: [markdown] - id: check-merge-conflict args: [--assume-in-merge] - id: check-yaml # Won't handle the templating in yamato exclude: \.yamato/* - repo: https://github.com/pre-commit/pygrep-hooks rev: v1.4.2 hooks: - id: python-check-mock-methods - repo: https://github.com/pre-commit/mirrors-pylint rev: v2.4.4 hooks: - id: pylint exclude: > (?x)^( .*_pb2.py| .*_pb2_grpc.py| .*/tests/.* )$ args: [--score=n] # "Local" hooks, see https://pre-commit.com/#repository-local-hooks - repo: local hooks: - id: markdown-link-check name: markdown-link-check # markdown-link-check doesn't support multiple files on the commandline, so this hacks around that. # Note that you must install the package separately via npm. For example: # brew install npm; npm install -g markdown-link-check entry: bash -c 'for i in "$@"; do markdown-link-check -c markdown-link-check.fast.json "$i"; done' -- language: system types: [markdown] # Don't check localized files since their target might not be localized. exclude: ".*localized.*" # Only run manually, e.g. pre-commit run --hook-stage manual markdown-link-check stages: [manual] - id: markdown-link-check-full name: markdown-link-check-full entry: bash -c 'for i in "$@"; do markdown-link-check -c markdown-link-check.full.json "$i"; done' -- language: system types: [markdown] exclude: ".*localized.*" stages: [manual] - id: validate-versions name: validate library versions language: script entry: utils/validate_versions.py files: ".*/__init__.py" - id: validate-init-py name: validate __init__.py files language: script entry: utils/validate_inits.py types: [python]