[flake8]
select = C,E,F,W
exclude =
    ./build,
    # A trick to exclude fluid/ but keep fluid/tests/, see more at
    # https://github.com/PaddlePaddle/Paddle/pull/46290#discussion_r976392010
    ./python/paddle/fluid/[!t]**,
    ./python/paddle/fluid/tra**,
    # Exclude auto-generated files
    *_pb2.py,
    # Exclude third-party libraries
    ./python/paddle/utils/gast/**,
    # Exclude files that will be removed in the future, see more at
    # https://github.com/PaddlePaddle/Paddle/pull/46782#issuecomment-1273033731
    ./python/paddle/fluid/tests/unittests/npu/**,
    ./python/paddle/fluid/tests/unittests/mlu/**
ignore =
    # E, see https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes
    E203,E262,E265,E266,
    E401,E402,
    E501,
    E721,E722,E731,E741,

    # F, see https://flake8.pycqa.org/en/latest/user/error-codes.html
    F405,
    F811,F821,F841,

    # W, see https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes
    W503
per-file-ignores =
    # These files need tabs for testing.
    python/paddle/fluid/tests/unittests/dygraph_to_static/test_error.py:E101,W191
    python/paddle/fluid/tests/unittests/collective/fleet/test_hdfs1.py:E101,W191
    # Ignore unused imports in __init__.py
    __init__.py: F401
