xref: /aosp_15_r20/external/pytorch/.flake8 (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1[flake8]
2# NOTE: **Mirror any changes** to this file the [tool.ruff] config in pyproject.toml
3# before we can fully move to use ruff
4enable-extensions = G
5select = B,C,E,F,G,P,SIM1,SIM911,T4,W,B9,TOR0,TOR1,TOR2,TOR9
6max-line-length = 120
7# C408 ignored because we like the dict keyword argument syntax
8# E501 is not flexible enough, we're using B950 instead
9ignore =
10    E203,E305,E402,E501,E704,E721,E741,F405,F841,F999,W503,W504,C408,E302,W291,E303,
11    # shebang has extra meaning in fbcode lints, so I think it's not worth trying
12    # to line this up with executable bit
13    EXE001,
14    # these ignores are from flake8-bugbear; please fix!
15    B007,B008,B017,B019,B023,B028,B903,B904,B905,B906,B907
16    # these ignores are from flake8-comprehensions; please fix!
17    C407,
18    # these ignores are from flake8-logging-format; please fix!
19    G100,G101,G200
20    # these ignores are from flake8-simplify. please fix or ignore with commented reason
21    SIM105,SIM108,SIM110,SIM111,SIM113,SIM114,SIM115,SIM116,SIM117,SIM118,SIM119,SIM12,
22    # flake8-simplify code styles
23    SIM102,SIM103,SIM106,SIM112,
24    # TorchFix codes that don't make sense for PyTorch itself:
25    # removed and deprecated PyTorch functions.
26    TOR001,TOR101,
27    # TODO(kit1980): fix all TOR102 issues
28    # `torch.load` without `weights_only` parameter is unsafe
29    TOR102,
30    # TODO(kit1980): resolve all TOR003 issues
31    # pass `use_reentrant` explicitly to `checkpoint`.
32    TOR003
33per-file-ignores =
34    __init__.py: F401
35    test/**: F821
36    test/**/__init__.py: F401,F821
37    torch/utils/cpp_extension.py: B950
38    torchgen/api/types/__init__.py: F401,F403
39    torchgen/executorch/api/types/__init__.py: F401,F403
40    test/dynamo/test_higher_order_ops.py: B950
41    torch/testing/_internal/dynamo_test_failures.py: B950
42    # TOR901 is only for test, we want to ignore it for everything else.
43    # It's not easy to configure this without affecting other per-file-ignores,
44    # so we explicitly list every file where it's violated outside of test.
45    torch/__init__.py: F401,TOR901
46    torch/_custom_op/impl.py: TOR901
47    torch/_export/serde/upgrade.py: TOR901
48    torch/_functorch/vmap.py: TOR901
49    torch/_inductor/test_operators.py: TOR901
50    torch/_library/abstract_impl.py: TOR901
51    torch/_meta_registrations.py: TOR901
52    torch/_prims/__init__.py: F401,TOR901
53    torch/_prims/rng_prims.py: TOR901
54    torch/ao/quantization/fx/_decomposed.py: TOR901
55    torch/distributed/_functional_collectives.py: TOR901
56    torch/distributed/_spmd/data_parallel.py: TOR901
57    torch/distributed/_tensor/_collective_utils.py: TOR901
58    # This is a full package that happen to live within the test
59    # folder, so ok to skip
60    test/cpp_extensions/open_registration_extension/pytorch_openreg/_aten_impl.py: TOR901
61optional-ascii-coding = True
62exclude =
63    ./.git,
64    ./build_test_custom_build,
65    ./build,
66    ./caffe2,
67    ./docs/caffe2,
68    ./docs/cpp/src,
69    ./docs/src,
70    ./functorch/docs,
71    ./functorch/examples,
72    ./functorch/notebooks,
73    ./scripts,
74    ./test/generated_type_hints_smoketest.py,
75    ./third_party,
76    ./torch/include,
77    ./torch/lib,
78    ./venv,
79    *.pyi
80