pytorch/tools
Aaron Orenstein 07669ed960 PEP585 update - benchmarks tools torchgen (#145101)
This is one of a series of PRs to update us to PEP585 (changing Dict -> dict, List -> list, etc).  Most of the PRs were completely automated with RUFF as follows:

Since RUFF UP006 is considered an "unsafe" fix first we need to enable unsafe fixes:

```
--- a/tools/linter/adapters/ruff_linter.py
+++ b/tools/linter/adapters/ruff_linter.py
@@ -313,6 +313,7 @@
                     "ruff",
                     "check",
                     "--fix-only",
+                    "--unsafe-fixes",
                     "--exit-zero",
                     *([f"--config={config}"] if config else []),
                     "--stdin-filename",
```

Then we need to tell RUFF to allow UP006 (as a final PR once all of these have landed this will be made permanent):

```
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -40,7 +40,7 @@

 [tool.ruff]
-target-version = "py38"
+target-version = "py39"
 line-length = 88
 src = ["caffe2", "torch", "torchgen", "functorch", "test"]

@@ -87,7 +87,6 @@
     "SIM116", # Disable Use a dictionary instead of consecutive `if` statements
     "SIM117",
     "SIM118",
-    "UP006", # keep-runtime-typing
     "UP007", # keep-runtime-typing
 ]
 select = [
```

Finally running `lintrunner -a --take RUFF` will fix up the deprecated uses.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/145101
Approved by: https://github.com/bobrenjc93
2025-01-18 05:05:07 +00:00
..
alerts
amd_build [ROCm] CK Flash Attention Backend (#143695) 2025-01-03 22:01:36 +00:00
autograd Fix unbind_copy and add its decomposition (#134319) 2025-01-17 18:21:22 +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
code_analyzer [3/N] Apply py39 ruff fixes (#142115) 2024-12-11 17:50:10 +00:00
code_coverage Revert "Use absolute path path.resolve() -> path.absolute() (#129409)" 2025-01-04 14:17:20 +00:00
config
coverage_plugins_package
dynamo
flight_recorder PEP585 update - benchmarks tools torchgen (#145101) 2025-01-18 05:05:07 +00:00
gdb
github PEP585 update - benchmarks tools torchgen (#145101) 2025-01-18 05:05:07 +00:00
iwyu
jit Revert "Use absolute path path.resolve() -> path.absolute() (#129409)" 2025-01-04 14:17:20 +00:00
linter PEP585 update - benchmarks tools torchgen (#145101) 2025-01-18 05:05:07 +00:00
lite_interpreter c10::string_view -> std::string_view in more places (#142517) 2024-12-12 19:45:59 +00:00
lldb
onnx Revert "Use absolute path path.resolve() -> path.absolute() (#129409)" 2025-01-04 14:17:20 +00:00
packaging PEP585 update - benchmarks tools torchgen (#145101) 2025-01-18 05:05:07 +00:00
pyi [3/N] Apply py39 ruff fixes (#142115) 2024-12-11 17:50:10 +00:00
rules
rules_cc [BE] Fix incompatible-std-redefinition warning (#141630) 2024-11-27 05:06:36 +00:00
setup_helpers Revert "Make functionalization ViewMeta serializable with pickle. (#143712)" 2025-01-17 00:52:50 +00:00
shared
stats PEP585 update - benchmarks tools torchgen (#145101) 2025-01-18 05:05:07 +00:00
test Revert "Use absolute path path.resolve() -> path.absolute() (#129409)" 2025-01-04 14:17:20 +00:00
testing Revert "Use absolute path path.resolve() -> path.absolute() (#129409)" 2025-01-04 14:17:20 +00:00
__init__.py
bazel.bzl
BUCK.bzl
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
build_with_debinfo.py Revert "Use absolute path path.resolve() -> path.absolute() (#129409)" 2025-01-04 14:17:20 +00:00
download_mnist.py
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][Easy] use pathlib.Path instead of dirname / ".." / pardir (#129374) 2024-12-29 17:23:13 +00:00
generate_torch_version.py Revert "Use absolute path path.resolve() -> path.absolute() (#129409)" 2025-01-04 14:17:20 +00:00
generated_dirs.txt
git_add_generated_dirs.sh
git_reset_generated_dirs.sh
nightly.py [Easy] add quotes to shell activation commands (#143902) 2024-12-27 19:17:46 +00:00
nightly_hotpatch.py [3/N] Apply py39 ruff fixes (#142115) 2024-12-11 17:50:10 +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
substitute.py
update_masked_docs.py
vscode_settings.py

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: