function is lacking a `__signature__` attribute
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
从 stdlib/builtins.pyi 的第 1009 行附近开始,检查 function class 是如何声明的。将请求的 signature 可选支持与 PEP 362 以及提供的赋值示例进行比较,然后验证 stub 更改完成后,诸如 pyright 这样的类型检查器能够接受它。
由索引模型根据 Issue 内容生成。
描述
PEP-362 specifies that in order to cache the signature of any function, it is possible for the user to set its __signature__ attribute.
Actual
This attribute is not set in the builtins module over at https://github.com/python/typeshed/blob/main/stdlib/builtins.pyi#L1009
As a result a typechecker might reject the following piece of code
from inspect import signature
def main():
def f():
pass
f.__signature__ = signature(f)
if __name__ == "__main__":
main()
e.g. with pyright I have a false positive
/Users/leogermond/Lab/python/signature/main.py
/Users/leogermond/Lab/python/signature/main.py:9:7 - error: Cannot assign to attribute "__signature__" for class "function"
Attribute "__signature__" is unknown (reportFunctionMemberAccess)
1 error, 0 warnings, 0 informations
Expected
I would the __signature__ attribute to be specified in the function class (with a special marker indicating it's optional?) of the builtins module. A type checker such as pyright could then infer that setting this attribute is possible and accept the piece of code given in example.
- 主要语言
- Python
- 星标
- 5.1k
- 派生
- 2.1k
- 平均合并
- 2 天 7 分钟
- 30 天内合并 PR
- 116
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
python/typeshed 的其他 Issue
-
`networkx.set_edge_attributes` should support scalar value + name可能已有人在做 @Fire162 于 9 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 67/100
维护者通常 1 天内回复
-
false alarm on decode call可能已有人在做 @jw9829 于 36 天前认领。 未关闭help wanted stubs: false positive
难度 2/5 1-3 小时 新手友好度 76/100
python/typeshed#16441 · 1 条评论 ·
维护者通常 1 天内回复
-
Don't run pyright basic checks on projects with strict pyright settings in CI可能已有人在做 @Mohith1612 于 73 天前认领。 未关闭project: infrastructure
难度 2/5 1-3 小时 新手友好度 68/100
python/typeshed#16005 · 1 条评论 ·
维护者通常 1 天内回复
-
stubs: improvement
难度 2/5 1-3 小时 新手友好度 72/100
python/typeshed#15548 · 5 条评论 ·
维护者通常 1 天内回复
-
stubs: improvement
难度 2/5 1-3 小时 新手友好度 64/100
python/typeshed#15529 · 5 条评论 ·
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
enhancement good first issue
难度 2/5 1-3 小时 新手友好度 78/100
elviskahoro/sdk-python-attio#144 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
RenyiELBO raises TypeError when model has no sample sites可能已有人在做 @alibb007 今天认领。 未关闭
难度 1/5 1 小时以内 新手友好度 85/100
维护者通常 1 天内回复
-
[Bug]: Four evaluation scripts unpack init_memmachine_params's five return values into three names未关闭
难度 1/5 1 小时以内 新手友好度 88/100
MemMachine/MemMachine#1911 ·
维护者通常 3 天内回复