# Pre-commit hooks for DSS # Install: pip install pre-commit # Setup: pre-commit install # Run manually: pre-commit run --all-files repos: # General file checks - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: trailing-whitespace args: [--markdown-linebreak-ext=md] - id: end-of-file-fixer - id: check-yaml - id: check-added-large-files args: [--maxkb=1000] - id: check-json - id: check-toml - id: check-merge-conflict - id: check-case-conflict - id: detect-private-key - id: mixed-line-ending # Python code formatting - repo: https://github.com/psf/black rev: 23.12.1 hooks: - id: black language_version: python3.10 args: [--line-length=100] # Python import sorting - repo: https://github.com/pycqa/isort rev: 5.13.2 hooks: - id: isort args: [--profile=black, --line-length=100] # Python linting - repo: https://github.com/pycqa/flake8 rev: 7.0.0 hooks: - id: flake8 args: [--max-line-length=100, --extend-ignore=E203] additional_dependencies: [flake8-docstrings] # Python type checking (optional, can be slow) # - repo: https://github.com/pre-commit/mirrors-mypy # rev: v1.8.0 # hooks: # - id: mypy # additional_dependencies: [types-all] # args: [--ignore-missing-imports, --no-strict-optional] # Security checks - repo: https://github.com/PyCQA/bandit rev: 1.7.6 hooks: - id: bandit args: [-r, tools/, -ll] exclude: tests/ # Configuration default_language_version: python: python3.10 # Files to exclude exclude: | (?x)^( \.venv/| \.git/| \.pytest_cache/| __pycache__/| \.dss/| node_modules/| cli/node_modules/| archive/ )$