mirror of
https://github.com/saymrwulf/pytorch.git
synced 2026-05-14 20:57:59 +00:00
Some additional code hardening with some pylint warnings in ruff that usually indicate bugs. All code currently conforms nicely to them, but this will ensure these errors can be detected statically before running / creating tests. The follow rules: * Ban walrus operators where they would have no effect over regular assignment; making intention more clear. * Statically check for the common error of forgetting to put parens after the `super` call, which will cause an attribute error * Ban bad string literal args to builtins `open` Pull Request resolved: https://github.com/pytorch/pytorch/pull/146609 Approved by: https://github.com/aorenste
212 lines
5.2 KiB
TOML
212 lines
5.2 KiB
TOML
[build-system]
|
|
requires = [
|
|
"setuptools",
|
|
"wheel",
|
|
"astunparse",
|
|
"numpy",
|
|
"ninja",
|
|
"pyyaml",
|
|
"cmake",
|
|
"typing-extensions>=4.10.0",
|
|
"requests",
|
|
]
|
|
# Use legacy backend to import local packages in setup.py
|
|
build-backend = "setuptools.build_meta:__legacy__"
|
|
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ["py38"]
|
|
|
|
|
|
[tool.isort]
|
|
src_paths = ["caffe2", "torch", "torchgen", "functorch", "test"]
|
|
extra_standard_library = ["typing_extensions"]
|
|
skip_gitignore = true
|
|
skip_glob = ["third_party/*"]
|
|
atomic = true
|
|
profile = "black"
|
|
indent = 4
|
|
line_length = 88
|
|
lines_after_imports = 2
|
|
multi_line_output = 3
|
|
include_trailing_comma = true
|
|
combine_as_imports = true
|
|
|
|
|
|
[tool.usort.known]
|
|
first_party = ["caffe2", "torch", "torchgen", "functorch", "test"]
|
|
standard_library = ["typing_extensions"]
|
|
|
|
|
|
[tool.ruff]
|
|
target-version = "py38"
|
|
line-length = 88
|
|
src = ["caffe2", "torch", "torchgen", "functorch", "test"]
|
|
|
|
[tool.ruff.format]
|
|
docstring-code-format = true
|
|
quote-style = "double"
|
|
|
|
[tool.ruff.lint]
|
|
# NOTE: Synchoronize the ignores with .flake8
|
|
ignore = [
|
|
# these ignores are from flake8-bugbear; please fix!
|
|
"B007", "B008", "B017",
|
|
"B018", # Useless expression
|
|
"B023",
|
|
"B028", # No explicit `stacklevel` keyword argument found
|
|
"E402",
|
|
"C408", # C408 ignored because we like the dict keyword argument syntax
|
|
"E501", # E501 is not flexible enough, we're using B950 instead
|
|
"E721",
|
|
"E741",
|
|
"EXE001",
|
|
"F405",
|
|
# these ignores are from flake8-logging-format; please fix!
|
|
"G101",
|
|
# these ignores are from ruff NPY; please fix!
|
|
"NPY002",
|
|
# these ignores are from ruff PERF; please fix!
|
|
"PERF203",
|
|
"PERF401",
|
|
"PERF403",
|
|
# these ignores are from PYI; please fix!
|
|
"PYI024",
|
|
"PYI036",
|
|
"PYI041",
|
|
"PYI056",
|
|
"SIM102", "SIM103", "SIM112", # flake8-simplify code styles
|
|
"SIM113", # please fix
|
|
"SIM105", # these ignores are from flake8-simplify. please fix or ignore with commented reason
|
|
"SIM108", # SIM108 ignored because we prefer if-else-block instead of ternary expression
|
|
"SIM110",
|
|
"SIM114", # Combine `if` branches using logical `or` operator
|
|
"SIM115",
|
|
"SIM116", # Disable Use a dictionary instead of consecutive `if` statements
|
|
"SIM117",
|
|
"SIM118",
|
|
"UP006", # keep-runtime-typing
|
|
"UP007", # keep-runtime-typing
|
|
]
|
|
select = [
|
|
"B",
|
|
"B904", # Re-raised error without specifying the cause via the from keyword
|
|
"C4",
|
|
"G",
|
|
"E",
|
|
"EXE",
|
|
"F",
|
|
"SIM1",
|
|
"SIM911",
|
|
"W",
|
|
# Not included in flake8
|
|
"FURB",
|
|
"LOG",
|
|
"NPY",
|
|
"PERF",
|
|
"PGH004",
|
|
"PIE790",
|
|
"PIE794",
|
|
"PIE800",
|
|
"PIE804",
|
|
"PIE807",
|
|
"PIE810",
|
|
"PLC0131", # type bivariance
|
|
"PLC0132", # type param mismatch
|
|
"PLC0205", # string as __slots__
|
|
"PLC3002", # unnecessary-direct-lambda-call
|
|
"PLE",
|
|
"PLR0133", # constant comparison
|
|
"PLR0206", # property with params
|
|
"PLR1722", # use sys exit
|
|
"PLR1736", # unnecessary list index
|
|
"PLW0129", # assert on string literal
|
|
"PLW0131", # named expr without context
|
|
"PLW0133", # useless exception statement
|
|
"PLW0245", # super without brackets
|
|
"PLW0406", # import self
|
|
"PLW0711", # binary op exception
|
|
"PLW1501", # bad open mode
|
|
"PLW1509", # preexec_fn not safe with threads
|
|
"PLW2101", # useless lock statement
|
|
"PLW3301", # nested min max
|
|
"PT006", # TODO: enable more PT rules
|
|
"PT022",
|
|
"PT023",
|
|
"PT024",
|
|
"PT025",
|
|
"PT026",
|
|
"PYI",
|
|
"Q003", # avoidable escaped quote
|
|
"Q004", # unnecessary escaped quote
|
|
"RSE",
|
|
"RUF008", # mutable dataclass default
|
|
"RUF013", # ban implicit optional
|
|
"RUF015", # access first ele in constant time
|
|
"RUF016", # type error non-integer index
|
|
"RUF017",
|
|
"RUF018", # no assignment in assert
|
|
"RUF019", # unnecessary-key-check
|
|
"RUF024", # from keys mutable
|
|
"RUF026", # default factory kwarg
|
|
"SLOT",
|
|
"TCH",
|
|
"TRY002", # ban vanilla raise (todo fix NOQAs)
|
|
"TRY203",
|
|
"TRY401", # verbose-log-message
|
|
"UP",
|
|
]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"__init__.py" = [
|
|
"F401",
|
|
]
|
|
"functorch/notebooks/**" = [
|
|
"F401",
|
|
]
|
|
"test/typing/reveal/**" = [
|
|
"F821",
|
|
]
|
|
"test/torch_np/numpy_tests/**" = [
|
|
"F821",
|
|
"NPY201",
|
|
]
|
|
"test/dynamo/test_bytecode_utils.py" = [
|
|
"F821",
|
|
]
|
|
"test/dynamo/test_debug_utils.py" = [
|
|
"UP037",
|
|
]
|
|
"test/jit/**" = [
|
|
"PLR0133", # tests require this for JIT
|
|
"PYI",
|
|
"RUF015",
|
|
"UP", # We don't want to modify the jit test as they test specify syntax
|
|
]
|
|
"test/test_jit.py" = [
|
|
"PLR0133", # tests require this for JIT
|
|
"PYI",
|
|
"RUF015",
|
|
"UP", # We don't want to modify the jit test as they test specify syntax
|
|
]
|
|
"test/inductor/test_torchinductor.py" = [
|
|
"UP037",
|
|
]
|
|
# autogenerated #TODO figure out why file level noqa is ignored
|
|
"torch/_inductor/fx_passes/serialized_patterns/**" = ["F401", "F501"]
|
|
"torch/_inductor/autoheuristic/artifacts/**" = ["F401", "F501"]
|
|
"torchgen/api/types/__init__.py" = [
|
|
"F401",
|
|
"F403",
|
|
]
|
|
"torchgen/executorch/api/types/__init__.py" = [
|
|
"F401",
|
|
"F403",
|
|
]
|
|
"torch/utils/collect_env.py" = [
|
|
"UP", # collect_env.py needs to work with older versions of Python
|
|
]
|
|
"torch/_vendor/**" = [
|
|
"UP", # No need to mess with _vendor
|
|
]
|