pytorch/tools
Maggie Moss 80ba6e458f Add warning when users have incomplete setup for type checking (#166603)
Looking for feedback on this approach.
Received user reports of spurious pyrefly errors for users using hg instead of git. I think this was due to the fact that when using a venv and git, `make setup-env` installs requirements and pulls from a nightly torch wheel, which is needed for pyrefly to type check properly.

Initial documentation for `make setup-env` I found here: https://github.com/pytorch/pytorch/blob/main/CONTRIBUTING.md#developing-pytorch

Testing:
```
hg clone --git ssh://git@github.com/pytorch/pytorch.git
conda create -n pytorch_env python=3.10 # (or manually create venv instead of using script)
cd pytorch
pip install -r requirements.txt
pip install -r requirements-build.txt
lintrunner init
# check how many pyrefly errors - 15,709 errors (11,693 ignored)
lintrunner # confirm error message / warning appears
>>> General linter failure:
  Warning (PYREFLY) nightly-wheel-not-run
    pytorch-nightly.pth not found. You may need to run make setup-env or make
    setup-env-conda to install nightly binaries and type stubs.
```
Pull Request resolved: https://github.com/pytorch/pytorch/pull/166603
Approved by: https://github.com/aorenste
2025-10-30 20:37:44 +00:00
..
alerts More ruff SIM fixes (#164695) 2025-10-09 03:24:50 +00:00
amd_build [Submodule] Bump FBGEMM to latest (#165544) 2025-10-22 20:57:15 +00:00
autograd Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
bazel_tools [BE] fix typos in tools/ (#156082) 2025-06-17 19:25:50 +00:00
build/bazel [CI] update flake8 and mypy lint dependencies (#158720) 2025-07-29 08:05:56 +00:00
build_defs [BE] fix typos in tools/ (#156082) 2025-06-17 19:25:50 +00:00
code_analyzer [BE] fix typos in tools/ (#156082) 2025-06-17 19:25:50 +00:00
code_coverage Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
config [BE] fix typos in tools/ (#156082) 2025-06-17 19:25:50 +00:00
coverage_plugins_package More ruff SIM fixes (#164695) 2025-10-09 03:24:50 +00:00
dynamo Enable verify_dynamo on Python 3.13 (#166497) 2025-10-30 19:52:32 +00:00
experimental/torchfuzz [torchfuzz] split, chunk, stack, cat, expand, gather, cumsum, clamp, index_select, split (#166221) 2025-10-28 01:21:07 +00:00
flight_recorder transform fr traces for ft (#166149) 2025-10-29 20:44:48 +00:00
gdb Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
github [9/N] Apply ruff UP035 rule (#165515) 2025-10-17 00:09:51 +00:00
iwyu
jit Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
linter Add warning when users have incomplete setup for type checking (#166603) 2025-10-30 20:37:44 +00:00
lite_interpreter Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
lldb [BE] Remove torch deploy | remove torch deploy specific files (#158290) 2025-07-30 01:36:03 +00:00
packaging Enable all flake8-logging-format rules (#164655) 2025-10-19 00:59:28 +00:00
pyi Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
rules Remove METADATA.bzl files (#166574) 2025-10-29 23:17:41 +00:00
rules_cc
setup_helpers Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
shared
stats Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
test Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
testing Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
__init__.py
bazel.bzl Move version.h to torch/headeronly (#164381) 2025-10-07 17:47:30 +00:00
BUCK.bzl [BE] Cleanup old ExecuTorch codegen and runtime code (#154165) 2025-06-07 06:54:12 +00:00
BUCK.oss
build_libtorch.py
build_pytorch_libs.py Revert "[RELAND] Always build USE_DISTRIBUTED (#160449) and Make distributed modules importable even when backend not built (#159889) (#162594)" 2025-09-25 13:47:46 +00:00
build_with_debinfo.py [build] modernize build-frontend: python setup.py develop/install -> [uv ]pip install --no-build-isolation [-e ]. (#156027) 2025-07-09 11:24:27 +00:00
download_mnist.py Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
extract_scripts.py mypy 1.16.0 (#155821) 2025-06-14 18:18:43 +00:00
gen_flatbuffers.sh
gen_vulkan_spv.py Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
generate_torch_version.py Add sdist handling to version finding (#160315) 2025-09-25 07:15:51 +00:00
generated_dirs.txt
git_add_generated_dirs.sh
git_reset_generated_dirs.sh
nightly_hotpatch.py Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
nightly.py Fix pyrefly ignore syntax in /tools/... (#166240) 2025-10-26 04:20:16 +00:00
nvcc_fix_deps.py [BE] fix typos in tools/ (#156082) 2025-06-17 19:25:50 +00:00
optional_submodules.py [BE] Make Eigen an optional dependency (#155955) 2025-06-21 03:02:02 +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: