mirror of
https://github.com/ZGCA-Forge/MsgCenterPy.git
synced 2026-02-04 21:35:13 +00:00
init version
This commit is contained in:
81
.pre-commit-config.yaml
Normal file
81
.pre-commit-config.yaml
Normal file
@@ -0,0 +1,81 @@
|
||||
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
|
||||
Reference in New Issue
Block a user