# Exclude all third-party libraries and auto-generated files globally exclude: | (?x)^( patches/.+| paddle/fluid/framework/fleet/heter_ps/cudf/.+| paddle/fluid/distributed/ps/thirdparty/round_robin.h| python/paddle/utils/gast/.+| third_party/.+ )$ repos: # Common hooks - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.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 - repo: https://github.com/Lucas-C/pre-commit-hooks.git rev: v1.5.1 hooks: - id: remove-crlf - id: remove-tabs name: Tabs remover (C++) files: \.(c|cc|cxx|cpp|cu|h|cuh|hpp|hxx|xpu|kps)$ args: [--whitespaces-count, '2'] - id: remove-tabs name: Tabs remover (Python) files: (.*\.(py|bzl)|BUILD|.*\.BUILD|WORKSPACE)$ args: [--whitespaces-count, '4'] # Exclude some unit test files that require tabs. exclude: | (?x)^( test/dygraph_to_static/test_error.py )$ - id: remove-tabs name: Tabs remover (Shell) files: \.sh$ args: [--whitespaces-count, '4'] - repo: https://github.com/PFCCLab/ast-grep-pre-commit-mirror rev: v0.44.0 hooks: - id: ast-grep - repo: local hooks: - id: copyright_checker name: copyright_checker entry: python ./tools/codestyle/copyright.py language: python language_version: python3 files: \.(c|cc|cxx|cpp|cu|h|cuh|hpp|hxx|proto|xpu|kps|py|pyi|sh)$ exclude: | (?x)^( paddle/utils/.*| paddle/cinn/utils/registry.h )$ - repo: https://github.com/PFCCLab/typos-pre-commit-mirror.git rev: v1.48.0 hooks: - id: typos args: [--force-exclude] # For Python files - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.15.0 hooks: - id: ruff-check args: [--fix, --exit-non-zero-on-fix, --no-cache] - id: ruff-format # For C++ files - repo: local hooks: - id: clang-format name: clang-format description: Format files with ClangFormat. entry: clang-format -i language: python language_version: python3 additional_dependencies: - clang-format==13.0.0 files: \.(c|cc|cxx|cpp|cu|h|cuh|hpp|hxx|xpu|kps)$ - repo: local hooks: - id: cpplint name: cpplint description: Check C++ code style using cpplint.py. entry: cpplint language: python language_version: python3 additional_dependencies: - cpplint==1.6.0 files: \.(cc|cxx|cpp|cu|cuh|h|hpp|hxx)$ args: - --extensions=cc,cxx,cpp,cu,cuh,h,hpp,hxx,kps - --filter=-readability/fn_size,-build/include_what_you_use,-build/c++11,-whitespace/parens - --quiet # Exclude third-party libraries exclude: | (?x)^( paddle/utils/flat_hash_map\.h| paddle/utils/variant\.h| paddle/utils/array_ref\.h| paddle/fluid/distributed/collective/deep_ep/.*| paddle/fluid/fp8/deep_gemm/.* )$ # For CMake files - repo: local hooks: - id: auto-generate-cmakelists name: auto-generate-cmakelists entry: bash ./tools/gen_ut_cmakelists.hook language: system files: testslist.csv$ - 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 )$ - repo: https://github.com/PFCCLab/cmake-lint-paddle rev: v1.5.1 hooks: - id: cmakelint args: [--config=./tools/codestyle/.cmakelintrc] # Exclude some files has false positive warnings # Need to fix them in the future exclude: | (?x)^( cmake/external/onnxruntime.cmake )$ # For YAML files - repo: https://github.com/PFCCLab/yamlfmt-pre-commit-mirror.git rev: v0.21.0 hooks: - id: yamlfmt files: | (?x)^( \.github/.+\.(yaml|yml)| \.pre-commit-config\.yaml| \.yamlfmt| sgconfig\.yml| ci/rules/.+\.yml| ci/rule-tests/.+\.yml ) # Others - repo: local hooks: - id: sort-txt-file name: sort-txt-file description: Sorts each line string in a text file entry: python ./tools/codestyle/sort_txt_file.py language: python language_version: python3 files: test/white_list/pir_op_test_white_list args: []