2026 年 Python Packaging Council 首届选举提名即将开放

2026-07-23 35 预计阅读时间: 1 分钟
来源: blog.python.org AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:6 分钟

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/ShanghaiEurope/BerlinAmerica/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 的首届选举,既有时间窗口明确,也可能伴随一套新的流程。最稳妥的做法是现在设置提醒,待完整规则公布后再按正式要求行动。


相关推荐