Files
MeshTerm/meshterm/__init__.py
T
Jean-Pierre MartineauandClaude Opus 5 4d8c67358c
Installers / windows-x64 (push) Canceled after 0s
Installers / macos-x64 (push) Canceled after 0s
Installers / macos-arm64 (push) Canceled after 0s
Installers / linux-x64 (push) Canceled after 0s
Installers / linux-arm64 (push) Canceled after 0s
GitHub release / build (push) Canceled after 0s
GitHub release / create the release (push) Canceled after 0s
Release 0.3.0
The command line was rebuilt around the fact that it has two readers.
`--json` is the machine contract and now covers all 49 subcommands
instead of two; the plain face is free to be read by a person, which is
what it was always for.

The changelog entry had been written for the intermediate design — it
promised quoted names and absolute timestamps, both of which the finished
work deliberately reverses — so it describes what shipped instead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-08 05:07:51 -04:00

30 lines
999 B
Python

"""MeshTerm is a full-featured TUI-based MeshCore client for your terminal.
Supports USB, Bluetooth and TCP companion connection. For Windows, macOS and Linux.
"""
from datetime import datetime
__version__ = "0.3.0"
__author__ = "Jean-Pierre Martineau"
#: The year MeshTerm was first published; the copyright span starts here.
COPYRIGHT_START_YEAR = 2026
def copyright_notice() -> str:
"""The one canonical copyright line, dated from :data:`COPYRIGHT_START_YEAR` to now.
A single publication year collapses to just that year ("Copyright © 2026 …"); once
time has moved on it becomes a span ("Copyright © 2026-2027 …"). Every splash and
screen that shows a copyright draws it from here so the wording, holder, and span can
never drift apart.
"""
year = datetime.now().year
span = (
str(COPYRIGHT_START_YEAR)
if year <= COPYRIGHT_START_YEAR
else f"{COPYRIGHT_START_YEAR}-{year}"
)
return f"Copyright © {span} {__author__}"