repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-added-large-files - id: check-json - id: check-merge-conflict - id: debug-statements - id: check-docstring-first - id: check-executables-have-shebangs - id: check-toml - id: check-xml - id: check-case-conflict - id: check-ast - id: check-builddir - id: check-shebang-scripts - repo: https://github.com/psf/black rev: 23.3.0 hooks: - id: black language_version: python3 args: [--line-length=127] - repo: https://github.com/pycqa/isort rev: 5.12.0 hooks: - id: isort args: [--profile=black, --line-length=127] - repo: https://github.com/pycqa/flake8 rev: 6.0.0 hooks: - id: flake8 args: [--max-line-length=127, --extend-ignore=E203,W503] - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.3.0 hooks: - id: mypy additional_dependencies: [types-requests, types-python-dateutil] args: [--ignore-missing-imports] - repo: https://github.com/PyCQA/bandit rev: 1.7.5 hooks: - id: bandit args: [-r, ., -f, json, -o, bandit-report.json] pass_filenames: false - repo: https://github.com/pycqa/pydocstyle rev: 6.3.0 hooks: - id: pydocstyle args: [--convention=google] - repo: https://github.com/asottile/pyupgrade rev: v3.3.1 hooks: - id: pyupgrade args: [--py311-plus] - repo: https://github.com/Lucas-C/pre-commit-hooks-safety rev: v1.3.2 hooks: - id: python-safety-dependencies-check files: requirements.*\.txt$ - repo: https://github.com/Lucas-C/pre-commit-hooks-safety rev: v1.3.2 hooks: - id: python-safety-check args: [--json, --output, safety-report.json] - repo: local hooks: - id: pytest-check name: pytest-check entry: pytest language: system args: [tests/unit/, --tb=short, -q] pass_filenames: false always_run: true - id: security-check name: security-check entry: pytest language: system args: [tests/security/, --tb=short, -q] pass_filenames: false always_run: true - id: performance-check name: performance-check entry: pytest language: system args: [tests/performance/test_performance_lightweight.py::TestPerformance::test_cli_performance, --tb=short, -q] pass_filenames: false always_run: true