diff --git a/__pycache__/app.cpython-36.pyc b/__pycache__/app.cpython-36.pyc new file mode 100644 index 0000000..76f8aca Binary files /dev/null and b/__pycache__/app.cpython-36.pyc differ diff --git a/__pycache__/mailer.cpython-36.pyc b/__pycache__/mailer.cpython-36.pyc new file mode 100644 index 0000000..7899060 Binary files /dev/null and b/__pycache__/mailer.cpython-36.pyc differ diff --git a/app.py b/app.py index 362d76d..0d789a9 100644 --- a/app.py +++ b/app.py @@ -1,3 +1,4 @@ +from typing import List, Dict, Tuple, Set, Any, Optional, Union #!/usr/bin/env python3 """ Palladium Z1 Monitor — LD逻辑板使用监控系统 @@ -10,7 +11,6 @@ Palladium Z1 Monitor — LD逻辑板使用监控系统 2. API 推送 — 在 Palladium 主机运行 collect.py 远程推送 """ -from __future__ import annotations # PEP 563: 兼容 Python 3.7+ (避免 PEP 585 泛型语法) import os import re diff --git a/instance/palladium.db b/instance/palladium.db new file mode 100644 index 0000000..75c4e21 Binary files /dev/null and b/instance/palladium.db differ diff --git a/mailer.py b/mailer.py index f817ff1..d25990d 100644 --- a/mailer.py +++ b/mailer.py @@ -1,3 +1,4 @@ +from typing import List, Dict, Tuple, Set, Any, Optional, Union """ mailer.py — Palladium Z1 每日报告邮件发送 @@ -5,7 +6,6 @@ mailer.py — Palladium Z1 每日报告邮件发送 所有配置都从环境变量读 (生产建议用 systemd EnvironmentFile 或 .env)。 """ -from __future__ import annotations # PEP 563: 让所有 type hint 变字符串, 兼容 Python 3.7+ import os import smtplib @@ -60,7 +60,7 @@ def get_config() -> dict: } -def config_errors(cfg: dict) -> list[str]: +def config_errors(cfg: dict) -> List[str]: """检查配置是否完整可发送。返回缺失/错误项的列表 (空=OK)。""" errs = [] if not cfg["enabled"]: @@ -416,7 +416,7 @@ def _render_html(data: dict, base_url: str) -> str: # ═══════════════════════════════════════════════════════════════════════════ # 发送 # ═══════════════════════════════════════════════════════════════════════════ -def render_report(data: dict, cfg: dict) -> tuple[str, str, str]: +def render_report(data: dict, cfg: dict) -> Tuple[str, str, str]: """返回 (subject, html, text)。""" latest = data["latest"] if latest: @@ -430,7 +430,7 @@ def render_report(data: dict, cfg: dict) -> tuple[str, str, str]: return subject, html, text -def _send_smtp(cfg: dict, subject: str, html: str, text: str) -> tuple[bool, str]: +def _send_smtp(cfg: dict, subject: str, html: str, text: str) -> Tuple[bool, str]: """实际 SMTP 发送, 返回 (ok, error_msg)。""" msg = MIMEMultipart("alternative") msg["Subject"] = subject @@ -469,7 +469,7 @@ def _send_smtp(cfg: dict, subject: str, html: str, text: str) -> tuple[bool, str return (False, f"{type(e).__name__}: {e}") -def send_report(cfg: dict | None = None) -> dict: +def send_report(cfg: Optional[Dict] = None) -> dict: """ 收集数据 → 渲染 → 发送。 返回: {"ok": bool, "subject": str, "recipients": [...], "error": str, "preview_text": str}