1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
---
minimum_pre_commit_version: 3.6.0
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: check-merge-conflict # Check for files that contain merge conflict strings.
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
- id: mixed-line-ending # Replaces or checks mixed line ending.
args: [--fix=lf]
- id: end-of-file-fixer
- id: fix-encoding-pragma
args: [--remove]
- id: check-yaml
- id: debug-statements
language_version: python3
# ----- Local Hooks ----------------------------------------------------------------------------------------------->
- repo: local
hooks:
- id: sort-pylint-spelling-words
name: Sort PyLint Spelling Words File
entry: python .pre-commit-hooks/sort-pylint-spelling-words.py
language: system
files: ^\.pylint-spelling-words$
- id: check-changelog-entries
name: Check Changelog Entries
entry: python .pre-commit-hooks/check-changelog-entries.py
language: system
- id: check-copyright-headers
name: Check python modules for appropriate copyright headers
files: ^.*\.py$
entry: python .pre-commit-hooks/copyright-headers.py
language: system
# <---- Local Hooks ------------------------------------------------------------------------------------------------
# ----- Formatting ------------------------------------------------------------------------------------------------>
- repo: https://github.com/saltstack/pre-commit-remove-import-headers
rev: 1.1.0
hooks:
- id: remove-import-headers
- repo: https://github.com/asottile/pyupgrade
rev: v3.15.1
hooks:
- id: pyupgrade
name: Rewrite Code to be Py3.8+
args: [
--py38-plus
]
files: ^(src/.*\.py)$
exclude: ^src/pytestshellutils/(__init__|version)\.py$
- repo: https://github.com/asottile/reorder_python_imports
rev: v3.13.0
hooks:
- id: reorder-python-imports
args:
- --py37-plus
- --application-directories=.:src
exclude: ^src/pytestshellutils/version\.py$
- repo: https://github.com/psf/black
rev: 24.2.0
hooks:
- id: black
args: [-l 100]
exclude: ^src/pytestshellutils/version\.py$
- repo: https://github.com/asottile/blacken-docs
rev: 1.16.0
hooks:
- id: blacken-docs
args: [--skip-errors]
files: ^(.*\.rst|docs/.*\.rst|src/pytestshellutils/.*\.py)$
additional_dependencies: [black==24.2.0]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.11.1
hooks:
- id: mypy
alias: mypy-tools
name: Run mypy against tools
files: ^tools/.*\.py$
#args: [--strict]
additional_dependencies:
- attrs
- rich
- types-attrs
- types-requests
- repo: https://github.com/s0undt3ch/python-tools-scripts
rev: "0.20.5"
hooks:
- id: tools
alias: actionlint
name: Lint GitHub Actions Workflows
files: "^.github/workflows/"
types:
- yaml
args:
- pre-commit
- actionlint
additional_dependencies:
- packaging==23.0
# <---- Formatting -------------------------------------------------------------------------------------------------
# ----- Security -------------------------------------------------------------------------------------------------->
- repo: https://github.com/PyCQA/bandit
rev: "1.7.7"
hooks:
- id: bandit
alias: bandit-salt
name: Run bandit against the code base
args: [--silent, -lll, --skip, B701]
files: ^(?!tests/).*\.py$
exclude: ^src/pytestshellutils/version\.py$
- repo: https://github.com/PyCQA/bandit
rev: "1.7.7"
hooks:
- id: bandit
alias: bandit-tests
name: Run bandit against the test suite
args: [--silent, -lll, --skip, B701]
files: ^tests/.*
# <---- Security ---------------------------------------------------------------------------------------------------
# ----- Code Analysis --------------------------------------------------------------------------------------------->
- repo: https://github.com/pycqa/flake8
rev: '7.1.1'
hooks:
- id: flake8
exclude: ^(src/pytestshellutils/version\.py|\.pre-commit-hooks/.*\.py)$
additional_dependencies:
- flake8-mypy-fork
- pydocstyle>=4.0.0
- flake8-docstrings
- flake8-rst
- flake8-typing-imports
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.11.1
hooks:
- id: mypy
files: ^((src|tests)/.*\.py)$
exclude: ^(src/pytestshellutils/(utils/(socket|time)\.py))$
args: [--strict]
additional_dependencies:
- attrs
- types-attrs
- types-setuptools
- pydantic
- pytest
# <---- Code Analysis ----------------------------------------------------------------------------------------------
|