`anyOf` in responses generates invalid body parser
还没有人认领这个 Issue。
评估
调研方向
从 issue 中链接的 OpenAPI Spec File 开始,复现使用 anyOf 的响应 schema 所生成的 parse_response_200 示例。比较生成的 parser 分支,并验证输出有效,且能够解析 fixed-value 和 Response200 两种备选项。
由索引模型根据 Issue 内容生成。
描述
Describe the bug
When a response media type has an anyOf schema, the generated code does not parse it properly/is not valid. (see add'l context)
OpenAPI Spec File
https://gist.github.com/nkrishnaswami/8c4a2068d8ac59cab153136a6069b44d
Desktop (please complete the following information):
- OS: macOS 15.6
- Python Version: 3.12.8
- openapi-python-client version: git revision
13bf2e8
Additional context
def _parse_response_200(data: object) -> Union["Response200", Literal["Why have a fixed response? I dunno"]]:
response_200_type_0 = cast(Literal["Why have a fixed response? I dunno"], data)
if response_200_type_0 != "Why have a fixed response? I dunno":
raise ValueError(
f"response_200_type_0 must match const 'Why have a fixed response? I dunno', got '{response_200_type_0}'"
)
return response_200_type_0
if not isinstance(data, dict):
raise TypeError()
response_200_type_1 = Response200.from_dict(data)
return response_200_type_1
- 主要语言
- Python
- 星标
- 2k
- 派生
- 293
- 平均合并
- 34 分钟
- 30 天内合并 PR
- 1
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
openapi-generators/openapi-python-client 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 2/5 1-3 小时 新手友好度 65/100
-
难度 3/5 1-2 天 新手友好度 72/100
openapi-generators/openapi-python-client#1451 · 1 条评论 ·
-
难度 3/5 1-2 天 新手友好度 52/100
-
难度 3/5 1-2 天 新手友好度 64/100
openapi-generators/openapi-python-client#1435 · 1 条评论 ·
查看 openapi-generators/openapi-python-client 的全部 Issue
相似的 Issue
-
essnmx good first issue
难度 1/5 1 小时以内 新手友好度 95/100
-
难度 2/5 1-3 小时 新手友好度 65/100
syfoud/Simulated_Scepter#174 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
Giskard-AI/giskard-oss#2840 · 1 条评论 ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success 未关闭area: repo bug perceived difficulty: 2
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 75/100
yeti-platform/yeti#1380 ·