pytorch/tools
Tom Ritchford d90f9e9a34 [inductor] Fix issue with set_linter, improve linter framework (#144620)
### `set_linter` only

* Fix gnarly [bug](dbed747aae/tools/test/set_linter_testdata/python_code.py.txt.python (L42)) which would have garbled Python files involving sets contained in sets.
* Better handling of new Python3.12 token types

### Both linters.

* Recover from and report on unparseable Python files
* Remove `ParseError.check()` (it made it harder to read the code)
* FileLinter is now generic on `PythonFile`

### Notes

As I started working on new docstring features, I found a nasty bug and an edge case bug in set linter, and realized both the linters crash when there is a badly-formed Python file in the repo.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/144620
Approved by: https://github.com/amjames, https://github.com/jansel
2025-03-13 09:49:40 +00:00
..
alerts [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
amd_build Add a stable TORCH_LIBRARY to C shim (#148124) 2025-03-11 19:12:46 +00:00
autograd [reland][ca] side-effect free inital trace: compiled_args (#148376) 2025-03-11 01:57:36 +00:00
bazel_tools
build/bazel Add networkx as bazel dep to fix CI failure (#143995) 2025-01-02 19:42:18 +00:00
build_defs [lint] Remove unnecessary BUCKRESTRICTEDSYNTAX suppressions 2024-07-19 07:19:11 -07:00
code_analyzer [3/N] Apply py39 ruff fixes (#142115) 2024-12-11 17:50:10 +00:00
code_coverage [BE] Upgrade to mypy 1.14 (#145966) 2025-03-04 20:58:26 +00:00
config
coverage_plugins_package [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
dynamo Revert "Use the device interface for detecting Triton availability (#139171)" 2025-03-11 18:49:21 +00:00
flight_recorder [fr] Added protection against missing stack frames in fr (#148203) 2025-03-02 01:03:49 +00:00
gdb Add gdb print methods support same as pytorch-lldb (#140935) 2024-11-19 01:28:30 +00:00
github [BE][CI] bump ruff to 0.9.0: string quote styles (#144569) 2025-02-24 19:56:09 +00:00
iwyu [BE][CI] bump ruff to 0.9.0: string quote styles (#144569) 2025-02-24 19:56:09 +00:00
jit Revert "Use absolute path path.resolve() -> path.absolute() (#129409)" 2025-01-04 14:17:20 +00:00
linter [inductor] Fix issue with set_linter, improve linter framework (#144620) 2025-03-13 09:49:40 +00:00
lite_interpreter [BE][CI] bump ruff to 0.9.0: string quote styles (#144569) 2025-02-24 19:56:09 +00:00
lldb [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
onnx [BE][CI] bump ruff to 0.9.2: multiline assert statements (#144546) 2025-02-27 20:46:16 +00:00
packaging [BE][CI] bump ruff to 0.9.0: string quote styles (#144569) 2025-02-24 19:56:09 +00:00
pyi [BE] Upgrade to mypy 1.14 (#145966) 2025-03-04 20:58:26 +00:00
rules
rules_cc [BE] Fix incompatible-std-redefinition warning (#141630) 2024-11-27 05:06:36 +00:00
setup_helpers [BE][CI] bump ruff to 0.9.2: multiline assert statements (#144546) 2025-02-27 20:46:16 +00:00
shared
stats [CI] test upload: better check for if job is rerun disabled tests (#148027) 2025-02-28 00:04:33 +00:00
test [inductor] Fix issue with set_linter, improve linter framework (#144620) 2025-03-13 09:49:40 +00:00
testing [TD] test_cpp_extensions_aot_ninja corresponds to things in test/cpp_extensions (#148992) 2025-03-12 15:40:06 +00:00
__init__.py
bazel.bzl
BUCK.bzl [lint] Remove unnecessary BUCKRESTRICTEDSYNTAX suppressions 2024-07-19 07:19:11 -07:00
BUCK.oss
build_libtorch.py [BE][Easy] use pathlib.Path instead of dirname / ".." / pardir (#129374) 2024-12-29 17:23:13 +00:00
build_pytorch_libs.py Nccl update to 2.25.1 for cuda 12.4-12.8 (#146073) 2025-02-19 03:52:26 +00:00
build_with_debinfo.py [inductor] Remove _get_grid_fn_str (#146800) 2025-02-10 23:14:30 +00:00
download_mnist.py [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
extract_scripts.py [3/N] Apply py39 ruff fixes (#142115) 2024-12-11 17:50:10 +00:00
gen_flatbuffers.sh
gen_vulkan_spv.py [BE][Ez]: FURB148 - remove useless enumerate calls (#145619) 2025-01-24 23:37:15 +00:00
generate_torch_version.py Revert "cpp_wrapper: Precompile device-specific header files (#144002)" 2025-02-11 00:42:22 +00:00
generated_dirs.txt
git_add_generated_dirs.sh
git_reset_generated_dirs.sh
nightly_hotpatch.py [3/N] Apply py39 ruff fixes (#142115) 2024-12-11 17:50:10 +00:00
nightly.py [Easy] add quotes to shell activation commands (#143902) 2024-12-27 19:17:46 +00:00
nvcc_fix_deps.py Revert "Use absolute path path.resolve() -> path.absolute() (#129409)" 2025-01-04 14:17:20 +00:00
README.md
render_junit.py [BE][Easy] enable postponed annotations in tools (#129375) 2024-06-29 09:23:35 +00:00
substitute.py
update_masked_docs.py
vscode_settings.py [BE][Easy][5/19] enforce style for empty lines in import segments in tools/ and torchgen/ (#129756) 2024-07-17 06:44:35 +00:00

This folder contains a number of scripts which are used as part of the PyTorch build process. This directory also doubles as a Python module hierarchy (thus the __init__.py).

Overview

Modern infrastructure:

  • autograd - Code generation for autograd. This includes definitions of all our derivatives.
  • jit - Code generation for JIT
  • shared - Generic infrastructure that scripts in tools may find useful.
    • module_loader.py - Makes it easier to import arbitrary Python files in a script, without having to add them to the PYTHONPATH first.

Build system pieces:

  • setup_helpers - Helper code for searching for third-party dependencies on the user system.
  • build_pytorch_libs.py - cross-platform script that builds all of the constituent libraries of PyTorch, but not the PyTorch Python extension itself.
  • build_libtorch.py - Script for building libtorch, a standalone C++ library without Python support. This build script is tested in CI.

Developer tools which you might find useful:

Important if you want to run on AMD GPU:

  • amd_build - HIPify scripts, for transpiling CUDA into AMD HIP. Right now, PyTorch and Caffe2 share logic for how to do this transpilation, but have separate entry-points for transpiling either PyTorch or Caffe2 code.
    • build_amd.py - Top-level entry point for HIPifying our codebase.

Tools which are only situationally useful: