diff options
| author | 2024-03-12 14:54:24 +0800 | |
|---|---|---|
| committer | 2024-03-12 14:54:24 +0800 | |
| commit | 4446b5d888bbf8fc64c480668aa7d4cab0cfdb7b (patch) | |
| tree | b6e792d2201a31aa1fa61cc494386debb35d8ea1 | |
| parent | d5f4bf23d07a6a06d3614c23b7ca9e85ed9f8285 (diff) | |
| download | ipm-4446b5d888bbf8fc64c480668aa7d4cab0cfdb7b.tar.gz ipm-4446b5d888bbf8fc64c480668aa7d4cab0cfdb7b.zip | |
fix(freeze): add support for old version of python
| -rw-r--r-- | src/ipm/utils/_freeze.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/ipm/utils/_freeze.py b/src/ipm/utils/_freeze.py index 8bd0982..c6eefef 100644 --- a/src/ipm/utils/_freeze.py +++ b/src/ipm/utils/_freeze.py @@ -1,9 +1,10 @@ from pathlib import Path +from ipm.models.ipk import InfiniProject +from ipm.typing import StrPath + +import sys import tarfile import shutil -import os.path as path - -from ipm.models.ipk import InfiniProject def create_tar_gz(source_folder: str, output_filepath: str) -> None: @@ -16,26 +17,27 @@ def create_tar_gz(source_folder: str, output_filepath: str) -> None: def extract_tar_gz(input_filename: str, output_folder: str) -> None: with tarfile.open(input_filename, "r:gz") as tar: - tar.extractall(output_folder, filter=tarfile.fully_trusted_filter) + if sys.version_info >= (3, 12): + tar.extractall(output_folder, filter=tarfile.fully_trusted_filter) + else: + tar.extractall(output_folder) -def create_xml_file(meta_data: InfiniProject, output_folder: str | Path) -> None: +def create_xml_file(meta_data: InfiniProject, output_folder: StrPath) -> None: from collections import defaultdict meta_data_dict = defaultdict( lambda: "", meta_data._data.get("project") # type: ignore ) - with open( - path.join(output_folder, f"{meta_data.name}.xml"), mode="w", encoding="utf8" - ) as xml_file: - xml_file.write( - """<package id="{name}" + Path(output_folder).joinpath(f"{meta_data.name}.xml").write_text( + """<package id="{name}" name="{name}: {description}" webpage="{webpage}" author="{authors[0][name]}" license="{license}" unzip="{unzip}"/>""".format( - **meta_data_dict - ) - ) + **meta_data_dict + ), + encoding="utf-8", + ) |
