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://gitlab.com/pycqa/flake8 rev: 3.8.1 hooks: - 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.2.2, flake8-tidy-imports==4.1.0, flake8-bugbear==20.1.4] - repo: https://github.com/asottile/pyupgrade rev: v2.7.0 hooks: - id: pyupgrade args: [--py3-plus, --py36-plus] exclude: > (?x)^( .*_pb2.py| .*_pb2_grpc.py )$ - repo: https://github.com/pre-commit/pre-commit-hooks rev: v2.5.0 hooks: - id: mixed-line-ending exclude: > (?x)^( .*cs.meta| .*.css| .*.meta )$ args: [--fix=lf] - 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/mattlqx/pre-commit-search-and-replace rev: v1.0.3 hooks: - id: search-and-replace types: [markdown] exclude: ".*localized.*" - repo: https://github.com/dotnet/format rev: "7e343070a0355c86f72bdee226b5e19ffcbac931" # TODO - update to a tagged version when one that includes the hook is ready. hooks: - id: dotnet-format args: [--folder, --include] # "Local" hooks, see https://pre-commit.com/#repository-local-hooks - repo: local hooks: - id: markdown-link-check name: markdown-link-check entry: utils/run_markdown_link_check.py language: script 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: utils/run_markdown_link_check.py language: script 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-full stages: [manual] args: [--check-remote] - 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] - id: validate-release-links-py name: validate release links language: script entry: utils/validate_release_links.py require_serial: true - id: generate-markdown-docs name: generate markdown docs language: python entry: ./utils/generate_markdown_docs.py --package_dirs ml-agents-envs pass_filenames: false additional_dependencies: [pyyaml, pydoc-markdown==3.10.1]