Python Packaging Council 首届选举即将进入提名阶段。提名窗口将于 2026 年 7 月 28 日星期二 14:00 UTC 开启,并于 2026 年 8 月 11 日星期二 14:00 UTC 关闭。整个窗口只有两周,计划参与提名或关注选举的 Python 打包生态贡献者,应尽早把 UTC 时间换算成本地时间,并预留材料准备与复核时间。
两周窗口意味着什么
这次公告最明确的信息是两个时间点:
- 开放:2026-07-28 14:00 UTC
- 截止:2026-08-11 14:00 UTC
- 持续时间:14 天
不要把截止日期简单理解为“8 月 11 日全天”。对于 UTC 以东或以西的地区,本地日期和具体时刻可能不同。例如,北京时间采用 UTC+8,因此开放时间对应 7 月 28 日 22:00,截止时间对应 8 月 11 日 22:00。
公告摘要没有给出候选资格、提名材料、提交渠道或投票规则。因此,在准备实际提名时,应以正式发布的选举说明为准,不要根据其他 Python 社区选举流程推断本届规则。
用 Python 准确换算提名时间
可以这样实践:使用 Python 3.9 及以上版本自带的 zoneinfo,把两个 UTC 时间转换到自己的时区。运行前只需修改 LOCAL_TIMEZONE,例如 Asia/Shanghai、Europe/Berlin 或 America/New_York。
from datetime import datetime
from zoneinfo import ZoneInfo
LOCAL_TIMEZONE = "Asia/Shanghai"
period = {
"提名开放": datetime(2026, 7, 28, 14, 0, tzinfo=ZoneInfo("UTC")),
"提名截止": datetime(2026, 8, 11, 14, 0, tzinfo=ZoneInfo("UTC")),
}
local_zone = ZoneInfo(LOCAL_TIMEZONE)
for label, utc_time in period.items():
local_time = utc_time.astimezone(local_zone)
print(f"{label}: {local_time:%Y-%m-%d %H:%M %Z}")
print(f"窗口长度: {period['提名截止'] - period['提名开放']}")
在中国标准时间环境下,输出应类似:
提名开放: 2026-07-28 22:00 CST
提名截止: 2026-08-11 22:00 CST
窗口长度: 14 days, 0:00:00
zoneinfo 会根据时区数据库处理夏令时,比手工增加或减少固定小时数更可靠。部分精简系统或 Windows 环境如果缺少 IANA 时区数据,可以安装 tzdata:
python -m pip install tzdata
python nomination_dates.py
把提醒写进日历
只记录最终截止时间风险较高。可以这样实践:分别设置开放提醒、截止前三天提醒和截止前一天提醒。下面的 Python 脚本会生成一个可导入常见日历应用的 python-packaging-council-nominations.ics 文件。
from pathlib import Path
calendar = """BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Python Packaging Council Nomination Reminder//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:ppc-nominations-open-2026@example.invalid
DTSTAMP:20260101T000000Z
DTSTART:20260728T140000Z
DTEND:20260728T143000Z
SUMMARY:Python Packaging Council nominations open
DESCRIPTION:Review the official nomination instructions and requirements.
END:VEVENT
BEGIN:VEVENT
UID:ppc-nominations-close-2026@example.invalid
DTSTAMP:20260101T000000Z
DTSTART:20260811T140000Z
DTEND:20260811T143000Z
SUMMARY:Python Packaging Council nominations close
DESCRIPTION:Nomination period closes at this UTC time.
BEGIN:VALARM
TRIGGER:-P3D
ACTION:DISPLAY
DESCRIPTION:Three days remain before nominations close.
END:VALARM
BEGIN:VALARM
TRIGGER:-P1D
ACTION:DISPLAY
DESCRIPTION:One day remains before nominations close.
END:VALARM
END:VEVENT
END:VCALENDAR
"""
path = Path("python-packaging-council-nominations.ics")
path.write_text(calendar, encoding="utf-8", newline="\r\n")
print(f"Created: {path.resolve()}")
这段代码只负责创建时间提醒,不代表官方提名入口,也没有假设候选人需要提交哪些材料。正式规则发布后,可以再把官方要求补充到日历描述或团队任务系统中。
参与前的核对清单
在提名窗口打开之前,建议完成以下准备:
- 确认本地时区对应的开放和截止时刻。
- 阅读正式选举说明,核对资格、提名方式和材料要求。
- 不要等到最后几小时才提交,给账号、网络或材料修订留出余量。
- 提交后保留确认信息,并检查是否还有后续步骤。
- 若代表项目或组织参与,提前明确内部审批和公开表态的边界。
这次提名开启的是 Python Packaging Council 的首届选举,既有时间窗口明确,也可能伴随一套新的流程。最稳妥的做法是现在设置提醒,待完整规则公布后再按正式要求行动。