`E501` across 69 lines, wrapped rather than exempted. The prose ones — module docstrings in `menu`, `node_detail_screen`, `pathline`, `pathgraph`, `walk_screen`, `trace_runner` and `test_about` — are reflowed as paragraphs, so the block keeps its shape instead of gaining one short orphan line. Nothing they say changed. The code ones mostly gained a line break inside a call. Where a break would have read worse than a name, the sub-expression got one instead: `reach` in `topology`'s quality clamp, `plain_cells` in `pathline`, `numbering` in the trace list, `listed` in `flash.py`'s refusal, and a small `shape`/`is_strip` helper in two tests that were comparing or matching the same shape twice on one line. Four docstring summaries lost a word they were not using. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
27 lines
922 B
Python
27 lines
922 B
Python
"""MeshTerm: a modern command-line toolkit for tuning and exploring a MeshCore mesh."""
|
|
|
|
from datetime import datetime
|
|
|
|
__version__ = "0.1.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__}"
|