Spaces:
Running
Running
"""Module for package versioning.""" | |
import contextlib | |
def get_version() -> str: | |
"""Retrieves the version of the package from a possible list of package names. | |
This accounts for after package names are updated for -nightly builds. | |
Returns: | |
str: The version of the package | |
Raises: | |
ValueError: If the package is not found from the list of package names. | |
""" | |
from importlib import metadata | |
pkg_names = [ | |
"langflow", | |
"langflow-base", | |
"langflow-nightly", | |
"langflow-base-nightly", | |
] | |
version = None | |
for pkg_name in pkg_names: | |
with contextlib.suppress(ImportError, metadata.PackageNotFoundError): | |
version = metadata.version(pkg_name) | |
if version is None: | |
msg = f"Package not found from options {pkg_names}" | |
raise ValueError(msg) | |
return version | |
def is_pre_release(v: str) -> bool: | |
"""Returns a boolean indicating whether the version is a pre-release version. | |
Returns a boolean indicating whether the version is a pre-release version, | |
as per the definition of a pre-release segment from PEP 440. | |
""" | |
return any(label in v for label in ["a", "b", "rc"]) | |