diff --git a/arango/request.py b/arango/request.py index d0009f9a..b924a80d 100644 --- a/arango/request.py +++ b/arango/request.py @@ -1,5 +1,6 @@ __all__ = ["Request"] +from importlib.metadata import version from typing import Any, MutableMapping, Optional from arango.typings import DriverFlags, Fields, Headers, Params @@ -8,12 +9,7 @@ def normalize_headers( headers: Optional[Headers], driver_flags: Optional[DriverFlags] = None ) -> Headers: - flags = "" - if driver_flags is not None: - for flag in driver_flags: - flags = flags + flag + ";" - driver_version = "7.5.3" - driver_header = "python-arango/" + driver_version + " (" + flags + ")" + driver_header = generate_driver_header(driver_flags) normalized_headers: Headers = { "charset": "utf-8", "content-type": "application/json", @@ -26,6 +22,18 @@ def normalize_headers( return normalized_headers +def generate_driver_header(driver_flags: Optional[DriverFlags] = None) -> str: + flags: str = "" + if driver_flags is not None: + for flag in driver_flags: + flags = flags + flag + ";" + name: str = "python-arango" + driver_version: str = ".".join(version(name).split(".")[:3]) # Only keep semver + driver_header: str = name + "/" + driver_version + " (" + flags + ")" + + return driver_header + + def normalize_params(params: Optional[Params]) -> MutableMapping[str, str]: normalized_params: MutableMapping[str, str] = {} diff --git a/arango/typings.py b/arango/typings.py index 8d49e3fd..91e62685 100644 --- a/arango/typings.py +++ b/arango/typings.py @@ -1,4 +1,4 @@ -__all__ = ["Fields", "Headers", "Json", "Jsons", "Params"] +__all__ = ["Fields", "Headers", "Json", "Jsons", "Params", "DriverFlags"] from typing import Any, Dict, List, MutableMapping, Sequence, Union