Ver código fonte

add version_name to middle json

赵小蒙 1 ano atrás
pai
commit
1de37e4c65
4 arquivos alterados com 41 adições e 30 exclusões
  1. 0 13
      magic_pdf/libs/commons.py
  2. 1 0
      magic_pdf/libs/version.py
  3. 4 4
      magic_pdf/user_api.py
  4. 36 13
      setup.py

+ 0 - 13
magic_pdf/libs/commons.py

@@ -13,19 +13,6 @@ import fitz # 1.23.9中已经切换到rebase
 # import fitz_old as fitz  # 使用1.23.9之前的pymupdf库
 
 
-def get_version():
-    command = ["git", "describe", "--tags"]
-    try:
-        version = subprocess.check_output(command).decode().strip()
-        version_parts = version.split("-")
-        if len(version_parts) > 1 and version_parts[0].startswith("magic_pdf"):
-            return version_parts[1]
-        else:
-            raise ValueError(f"Invalid version tag {version}. Expected format is magic_pdf-<version>-released.")
-    except Exception as e:
-        print(e)
-        return "0.0.0"
-
 def get_delta_time(input_time):
     return round(time.time() - input_time, 2)
 

+ 1 - 0
magic_pdf/libs/version.py

@@ -0,0 +1 @@
+__version__ = "0.0.0"

+ 4 - 4
magic_pdf/user_api.py

@@ -16,7 +16,7 @@ import re
 
 from loguru import logger
 
-from magic_pdf.libs.commons import get_version
+from magic_pdf.libs.version import __version__
 from magic_pdf.rw import AbsReaderWriter
 from magic_pdf.pdf_parse_by_ocr_v2 import parse_pdf_by_ocr
 from magic_pdf.pdf_parse_by_txt_v2 import parse_pdf_by_txt
@@ -39,7 +39,7 @@ def parse_txt_pdf(pdf_bytes: bytes, pdf_models: list, imageWriter: AbsReaderWrit
 
     pdf_info_dict["_parse_type"] = PARSE_TYPE_TXT
 
-    pdf_info_dict["_version_name"] = get_version()
+    pdf_info_dict["_version_name"] = __version__
 
     return pdf_info_dict
 
@@ -59,7 +59,7 @@ def parse_ocr_pdf(pdf_bytes: bytes, pdf_models: list, imageWriter: AbsReaderWrit
 
     pdf_info_dict["_parse_type"] = PARSE_TYPE_OCR
 
-    pdf_info_dict["_version_name"] = get_version()
+    pdf_info_dict["_version_name"] = __version__
 
     return pdf_info_dict
 
@@ -122,6 +122,6 @@ def parse_union_pdf(pdf_bytes: bytes, pdf_models: list, imageWriter: AbsReaderWr
     else:
         pdf_info_dict["_parse_type"] = PARSE_TYPE_TXT
 
-    pdf_info_dict["_version_name"] = get_version()
+    pdf_info_dict["_version_name"] = __version__
 
     return pdf_info_dict

+ 36 - 13
setup.py

@@ -1,6 +1,7 @@
-from setuptools import setup, find_packages
+import os
+import subprocess
 
-from magic_pdf.libs.commons import get_version
+from setuptools import setup, find_packages
 
 
 def parse_requirements(filename):
@@ -19,14 +20,36 @@ def parse_requirements(filename):
     return requires
 
 
-
-setup(
-    name="magic_pdf",  # 项目名
-    version=get_version(),  # 自动从tag中获取版本号
-    packages=find_packages(),  # 包含所有的包
-    install_requires=parse_requirements('requirements.txt'),  # 项目依赖的第三方库
-    python_requires=">=3.9",  # 项目依赖的 Python 版本
-    # entry_points={"console_scripts": ["my_command=my_project.main:run"]}, # 项目提供的可执行命令
-    include_package_data=True,  # 是否包含非代码文件,如数据文件、配置文件等
-    zip_safe=False,  # 是否使用 zip 文件格式打包,一般设为 False
-)
+def get_version():
+    command = ["git", "describe", "--tags"]
+    try:
+        version = subprocess.check_output(command).decode().strip()
+        version_parts = version.split("-")
+        if len(version_parts) > 1 and version_parts[0].startswith("magic_pdf"):
+            return version_parts[1]
+        else:
+            raise ValueError(f"Invalid version tag {version}. Expected format is magic_pdf-<version>-released.")
+    except Exception as e:
+        print(e)
+        return "0.0.0"
+
+
+def write_version_to_commons(version):
+    commons_path = os.path.join(os.path.dirname(__file__), 'magic_pdf', 'libs', 'version.py')
+    with open(commons_path, 'w') as f:
+        f.write(f'__version__ = "{version}"\n')
+
+
+if __name__ == '__main__':
+    version_name = get_version()
+    write_version_to_commons(version_name)
+    setup(
+        name="magic_pdf",  # 项目名
+        version=version_name,  # 自动从tag中获取版本号
+        packages=find_packages(),  # 包含所有的包
+        install_requires=parse_requirements('requirements.txt'),  # 项目依赖的第三方库
+        python_requires=">=3.9",  # 项目依赖的 Python 版本
+        # entry_points={"console_scripts": ["my_command=my_project.main:run"]}, # 项目提供的可执行命令
+        include_package_data=True,  # 是否包含非代码文件,如数据文件、配置文件等
+        zip_safe=False,  # 是否使用 zip 文件格式打包,一般设为 False
+    )