[flake8]
# NOTE: **Mirror any changes** to this file the [tool.ruff] config in pyproject.toml
# before we can fully move to use ruff
enable-extensions = G
select = B,C,E,F,G,P,SIM1,SIM911,T4,W,B9
max-line-length = 120
# C408 ignored because we like the dict keyword argument syntax
# E501 is not flexible enough, we're using B950 instead
ignore =
    E203,E305,E402,E501,E704,E741,F405,F841,F999,W503,W504,C408,E302,W291,E303,F824,
    # shebang has extra meaning in fbcode lints, so I think it's not worth trying
    # to line this up with executable bit
    EXE001,
    # these ignores are from flake8-bugbear; please fix!
    B007,B008,B017,B019,B023,B028,B903,B905,B906,B907,B908,B910
    # these ignores are from flake8-simplify. please fix or ignore with commented reason
    SIM105,SIM108,SIM110,SIM111,SIM113,SIM114,SIM115,SIM116,SIM117,SIM118,SIM119,SIM12,
    # SIM104 is already covered by pyupgrade ruff
    SIM104,
    # flake8-simplify code styles
    SIM102,SIM103,SIM106,SIM112
per-file-ignores =
    __init__.py: F401
    test/**: F821
    test/**/__init__.py: F401,F821
    torch/utils/cpp_extension.py: B950
    torchgen/api/types/__init__.py: F401,F403
    torchgen/executorch/api/types/__init__.py: F401,F403
    test/dynamo/test_higher_order_ops.py: B950
    test/dynamo/test_error_messages.py: B950
    torch/testing/_internal/dynamo_test_failures.py: B950
    torch/__init__.py: F401
    torch/_prims/__init__.py: F401
optional-ascii-coding = True
exclude =
    ./.git,
    ./build_test_custom_build,
    ./build,
    ./caffe2,
    ./docs/caffe2,
    ./docs/cpp/src,
    ./docs/src,
    ./functorch/docs,
    ./functorch/examples,
    ./functorch/docs/source/tutorials,
    ./scripts,
    ./test/generated_type_hints_smoketest.py,
    ./third_party,
    ./torch/include,
    ./torch/lib,
    ./venv,
    *.pyi
