From 1fc0371227bc8bc889eced1911b446ab7cad63d9 Mon Sep 17 00:00:00 2001 From: Nasty Date: Mon, 31 Jul 2023 17:59:28 +0300 Subject: [PATCH] TLDR-369 change version saving --- dedoc/api/dedoc_api.py | 6 +++--- dedoc/common/exceptions/dedoc_exception.py | 4 ++-- dedoc/data_structures/parsed_document.py | 4 ++-- dedoc/utils/utils.py | 1 + dedoc/utils/version_utils.py | 21 --------------------- docker/Dockerfile | 2 +- setup.py | 11 +++++++++-- 7 files changed, 18 insertions(+), 31 deletions(-) delete mode 100644 dedoc/utils/version_utils.py diff --git a/dedoc/api/dedoc_api.py b/dedoc/api/dedoc_api.py index 74bcd5bb..ad62a2fa 100644 --- a/dedoc/api/dedoc_api.py +++ b/dedoc/api/dedoc_api.py @@ -8,6 +8,7 @@ from fastapi.staticfiles import StaticFiles from starlette.responses import FileResponse, HTMLResponse, JSONResponse, PlainTextResponse +import dedoc from dedoc.api.api_args import QueryParameters from dedoc.api.api_utils import json2html, json2tree, json2collapsed_tree from dedoc.common.exceptions.dedoc_exception import DedocException @@ -15,7 +16,6 @@ from dedoc.config import get_config from dedoc.dedoc_manager import DedocManager from dedoc.utils.utils import save_upload_file -from dedoc.utils.version_utils import get_dedoc_version config = get_config() PORT = config["api_port"] @@ -49,7 +49,7 @@ def get_static_file(request: Request) -> Response: @app.get('/version') def get_version() -> Response: - return PlainTextResponse(get_dedoc_version()) + return PlainTextResponse(dedoc.__version__) def _get_static_file_path(request: Request) -> str: @@ -65,7 +65,7 @@ async def upload(file: UploadFile = File(...), query_params: QueryParameters = D parameters = query_params.dict(by_alias=True) if not file or file.filename == "": - raise MissingFileException("Error: Missing content in request_post file parameter", version=get_dedoc_version()) + raise MissingFileException("Error: Missing content in request_post file parameter", version=dedoc.__version__) # check if the post request_post has the file part logger.info(f"Get file {file.filename} with parameters {parameters}") diff --git a/dedoc/common/exceptions/dedoc_exception.py b/dedoc/common/exceptions/dedoc_exception.py index caeed969..1b9cbf5d 100644 --- a/dedoc/common/exceptions/dedoc_exception.py +++ b/dedoc/common/exceptions/dedoc_exception.py @@ -1,6 +1,6 @@ from typing import Optional -from dedoc.utils.version_utils import get_dedoc_version +import dedoc class DedocException(Exception): @@ -14,7 +14,7 @@ def __init__(self, self.msg = msg self.msg_api = msg if msg_api is None else msg_api self.filename = filename - self.version = version if version is not None else get_dedoc_version() + self.version = version if version is not None else dedoc.__version__ self.metadata = metadata def __str__(self) -> str: diff --git a/dedoc/data_structures/parsed_document.py b/dedoc/data_structures/parsed_document.py index 274593c2..44a5204d 100644 --- a/dedoc/data_structures/parsed_document.py +++ b/dedoc/data_structures/parsed_document.py @@ -3,10 +3,10 @@ from flask_restx import fields, Api, Model +import dedoc from dedoc.data_structures.document_content import DocumentContent from dedoc.data_structures.document_metadata import DocumentMetadata from dedoc.data_structures.serializable import Serializable -from dedoc.utils.version_utils import get_dedoc_version class ParsedDocument(Serializable): @@ -27,7 +27,7 @@ def __init__(self, self.metadata = metadata self.content = content self.attachments = [] if attachments is None else attachments - self.version = get_dedoc_version() + self.version = dedoc.__version__ self.warnings = warnings if warnings is not None else [] def add_attachments(self, new_attachment: List["ParsedDocument"]) -> None: diff --git a/dedoc/utils/utils.py b/dedoc/utils/utils.py index b0421a26..e9f4b9d5 100644 --- a/dedoc/utils/utils.py +++ b/dedoc/utils/utils.py @@ -95,6 +95,7 @@ def get_unique_name(filename: str) -> str: def save_upload_file(upload_file: UploadFile, output_dir: str) -> str: file_name = upload_file.filename.split("/")[-1] + file_name = check_filename_length(file_name) file_path = os.path.join(output_dir, file_name) try: with open(file_path, "wb") as buffer: diff --git a/dedoc/utils/version_utils.py b/dedoc/utils/version_utils.py deleted file mode 100644 index 67103280..00000000 --- a/dedoc/utils/version_utils.py +++ /dev/null @@ -1,21 +0,0 @@ -import os - -import dedoc - - -def get_dedoc_version() -> str: - if dedoc.__version__ != "": - return dedoc.__version__ - - with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "..", "VERSION"), "r") as f: - version = f.read() - - # Dynamically set the __version__ attribute - with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), "..", "version.py"), "w", encoding="utf-8") as f: - f.write(f'__version__ = "{version}"\n') - - return version - - -if __name__ == "__main__": - get_dedoc_version() diff --git a/docker/Dockerfile b/docker/Dockerfile index 30184ea8..43e4be14 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -11,7 +11,7 @@ RUN mkdir /dedoc_root ADD dedoc /dedoc_root/dedoc ADD VERSION /dedoc_root -RUN python3 /dedoc_root/dedoc/utils/version_utils.py +RUN echo "__version__ = \"$(cat /dedoc_root/VERSION)\"" > /dedoc_root/dedoc/version.py RUN python3 /dedoc_root/dedoc/download_models.py ADD tests /dedoc_root/tests diff --git a/setup.py b/setup.py index 035a5fda..9d4a5d4a 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,13 @@ +import os + from setuptools import setup -from dedoc.utils.version_utils import get_dedoc_version if __name__ == "__main__": - setup(name="dedoc", version=get_dedoc_version()) + with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), "VERSION"), "r") as f: + version = f.read() + + # Dynamically set the __version__ attribute + with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), "dedoc", "version.py"), "w", encoding="utf-8") as f: + f.write(f'__version__ = "{version}"\n') + setup(name="dedoc", version=version)