mirror of
https://github.com/ZGCA-Forge/MsgCenterPy.git
synced 2025-12-14 13:04:34 +00:00
82 lines
2.3 KiB
YAML
82 lines
2.3 KiB
YAML
repos:
|
|
# Code formatting
|
|
- repo: https://github.com/psf/black
|
|
rev: 23.12.1
|
|
hooks:
|
|
- id: black
|
|
language_version: python3
|
|
args: ["--line-length=120"]
|
|
|
|
# Import sorting
|
|
- repo: https://github.com/pycqa/isort
|
|
rev: 5.13.2
|
|
hooks:
|
|
- id: isort
|
|
args: ["--profile", "black", "--multi-line", "3"]
|
|
|
|
# Linting
|
|
- repo: https://github.com/pycqa/flake8
|
|
rev: 7.0.0
|
|
hooks:
|
|
- id: flake8
|
|
args:
|
|
- "--max-line-length=200" # Allow longer lines after black formatting
|
|
- "--extend-ignore=E203,W503,F401,E402,E721,F841"
|
|
- "--exclude=build,dist,__pycache__,.mypy_cache,.pytest_cache,htmlcov,.idea,.vscode,docs/_build,msgcenterpy.egg-info"
|
|
|
|
# Type checking
|
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
rev: v1.8.0
|
|
hooks:
|
|
- id: mypy
|
|
additional_dependencies: [types-PyYAML, types-jsonschema, pydantic]
|
|
args: ["--ignore-missing-imports", "--disable-error-code=unused-ignore"]
|
|
files: "^(msgcenterpy/)" # Check both source code and tests
|
|
|
|
# General pre-commit hooks
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v4.5.0
|
|
hooks:
|
|
# File checks
|
|
- id: trailing-whitespace
|
|
args: [--markdown-linebreak-ext=md]
|
|
- id: end-of-file-fixer
|
|
- id: check-yaml
|
|
- id: check-json
|
|
- id: check-toml
|
|
- id: check-xml
|
|
|
|
# Security
|
|
- id: check-merge-conflict
|
|
- id: check-case-conflict
|
|
- id: check-symlinks
|
|
- id: check-added-large-files
|
|
args: ["--maxkb=1000"]
|
|
|
|
# Python specific
|
|
- id: check-ast
|
|
- id: debug-statements
|
|
- id: name-tests-test
|
|
args: ["--django"]
|
|
|
|
# Security scanning
|
|
- repo: https://github.com/PyCQA/bandit
|
|
rev: 1.7.5
|
|
hooks:
|
|
- id: bandit
|
|
args: ["-c", "pyproject.toml"]
|
|
additional_dependencies: ["bandit[toml]", "pbr"]
|
|
exclude: "^tests/"
|
|
|
|
# YAML/JSON formatting
|
|
- repo: https://github.com/pre-commit/mirrors-prettier
|
|
rev: v4.0.0-alpha.8
|
|
hooks:
|
|
- id: prettier
|
|
types_or: [yaml, json, markdown]
|
|
exclude: "^(build/|dist/|__pycache__/|\\.mypy_cache/|\\.pytest_cache/|htmlcov/|\\.idea/|\\.vscode/|docs/_build/|msgcenterpy\\.egg-info/)"
|
|
|
|
# Global settings
|
|
default_stages: [pre-commit, pre-push]
|
|
fail_fast: false
|