in scripts/download_typeshed.py [0:0]
def main() -> None:
parser = argparse.ArgumentParser(
description="A script to download and trim typeshed zip file."
)
parser.add_argument(
"-u",
"--url",
type=str,
help=(
"URL from which typeshed zip file is downloaded. "
+ "If not set, default to the current typeshed mater on github."
),
)
parser.add_argument(
"-o",
"--output",
required=True,
type=str,
help="Where to store the downloaded typeshed zip file.",
)
parser.add_argument(
"-p",
"--patch-directory",
required=True,
type=str,
help="Where the .patch files for amending typeshed are located.",
)
arguments = parser.parse_args()
logging.basicConfig(
format="[%(asctime)s][%(levelname)s]: %(message)s", level=logging.INFO
)
path = Path(arguments.patch_directory)
url = get_typeshed_url(arguments.url)
downloaded = download_typeshed(url)
LOG.info(f"{downloaded.getbuffer().nbytes} bytes downloaded from {url}")
trimmed_typeshed = trim_typeshed(downloaded)
log_trim_statistics(trimmed_typeshed.statistics)
patched_typeshed = _apply_patches(path, trimmed_typeshed)
write_output(patched_typeshed, arguments.output)
LOG.info(f"Zip file written to {arguments.output}")