[ty] Enable narrowing for unions of TypedDict#25188
Conversation
Typing conformance resultsNo changes detected ✅Current numbersThe percentage of diagnostics emitted that were expected errors held steady at 89.36%. The percentage of expected errors that received a diagnostic held steady at 85.49%. The number of fully passing files held steady at 88/134. |
Memory usage reportMemory usage unchanged ✅ |
|
| Lint rule | Added | Removed | Changed |
|---|---|---|---|
invalid-key |
0 | 1,013 | 2 |
invalid-argument-type |
22 | 1 | 2 |
not-iterable |
3 | 0 | 0 |
unresolved-attribute |
1 | 0 | 0 |
unused-type-ignore-comment |
1 | 0 | 0 |
| Total | 27 | 1,014 | 4 |
Showing a random sample of 272 of 1045 changes. See the HTML report for the full diff.
Raw diff sample (272 of 1045 changes)
core (https://github.com/home-assistant/core)
- homeassistant/components/cloud/alexa_config.py:546:45 error[invalid-key] Unknown key "old_entity_id" for TypedDict `_EventEntityRegistryUpdatedData_CreateRemove` (subscripted object has type `_EventEntityRegistryUpdatedData_CreateRemove | _EventEntityRegistryUpdatedData_Update`)
+ homeassistant/components/cloud/alexa_config.py:546:34 error[invalid-argument-type] Argument to bound method `list.append` is incorrect: Expected `str`, found `object`
cwltool (https://github.com/common-workflow-language/cwltool)
- cwltool/builder.py:273:24 error[invalid-key] Unknown key "type" for TypedDict `CWLDirectoryType` (subscripted object has type `(int & Top[MutableMapping[Unknown, Unknown]] & ~Top[MutableSequence[Unknown]]) | (str & Top[MutableMapping[Unknown, Unknown]] & ~Top[MutableSequence[Unknown]]) | (float & Top[MutableMapping[Unknown, Unknown]] & ~Top[MutableSequence[Unknown]]) | ... omitted 3 union elements`)
- cwltool/builder.py:276:20 error[invalid-key] Unknown key "inputBinding" for TypedDict `CWLDirectoryType` (subscripted object has type `(int & Top[MutableMapping[Unknown, Unknown]] & ~Top[MutableSequence[Unknown]]) | (str & Top[MutableMapping[Unknown, Unknown]] & ~Top[MutableSequence[Unknown]]) | (float & Top[MutableMapping[Unknown, Unknown]] & ~Top[MutableSequence[Unknown]]) | ... omitted 3 union elements`)
+ cwltool/builder.py:276:20 error[invalid-key] Unknown key "inputBinding" for TypedDict `CWLDirectoryType` (subscripted object has type `(int & Top[MutableMapping[Unknown, Unknown]] & <Protocol with members '__contains__'> & ~Top[MutableSequence[Unknown]]) | (str & Top[MutableMapping[Unknown, Unknown]] & <Protocol with members '__contains__'> & ~Top[MutableSequence[Unknown]]) | (float & Top[MutableMapping[Unknown, Unknown]] & <Protocol with members '__contains__'> & ~Top[MutableSequence[Unknown]]) | ... omitted 3 union elements`)
- cwltool/process.py:1071:41 error[invalid-key] Unknown key "requirements" for TypedDict `CWLFileType` (subscripted object has type `(MutableSequence[MutableMapping[str, int | str | float | ... omitted 5 union elements]] & Top[MutableMapping[Unknown, Unknown]]) | MutableMapping[str, int | str | float | ... omitted 5 union elements] | (int & Top[MutableMapping[Unknown, Unknown]]) | ... omitted 6 union elements`)
pydantic (https://github.com/pydantic/pydantic)
- pydantic/_internal/_schema_gather.py:111:29 error[invalid-argument-type] Argument to function `traverse_schema` is incorrect: Expected `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`, found `Unknown | InvalidSchema | AnySchema | ... omitted 51 union elements`
+ pydantic/_internal/_schema_gather.py:111:29 error[invalid-argument-type] Argument to function `traverse_schema` is incorrect: Expected `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`, found `object`
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `AfterValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `AnySchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `BeforeValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `CallableSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `ComputedField` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `CustomErrorSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `DictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `FormatSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `LiteralSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `ModelFieldsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `ModelSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `NoneSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `NullableSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `PlainValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `TaggedUnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `TypedDictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:111:36 error[invalid-key] Unknown key "items_schema" for TypedDict `WrapSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `BoolSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `ComplexSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `DataclassArgsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `DataclassSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `DateSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `DatetimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `DecimalSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `InvalidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `JsonOrPythonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `JsonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `LiteralSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `MissingSentinelSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `ModelFieldsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `NoneSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `TimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `TypedDictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `UnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `WithDefaultSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:114:29 error[invalid-key] Unknown key "items_schema" for TypedDict `WrapValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `AfterValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `BeforeValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `ComplexSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `DataclassArgsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `FloatSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `FormatSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `InvalidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `JsonOrPythonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `LiteralSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `ModelSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `NullableSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `PlainSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `PlainValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `TimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `ToStringSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:118:36 error[invalid-key] Unknown key "keys_schema" for TypedDict `WithDefaultSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `ArgumentsV3Schema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `ComputedField` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `DateSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `DefinitionsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `FloatSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `FormatSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `FrozenSetSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `IsInstanceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `JsonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `ModelSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `PlainSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `StringSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `UrlSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:120:36 error[invalid-key] Unknown key "values_schema" for TypedDict `WithDefaultSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
+ pydantic/_internal/_schema_gather.py:120:29 error[invalid-argument-type] Argument to function `traverse_schema` is incorrect: Expected `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`, found `object`
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `ComplexSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `DataclassArgsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `DatetimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `EnumSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `FloatSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `IsSubclassSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `JsonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `ModelSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `PlainSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `TaggedUnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `TimedeltaSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:138:36 error[invalid-key] Unknown key "extras_schema" for TypedDict `UnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
+ pydantic/_internal/_schema_gather.py:138:29 error[invalid-argument-type] Argument to function `traverse_schema` is incorrect: Expected `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`, found `object`
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `AfterValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `ArgumentsV3Schema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `DecimalSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `DictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `EnumSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `FormatSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `InvalidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `ListSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `ModelSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `TimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `ToStringSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `TupleSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `UrlSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:140:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `WrapValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `AnySchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `BytesSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `DefinitionsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `LiteralSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `NoneSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `PlainValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `TaggedUnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `TimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `TimedeltaSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:146:29 error[invalid-key] Unknown key "computed_fields" for TypedDict `TupleSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `AfterValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `ChainSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `ComputedField` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `DateSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `DecimalSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `EnumSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `IsInstanceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `MissingSentinelSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `ModelFieldsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `ModelSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `MultiHostUrlSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `PlainSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `PlainValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `SimpleSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `TimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:154:36 error[invalid-key] Unknown key "var_args_schema" for TypedDict `WrapValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `AnySchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `BeforeValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `BoolSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `BytesSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `ChainSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `DataclassSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `DateSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `DatetimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `DecimalSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `DefinitionReferenceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `DefinitionsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `GeneratorSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `InvalidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `IsInstanceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `JsonOrPythonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `JsonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `MissingSentinelSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `ModelSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `TypedDictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:156:36 error[invalid-key] Unknown key "var_kwargs_schema" for TypedDict `WrapSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `CallableSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `ComplexSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `DataclassArgsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `DatetimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `FormatSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `IntSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `InvalidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `IsInstanceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `IsSubclassSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `LaxOrStrictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `ListSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `LiteralSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `MultiHostUrlSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `StringSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `TimedeltaSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:163:36 error[invalid-key] Unknown key "return_schema" for TypedDict `ToStringSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
+ pydantic/_internal/_schema_gather.py:163:29 error[invalid-argument-type] Argument to function `traverse_schema` is incorrect: Expected `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`, found `object`
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `ArgumentsV3Schema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `BoolSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `DecimalSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `IntSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `LaxOrStrictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `PlainSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `PlainValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `SimpleSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `TaggedUnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `ToStringSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `TypedDictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:168:36 error[invalid-key] Unknown key "schema" for TypedDict `UuidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
+ pydantic/_internal/_schema_gather.py:168:29 error[invalid-argument-type] Argument to function `traverse_schema` is incorrect: Expected `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`, found `object`
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `AfterValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `AnySchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `BytesSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `CallSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `DecimalSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `GeneratorSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `IsInstanceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `JsonOrPythonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `LaxOrStrictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `LiteralSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ModelSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `NullableSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `TaggedUnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `TimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `TypedDictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `UuidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:170:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `WrapSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `BeforeValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `DateSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `FormatSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `IntSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `InvalidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `JsonOrPythonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `ListSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `NoneSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `SimpleSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `UuidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:174:36 error[invalid-key] Unknown key "return_schema" for TypedDict `WrapValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `AfterValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ArgumentsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ComplexSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ComputedField` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `DictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `GeneratorSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `MissingSentinelSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ModelFieldsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ModelSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ModelSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:176:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `TaggedUnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `ArgumentsV3Schema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `BeforeValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `BytesSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `ChainSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `ComplexSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `DefinitionReferenceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `DefinitionsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `EnumSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `FloatSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `IsInstanceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `IsSubclassSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `JsonSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `ModelSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `SimpleSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:180:36 error[invalid-key] Unknown key "return_schema" for TypedDict `WrapValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:182:36 error[invalid-key] Unknown key "schema" for TypedDict `CallSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:182:36 error[invalid-key] Unknown key "schema" for TypedDict `DataclassArgsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:182:36 error[invalid-key] Unknown key "schema" for TypedDict `DateSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:182:36 error[invalid-key] Unknown key "schema" for TypedDict `DefinitionReferenceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:182:36 error[invalid-key] Unknown key "schema" for TypedDict `FloatSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:182:36 error[invalid-key] Unknown key "schema" for TypedDict `GeneratorSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:182:36 error[invalid-key] Unknown key "schema" for TypedDict `TaggedUnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:182:36 error[invalid-key] Unknown key "schema" for TypedDict `TimedeltaSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
+ pydantic/_internal/_schema_gather.py:182:29 error[invalid-argument-type] Argument to function `traverse_schema` is incorrect: Expected `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`, found `object`
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ArgumentsV3Schema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `CallSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ComplexSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `DictSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `InvalidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `IsSubclassSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ModelFieldsSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `ModelSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `PlainSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `TupleSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `UrlSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `WithDefaultSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:184:36 error[invalid-key] Unknown key "json_schema_input_schema" for TypedDict `WrapSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `AnySchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `CallSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `DatetimeSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `DefinitionReferenceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `FrozenSetSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `GeneratorSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `InvalidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `IsInstanceSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `LiteralSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `NoneSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `PlainValidatorFunctionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `UnionSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:187:36 error[invalid-key] Unknown key "schema" for TypedDict `UuidSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:190:32 error[invalid-key] Unknown key "serialization" for TypedDict `ToStringSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
- pydantic/_internal/_schema_gather.py:190:32 error[invalid-key] Unknown key "serialization" for TypedDict `WrapSerializerFunctionSerSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 56 union elements`)
+ pydantic/json_schema.py:503:47 error[invalid-argument-type] Argument to bound method `GenerateJsonSchema.ser_schema` is incorrect: Expected `SimpleSerSchema | PlainSerializerFunctionSerSchema | WrapSerializerFunctionSerSchema | ... omitted 5 union elements`, found `object`
- pydantic/json_schema.py:465:39 error[invalid-key] Unknown key "ref" for TypedDict `DataclassField` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 53 union elements`)
- pydantic/json_schema.py:465:39 error[invalid-key] Unknown key "ref" for TypedDict `ModelField` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 53 union elements`)
+ pydantic/json_schema.py:465:32 error[invalid-argument-type] Argument is incorrect: Expected `str`, found `object`
- pydantic/json_schema.py:472:48 error[invalid-key] Unknown key "ref" for TypedDict `MissingSentinelSchema` (subscripted object has type `InvalidSchema | AnySchema | NoneSchema | ... omitted 49 union elements`)
Merging this PR will degrade performance by 7.41%
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
c22ebe7 to
250e108
Compare
ac900be to
d98fa0e
Compare
d98fa0e to
efa66e3
Compare
164fe42 to
3c3c0fd
Compare
3c3c0fd to
b27ecd1
Compare
da109f4 to
8802453
Compare
| @@ -1412,11 +1414,38 @@ impl<'db, 'ast> NarrowingConstraintsBuilder<'db, 'ast> { | |||
| && let rhs_type = inference.expression_type(&comparators[0]) | |||
| && is_or_contains_typeddict(self.db, rhs_type) | |||
There was a problem hiding this comment.
This isn't necessary, but retaining it to avoid protocol in the type display where it isn't required.
There was a problem hiding this comment.
We can obviously gate the logic further (e.g., avoid intersecting with a Literal within a Union, etc.) if we want.
There was a problem hiding this comment.
Okay, I did that part too because it was bothering me :)
There was a problem hiding this comment.
Hmm, worryingly, adding this is_or_contains_typeddict gate (I removed it in a prior commit) materially changed the diagnostics:
There was a problem hiding this comment.
I think we should try broadening this, it would be much more principled. But let's see about improving our subtyping and disjointness for these synthesized protocols first. And it could also have performance implications, so best done as a followup.
30f01eb to
08145e0
Compare
| fn narrow_with_present_key(&self, ty: Type<'db>, key: &str) -> Type<'db> { | ||
| let key_presence_constraint = typeddict_key_getitem_protocol(self.db, key); | ||
|
|
||
| let db = self.db; | ||
| let constrain = |ty| IntersectionType::from_two_elements(db, ty, key_presence_constraint); | ||
|
|
||
| match ty.resolve_type_alias(self.db) { | ||
| Type::Union(union) => UnionType::from_elements( | ||
| self.db, | ||
| union | ||
| .elements(self.db) | ||
| .iter() | ||
| .map(|element| self.narrow_with_present_key(*element, key)), | ||
| ), | ||
| _ => constrain(ty), | ||
| } | ||
| } |
There was a problem hiding this comment.
You can simplify this. You don't need to manually map over the union elements (the IntersectionBuilder already does that). And I'd just inline the typeddict_key_getitem_protocol function, which is only called from this single callsite:
diff --git a/crates/ty_python_semantic/src/types/narrow.rs b/crates/ty_python_semantic/src/types/narrow.rs
index bfcdc0c2a0..acccb1b7b7 100644
--- a/crates/ty_python_semantic/src/types/narrow.rs
+++ b/crates/ty_python_semantic/src/types/narrow.rs
@@ -2047,21 +2047,27 @@ impl<'db, 'ast> NarrowingConstraintsBuilder<'db, 'ast> {
}
fn narrow_with_present_key(&self, ty: Type<'db>, key: &str) -> Type<'db> {
- let key_presence_constraint = typeddict_key_getitem_protocol(self.db, key);
-
- let db = self.db;
- let constrain = |ty| IntersectionType::from_two_elements(db, ty, key_presence_constraint);
-
- match ty.resolve_type_alias(self.db) {
- Type::Union(union) => UnionType::from_elements(
+ let signature = Signature::new(
+ Parameters::new(
self.db,
- union
- .elements(self.db)
- .iter()
- .map(|element| self.narrow_with_present_key(*element, key)),
+ [
+ Parameter::positional_only(Some(Name::new_static("self"))),
+ Parameter::positional_only(Some(Name::new_static("key")))
+ .with_annotated_type(Type::string_literal(self.db, key)),
+ ],
),
- _ => constrain(ty),
- }
+ Type::object(),
+ );
+
+ let key_presence_constraint = Type::protocol_with_methods(
+ self.db,
+ [(
+ "__getitem__",
+ CallableType::function_like(self.db, signature),
+ )],
+ );
+
+ IntersectionType::from_two_elements(self.db, ty, key_presence_constraint)
}
/// Narrow tagged unions of tuples with `Literal` elements.
@@ -2187,25 +2193,6 @@ fn is_or_contains_typeddict<'db>(db: &'db dyn Db, ty: Type<'db>) -> bool {
}
}
-fn typeddict_key_getitem_protocol<'db>(db: &'db dyn Db, key: &str) -> Type<'db> {
- let signature = Signature::new(
- Parameters::new(
- db,
- [
- Parameter::positional_only(Some(Name::new_static("self"))),
- Parameter::positional_only(Some(Name::new_static("key")))
- .with_annotated_type(Type::string_literal(db, key)),
- ],
- ),
- Type::object(),
- );
-
- Type::protocol_with_methods(
- db,
- [("__getitem__", CallableType::function_like(db, signature))],
- )
-}
-
fn is_supported_tag_literal(ty: Type) -> bool {
matches!(
ty.as_literal_value_kind(),There was a problem hiding this comment.
having realised #25188 (comment), I no longer think that applying this patch directly would be a good idea :-)
| def literal_union(u: Foo | Literal["abc"]): | ||
| if "a" in u: | ||
| # revealed: (Foo & <Protocol with members '__getitem__'>) | (Literal["abc"] & <Protocol with members '__getitem__'>) | ||
| reveal_type(u) |
There was a problem hiding this comment.
okay, this does reveal a problem with the approach I was suggesting... just because "a" in obj resolves to True doesn't necessarily mean that obj["a"] is a valid operation. "abc"["a"] fails at runtime even though "a" in "abc" resolves to True.
I think maybe that does suggest that something more similar to one of your earlier approaches might be better... for a TypedDict (as a standalone type or a union member), we want to intersect with a protocol that has a __getitem__(self, key: Literal["a"]) -> object method. But for any non-TypedDict, we probably just want to intersect with a protocol that has a __contains__(self, key: Literal["a"]) -> Literal[True]. Intersecting with the __getitem__ protocol is only safe for TypedDict types, not for other types.
In retrospect this feels obvious. Sorry for sending you round the houses on this, that only occurred to me now :-(
There was a problem hiding this comment.
Lol how did we not notice this
There was a problem hiding this comment.
I guess it's also unsafe for dict and other types due to subclassing?
| .iter() | ||
| .map(|element| self.narrow_with_present_key(*element, key)), | ||
| ), | ||
| resolved if is_or_contains_typeddict(self.db, resolved) => { |
There was a problem hiding this comment.
(I believe is_or_contains_typeddict in this case is just checking for Type::TypedDict and intersections, since unions should be covered by the above. We could use a separate check but doesn't feel critical.)
Summary
See the extensive discussion in astral-sh/ty#3461. To perform sound narrowing with a union of TypedDicts after validating that a key is present, we can intersect the union with a protocol that indicates existence of the member (returning
object).Closes astral-sh/ty#3461.