refactor: python-dateutil 换成标准库
- contest 后台创建/编辑:dateutil.parser.parse 换成 datetime.fromisoformat。serializer 里 start_time/end_time 声明的是 DateTimeField,而 validate_serializer 做的是 request.data = s.data, 即重新序列化一遍,所以视图拿到的必定是 DRF 规范化后的 ISO 8601, dateutil 的宽容解析能力在这里从来没用上 - AI 学情统计:relativedelta 换成 shift_months 辅助函数,复刻月末 收缩语义(1月31日 + 1个月 = 2月28/29日)。_parse_duration 的配置 由 delta 对象改为 rewind/advance 可调用,周档和月档统一 删除依赖:python-dateutil、six Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -427,10 +427,6 @@ pydantic-core==2.46.3 \
|
||||
--hash=sha256:ff5e7783bcc5476e1db448bf268f11cb257b1c276d3e89f00b5727be86dd0127 \
|
||||
--hash=sha256:ffe0883b56cfc05798bf994164d2b2ff03efe2d22022a2bb080f3b626176dd56
|
||||
# via pydantic
|
||||
python-dateutil==2.9.0.post0 \
|
||||
--hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \
|
||||
--hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427
|
||||
# via onlinejudge
|
||||
python-dotenv==1.2.2 \
|
||||
--hash=sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a \
|
||||
--hash=sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3
|
||||
@@ -505,10 +501,6 @@ sentry-sdk==2.59.0 \
|
||||
--hash=sha256:abcf65ee9a9d9cdebf9ad369782408ecca9c1c792686ef06ba34f5ab233527fe \
|
||||
--hash=sha256:cd265808ef8bf3f3edf69b527c0a0b2b6b1322762679e55b8987db2e9584aec1
|
||||
# via onlinejudge
|
||||
six==1.17.0 \
|
||||
--hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \
|
||||
--hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81
|
||||
# via python-dateutil
|
||||
sniffio==1.3.1 \
|
||||
--hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \
|
||||
--hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc
|
||||
|
||||
Reference in New Issue
Block a user