| [project] | |
| name = "emscripten" | |
| requires-python = ">=3.10" | |
| [tool.ruff] | |
| preview = true | |
| line-length = 100 | |
| indent-width = 2 | |
| extend-exclude = [ | |
| "./cache/", | |
| "./site/source/_themes/", | |
| "./site/source/conf.py", | |
| "./test/third_party/", | |
| "./third_party/", | |
| "./tools/filelock.py", | |
| ] | |
| lint.select = [ | |
| "ARG", | |
| "ASYNC", | |
| "B", | |
| "D", | |
| "C4", | |
| "C90", | |
| "COM", | |
| "E", | |
| "F", | |
| "I", | |
| "PERF", | |
| "PIE", | |
| "PL", | |
| "UP", | |
| "W", | |
| "RUF", | |
| "YTT", | |
| ] | |
| lint.external = [ "D" ] | |
| lint.ignore = [ | |
| "undocumented-public-module", | |
| "undocumented-public-class", | |
| "undocumented-public-method", | |
| "undocumented-public-function", | |
| "undocumented-public-package", | |
| "undocumented-magic-method", | |
| "undocumented-public-nested-class", | |
| "undocumented-public-init", | |
| "incorrect-blank-line-before-class", # Superceeded by no-blank-line-before-class | |
| "multi-line-summary-second-line", # Superceeded by multi-line-summary-first-line | |
| "non-imperative-mood", | |
| "assert-false", # See https://github.com/PyCQA/flake8-bugbear/issues/66 | |
| "function-uses-loop-variable", | |
| "module-import-not-at-top-of-file", | |
| "multiple-leading-hashes-for-block-comment", | |
| "line-too-long", | |
| "indentation-with-invalid-multiple", # Does not honor `indent-width`. See https://github.com/astral-sh/ruff/issues/8705 | |
| "indentation-with-invalid-multiple-comment", # Does not honor `indent-width`. See https://github.com/astral-sh/ruff/issues/8705 | |
| "too-few-spaces-before-inline-comment", | |
| "try-except-in-loop", | |
| "manual-list-comprehension", | |
| "import-outside-top-level", | |
| "too-many-public-methods", | |
| "too-many-boolean-expressions", | |
| "too-many-locals", | |
| "too-many-nested-blocks", | |
| "no-self-use", | |
| "global-statement", | |
| "too-many-statements-in-try-clause", | |
| "subprocess-run-without-check", | |
| "redefined-loop-name", | |
| "mutable-class-default", | |
| "non-empty-init-module", | |
| ] | |
| lint.per-file-ignores."tools/ports/*.py" = [ "unused-function-argument", "unused-lambda-argument" ] | |
| lint.per-file-ignores."tools/webidl_binder.py" = [ "printf-string-formatting", "f-string" ] | |
| lint.per-file-ignores."test/other/ports/*.py" = [ "unused-function-argument" ] | |
| lint.per-file-ignores."test/parallel_testsuite.py" = [ "unused-method-argument" ] | |
| lint.per-file-ignores."test/test_benchmark.py" = [ "unused-method-argument" ] | |
| lint.per-file-ignores."test/*.py" = [ "collection-literal-concatenation", "printf-string-formatting", "multiple-spaces-after-comma" ] | |
| lint.per-file-ignores."system/lib/update_*.py" = [ "multiple-spaces-after-comma" ] | |
| lint.mccabe.max-complexity = 51 # Recommended: 10 | |
| lint.pylint.allow-magic-value-types = [ | |
| "bytes", | |
| "float", | |
| "int", | |
| "str", | |
| ] | |
| lint.pylint.max-args = 15 # Recommended: 5 | |
| lint.pylint.max-branches = 50 # Recommended: 12 | |
| lint.pylint.max-returns = 16 # Recommended: 6 | |
| lint.pylint.max-statements = 142 # Recommended: 50 | |
| [tool.coverage.run] | |
| source = [ "." ] | |
| omit = [ | |
| "./test/*", | |
| "./third_party/*", | |
| "./tools/emcoverage.py", | |
| "test.py", | |
| ] | |
| [tool.mypy] | |
| mypy_path = "third_party/,third_party/ply,third_party/websockify" | |
| files = [ "." ] | |
| exclude = ''' | |
| (?x)( | |
| out/ | | |
| cache/ | | |
| third_party/ | | |
| conf\.py | | |
| emrun\.py | | |
| site/source/_themes/ | | |
| tools/scons/site_scons/site_tools/emscripten/__init__\.py | | |
| tools/maint/create_dom_pk_codes.py | | |
| site/source/get_wiki\.py | | |
| test/parse_benchmark_output\.py | |
| )''' | |
| [[tool.mypy.overrides]] | |
| module = [ | |
| "tools.webidl_binder", | |
| "tools.toolchain_profiler", | |
| "tools.filelock", | |
| "tools.find_bigvars", | |
| "leb128", | |
| "ply.*", | |
| ] | |
| ignore_errors = true | |
| [[tool.mypy.overrides]] | |
| module = ["psutil", "win32con", "win32gui", "win32process"] | |
| ignore_missing_imports = true | |
| [tool.deadcode] | |
| exclude = ["out", "cache", "third_party", "test/third_party", "node_modules", "site/source/_themes", "site/source/conf.py"] | |
| [tool.vulture] | |
| exclude = ["out", "cache", "third_party", "test/third_party", "node_modules", "site/source/_themes", "site/source/conf.py"] |