| [project] |
| name = "emscripten" |
| requires-python = ">=3.10" |
| |
| [tool.ruff] |
| preview = true |
| line-length = 100 |
| indent-width = 2 |
| exclude = [ |
| "./cache/", |
| "./node_modules/", |
| "./site/source/_themes/", |
| "./site/source/conf.py", |
| "./test/third_party/", |
| "./third_party/", |
| "./tools/filelock.py", |
| ".git", |
| ] |
| |
| 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", |
| "multi-line-summary-second-line", |
| "non-imperative-mood", |
| "assert-false", # See https://github.com/PyCQA/flake8-bugbear/issues/66 |
| "function-uses-loop-variable", |
| "star-arg-unpacking-after-keyword-arg", |
| "multiple-spaces-before-keyword", |
| "module-import-not-at-top-of-file", |
| "multiple-spaces-after-comma", |
| "multiple-leading-hashes-for-block-comment", |
| "line-too-long", |
| "type-comparison", |
| "ambiguous-variable-name", |
| "indentation-with-invalid-multiple", # Does not seem to honor `indent-width = 2` above |
| "indentation-with-invalid-multiple-comment", # Does not seem to honor `indent-width = 2` above |
| "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", |
| "redefined-argument-from-local", |
| "collapsible-else-if", |
| "no-self-use", |
| "global-variable-not-assigned", |
| "global-statement", |
| "too-many-statements-in-try-clause", |
| "subprocess-run-without-check", |
| "redefined-loop-name", |
| "mutable-class-default", |
| "unnecessary-iterable-allocation-for-first-element", |
| "missing-f-string-syntax", |
| "unraw-re-pattern", |
| "non-empty-init-module", |
| "format-literals", # TODO |
| "printf-string-formatting", # TODO |
| "f-string", # TODO |
| ] |
| lint.per-file-ignores."tools/ports/*.py" = [ "unused-function-argument", "unused-lambda-argument" ] |
| 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" ] |
| 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"] |