mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
[BE][Easy] use pathlib.Path
instead of dirname
/ ".."
/ pardir
(#129374)
Changes by apply order: 1. Replace all `".."` and `os.pardir` usage with `os.path.dirname(...)`. 2. Replace nested `os.path.dirname(os.path.dirname(...))` call with `str(Path(...).parent.parent)`. 3. Reorder `.absolute()` ~/ `.resolve()`~ and `.parent`: always resolve the path first. `.parent{...}.absolute()` -> `.absolute().parent{...}` 4. Replace chained `.parent x N` with `.parents[${N - 1}]`: the code is easier to read (see 5.) `.parent.parent.parent.parent` -> `.parents[3]` 5. ~Replace `.parents[${N - 1}]` with `.parents[${N} - 1]`: the code is easier to read and does not introduce any runtime overhead.~ ~`.parents[3]` -> `.parents[4 - 1]`~ 6. ~Replace `.parents[2 - 1]` with `.parent.parent`: because the code is shorter and easier to read.~ Pull Request resolved: https://github.com/pytorch/pytorch/pull/129374 Approved by: https://github.com/justinchuby, https://github.com/malfet
This commit is contained in:
committed by
PyTorch MergeBot
parent
d4b6ff6fbe
commit
9e1f3ecaa7
@ -1,23 +1,25 @@
|
||||
import argparse
|
||||
import os
|
||||
import pathlib
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from typing import Any, cast, Optional
|
||||
|
||||
import yaml
|
||||
|
||||
|
||||
try:
|
||||
# use faster C loader if available
|
||||
from yaml import CSafeLoader as YamlLoader
|
||||
except ImportError:
|
||||
from yaml import SafeLoader as YamlLoader # type: ignore[assignment, misc]
|
||||
|
||||
|
||||
NATIVE_FUNCTIONS_PATH = "aten/src/ATen/native/native_functions.yaml"
|
||||
TAGS_PATH = "aten/src/ATen/native/tags.yaml"
|
||||
|
||||
|
||||
def generate_code(
|
||||
gen_dir: pathlib.Path,
|
||||
gen_dir: Path,
|
||||
native_functions_path: Optional[str] = None,
|
||||
tags_path: Optional[str] = None,
|
||||
install_dir: Optional[str] = None,
|
||||
@ -28,6 +30,7 @@ def generate_code(
|
||||
) -> None:
|
||||
from tools.autograd.gen_annotated_fn_args import gen_annotated
|
||||
from tools.autograd.gen_autograd import gen_autograd, gen_autograd_python
|
||||
|
||||
from torchgen.selective_build.selector import SelectiveBuilder
|
||||
|
||||
# Build ATen based Variable classes
|
||||
@ -39,7 +42,7 @@ def generate_code(
|
||||
autograd_gen_dir = os.path.join(install_dir, "autograd", "generated")
|
||||
for d in (autograd_gen_dir, python_install_dir):
|
||||
os.makedirs(d, exist_ok=True)
|
||||
autograd_dir = os.fspath(pathlib.Path(__file__).parent.parent / "autograd")
|
||||
autograd_dir = os.fspath(Path(__file__).parent.parent / "autograd")
|
||||
|
||||
if subset == "pybindings" or not subset:
|
||||
gen_autograd_python(
|
||||
@ -106,8 +109,9 @@ def get_selector(
|
||||
operators_yaml_path: Optional[str],
|
||||
) -> Any:
|
||||
# cwrap depends on pyyaml, so we can't import it earlier
|
||||
root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
sys.path.insert(0, root)
|
||||
REPO_ROOT = Path(__file__).absolute().parents[2]
|
||||
sys.path.insert(0, str(REPO_ROOT))
|
||||
|
||||
from torchgen.selective_build.selector import SelectiveBuilder
|
||||
|
||||
assert not (
|
||||
@ -131,8 +135,8 @@ def main() -> None:
|
||||
parser.add_argument("--tags-path")
|
||||
parser.add_argument(
|
||||
"--gen-dir",
|
||||
type=pathlib.Path,
|
||||
default=pathlib.Path("."),
|
||||
type=Path,
|
||||
default=Path("."),
|
||||
help="Root directory where to install files. Defaults to the current working directory.",
|
||||
)
|
||||
parser.add_argument(
|
||||
|
Reference in New Issue
Block a user