File: .pre-commit-config.yaml

package info (click to toggle)
astropy 5.2.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 41,972 kB
  • sloc: python: 219,331; ansic: 147,297; javascript: 13,556; lex: 8,496; sh: 3,319; xml: 1,622; makefile: 185
file content (136 lines) | stat: -rw-r--r-- 4,781 bytes parent folder | download
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
ci:
  autofix_prs: false

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
      - id: check-added-large-files
        # Prevent giant files from being committed.
      - id: check-ast
        # Simply check whether files parse as valid python.
      - id: check-case-conflict
        # Check for files with names that would conflict on a case-insensitive
        # filesystem like MacOS HFS+ or Windows FAT.
      - id: check-json
        # Attempts to load all json files to verify syntax.
      - id: check-merge-conflict
        # Check for files that contain merge conflict strings.
      - id: check-symlinks
        # Checks for symlinks which do not point to anything.
      - id: check-toml
        # Attempts to load all TOML files to verify syntax.
      - id: check-xml
        # Attempts to load all xml files to verify syntax.
      - id: check-yaml
        # Attempts to load all yaml files to verify syntax.
      - id: debug-statements
        # Check for debugger imports and py37+ breakpoint() calls in python
        # source.
      - id: detect-private-key
        # Checks for the existence of private keys.
      - id: end-of-file-fixer
        # Makes sure files end in a newline and only a newline.
        exclude: ".*(data.*|extern.*|licenses.*|_parsetab.py)$"
      # - id: fix-encoding-pragma  # covered by pyupgrade
      - id: trailing-whitespace
        # Trims trailing whitespace.
        exclude: ".*(data.*|extern.*|licenses.*|_parsetab.py|test_cds.py)$"

  - repo: https://github.com/pre-commit/pygrep-hooks
    rev: v1.9.0
    hooks:
      - id: python-check-mock-methods
        # Prevent common mistakes of assert mck.not_called(), assert
        # mck.called_once_with(...) and mck.assert_called.
      - id: rst-directive-colons
        # Detect mistake of rst directive not ending with double colon.
      - id: rst-inline-touching-normal
        # Detect mistake of inline code touching normal text in rst.
      - id: text-unicode-replacement-char
        # Forbid files which have a UTF-8 Unicode replacement character.
      - id: python-check-blanket-noqa
        # Enforce that all noqa annotations always occur with specific codes.

  - repo: https://github.com/asottile/pyupgrade
    rev: v3.3.0
    hooks:
      - id: pyupgrade
        args: ["--py38-plus"]
        exclude: ".*(extern.*|_parsetab.py|_lextab.py)$"

  - repo: https://github.com/asottile/yesqa
    rev: v1.4.0
    hooks:
      - id: yesqa

  - repo: https://github.com/pycqa/isort
    rev: 5.10.1
    hooks:
      - id: isort
        name: isort (python)
        additional_dependencies: [toml]
      - id: isort
        name: isort (pyi)
        types: [pyi]
        additional_dependencies: [toml]
      - id: isort
        name: isort (cython)
        types: [cython]
        additional_dependencies: [toml]

  - repo: https://github.com/psf/black
    rev: 22.10.0
    hooks:
      - id: black

  # We list the warnings/errors to check for here rather than in setup.cfg because
  # we don't want these options to apply whenever anyone calls flake8 from the
  # command-line or their code editor - in this case all warnings/errors should be
  # checked for. The warnings/errors we check for here are:
  # E101 - mix of tabs and spaces
  # E111 - 4 spaces per indentation level
  # E112 - 4 spaces per indentation level
  # E113 - 4 spaces per indentation level
  # E201 - whitespace after '('
  # E202 - whitespace before ')'
  # E27 - spaces and tabs after
  # E3 - Blank line
  # E502 - the backslash is redundant between brackets
  # E70 - multiple statements on a line
  # E9 - Runtime
  # F - Flake8 Errors
  # W - Whitespace
  - repo: https://github.com/PyCQA/flake8
    rev: 6.0.0
    hooks:
      - id: flake8
        args:
          [
            "--count",
            "--select",
            "E10,E11,E201,E202,E27,E3,E5,E70,E722,E9,F,W",
            "--ignore",
            "E114,E116,E501,F403,F821,F841,W5"
          ]
        exclude: ".*(data.*|extern.*|cextern)$"

  - repo: local
    hooks:
      - id: changelogs-rst
        name: changelog filenames
        language: fail
        entry: >-
          changelog files must be named <sub-package>/####.(bugfix|feature|api).rst
          or ####.other.rst (in the root directory only)
        exclude: >-
          ^docs/changes/[\w\.]+/(\d+\.(bugfix|feature|api)(\.\d)?.rst|.gitkeep)
        files: ^docs/changes/[\w\.]+/
      - id: changelogs-rst-other
        name: changelog filenames for other category
        language: fail
        entry: >-
          only "other" changelog files must be placed in the root directory
        exclude: >-
          ^docs/changes/(\d+\.other.rst|README.rst|template.rst)
        files: ^docs/changes/\d+.\w+.rst