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+.
19 lines
550 B
Python
19 lines
550 B
Python
from pathlib import Path
|
|
|
|
DEFAULT_CONFIG = Path('~/.config/nanoshare/config.toml').expanduser()
|
|
|
|
def write_config(path: Path, *, node: str, url: str, refresh_token: str, token_url: str, source: str = 'nanoshare-cli') -> None:
|
|
path = path.expanduser()
|
|
path.parent.mkdir(parents=True, exist_ok=True)
|
|
content = '\n'.join([
|
|
f'source = "{source}"',
|
|
f'refresh_token = "{refresh_token}"',
|
|
f'token_url = "{token_url}"',
|
|
'',
|
|
'[nodes]',
|
|
f'{node} = "{url.rstrip("/")}"',
|
|
'',
|
|
])
|
|
path.write_text(content)
|
|
path.chmod(0o600)
|