[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 ]