feat!: adopt Python 3.14 and 3.15 language features
Build and Push Docker Container / build-and-push (push) Successful in 2m25s

- Require Python 3.15 for the server and Python 3.14 for the CLI.
- Match the server requirement to quart_common's Python 3.15 features.
- Replace future annotations with native deferred evaluation.
- Defer CLI command dependencies and QR imports on Python 3.15.
- Enable argparse suggestions for mistyped CLI commands.
- Remove the obsolete tomllib import fallback.
- Update my_helpers and quart_common submodule references.
- Lock test dependencies and exclude them from Docker installations.
- Add regression coverage for lazy imports and deferred annotations.
- Document runtime requirements and standalone CLI validation.
- Validate 276 tests on Python 3.15 and 18 CLI tests on Python 3.14.

BREAKING CHANGE: The server now requires Python 3.15+ and the standalone CLI requires Python 3.14+.
This commit is contained in:
2026-10-26 14:47:29 +01:00
parent 3db374b1ab
commit 73fdeacbfe
38 changed files with 222 additions and 442 deletions
+2 -7
View File
@@ -1,13 +1,8 @@
from __future__ import annotations
import os
import sys
from pathlib import Path
try:
import tomllib
except ImportError: # pragma: no cover
tomllib = None
import tomllib
from .config import DEFAULT_CONFIG
from .http_client import NanoShareClient
@@ -24,7 +19,7 @@ def parse_registry_env(value: str) -> dict[str, str]:
return registry
def load_config(path: str | os.PathLike | None) -> dict:
if not path or tomllib is None:
if not path:
return {}
config_path = Path(path).expanduser()
if not config_path.is_file():