gecko-dev/.flake8
Ricky Stewart fbe2b42f80 Bug 1673700 - Don't use double quotes around strings in definition of fork_interpose r=firefox-build-system-reviewers,glandium
The definition of `patch_main()` has behavior that kicks in only on Windows and for Python 2. Unfortunately, not all of our `mach` commands have been migrated to Python 3, so this still matters.

Bug 1654103 replaced the single-quoted strings in this function with double-quoted strings. This should be fine, except that we call into `multiprocessing.forking.main()` with some monkey-patching that is meant to fix a Windows-specific bug (see bug 1316140). We don't do any clever serialization or anything here and we end up just passing that source to `multiprocessing.forking.main()` which aggregates that source code [dumbly](https://github.com/python/cpython/blob/2.7/Lib/multiprocessing/forking.py#L259), wrapping everything in double-quotes again and passing it to `_subprocess.CreateProcess()`, which ends up failing if the source contains strings formatted with double quotes.

We could revert bug 1654103 and exempt this file from linting, but that is overkill given that this file otherwise contains useful stuff. Instead we move everything to another file, exempt that file from linting, and update `util.py` accordingly.

Differential Revision: https://phabricator.services.mozilla.com/D94909
2020-10-29 15:47:14 +00:00

136 lines
4.9 KiB
INI

[flake8]
max-line-length = 99
exclude =
# These paths should be triaged and either fixed or moved to the list below.
devtools/shared,
dom/base,
dom/bindings,
dom/encoding,
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/build-infer/build-infer.py,
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/infer/test/*.configure,
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