| [build-system] |
| requires = [ |
| "setuptools", |
| "wheel", |
| "astunparse", |
| "numpy", |
| "ninja", |
| "pyyaml", |
| "cmake", |
| "typing-extensions", |
| "requests", |
| ] |
| # Use legacy backend to import local packages in setup.py |
| build-backend = "setuptools.build_meta:__legacy__" |
| |
| |
| [tool.black] |
| # Uncomment if pyproject.toml worked fine to ensure consistency with flake8 |
| # line-length = 120 |
| target-version = ["py38", "py39", "py310", "py311"] |
| |
| |
| [tool.ruff] |
| target-version = "py38" |
| |
| # NOTE: Synchoronize the ignores with .flake8 |
| ignore = [ |
| # these ignores are from flake8-bugbear; please fix! |
| "B007", "B008", "B017", |
| "B018", # Useless expression |
| "B019", |
| "B023", |
| "B028", # No explicit `stacklevel` keyword argument found |
| "B904", |
| "E402", |
| "C408", # C408 ignored because we like the dict keyword argument syntax |
| "E501", # E501 is not flexible enough, we're using B950 instead |
| "E721", |
| "E731", # Assign lambda expression |
| "E741", |
| "EXE001", |
| "F405", |
| "F841", |
| # 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! |
| "PYI019", |
| "PYI024", |
| "PYI036", |
| "PYI041", |
| "PYI056", |
| "SIM102", "SIM103", "SIM112", # flake8-simplify code styles |
| "SIM105", # these ignores are from flake8-simplify. please fix or ignore with commented reason |
| "SIM108", |
| "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 |
| ] |
| line-length = 120 |
| select = [ |
| "B", |
| "C4", |
| "G", |
| "E", |
| "EXE", |
| "F", |
| "SIM1", |
| "W", |
| # Not included in flake8 |
| "NPY", |
| "PERF", |
| "PGH004", |
| "PIE794", |
| "PIE800", |
| "PIE804", |
| "PIE807", |
| "PIE810", |
| "PLC0131", # type bivariance |
| "PLC0132", # type param mismatch |
| "PLC0205", # string as __slots__ |
| "PLE", |
| "PLR0133", # constant comparison |
| "PLR0206", # property with params |
| "PLR1722", # use sys exit |
| "PLW0129", # assert on string literal |
| "PLW0406", # import self |
| "PLW0711", # binary op exception |
| "PLW1509", # preexec_fn not safe with threads |
| "PLW3301", # nested min max |
| "PT006", # TODO: enable more PT rules |
| "PT022", |
| "PT023", |
| "PT024", |
| "PT025", |
| "PT026", |
| "PYI", |
| "RUF008", # mutable dataclass default |
| "RUF015", # access first ele in constant time |
| "RUF016", # type error non-integer index |
| "RUF017", |
| "TRY200", |
| "TRY302", |
| "UP", |
| ] |
| |
| [tool.ruff.per-file-ignores] |
| "__init__.py" = [ |
| "F401", |
| ] |
| "test/typing/reveal/**" = [ |
| "F821", |
| ] |
| "test/torch_np/numpy_tests/**" = [ |
| "F821", |
| ] |
| "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 |
| ] |
| |
| "torch/onnx/**" = [ |
| "UP037", # ONNX does runtime type checking |
| ] |
| |
| "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 |
| ] |