cloudpickle fails to pickle NewType in main module by value on Python 3.10 and newer
还没有人认领这个 Issue。
评估
调研方向
首先在 Python 3.9 和 3.10 下运行 a.py 和 b.py 复现脚本,然后跟踪 cloudpickle 对 main 中定义的 typing.NewType 对象的处理方式。当 a.py 序列化的对象可以在 Python 3.10 及更高版本中由 b.py 加载且不再出现 AttributeError,同时保留现有的 Python 3.9 行为时,即视为完成。
由索引模型根据 Issue 内容生成。
描述
In a.py:
import cloudpickle
from typing import Any, NewType
RunDict = NewType("RunDict", dict[str, Any])
with open("tmp.pickle", "wb") as f:
f.write(cloudpickle.dumps(RunDict))
In b.py
import cloudpickle
with open("tmp.pickle", "rb") as f:
value = cloudpickle.load(f)
print(value)
λ python3.9 a.py
λ python3.9 b.py
<function NewType.<locals>.new_type at 0x1004580d0>
λ python3.10 a.py
λ python3.10 b.py
Traceback (most recent call last):
File "/Users/shantanu/devoai/openai/b.py", line 3, in <module>
value = cloudpickle.load(f)
AttributeError: Can't get attribute 'RunDict' on <module '__main__' from '/Users/shantanu/devoai/openai/b.py'>
- 主要语言
- Python
- 星标
- 1.9k
- 派生
- 197
- 平均合并
- 1 天 10 小时
- 30 天内合并 PR
- 1
环境准备
我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
cloudpipe/cloudpickle 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
cloudpipe/cloudpickle#593 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 42/100
cloudpipe/cloudpickle#595 ·
-
难度 3/5 1-2 天 新手友好度 65/100
cloudpipe/cloudpickle#592 · 2 条评论 ·
-
难度 5/5 一周以上 新手友好度 35/100
cloudpipe/cloudpickle#589 ·
-
难度 5/5 一周以上 新手友好度 20/100
cloudpipe/cloudpickle#587 ·
查看 cloudpipe/cloudpickle 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
solana-foundation/pay-kit#341 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
nasa/python_cmr#123 ·
-
难度 1/5 1 小时以内 新手友好度 92/100
EleutherAI/lm-evaluation-harness#4243 ·
维护者通常 1 天内回复
-
area: dashboard bug perceived difficulty: 3
难度 2/5 1-3 小时 新手友好度 88/100
Nitjsefnie-Harness-Commons/daedalus#1179 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
cusp-ai-oss/tojax#17 ·