summaryrefslogtreecommitdiffstats
path: root/.flake8
blob: 3ab84b7a578da81349d97831d28de87dc9787d62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[flake8]
max-line-length = 99
exclude =
    # These paths should be triaged and either fixed or moved to the list below.
    devtools/shared,
    dom/bindings,
    gfx/tests,
    ipc/ipdl/ipdl,
    layout/base/tests/marionette,
    layout/reftests/border-image,
    layout/reftests/fonts,
    layout/reftests/w3c-css,
    layout/style,
    media/libdav1d/generate_source.py,
    moz.configure,
    netwerk/dns/prepare_tlds.py,
    netwerk/protocol/http/make_incoming_tables.py,
    python/devtools/migrate-l10n/migrate/main.py,
    python/l10n/fluent_migrations,
    python/mozbuild/mozbuild/fork_interpose.py,
    security/manager/ssl/tests/unit,
    servo/components/style,
    testing/condprofile/condprof/android.py,
    testing/condprofile/condprof/creator.py,
    testing/condprofile/condprof/desktop.py,
    testing/condprofile/condprof/runner.py,
    testing/condprofile/condprof/scenarii/heavy.py,
    testing/condprofile/condprof/scenarii/settled.py,
    testing/condprofile/condprof/scenarii/synced.py
    testing/condprofile/condprof/helpers.py,
    testing/jsshell/benchmark.py,
    testing/marionette/mach_commands.py,
    testing/mozharness/docs,
    testing/mozharness/examples,
    testing/mozharness/external_tools,
    testing/mozharness/mach_commands.py,
    testing/mozharness/manifestparser,
    testing/mozharness/mozprocess,
    testing/mozharness/setup.py,
    testing/parse_build_tests_ccov.py,
    testing/runtimes/writeruntimes.py,
    testing/tools/iceserver/iceserver.py,
    testing/tools/websocketprocessbridge/websocketprocessbridge.py,
    toolkit/components/featuregates,
    toolkit/content/tests/chrome/file_about_networking_wsh.py,
    toolkit/library/build/dependentlibs.py,
    toolkit/locales/generate_update_locale.py,
    toolkit/mozapps,
    toolkit/moz.configure,
    toolkit/nss.configure,

    # These paths are intentionally excluded (not necessarily for good reason).
    build/moz.configure/*.configure,
    build/pymake/,
    browser/extensions/mortar/ppapi/,
    browser/moz.configure,
    dom/canvas/test/webgl-conf/checkout/closure-library/,
    editor/libeditor/tests/browserscope/,
    intl/icu/,
    ipc/chromium/src/third_party/,
    js/*.configure,
    gfx/angle/,
    gfx/harfbuzz,
    gfx/skia/,
    memory/moz.configure,
    mobile/android/*.configure,
    node_modules,
    python/mozbuild/mozbuild/test/configure/data,
    security/nss/,
    testing/marionette/harness/marionette_harness/runner/mixins,
    testing/marionette/harness/marionette_harness/tests,
    testing/mochitest/pywebsocket3,
    testing/mozharness/configs/test/test_malformed.py,
    testing/web-platform/tests,
    tools/lint/test/files,
    tools/crashreporter/*.configure,
    .ycm_extra_conf.py,

    # This file uses py3.7 only syntax, so can't currently be checked by flake8 in-tree
    tools/crashreporter/system-symbols/win/symsrv-fetch.py

# See:
#   - http://flake8.pycqa.org/en/latest/user/error-codes.html
#   - http://pep8.readthedocs.io/en/latest/intro.html#configuration
ignore =
    # These should be triaged and either fixed or moved to the list below.
    W504, W605, W606,
    # These are intentionally disabled (not necessarily for good reason).
    #   F723: syntax error in type comment
    #       text contains quotes which breaks our custom JSON formatter
    F723, E121, E123, E126, E129, E133, E226, E241, E242, E402, E704, E741, W503,

    # black will generate code that breaks these. they're not PEP8 compliant though;
    # see https://github.com/psf/black/blob/master/docs/compatible_configs.md#flake8
    W503, E203

per-file-ignores =
    # These paths are intentionally excluded.
    ipc/ipdl/*: F403, F405
    layout/tools/reftest/selftest/conftest.py: F811
    # cpp_eclipse has a lot of multi-line embedded XML which exceeds line length
    python/mozbuild/mozbuild/backend/cpp_eclipse.py: E501
    testing/firefox-ui/**/__init__.py: F401
    testing/marionette/**/__init__.py: F401
    testing/mochitest/tests/python/conftest.py: F811
    testing/mozbase/manifestparser/tests/test_filters.py: E731
    testing/mozbase/mozlog/tests/test_formatters.py: E501
    testing/mozharness/configs/*: E124, E127, E128, E131, E231, E261, E265, E266, E501, W391

    # These paths contain Python-2 only syntax which cause errors since flake8
    # is run with Python 3.
    browser/app/macversion.py: F633
    build/**: F633, F821
    config/**: F633, F821
    ipc/pull-chromium.py: F633
    js/**: F633, F821
    memory/**: F821
    mozglue/**: F821
    python/mozbuild/**: F821
    python/mozbuild/mozbuild/test/configure/test_checks_configure.py: E128
    python/mozversioncontrol/**: F821
    testing/mozharness/**: F821
    testing/talos/**: F821
    toolkit/components/telemetry/**: F821
    testing/firefox-ui/tests/functional/safebrowsing/test_initial_download.py: F821
    testing/mochitest/**: F821
    xpcom/idl-parser/xpidl/**: F633, F821

builtins =
    # For GDB extensions
    gdb