.pre-commit-config.yaml 4.3 KB
Newer Older
1
# Exclude all third-party libraries and auto-generated files globally
2 3
exclude: |
    (?x)^(
4 5
        patches/.+|
        paddle/fluid/framework/fleet/heter_ps/cudf/.+|
6
        paddle/fluid/distributed/ps/thirdparty/round_robin.h|
7 8 9 10
        python/paddle/utils/gast/.+|
        .+_py2\.py|
        python/paddle/fluid/tests/unittests/npu/.+|
        python/paddle/fluid/tests/unittests/mlu/.+
11
    )$
Y
Yi Wang 已提交
12
repos:
13 14 15 16 17 18 19 20 21 22 23 24 25
# Common hooks
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.1.0
    hooks:
    -   id: check-added-large-files
    -   id: check-merge-conflict
    -   id: check-symlinks
    -   id: detect-private-key
    -   id: end-of-file-fixer
    -   id: sort-simple-yaml
        files: (ops|backward|op_[a-z_]+)\.yaml$
    -   id: trailing-whitespace
        files: (.*\.(py|bzl|md|rst|c|cc|cxx|cpp|cu|h|hpp|hxx|xpu|kps|cmake|yaml|yml|hook)|BUILD|.*\.BUILD|WORKSPACE|CMakeLists\.txt)$
Y
Yu Yang 已提交
26
-   repo: https://github.com/Lucas-C/pre-commit-hooks.git
27
    rev: v1.1.14
Y
Yu Yang 已提交
28 29
    hooks:
    -   id: remove-crlf
30
    -   id: remove-tabs
31
        name: Tabs remover (C++)
32 33
        files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|xpu|kps)$
        args: [--whitespaces-count, '2']
34
    -   id: remove-tabs
35
        name: Tabs remover (Python)
36 37 38 39 40 41 42 43 44 45
        files: (.*\.(py|bzl)|BUILD|.*\.BUILD|WORKSPACE)$
        args: [--whitespaces-count, '4']
        # Exclude the fluid directory but keep the fluid/tests directory.
        # And exclude some unit test files that require tabs.
        exclude: |
            (?x)^(
                python/paddle/fluid/(?!tests).+|
                python/paddle/fluid/tests/unittests/collective/fleet/test_hdfs1.py|
                python/paddle/fluid/tests/unittests/dygraph_to_static/test_error.py
            )$
46 47 48 49 50 51 52 53 54 55 56 57
-   repo: local
    hooks:
    -   id: copyright_checker
        name: copyright_checker
        entry: python ./tools/codestyle/copyright.hook
        language: system
        files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|proto|xpu|kps|py|sh)$
        exclude: |
            (?x)^(
                paddle/utils/.*
            )$
# For Python files
58 59
-   repo: https://github.com/psf/black.git
    rev: 22.8.0
Y
Yu Yang 已提交
60
    hooks:
61 62
    -   id: black
        files: (.*\.(py|pyi|bzl)|BUILD|.*\.BUILD|WORKSPACE)$
63 64 65 66
-   repo: https://github.com/PyCQA/flake8
    rev: 4.0.1
    hooks:
    -   id: flake8
67 68
-   repo: https://github.com/PyCQA/autoflake
    rev: v1.7.7
Y
Yu Yang 已提交
69
    hooks:
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
    -   id: autoflake
        args:
            - --in-place
            - --remove-all-unused-imports
            - --ignore-pass-after-docstring
            - --ignore-init-module-imports
            - --exclude=python/paddle/fluid/[!t]**,python/paddle/fluid/tra**
-   repo: local
    hooks:
    -   id: pylint-doc-string
        name: pylint
        description: Check python docstring style using docstring_checker.
        entry: bash ./tools/codestyle/pylint_pre_commit.hook
        language: system
        files: \.(py)$
# For C++ files
L
test  
liaogang 已提交
86
-   repo: local
Y
Yu Yang 已提交
87
    hooks:
88
    -   id: clang-format
L
test  
liaogang 已提交
89 90
        name: clang-format
        description: Format files with ClangFormat.
91
        entry: bash ./tools/codestyle/clang_format.hook -i
L
test  
liaogang 已提交
92
        language: system
93
        files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|xpu|kps)$
Y
Yi Wang 已提交
94 95 96 97 98 99 100 101
-   repo: local
    hooks:
    -   id: cpplint-cpp-source
        name: cpplint
        description: Check C++ code style using cpplint.py.
        entry: bash ./tools/codestyle/cpplint_pre_commit.hook
        language: system
        files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx)$
102 103 104 105
        args:
            - --extensions=c,cc,cxx,cpp,cu,cuh,h,hpp,hxx,kps
            - --filter=-readability/fn_size,-build/include_what_you_use,-build/c++11,-whitespace/parens
            - --quiet
106
# For CMake files
R
Roc 已提交
107 108 109 110 111 112 113
-   repo: local
    hooks:
    -   id: auto-generate-cmakelists
        name: auto-generate-cmakelists
        entry: bash ./tools/gen_ut_cmakelists.hook
        language: system
        files: testslist.csv$
114 115 116 117 118 119 120 121 122 123
-   repo: https://github.com/cheshirekow/cmake-format-precommit
    rev: v0.6.13
    hooks:
    -   id: cmake-format
        # exclude paddle/fluid/operators/CMakeLists.txt, see the comment
        # https://github.com/PaddlePaddle/Paddle/pull/43057#pullrequestreview-993471860
        exclude: |
            (?x)^(
                paddle/fluid/operators/CMakeLists.txt
            )$
124 125 126 127 128
-   repo: https://github.com/cmake-lint/cmake-lint
    rev: 1.4.2
    hooks:
    -   id: cmakelint
        args: [--config=./tools/codestyle/.cmakelintrc]