From 4446b5d888bbf8fc64c480668aa7d4cab0cfdb7b Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Tue, 12 Mar 2024 14:54:24 +0800 Subject: fix(freeze): add support for old version of python --- src/ipm/utils/_freeze.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'src') 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( - """""".format( - **meta_data_dict - ) - ) + **meta_data_dict + ), + encoding="utf-8", + ) -- cgit v1.2.3-70-g09d2