Module

version_check

Non-blocking version check with periodic caching.

Classes

VersionInfo 4 ▼
Result of a version check.

Result of a version check.

Attributes

Name Type Description
current str —
latest str —
update_available bool —
message str —

Functions

check_version 4 VersionInfo | None ▼
Check PyPI for a newer version. Returns None if check is skipped. Caches the r…
def check_version(package_name: str, current_version: str, *, cache_dir: Path | None = None, check_interval: int = _CHECK_INTERVAL) -> VersionInfo | None

Check PyPI for a newer version. Returns None if check is skipped.

Caches the result to avoid hitting PyPI on every invocation. Returns None if within the cache interval or on any error.

Parameters
Name Type Description
package_name str
current_version str
cache_dir Path | None Default:None
check_interval int Default:_CHECK_INTERVAL
Returns
VersionInfo | None
format_version_notice 2 str ▼
Format a user-friendly update notice for stderr.
def format_version_notice(info: VersionInfo, *, prog: str = '') -> str
Parameters
Name Type Description
info VersionInfo
prog str Default:''
Returns
str
_detect_installer 0 str ▼
Detect the package installer (uv or pip).
def _detect_installer() -> str
Returns
str
_fetch_latest_version 1 str ▼
Fetch the latest version from PyPI JSON API.
def _fetch_latest_version(package_name: str) -> str
Parameters
Name Type Description
package_name str
Returns
str