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
@ -3,12 +3,13 @@
|
||||
import datetime
|
||||
import json
|
||||
import os
|
||||
import pathlib
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
from typing import Any, Callable, cast, Dict, List, Optional, Union
|
||||
from urllib.request import urlopen
|
||||
|
||||
REPO_ROOT = pathlib.Path(__file__).resolve().parent.parent.parent
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parents[2]
|
||||
|
||||
|
||||
def get_disabled_issues() -> List[str]:
|
||||
@ -20,7 +21,7 @@ def get_disabled_issues() -> List[str]:
|
||||
|
||||
SLOW_TESTS_FILE = ".pytorch-slow-tests.json"
|
||||
DISABLED_TESTS_FILE = ".pytorch-disabled-tests.json"
|
||||
ADDITIONAL_CI_FILES_FOLDER = pathlib.Path(".additional_ci_files")
|
||||
ADDITIONAL_CI_FILES_FOLDER = Path(".additional_ci_files")
|
||||
TEST_TIMES_FILE = "test-times.json"
|
||||
TEST_CLASS_TIMES_FILE = "test-class-times.json"
|
||||
TEST_FILE_RATINGS_FILE = "test-file-ratings.json"
|
||||
@ -34,7 +35,7 @@ FILE_CACHE_LIFESPAN_SECONDS = datetime.timedelta(hours=3).seconds
|
||||
|
||||
|
||||
def fetch_and_cache(
|
||||
dirpath: Union[str, pathlib.Path],
|
||||
dirpath: Union[str, Path],
|
||||
name: str,
|
||||
url: str,
|
||||
process_fn: Callable[[Dict[str, Any]], Dict[str, Any]],
|
||||
@ -42,7 +43,7 @@ def fetch_and_cache(
|
||||
"""
|
||||
This fetch and cache utils allows sharing between different process.
|
||||
"""
|
||||
pathlib.Path(dirpath).mkdir(exist_ok=True)
|
||||
Path(dirpath).mkdir(exist_ok=True)
|
||||
|
||||
path = os.path.join(dirpath, name)
|
||||
print(f"Downloading {url} to {path}")
|
||||
@ -50,7 +51,7 @@ def fetch_and_cache(
|
||||
def is_cached_file_valid() -> bool:
|
||||
# Check if the file is new enough (see: FILE_CACHE_LIFESPAN_SECONDS). A real check
|
||||
# could make a HEAD request and check/store the file's ETag
|
||||
fname = pathlib.Path(path)
|
||||
fname = Path(path)
|
||||
now = datetime.datetime.now()
|
||||
mtime = datetime.datetime.fromtimestamp(fname.stat().st_mtime)
|
||||
diff = now - mtime
|
||||
|
Reference in New Issue
Block a user