Remove use of distutils. (#7770)

distutils is deprecated and replaced by other stdlib constructs.
This commit is contained in:
Jiaming Yuan 2022-03-31 19:03:10 +08:00 committed by GitHub
parent e8eff3581b
commit 02dd7b6913
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 16 deletions

View File

@ -3,11 +3,10 @@
tqdm, sh are required to run this script.
"""
from urllib.request import urlretrieve
from typing import cast, Tuple
import argparse
from typing import List
from typing import List, Optional
from sh.contrib import git
from distutils import version
from packaging import version
import subprocess
import tqdm
import os
@ -27,7 +26,8 @@ def show_progress(block_num, block_size, total_size):
downloaded = block_num * block_size
if downloaded < total_size:
pbar.update(block_size / 1024)
upper = (total_size - downloaded) / 1024
pbar.update(min(block_size / 1024, upper))
else:
pbar.close()
pbar = None
@ -136,19 +136,25 @@ def check_path():
def main(args: argparse.Namespace) -> None:
check_path()
rel = version.LooseVersion(args.release)
rel = version.parse(args.release)
assert isinstance(rel, version.Version)
major = rel.major
minor = rel.minor
patch = rel.micro
print("Release:", rel)
if len(rel.version) == 3:
if not rel.is_prerelease:
# Major release
major, minor, patch = version.StrictVersion(args.release).version
rc = None
rc_ver = None
rc: Optional[str] = None
rc_ver: Optional[int] = None
else:
# RC release
major, minor, patch, rc, rc_ver = cast(
Tuple[int, int, int, str, int], rel.version
)
major = rel.major
minor = rel.minor
patch = rel.micro
assert rel.pre is not None
rc, rc_ver = rel.pre
assert rc == "rc"
release = str(major) + "." + str(minor) + "." + str(patch)

View File

@ -1,5 +1,5 @@
[metadata]
description-file = README.rst
description_file = README.rst
[mypy]
ignore_missing_imports = True

View File

@ -3,7 +3,6 @@ import os
import shutil
import subprocess
import logging
import distutils
from typing import Optional, List
import sys
from platform import system
@ -51,11 +50,11 @@ def lib_name() -> str:
def copy_tree(src_dir: str, target_dir: str) -> None:
'''Copy source tree into build directory.'''
def clean_copy_tree(src: str, dst: str) -> None:
distutils.dir_util.copy_tree(src, dst)
shutil.copytree(src, dst)
NEED_CLEAN_TREE.add(os.path.abspath(dst))
def clean_copy_file(src: str, dst: str) -> None:
distutils.file_util.copy_file(src, dst)
shutil.copy(src, dst)
NEED_CLEAN_FILE.add(os.path.abspath(dst))
src = os.path.join(src_dir, 'src')