mirror of
https://github.com/datahub-project/datahub.git
synced 2025-09-21 23:23:06 +00:00
fix(cli/upgrade): handle safely invalid version (#14134)
This commit is contained in:
parent
14e7d367e3
commit
d679973d33
@ -7,7 +7,7 @@ from typing import Any, Callable, Optional, Tuple, TypeVar
|
|||||||
|
|
||||||
import click
|
import click
|
||||||
import humanfriendly
|
import humanfriendly
|
||||||
from packaging.version import Version
|
from packaging.version import InvalidVersion, Version
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from datahub._version import __version__
|
from datahub._version import __version__
|
||||||
@ -28,6 +28,18 @@ class VersionStats(BaseModel, arbitrary_types_allowed=True):
|
|||||||
release_date: Optional[datetime] = None
|
release_date: Optional[datetime] = None
|
||||||
|
|
||||||
|
|
||||||
|
def _safe_version_stats(version_string: str) -> Optional[VersionStats]:
|
||||||
|
"""
|
||||||
|
Safely create a VersionStats object from a version string.
|
||||||
|
Returns None if the version string is invalid.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
return VersionStats(version=Version(version_string), release_date=None)
|
||||||
|
except InvalidVersion:
|
||||||
|
log.warning(f"Invalid version format received: {version_string!r}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
class ServerVersionStats(BaseModel):
|
class ServerVersionStats(BaseModel):
|
||||||
current: VersionStats
|
current: VersionStats
|
||||||
latest: Optional[VersionStats] = None
|
latest: Optional[VersionStats] = None
|
||||||
@ -233,10 +245,7 @@ async def _retrieve_version_stats(
|
|||||||
version=current_server_version, release_date=current_server_release_date
|
version=current_server_version, release_date=current_server_release_date
|
||||||
),
|
),
|
||||||
current_server_default_cli_version=(
|
current_server_default_cli_version=(
|
||||||
VersionStats(
|
_safe_version_stats(current_server_default_cli_version)
|
||||||
version=Version(current_server_default_cli_version),
|
|
||||||
release_date=None,
|
|
||||||
)
|
|
||||||
if current_server_default_cli_version
|
if current_server_default_cli_version
|
||||||
else None
|
else None
|
||||||
),
|
),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user