Skip to content

[ty] Support TypeVarTuple and Unpack#25240

Draft
dhruvmanila wants to merge 25 commits into
mainfrom
dhruv/codex/typevartuple-support
Draft

[ty] Support TypeVarTuple and Unpack#25240
dhruvmanila wants to merge 25 commits into
mainfrom
dhruv/codex/typevartuple-support

Conversation

@dhruvmanila

@dhruvmanila dhruvmanila commented May 19, 2026

Copy link
Copy Markdown
Member

Summary

WIP: Opening to look at ecosystem changes...

closes: astral-sh/ty#156
closes: astral-sh/ty#1746

Test Plan

@dhruvmanila dhruvmanila added the ty Multi-file analysis & type inference label May 19, 2026
@dhruvmanila dhruvmanila changed the title [ty] Add initial TypeVarTuple support [ty] Add initial TypeVarTuple support May 19, 2026
@dhruvmanila dhruvmanila force-pushed the dhruv/codex/typevartuple-support branch from 81058e6 to c9b3969 Compare May 19, 2026 15:00
@astral-sh-bot

astral-sh-bot Bot commented May 19, 2026

Copy link
Copy Markdown

Typing conformance results improved 🎉

The percentage of diagnostics emitted that were expected errors increased from 92.23% to 94.77%. The percentage of expected errors that received a diagnostic increased from 87.42% to 89.47%. The number of fully passing files improved from 92/134 to 97/134.

Summary

How are test cases classified?

Each test case represents one expected error annotation or a group of annotations sharing a tag. Counts are per test case, not per diagnostic — multiple diagnostics on the same line count as one. Required annotations (E) are true positives when ty flags the expected location and false negatives when it does not. Optional annotations (E?) are true positives when flagged but true negatives (not false negatives) when not. Tagged annotations (E[tag]) require ty to flag exactly one of the tagged lines; tagged multi-annotations (E[tag+]) allow any number up to the tag count. Flagging unexpected locations counts as a false positive.

Metric Old New Diff Outcome
True Positives 938 960 +22 ⏫ (✅)
False Positives 79 53 -26 ⏬ (✅)
False Negatives 135 113 -22 ⏬ (✅)
Total Diagnostics 1067 1065 -2
Precision 92.23% 94.77% +2.54% ⏫ (✅)
Recall 87.42% 89.47% +2.05% ⏫ (✅)
Passing Files 92/134 97/134 +5 ⏫ (✅)

Test file breakdown

8 files altered
File True Positives False Positives False Negatives Status
generics_typevartuple_specialization.py 6 (+4) ✅ 0 (-15) ✅ 0 (-4) ✅ ✅ Newly Passing 🎉
generics_typevartuple_args.py 8 (+8) ✅ 0 (-3) ✅ 0 (-8) ✅ ✅ Newly Passing 🎉
generics_typevartuple_basic.py 13 (+8) ✅ 1 1 (-8) ✅ 📈 Improving
generics_typevartuple_callable.py 1 (+1) ✅ 0 (-3) ✅ 0 (-1) ✅ ✅ Newly Passing 🎉
generics_defaults.py 5 4 (-3) ✅ 1 📈 Improving
generics_typevartuple_unpack.py 1 (+1) ✅ 0 0 (-1) ✅ ✅ Newly Passing 🎉
aliases_type_statement.py 24 0 (-1) ✅ 1 📈 Improving
generics_typevartuple_concat.py 0 0 (-1) ✅ 0 ✅ Newly Passing 🎉
Total (all files) 960 (+22) ✅ 53 (-26) ✅ 113 (-22) ✅ 97/134

True positives added (22)

22 diagnostics
Test case Diff

generics_typevartuple_args.py:33

+error[invalid-argument-type] Argument to function `exec_le` is incorrect: Expected `tuple[Literal[0], Env]`, found `tuple[Literal[0], Literal[""]]`

generics_typevartuple_args.py:34

+error[invalid-argument-type] Argument to function `exec_le` is incorrect: Expected `tuple[Literal[0], Env]`, found `tuple[Literal[0], Literal[""]]`

generics_typevartuple_args.py:48

+error[invalid-argument-type] Argument to function `func1` is incorrect: Expected `tuple[int, ...]`, found `tuple[Literal[1], Literal["2"], Literal[3]]`

generics_typevartuple_args.py:57

+error[invalid-argument-type] Argument to function `func2` is incorrect: Expected `tuple[int, *tuple[str, ...], str]`, found `tuple[Literal[1], Literal[1], Literal[""]]`

generics_typevartuple_args.py:58

+error[invalid-argument-type] Argument to function `func2` is incorrect: Expected `tuple[int, *tuple[str, ...], str]`, found `tuple[Literal[1]]`

generics_typevartuple_args.py:59

+error[invalid-argument-type] Argument to function `func2` is incorrect: Expected `tuple[int, *tuple[str, ...], str]`, found `tuple[Literal[""]]`

generics_typevartuple_args.py:67

+error[invalid-argument-type] Argument to function `func3` is incorrect: Expected `tuple[int, str]`, found `tuple[Literal[1]]`

generics_typevartuple_args.py:75

+error[invalid-argument-type] Argument to function `func4` is incorrect: Expected `tuple[Literal[0]]`, found `tuple[Literal[1], Literal[2]]`

generics_typevartuple_basic.py:100

+error[invalid-argument-type] Argument to function `multiply` is incorrect: Expected `Array[Height | Width]`, found `Array[Height]`
+error[invalid-argument-type] Argument to function `multiply` is incorrect: Expected `Array[Height | Width]`, found `Array[Width]`

generics_typevartuple_basic.py:101

+error[invalid-argument-type] Argument to function `multiply` is incorrect: Expected `Array[Height]`, found `Array[Height, Width]`

generics_typevartuple_basic.py:43

+error[invalid-assignment] Object of type `Array[Shape@Array]` is not assignable to `Array[Batch, Height, Width]`
+error[invalid-argument-type] Argument to `Array.__init__` is incorrect: Expected `tuple[Batch, Height, Width]`, found `tuple[Batch, Width]`

generics_typevartuple_basic.py:53

+error[invalid-type-form] Bare TypeVarTuple `Shape` is not valid in this context in a parameter annotation

generics_typevartuple_basic.py:56

+error[invalid-type-form] Bare TypeVarTuple `Shape` is not valid in this context in a return type annotation

generics_typevartuple_basic.py:59

+error[invalid-type-form] Bare TypeVarTuple `Shape` is not valid in this context in a parameter annotation

generics_typevartuple_basic.py:91

+error[invalid-argument-type] Argument to function `func2` is incorrect: Expected `tuple[Literal[0], Literal[0]]`, found `tuple[Literal[0]]`

generics_typevartuple_basic.py:44

+error[invalid-assignment] Object of type `Array[Time, Batch, Width, Height]` is not assignable to `Array[Time, Batch, Height, Width]`

generics_typevartuple_callable.py:26

+error[invalid-argument-type] Argument to `Process.__init__` is incorrect: Expected `(int | Literal[""], str | Literal[0], /) -> None`, found `def func1(arg1: int, arg2: str) -> None`

generics_typevartuple_specialization.py:109

+error[invalid-type-form] `*` can only unpack a tuple type or `TypeVarTuple`

generics_typevartuple_specialization.py:110

+error[invalid-type-form] `Unpack` can only be used with a fixed tuple type in this context

generics_typevartuple_specialization.py:127

+error[invalid-type-arguments] No type arguments provided for required type variables `T1`, `T2`

generics_typevartuple_specialization.py:163

+error[invalid-type-form] A TypeVarTuple cannot be split to provide a fixed type argument

generics_typevartuple_unpack.py:30

+error[invalid-argument-type] Argument to function `process_batch_channels` is incorrect: Expected `Array[*tuple[Batch, *tuple[Any, ...], Channels]]`, found `Array[Batch]`

False positives removed (29)

29 diagnostics
Test case Diff

aliases_type_statement.py:10

-error[invalid-type-arguments] Too many type arguments: expected 2, got 3
-error[invalid-type-form] `...` is not allowed in this context in a type alias value

generics_defaults.py:139

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[str, int]`

generics_defaults.py:140

-error[type-assertion-failure] Type `Class_TypeVarTuple` does not match asserted type `@Todo(specialized non-generic class)`

generics_defaults.py:200

-error[invalid-type-form] The first argument to `Callable` must be either a list of types, ParamSpec, Concatenate, or `...`

generics_defaults.py:207

-error[type-assertion-failure] Type `@Todo(specialized non-generic class)` does not match asserted type `tuple[int, str]`

generics_defaults.py:208

-error[type-assertion-failure] Type `@Todo(specialized non-generic class)` does not match asserted type `(bytes, /) -> None`

generics_typevartuple_args.py:29

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[int, str]`

generics_typevartuple_args.py:31

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[()]`

generics_typevartuple_args.py:32

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[int, str]`

generics_typevartuple_basic.py:85

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[int]`

generics_typevartuple_callable.py:41

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[str, int, int | float | complex]`

generics_typevartuple_callable.py:42

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[str]`

generics_typevartuple_callable.py:50

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[int | float | complex, str, int | float]`

generics_typevartuple_concat.py:53

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[int, bool, str]`

generics_typevartuple_specialization.py:135

-error[type-assertion-failure] Type `tuple[tuple[@Todo(TypeVarTuple), ...], Unknown, Unknown]` does not match asserted type `tuple[tuple[()], str, bool]`

generics_typevartuple_specialization.py:136

-error[type-assertion-failure] Type `tuple[tuple[@Todo(TypeVarTuple), ...], Unknown, Unknown]` does not match asserted type `tuple[tuple[str], bool, int | float]`

generics_typevartuple_specialization.py:137

-error[type-assertion-failure] Type `tuple[tuple[@Todo(TypeVarTuple), ...], Unknown, Unknown]` does not match asserted type `tuple[tuple[str, bool], int | float, int]`

generics_typevartuple_specialization.py:148

-error[type-assertion-failure] Type `tuple[tuple[@Todo(TypeVarTuple), ...], Unknown, Unknown, Unknown]` does not match asserted type `tuple[tuple[()], str, bool, int | float]`

generics_typevartuple_specialization.py:149

-error[type-assertion-failure] Type `tuple[tuple[@Todo(TypeVarTuple), ...], Unknown, Unknown, Unknown]` does not match asserted type `tuple[tuple[bool], str, int | float, int]`

generics_typevartuple_specialization.py:157

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[*tuple[int, ...], int]`

generics_typevartuple_specialization.py:158

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[*tuple[int, ...], str]`

generics_typevartuple_specialization.py:159

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[*tuple[int, ...], str]`

generics_typevartuple_specialization.py:45

-error[not-subscriptable] Cannot subscript non-generic type `<class 'tuple[str, @Todo(specialized non-generic class)]'>`

generics_typevartuple_specialization.py:46

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[int, int | float, bool]`

generics_typevartuple_specialization.py:47

-error[type-assertion-failure] Type `Unknown` does not match asserted type `tuple[str, @Todo(specialized non-generic class)]`

generics_typevartuple_specialization.py:51

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[int]`

generics_typevartuple_specialization.py:93

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[str, int]`

generics_typevartuple_specialization.py:94

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[int | float]`

generics_typevartuple_specialization.py:95

-error[type-assertion-failure] Type `tuple[@Todo(TypeVarTuple), ...]` does not match asserted type `tuple[Any, *tuple[Any, ...]]`

True positives changed (4)

4 diagnostics
Test case Diff

generics_typevartuple_basic.py:42

-error[invalid-argument-type] Argument to `Array.__init__` is incorrect: Expected `tuple[@Todo(TypeVarTuple), ...]`, found `Height`
+error[invalid-assignment] Object of type `Array[Shape@Array]` is not assignable to `Array[Height, Width]`
+error[invalid-argument-type] Argument to `Array.__init__` is incorrect: Expected `tuple[Height, Width]`, found `Height`

generics_typevartuple_basic.py:65

-error[unknown-argument] Argument `covariant` does not match any known parameter of constructor `TypeVarTuple.__new__`
+error[invalid-legacy-type-variable] The `covariant` parameter of `typing.TypeVarTuple` was added in Python 3.15

generics_typevartuple_basic.py:66

-error[too-many-positional-arguments] Too many positional arguments to constructor `TypeVarTuple.__new__`: expected 2, got 4
+error[invalid-legacy-type-variable] `TypeVarTuple` can only have one positional argument

generics_typevartuple_basic.py:67

-error[unknown-argument] Argument `bound` does not match any known parameter of constructor `TypeVarTuple.__new__`
+error[invalid-legacy-type-variable] The `bound` parameter of `typing.TypeVarTuple` was added in Python 3.15

False positives changed (2)

2 diagnostics
Test case Diff

generics_defaults.py:204

-error[type-assertion-failure] Type `@Todo(specialized non-generic class)` does not match asserted type `tuple[int, str]`
+error[type-assertion-failure] Type `tuple[int]` does not match asserted type `tuple[int, str]`

generics_defaults.py:205

-error[type-assertion-failure] Type `@Todo(specialized non-generic class)` does not match asserted type `(int | float, bool, /) -> None`
+error[type-assertion-failure] Type `(...) -> None` does not match asserted type `(int | float, bool, /) -> None`

False positives added (3)

3 diagnostics
Test case Diff

generics_defaults.py:144

+error[invalid-type-form] `Unpack` can only unpack a tuple type or `TypeVarTuple`

generics_defaults.py:203

+error[invalid-type-arguments] Type argument for `ParamSpec` must be either a list of types, `ParamSpec`, `Concatenate`, or `...`

generics_typevartuple_basic.py:54

+error[unbound-type-variable] Type variable `Shape` is not bound to any outer generic context

@astral-sh-bot

astral-sh-bot Bot commented May 19, 2026

Copy link
Copy Markdown

Memory usage report

Summary

Project Old New Diff Outcome
prefect 564.52MB 564.56MB +0.01% (37.38kB)
trio 87.84MB 87.86MB +0.01% (12.85kB)
sphinx 207.60MB 207.60MB +0.00% (248.00B)
flake8 35.37MB 35.36MB -0.01% (1.86kB) ⬇️

Significant changes

Click to expand detailed breakdown

prefect

Name Old New Diff Outcome
Type<'db>::apply_specialization_inner_::interned_arguments 2.79MB 2.80MB +0.24% (6.88kB)
Type<'db>::apply_specialization_inner_ 3.18MB 3.19MB +0.20% (6.44kB)
infer_expression_types_impl 55.21MB 55.21MB +0.01% (6.12kB)
check_file_impl 17.81MB 17.81MB -0.02% (4.31kB)
FunctionType 4.15MB 4.15MB +0.07% (2.98kB)
infer_definition_types 75.88MB 75.87MB -0.00% (2.84kB)
Specialization 2.51MB 2.51MB +0.10% (2.45kB)
when_constraint_set_assignable_to_owned_impl 3.05MB 3.05MB +0.08% (2.43kB)
UnionType 1.37MB 1.37MB -0.17% (2.39kB)
CallableType 2.69MB 2.70MB +0.08% (2.22kB)
TupleType 761.16kB 763.33kB +0.29% (2.17kB)
Type<'db>::class_member_with_policy_ 10.02MB 10.02MB +0.02% (1.88kB)
GenericContext 334.38kB 336.05kB +0.50% (1.67kB)
FunctionType<'db>::signature_ 2.94MB 2.94MB +0.04% (1.12kB)
StaticClassLiteral<'db>::try_mro_ 4.33MB 4.33MB +0.02% (948.00B)
... 54 more

trio

Name Old New Diff Outcome
Type<'db>::apply_specialization_inner_::interned_arguments 505.31kB 508.91kB +0.71% (3.59kB)
Type<'db>::apply_specialization_inner_ 557.27kB 560.26kB +0.54% (2.98kB)
CallableType 666.08kB 668.22kB +0.32% (2.14kB)
TupleType 101.64kB 103.30kB +1.63% (1.66kB)
GenericContext 133.42kB 135.05kB +1.22% (1.62kB)
when_constraint_set_assignable_to_owned_impl 401.74kB 403.06kB +0.33% (1.32kB)
BoundTypeVarInstance 183.83kB 185.08kB +0.68% (1.25kB)
infer_definition_types 6.61MB 6.60MB -0.02% (1.22kB)
Specialization 454.97kB 455.72kB +0.16% (768.00B)
infer_scope_types_impl 3.78MB 3.78MB +0.02% (736.00B)
TypeVarInstance 63.75kB 64.41kB +1.03% (672.00B)
TypeVarIdentity 18.38kB 19.03kB +3.57% (672.00B)
infer_expression_types_impl 6.57MB 6.57MB -0.01% (660.00B)
when_constraint_set_assignable_to_owned_impl::interned_arguments 79.92kB 80.44kB +0.65% (528.00B)
InferableTypeVarsInner 73.99kB 74.41kB +0.57% (432.00B)
... 38 more

sphinx

Name Old New Diff Outcome
infer_definition_types 20.72MB 20.72MB -0.01% (1.13kB)
IntersectionType 561.52kB 562.24kB +0.13% (736.00B)
infer_expression_types_impl 20.49MB 20.49MB +0.00% (592.00B)
TupleType 553.11kB 553.58kB +0.08% (480.00B)
is_redundant_with_impl::interned_arguments 1.14MB 1.15MB +0.04% (440.00B)
FunctionType<'db>::signature_ 1.79MB 1.79MB -0.02% (404.00B)
infer_deferred_types 3.88MB 3.88MB -0.01% (388.00B)
GenericContext 149.59kB 149.94kB +0.23% (352.00B)
place_by_id 1.38MB 1.38MB -0.02% (288.00B)
BoundMethodType<'db>::bound_signatures_ 405.18kB 405.42kB +0.06% (244.00B)
is_redundant_with_impl 919.57kB 919.80kB +0.03% (240.00B)
BoundTypeVarInstance 695.78kB 696.02kB +0.03% (240.00B)
place_by_id::interned_arguments 1.03MB 1.03MB -0.02% (216.00B)
Type<'db>::apply_specialization_inner_ 1.52MB 1.52MB +0.01% (196.00B)
TypeVarInstance 174.09kB 174.28kB +0.11% (192.00B)
... 31 more

flake8

Name Old New Diff Outcome
infer_definition_types 1.57MB 1.57MB -0.06% (1.04kB) ⬇️
is_redundant_with_impl::interned_arguments 89.89kB 90.41kB +0.57% (528.00B) ⬇️
infer_deferred_types 428.26kB 427.79kB -0.11% (484.00B) ⬇️
FunctionType<'db>::signature_ 278.53kB 278.11kB -0.15% (428.00B) ⬇️
place_by_id 141.45kB 141.09kB -0.26% (376.00B) ⬇️
IntersectionType 51.73kB 52.06kB +0.63% (336.00B) ⬇️
is_redundant_with_impl 76.27kB 76.55kB +0.37% (288.00B) ⬇️
TupleType 76.20kB 76.48kB +0.37% (288.00B) ⬇️
place_by_id::interned_arguments 105.61kB 105.33kB -0.27% (288.00B) ⬇️
BoundMethodType<'db>::bound_signatures_ 32.45kB 32.68kB +0.73% (244.00B) ⬇️
TupleType<'db>::to_class_type_ 13.89kB 14.07kB +1.27% (180.00B) ⬇️
is_possibly_constraint_set_assignable::interned_arguments 19.16kB 18.99kB -0.90% (176.00B) ⬇️
Specialization 171.67kB 171.83kB +0.09% (160.00B) ⬇️
lookup_dunder_new_inner 12.79kB 12.65kB -1.13% (148.00B) ⬇️
StaticClassLiteral<'db>::variance_of_::interned_arguments 11.67kB 11.53kB -1.20% (144.00B) ⬇️
... 30 more

@astral-sh-bot

astral-sh-bot Bot commented May 19, 2026

Copy link
Copy Markdown

ecosystem-analyzer results

Lint rule Added Removed Changed
invalid-argument-type 129 64 35
unused-type-ignore-comment 0 83 0
not-subscriptable 1 52 0
unresolved-attribute 17 16 18
no-matching-overload 13 14 0
unused-ignore-comment 24 0 0
invalid-return-type 12 2 7
invalid-assignment 13 3 1
unsupported-operator 10 1 1
invalid-yield 7 0 4
type-assertion-failure 2 4 0
invalid-type-form 3 0 1
possibly-missing-attribute 0 0 4
invalid-generic-class 2 0 0
possibly-unresolved-reference 0 2 0
empty-body 0 0 1
invalid-method-override 1 0 0
not-iterable 0 0 1
unbound-type-variable 0 1 0
Total 234 242 73

Flaky changes detected. This PR summary excludes flaky changes; see the HTML report for details.

Showing a random sample of 274 of 549 changes. See the HTML report for the full diff.

Raw diff sample (274 of 549 changes)
anyio (https://github.com/agronholm/anyio)
+ src/anyio/_core/_fileio.py:277:30 error[invalid-argument-type] Argument to `Path.__init__` is incorrect: Expected `str | PathLike[str]`, found `(_T@next & ~None) | (_T@next & ~None) | (_VT@next & ~None)`
+ src/anyio/_core/_tempfile.py:554:37 error[invalid-argument-type] Argument to function `run_sync` is incorrect: Expected `(AnyStr@mkstemp | None | str | bytes, AnyStr@mkstemp | None | str | bytes, AnyStr@mkstemp | None | str | ... omitted 3 union elements, bool, /) -> tuple[int, str] | tuple[int, bytes]`, found `Overload[(suffix: str | None = None, prefix: str | None = None, dir: str | PathLike[str] | None = None, text: bool = False) -> tuple[int, str], (suffix: bytes | None = None, prefix: bytes | None = None, dir: bytes | PathLike[bytes] | None = None, text: bool = False) -> tuple[int, bytes]]`
+ src/anyio/_core/_tempfile.py:589:37 error[invalid-argument-type] Argument to function `run_sync` is incorrect: Expected `(AnyStr@mkdtemp | None | str | bytes, AnyStr@mkdtemp | None | str | bytes, AnyStr@mkdtemp | None | str | ... omitted 3 union elements, /) -> str | bytes`, found `Overload[(suffix: str | None = None, prefix: str | None = None, dir: str | PathLike[str] | None = None) -> str, (suffix: bytes | None = None, prefix: bytes | None = None, dir: bytes | PathLike[bytes] | None = None) -> bytes]`

core (https://github.com/home-assistant/core)
- homeassistant/components/cast/const.py:22:22 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/components/ffmpeg/const.py:7:23 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/components/ffmpeg/const.py:8:22 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/components/ffmpeg/const.py:9:25 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/components/mqtt/discovery.py:72:21 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalTypeFormat'>`
- homeassistant/helpers/discovery.py:19:29 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalTypeFormat'>`
+ homeassistant/helpers/ratelimit.py:93:17 error[invalid-argument-type] Argument to bound method `AbstractEventLoop.call_later` is incorrect: Expected `(tuple[*_Ts@async_schedule_action], /) -> object`, found `(*_Ts@async_schedule_action) -> None`
+ homeassistant/util/logging.py:187:23 error[invalid-argument-type] Argument to function `log_exception` is incorrect: Expected `(tuple[*_Ts@_sync_wrapper], /) -> Any`, found `(*_Ts@_sync_wrapper) -> Any`
+ homeassistant/util/logging.py:232:16 error[invalid-return-type] Return type does not match returned value: expected `((*_Ts@catch_log_exception) -> None) | ((*_Ts@catch_log_exception) -> Coroutine[Any, Any, None])`, found `_Wrapped[(*_Ts@catch_log_exception), Coroutine[Any, Any, None], (), CoroutineType[Any, Any, None]]`
+ homeassistant/util/logging.py:235:16 error[invalid-return-type] Return type does not match returned value: expected `((*_Ts@catch_log_exception) -> None) | ((*_Ts@catch_log_exception) -> Coroutine[Any, Any, None])`, found `_Wrapped[(*_Ts@catch_log_exception), Any, (), None]`
+ homeassistant/util/logging.py:237:12 error[invalid-return-type] Return type does not match returned value: expected `((*_Ts@catch_log_exception) -> None) | ((*_Ts@catch_log_exception) -> Coroutine[Any, Any, None])`, found `_Wrapped[(*_Ts@catch_log_exception), Any, (), None]`
+ homeassistant/components/backup/manager.py:2065:50 error[invalid-argument-type] Argument to bound method `HomeAssistant.async_add_executor_job` is incorrect: Expected `(bytes | str, /) -> int`, found `(bound method TextIOWrapper[_WrappedBuffer].write(s: str, /) -> int) | (Overload[(s: Buffer, /) -> int, (s: bytes, /) -> int]) | (Overload[(s: Buffer, /) -> int, (s: Any, /) -> int])`
- homeassistant/components/bthome/__init__.py:172:6 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/components/bthome/__init__.py:177:52 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/components/cloud/__init__.py:92:32 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/components/cloud/__init__.py:96:29 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
+ homeassistant/components/icloud/config_flow.py:226:32 error[not-subscriptable] Cannot subscript object of type `_T@getattr` with no `__getitem__` method
- homeassistant/components/knx/telegrams.py:26:22 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/components/knx/telegrams.py:27:40 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/components/media_player/__init__.py:1023:52 error[invalid-argument-type] Argument to bound method `HomeAssistant.async_add_executor_job` is incorrect: Expected `(...) -> Unknown`, found `object`
+ homeassistant/components/media_player/__init__.py:1023:52 error[invalid-argument-type] Argument to bound method `HomeAssistant.async_add_executor_job` is incorrect: Expected `() -> Unknown`, found `object`
- homeassistant/components/onewire/onewirehub.py:45:31 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
+ homeassistant/components/panasonic_viera/__init__.py:252:62 error[invalid-argument-type] Argument to bound method `HomeAssistant.async_add_executor_job` is incorrect: Expected `(tuple[*_Ts@_handle_errors], /) -> _R@_handle_errors`, found `(*_Ts@_handle_errors) -> _R@_handle_errors`
+ homeassistant/components/rfxtrx/entity.py:124:48 error[invalid-argument-type] Argument to bound method `HomeAssistant.async_add_executor_job` is incorrect: Expected `(Any, tuple[*_Ts@_async_send], /) -> None`, found `(Unknown, /, *_Ts@_async_send) -> None`
- homeassistant/config_entries.py:205:31 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/config_entries.py:213:6 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
+ homeassistant/core.py:566:44 error[invalid-argument-type] Argument to bound method `AbstractEventLoop.call_soon_threadsafe` is incorrect: Expected `(tuple[*_Ts@add_job], /) -> object`, found `((*_Ts@add_job) -> Any) & ~Coroutine[object, Never, object]`
- homeassistant/helpers/dispatcher.py:27:5 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/helpers/dispatcher.py:37:34 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/helpers/dispatcher.py:49:13 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/helpers/dispatcher.py:66:18 error[not-subscriptable] Cannot subscript non-generic type `TypeAliasType`
- homeassistant/helpers/dispatcher.py:67:13 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/helpers/dispatcher.py:121:34 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/helpers/dispatcher.py:137:13 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/helpers/dispatcher.py:205:34 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/helpers/dispatcher.py:218:18 error[not-subscriptable] Cannot subscript non-generic type `TypeAliasType`
+ homeassistant/helpers/dispatcher.py:54:20 error[invalid-argument-type] Argument to function `run_callback_threadsafe` is incorrect: Expected `(HomeAssistant, SignalType[*tuple[*_Ts@dispatcher_connect]] | str, ((*_Ts@dispatcher_connect) -> None) | ((*_Ts@async_dispatcher_connect) -> Any) | ((...) -> Any), /) -> (() -> None)`, found `Overload[[*_Ts](hass: HomeAssistant, signal: SignalType[*tuple[*_Ts]], target: (*_Ts) -> Any) -> (() -> None), (hass: HomeAssistant, signal: str, target: (...) -> Any) -> (() -> None)]`
- homeassistant/helpers/script.py:156:25 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/helpers/script.py:157:29 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalTypeFormat'>`
- homeassistant/util/signal_type.pyi:21:24 error[not-subscriptable] Cannot subscript non-generic type `<class '_SignalTypeBase'>`
- homeassistant/util/signal_type.pyi:24:30 error[not-subscriptable] Cannot subscript non-generic type `<class '_SignalTypeBase'>`
- homeassistant/util/signal_type.pyi:27:52 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/util/signal_type.pyi:52:15 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/util/signal_type.pyi:53:5 error[type-assertion-failure] Type `SignalType[]` does not match asserted type `Unknown`
- homeassistant/util/signal_type.pyi:53:27 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalType'>`
- homeassistant/util/signal_type.pyi:61:20 error[not-subscriptable] Cannot subscript non-generic type `<class 'SignalTypeFormat'>`
+ homeassistant/util/signal_type.pyi:65:5 error[no-matching-overload] No overload of function `async_dispatcher_connect` matches arguments

django-modern-rest (https://github.com/wemake-services/django-modern-rest)
- dmr/problem_details.py:175:14 error[invalid-type-form] Tuple literals are not allowed in this context in a type expression
+ dmr/problem_details.py:175:14 error[invalid-type-form] Tuple literals are not allowed in this context in a type expression: Did you mean `tuple[ProblemDetailsModel, tuple[Unknown, ...]]`?

docstring-adder (https://github.com/astral-sh/docstring-adder)
+ add_docstrings.py:521:55 error[unused-ignore-comment] Unused `ty: ignore` directive

egglog-python (https://github.com/egraphs-good/egglog-python)
- python/egglog/builtins.py:489:21 error[no-matching-overload] No overload of function `get_callable_args` matches arguments
- python/egglog/builtins.py:1105:20 error[invalid-return-type] Return type does not match returned value: expected `[T'return](...) -> T'return`, found `str`
+ python/egglog/builtins.py:1104:19 error[no-matching-overload] No overload of function `get_literal_value` matches arguments
+ python/egglog/builtins.py:1115:57 error[invalid-type-form] Function calls are not allowed in type expressions
+ python/egglog/builtins.py:1117:63 error[invalid-type-form] Function calls are not allowed in type expressions
- python/egglog/builtins.py:1111:39 error[empty-body] Function always implicitly returns `None`, which is not assignable to return type `T@__call__`
+ python/egglog/builtins.py:1111:39 error[empty-body] Function always implicitly returns `None`, which is not assignable to return type `T@UnstableFn`
+ python/egglog/deconstruct.py:158:24 error[invalid-return-type] Return type does not match returned value: expected `tuple[*TS@get_callable_args] | None`, found `tuple[object, ...]`
+ python/egglog/deconstruct.py:166:24 error[invalid-return-type] Return type does not match returned value: expected `tuple[*TS@get_callable_args] | None`, found `tuple[object, ...]`
+ python/egglog/deconstruct.py:172:24 error[invalid-return-type] Return type does not match returned value: expected `tuple[*TS@get_callable_args] | None`, found `tuple[object, ...]`
+ python/egglog/egraph.py:347:13 error[invalid-argument-type] Argument to bound method `Thunk.fn` is incorrect: Expected `(*args: Unknown) -> Unknown`, found `def _generate_class_decls(namespace: dict[str, Any], frame: FrameType, builtin: bool, egg_sort: str | None, cls_ident: Ident, ruleset: Ruleset | None, runtime_cls: RuntimeClass) -> Declarations`
+ python/egglog/egraph.py:680:9 error[invalid-argument-type] Argument to bound method `Thunk.fn` is incorrect: Expected `(*args: Unknown) -> Unknown`, found `def _add_default_rewrite_function(decls: Declarations, ref: FunctionRef | MethodRef | PropertyRef | ClassMethodRef | InitRef, fn: (...) -> Unknown, args: Iterable[TypedExprDecl], ruleset: Ruleset | None, subsume: bool, res_type: TypeVarRef | TypeRefWithVars, mutates_first_arg: bool) -> None`
+ python/egglog/egraph.py:764:43 error[invalid-argument-type] Argument to bound method `Thunk.fn` is incorrect: Expected `(*args: Unknown) -> Unknown`, found `def _constant_thunk(name: str, tp: type, egg_name: str | None, default_replacement: object, ruleset: Ruleset | None) -> tuple[Declarations, TypedExprDecl]`
+ python/egglog/egraph.py:1657:53 error[invalid-argument-type] Argument to bound method `Thunk.fn` is incorrect: Expected `(*args: Unknown) -> Unknown`, found `def _rewrite_or_rule_generator(gen: (...) -> Iterable[RewriteOrRule], frame: FrameType) -> Iterable[RewriteOrRule]`
+ python/tests/test_unstable_fn.py:154:27 error[invalid-argument-type] Argument to function `composed_i64_math` is incorrect: Expected `UnstableFn[Math, Math]`, found `UnstableFn[Math, Math | i64 | int | String | str]`
+ python/tests/test_unstable_fn.py:154:47 error[invalid-argument-type] Argument to function `composed_i64_math` is incorrect: Expected `UnstableFn[i64, i64]`, found `UnstableFn[i64, i64 | int]`

koda-validate (https://github.com/keithasaurus/koda-validate)
- koda_validate/generic.py:312:20 error[invalid-argument-type] Argument to bound method `bytes.strip` is incorrect: Expected `bytes`, found `StrOrBytes@NotBlank`
- koda_validate/generic.py:290:16 error[invalid-argument-type] Argument to bound method `str.startswith` is incorrect: Expected `str`, found `StrOrBytes@StartsWith`
- koda_validate/generic.py:298:16 error[invalid-argument-type] Argument to bound method `bytes.endswith` is incorrect: Expected `bytes`, found `StrOrBytes@EndsWith`
- koda_validate/generic.py:321:16 error[invalid-return-type] Return type does not match returned value: expected `StrOrBytes@Strip`, found `Unknown | bytes`
+ koda_validate/generic.py:321:16 error[invalid-return-type] Return type does not match returned value: expected `StrOrBytes@Strip`, found `str | bytes`
- koda_validate/generic.py:321:16 error[invalid-argument-type] Argument to bound method `bytes.strip` is incorrect: Expected `bytes`, found `StrOrBytes@Strip`
- koda_validate/generic.py:330:16 error[no-matching-overload] No overload of bound method `str.upper` matches arguments
- koda_validate/generic.py:336:16 error[invalid-argument-type] Argument to bound method `bytes.lower` is incorrect: Expected `bytes`, found `StrOrBytes@LowerCase`

pandas (https://github.com/pandas-dev/pandas)
- pandas/core/algorithms.py:225:12 error[no-matching-overload] No overload of bound method `ExtensionArray.astype` matches arguments
- pandas/core/dtypes/cast.py:388:16 error[invalid-argument-type] Argument to bound method `Index.astype` is incorrect: Expected `Index`, found `NumpyIndexT@maybe_upcast_numeric_to_64bit`
- pandas/core/dtypes/cast.py:392:16 error[invalid-argument-type] Argument to bound method `Index.astype` is incorrect: Expected `Index`, found `NumpyIndexT@maybe_upcast_numeric_to_64bit`

pip (https://github.com/pypa/pip)
- src/pip/_vendor/rich/progress.py:294:16 error[invalid-argument-type] Argument to bound method `BinaryIO.__enter__` is incorrect: Expected `BinaryIO`, found `_I@_ReadContext`

prefect (https://github.com/PrefectHQ/prefect)
- src/prefect/utilities/templating/__init__.py:219:36 error[no-matching-overload] No overload of bound method `str.replace` matches arguments
- src/prefect/utilities/templating/__init__.py:221:32 warning[possibly-missing-attribute] Attribute `replace` may be missing on object of type `T@apply_values | Unknown`
+ src/prefect/utilities/templating/__init__.py:221:32 warning[possibly-missing-attribute] Attribute `replace` may be missing on object of type `T@apply_values`
- src/prefect/utilities/templating/__init__.py:221:32 error[no-matching-overload] No overload of bound method `str.replace` matches arguments
- src/prefect/utilities/templating/__init__.py:536:36 warning[possibly-missing-attribute] Attribute `replace` may be missing on object of type `T@resolve_variables | Unknown`
+ src/prefect/utilities/templating/__init__.py:536:36 warning[possibly-missing-attribute] Attribute `replace` may be missing on object of type `T@resolve_variables`
- src/prefect/utilities/templating/__init__.py:538:36 warning[possibly-missing-attribute] Attribute `replace` may be missing on object of type `T@resolve_variables | Unknown`
+ src/prefect/utilities/templating/__init__.py:538:36 warning[possibly-missing-attribute] Attribute `replace` may be missing on object of type `T@resolve_variables`
+ src/prefect/utilities/templating/__init__.py:538:36 error[invalid-assignment] Object of type `str` is not assignable to `T@resolve_variables`

pwndbg (https://github.com/pwndbg/pwndbg)
- pwndbg/aglib/heap/ptmalloc.py:1229:22 error[invalid-argument-type] Method `__getitem__` of type `(bound method TheValue@GlibcMemoryAllocator.__getitem__(idx: int | str) -> Value) | (bound method TheValue@GlibcMemoryAllocator.__getitem__(key: str) -> Value)` cannot be called with key of type `Literal["num_slots"]` on object of type `TheValue@GlibcMemoryAllocator`
- pwndbg/aglib/heap/ptmalloc.py:1255:48 error[invalid-argument-type] Method `__getitem__` of type `(bound method TheValue@GlibcMemoryAllocator.__getitem__(idx: int | str) -> Value) | (bound method TheValue@GlibcMemoryAllocator.__getitem__(key: str) -> Value)` cannot be called with key of type `Literal["tcache_count"]` on object of type `TheValue@GlibcMemoryAllocator`

pylint (https://github.com/pycqa/pylint)
- pylint/checkers/unicode.py:175:39 error[invalid-argument-type] Argument to bound method `str.endswith` is incorrect: Expected `str`, found `_StrLike@_map_positions_to_result`
- pylint/checkers/unicode.py:188:19 error[invalid-argument-type] Argument to bound method `bytes.find` is incorrect: Expected `bytes`, found `_StrLike@_map_positions_to_result`
- pylint/checkers/unicode.py:188:19 error[invalid-argument-type] Argument to bound method `str.find` is incorrect: Expected `str`, found `_StrLike@_map_positions_to_result`

rich (https://github.com/Textualize/rich)
- rich/progress.py:294:16 error[invalid-argument-type] Argument to bound method `BinaryIO.__enter__` is incorrect: Expected `BinaryIO`, found `_I@_ReadContext`
- rich/progress.py:294:16 error[invalid-argument-type] Argument to bound method `TextIO.__enter__` is incorrect: Expected `TextIO`, found `_I@_ReadContext`

scipy-stubs (https://github.com/scipy/scipy-stubs)
+ scipy-stubs/integrate/_ivp/ivp.pyi:29:36 error[unused-ignore-comment] Unused `ty: ignore` directive
+ scipy-stubs/integrate/_ode.pyi:101:9 error[invalid-method-override] Invalid override of method `set_integrator`: Definition is incompatible with `ode.set_integrator`
+ scipy-stubs/integrate/_odepack_py.pyi:65:62 error[unused-ignore-comment] Unused `ty: ignore` directive
+ scipy-stubs/integrate/_odepack_py.pyi:91:62 error[unused-ignore-comment] Unused `ty: ignore` directive
+ scipy-stubs/integrate/_odepack_py.pyi:139:49 error[unused-ignore-comment] Unused `ty: ignore` directive
+ scipy-stubs/integrate/_odepack_py.pyi:168:55 error[unused-ignore-comment] Unused `ty: ignore` directive
+ scipy-stubs/stats/_morestats.pyi:240:22 error[invalid-generic-class] Variance of type variable `_NDT_co` is incompatible with base class `BaseBunch`
+ scipy-stubs/stats/_stats_py.pyi:171:5 error[invalid-generic-class] Variance of type variable `_FloatOrArrayT_co` is incompatible with base class `BaseBunch`
- tests/integrate/test_ode.pyi:30:1 error[type-assertion-failure] Type `@Todo` does not match asserted type `int | float`
+ tests/integrate/test_ode.pyi:20:1 error[type-assertion-failure] Type `ode[Any, int | float]` does not match asserted type `ode[complex128, int | float]`
+ tests/integrate/test_ode.pyi:27:18 error[invalid-argument-type] Argument to `ode.__init__` is incorrect: Expected `(int | float, Unknown, /, *args: tuple[Any, ...]) -> int | float | complex | ToComplex1D`, found `def f(t: int | float, y: ndarray[tuple[Any, ...], dtype[complex128]], arg1: int | float) -> list[complex128]`
+ tests/integrate/test_ode.pyi:27:21 error[invalid-argument-type] Argument to `ode.__init__` is incorrect: Expected `((int | float, Unknown, /, *args: tuple[Any, ...]) -> int | float | complex | ToComplex2D) | None`, found `def jac(t: int | float, y: ndarray[tuple[Any, ...], dtype[complex128]], arg1: int | float) -> list[list[complex128 | int]]`
+ tests/integrate/test_ode.pyi:28:1 error[type-assertion-failure] Type `complex_ode[_Ts@complex_ode]` does not match asserted type `complex_ode[int | float]`
+ tests/integrate/test_ode.pyi:29:43 error[invalid-argument-type] Argument to bound method `ode.set_f_params` is incorrect: Expected `_Ts@complex_ode`, found `float`
+ tests/optimize/test_fmin_l_bfgs_b.pyi:35:1 error[no-matching-overload] No overload of function `fmin_l_bfgs_b` matches arguments
+ tests/optimize/test_fmin_l_bfgs_b.pyi:39:1 error[no-matching-overload] No overload of function `fmin_l_bfgs_b` matches arguments

scrapy (https://github.com/scrapy/scrapy)
- scrapy/http/headers.py:45:30 error[invalid-argument-type] Argument to bound method `bytes.title` is incorrect: Expected `bytes`, found `AnyStr@normkey`
- scrapy/http/headers.py:45:30 error[no-matching-overload] No overload of bound method `str.title` matches arguments
- scrapy/utils/datatypes.py:76:16 error[invalid-argument-type] Argument to bound method `bytes.lower` is incorrect: Expected `bytes`, found `AnyStr@normkey`

setuptools (https://github.com/pypa/setuptools)
- setuptools/_distutils/util.py:323:18 error[unresolved-attribute] Object of type `(...) -> object` has no attribute `__name__`
+ setuptools/_distutils/util.py:323:18 error[unresolved-attribute] Object of type `(*_Ts@execute) -> object` has no attribute `__name__`

static-frame (https://github.com/static-frame/static-frame)
+ static_frame/test/typing/test_index_hierarchy.py:39:16 error[invalid-argument-type] Argument to function `proc1` is incorrect: Expected `IndexHierarchy[*tuple[Index[signedinteger[_64Bit]], ...]]`, found `IndexHierarchy[Index[signedinteger[_64Bit]], Index[signedinteger[_64Bit]]]`
+ static_frame/test/typing/test_index_hierarchy.py:42:16 error[invalid-argument-type] Argument to function `proc1` is incorrect: Expected `IndexHierarchy[*tuple[Index[signedinteger[_64Bit]], ...]]`, found `IndexHierarchy[Index[signedinteger[_64Bit]], Index[signedinteger[_64Bit]], Index[signedinteger[_64Bit]]]`
- static_frame/core/archive_npy.py:1362:56 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/core/container_util.py:1321:49 error[invalid-argument-type] Argument to bound method `IndexBase.values_at_depth` is incorrect: Expected `int | list[int]`, found `int | (list[int] & Top[integer[Any]]) | (ndarray[Any, dtype[signedinteger[_64Bit]]] & Top[integer[Any]])`
- static_frame/core/frame.py:590:43 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:635:47 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:2736:24 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:5003:28 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:5013:28 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:5018:24 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:6666:47 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:8947:17 warning[possibly-unresolved-reference] Name `labels_insert` used when possibly not defined
- static_frame/core/frame.py:8955:17 warning[possibly-unresolved-reference] Name `blocks_insert` used when possibly not defined
- static_frame/core/frame.py:9373:52 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:10584:81 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:10665:83 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/core/frame.py:2733:13 error[invalid-argument-type] Argument to `Frame.__init__` is incorrect: Expected `Iterable[Iterable[Any]] | Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]`, found `object`
+ static_frame/core/frame.py:2997:16 error[invalid-return-type] Return type does not match returned value: expected `Self@from_xlsx`, found `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/core/frame.py:3033:16 error[invalid-return-type] Return type does not match returned value: expected `Self@from_sqlite`, found `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/core/frame.py:6049:24 error[invalid-yield] Yield type `tuple[Hashable, TypeBlocks | ndarray[Any, Any]]` does not match annotated yield type `tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]]`
+ static_frame/core/frame.py:6668:38 error[invalid-assignment] Object of type `list[ndarray[Any, Any] | Any | Series[Any, Any]]` is not assignable to `list[ndarray[Any, Any]] | None`
+ static_frame/core/index.py:603:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_label` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/index_hierarchy.py:3393:82 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/index_hierarchy.py:2173:51 error[not-iterable] Object of type `ndarray[tuple[object, ...], dtype[object]] & ~int & ~Top[integer[Any]] & ~IndexHierarchy & ~Top[list[Unknown]]` is not iterable
+ static_frame/core/index_hierarchy.py:2173:51 error[not-iterable] Object of type `ndarray[tuple[object, ...], dtype[object]] & ~int & ~Top[integer[Any]] & ~Top[IndexHierarchy[*tuple[Any, ...]]] & ~Top[list[Unknown]]` is not iterable
- static_frame/core/join.py:307:49 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/mfc_mapping.py:57:20 error[invalid-yield] Yield type `tuple[Hashable, @Todo]` does not match annotated yield type `tuple[TVKeys@MFCMappingItemsView, @Todo]`
+ static_frame/core/mfc_mapping.py:57:20 error[invalid-yield] Yield type `tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]]]` does not match annotated yield type `tuple[TVKeys@MFCMappingItemsView, Frame[Any, Any, *tuple[Any, ...]]]`
+ static_frame/core/node_fill_value.py:154:29 error[invalid-assignment] Object of type `TVContainer_co@InterfaceFillValue` is not assignable to `Series[Any, Any]`
- static_frame/core/pivot.py:447:74 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/pivot.py:448:72 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/protocol_dfi.py:317:37 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/core/protocol_dfi.py:336:13 error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: int | integer[Any]) -> Series[Any, Any], (key: ndarray[Any, Any] | list[int] | slice[Any, Any, Any] | None) -> Frame[Any, Any, *tuple[Any, ...]], (key: tuple[int | integer[Any], ndarray[Any, Any] | list[int] | slice[Any, Any, Any] | None]) -> Series[Any, Any], (key: tuple[ndarray[Any, Any] | list[int] | slice[Any, Any, Any] | None, int | integer[Any]]) -> Series[Any, Any], (key: tuple[ndarray[Any, Any] | list[int] | slice[Any, Any, Any] | None, ndarray[Any, Any] | list[int] | slice[Any, Any, Any] | None]) -> Frame[Any, Any, *tuple[Any, ...]], (key: tuple[int | integer[Any], int | integer[Any]]) -> Any, (key: ndarray[Any, Any] | list[int] | slice[Any, Any, Any] | None) -> Frame[Any, Any, *tuple[Any, ...]], (key: int | integer[Any] | ndarray[Any, Any] | ... omitted 4 union elements) -> Any]` cannot be called with key of type `tuple[slice[Any, Any, Any], Sequence[int] & Top[list[Unknown]]]` on object of type `InterGetItemILocCompoundReduces[Frame[Any, Any, *tuple[Any, ...]]]`
- static_frame/core/quilt.py:533:35 error[unresolved-attribute] Attribute `level_drop` is not defined on `None` in union `@Todo | IndexHierarchy | None`
- static_frame/core/quilt.py:542:37 error[unresolved-attribute] Attribute `level_drop` is not defined on `None` in union `@Todo | IndexHierarchy | None`
- static_frame/core/quilt.py:546:17 error[invalid-assignment] Object of type `@Todo | IndexHierarchy | None` is not assignable to attribute `_columns` of type `IndexBase`
- static_frame/core/reduce.py:444:35 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/reduce.py:524:83 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/store.py:247:51 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/core/store.py:182:26 error[unresolved-attribute] Object of type `IndexBase` has no attribute `dtypes`
+ static_frame/core/store.py:202:36 error[invalid-argument-type] Argument to bound method `list.extend` is incorrect: Expected `Iterable[str]`, found `Sequence[Hashable]`
+ static_frame/core/store.py:204:36 error[invalid-argument-type] Argument to bound method `list.extend` is incorrect: Expected `Iterable[str]`, found `range`
- static_frame/core/store_config.py:159:80 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/store_config.py:160:86 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/core/store_xlsx.py:400:23 error[invalid-yield] Yield type `object` does not match annotated yield type `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/core/yarn.py:195:17 error[invalid-assignment] Object of type `Hashable` is not assignable to `int`
- static_frame/core/yarn.py:422:16 error[invalid-return-type] Return type does not match returned value: expected `InterGetItemILocReduces[Yarn[Any], object_]`, found `InterGetItemILocReduces[Unknown, Frame]`
+ static_frame/core/yarn.py:422:16 error[invalid-return-type] Return type does not match returned value: expected `InterGetItemILocReduces[Yarn[Any], object_]`, found `InterGetItemILocReduces[Unknown, Frame[Any, Any, *tuple[Any, ...]]]`
+ static_frame/test/property/strategies.py:936:5 error[invalid-argument-type] Argument to class `partial` is incorrect: Expected `type[Index[Any]]`, found `<class 'IndexHierarchy'>`
- static_frame/test/property/strategies.py:1022:1 error[unresolved-attribute] Unresolved attribute `__name__` on type `partial[(*, min_rows: int = 1, max_rows: int = 12, min_columns: int = 1, max_columns: int = 12, cls: type[Frame] = ..., dtype_group: DTGroup = DTGroup.NUMERIC, index_cls: type[Index[Any]] = ..., index_dtype_group: DTGroup | None = DTGroup.DATE, columns_cls: type[Index[Any]] = ..., columns_dtype_group: DTGroup | None = DTGroup.STRING) -> Unknown]`
+ static_frame/test/property/strategies.py:1022:1 error[unresolved-attribute] Unresolved attribute `__name__` on type `partial[(*, min_rows: int = 1, max_rows: int = 12, min_columns: int = 1, max_columns: int = 12, cls: type[Frame[Any, Any, *tuple[Any, ...]]] = ..., dtype_group: DTGroup = DTGroup.NUMERIC, index_cls: type[Index[Any]] = ..., index_dtype_group: DTGroup | None = DTGroup.DATE, columns_cls: type[Index[Any]] = ..., columns_dtype_group: DTGroup | None = DTGroup.STRING) -> Unknown]`
- static_frame/test/property/strategies.py:1025:1 error[unresolved-attribute] Unresolved attribute `__name__` on type `partial[(*, min_rows: int = 1, max_rows: int = 12, min_columns: int = 1, max_columns: int = 12, cls: type[Frame] = ..., dtype_group: DTGroup = DTGroup.ALL, index_cls: type[Index[Any]] = ..., index_dtype_group: DTGroup | None = None, columns_cls: type[Index[Any]] = ..., columns_dtype_group: DTGroup | None = None) -> Unknown]`
+ static_frame/test/property/strategies.py:1025:1 error[unresolved-attribute] Unresolved attribute `__name__` on type `partial[(*, min_rows: int = 1, max_rows: int = 12, min_columns: int = 1, max_columns: int = 12, cls: type[Frame[Any, Any, *tuple[Any, ...]]] = ..., dtype_group: DTGroup = DTGroup.ALL, index_cls: type[Index[Any]] = ..., index_dtype_group: DTGroup | None = None, columns_cls: type[Index[Any]] = ..., columns_dtype_group: DTGroup | None = None) -> Unknown]`
+ static_frame/test/property/test_archive_npy.py:57:40 error[invalid-argument-type] Argument to bound method `NPYConverter.to_npy` is incorrect: Expected `ndarray[Any, Any]`, found `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/test/property/test_archive_npy.py:62:45 error[invalid-argument-type] Argument to bound method `TestCase.assertAlmostEqualArray` is incorrect: Expected `ndarray[Any, Any]`, found `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/test/property/test_archive_npy.py:65:35 error[unresolved-attribute] Object of type `Frame[Any, Any, *tuple[Any, ...]]` has no attribute `flat`
+ static_frame/test/property/test_archive_npy.py:74:49 error[invalid-argument-type] Argument to bound method `TestCase.assertAlmostEqualArray` is incorrect: Expected `ndarray[Any, Any]`, found `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/test/typing/test_frame.py:54:21 error[invalid-assignment] Object of type `Series[Any, Any]` is not assignable to `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/test/typing/test_frame.py:96:21 error[invalid-assignment] Object of type `Series[Any, Any]` is not assignable to `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/test/typing/test_frame.py:133:21 error[invalid-assignment] Object of type `Series[Any, Any]` is not assignable to `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/test/unit/test_batch.py:2250:43 error[invalid-argument-type] Argument to bound method `TestCase.assertEqualFrames` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]`
- static_frame/test/unit/test_batch.py:80:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame | Series[Any, Any]]]`, found `IterNodeDelegateReducible[@Todo]`
+ static_frame/test/unit/test_batch.py:80:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]]]`, found `IterNodeDelegateReducible[Frame[Any, Any, *tuple[Any, ...]]]`
- static_frame/test/unit/test_batch.py:180:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame | Series[Any, Any]]]`, found `IterNodeDelegateReducible[@Todo]`
+ static_frame/test/unit/test_batch.py:180:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]]]`, found `IterNodeDelegateReducible[Frame[Any, Any, *tuple[Any, ...]]]`
- static_frame/test/unit/test_batch.py:226:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame | Series[Any, Any]]]`, found `IterNodeDelegateReducible[@Todo]`
+ static_frame/test/unit/test_batch.py:226:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]]]`, found `IterNodeDelegateReducible[Frame[Any, Any, *tuple[Any, ...]]]`
- static_frame/test/unit/test_batch.py:256:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame | Series[Any, Any]]]`, found `IterNodeDelegateReducible[@Todo]`
+ static_frame/test/unit/test_batch.py:256:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]]]`, found `IterNodeDelegateReducible[Frame[Any, Any, *tuple[Any, ...]]]`
- static_frame/test/unit/test_batch.py:2312:19 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame | Series[Any, Any]]]`, found `IterNodeDelegateReducible[@Todo]`
+ static_frame/test/unit/test_batch.py:2312:19 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]]]`, found `IterNodeDelegateReducible[Frame[Any, Any, *tuple[Any, ...]]]`
- static_frame/test/unit/test_bus.py:490:57 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/test/unit/test_bus.py:1226:17 error[unresolved-attribute] Object of type `Frame[Any, Any, *tuple[Any, ...]]` has no attribute `status`
+ static_frame/test/unit/test_bus.py:1279:17 error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: int | integer[Any]) -> Any, (key: ndarray[Any, Any] | list[int] | slice[Any, Any, Any] | None) -> IndexBase]` cannot be called with key of type `Series[Any, Any]` on object of type `IndexBase`
+ static_frame/test/unit/test_bus.py:1323:17 error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: int | integer[Any]) -> Any, (key: ndarray[Any, Any] | list[int] | slice[Any, Any, Any] | None) -> IndexBase]` cannot be called with key of type `Series[Any, Any]` on object of type `IndexBase`
+ static_frame/test/unit/test_bus.py:1363:22 error[invalid-argument-type] Method `__getitem__` of type `Overload[(key: int | integer[Any]) -> Any, (key: ndarray[Any, Any] | list[int] | slice[Any, Any, Any] | None) -> IndexBase]` cannot be called with key of type `Series[Any, Any]` on object of type `IndexBase`
- static_frame/test/unit/test_bus.py:2140:26 error[unresolved-attribute] Attribute `to_pairs` is not defined on `ndarray[Any, Any]` in union `Series[Any, Any] | @Todo | ndarray[Any, Any]`
+ static_frame/test/unit/test_bus.py:2140:26 error[unresolved-attribute] Attribute `to_pairs` is not defined on `ndarray[Any, Any]` in union `Series[Any, Any] | Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]`
- static_frame/test/unit/test_container_util.py:137:13 error[unresolved-attribute] Object of type `ndarray[Any, Any]` has no attribute `to_pairs`
- static_frame/test/unit/test_container_util.py:179:26 error[unresolved-attribute] Object of type `generic[Any]` has no attribute `to_pairs`
+ static_frame/test/unit/test_container_util.py:134:26 error[no-matching-overload] No overload of function `matmul` matches arguments
+ static_frame/test/unit/test_container_util.py:214:26 error[no-matching-overload] No overload of function `matmul` matches arguments
- static_frame/test/unit/test_frame.py:87:24 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_frame.py:474:41 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_frame.py:2127:50 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_frame.py:6229:25 error[unresolved-attribute] Attribute `equals` is not defined on `signedinteger[_64Bit]` in union `signedinteger[_64Bit] | Frame`
- static_frame/test/unit/test_frame.py:6231:25 error[unresolved-attribute] Attribute `equals` is not defined on `signedinteger[_64Bit]` in union `signedinteger[_64Bit] | Frame`
- static_frame/test/unit/test_frame.py:6232:25 error[unresolved-attribute] Attribute `equals` is not defined on `signedinteger[_64Bit]` in union `signedinteger[_64Bit] | Frame`
- static_frame/test/unit/test_frame.py:6703:81 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_frame.py:7730:51 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_frame.py:7732:52 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_frame.py:12500:76 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_frame.py:12501:71 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_frame.py:12506:85 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_frame.py:15087:79 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/test/unit/test_frame.py:2385:25 error[invalid-argument-type] Argument to bound method `FrameGO.extend_items` is incorrect: Expected `Iterable[tuple[Hashable, Series[Any, Any]]]`, found `_odict_items[str, ndarray[tuple[Any, ...], dtype[Unknown]]]`
+ static_frame/test/unit/test_frame.py:2734:27 error[invalid-argument-type] Argument to bound method `Frame._insert` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]`, found `Literal["a"]`
+ static_frame/test/unit/test_frame.py:7751:60 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Expected `Iterable[Sequence[Hashable]]`, found `IndexBase`
+ static_frame/test/unit/test_frame.py:8085:38 error[invalid-argument-type] Argument to bound method `Frame.get` is incorrect: Expected `Series[Any, Any] | None`, found `Literal[-1]`
+ static_frame/test/unit/test_frame.py:14800:24 error[invalid-argument-type] Argument to bound method `InterfaceFrameAsType.__call__` is incorrect: Expected `str | dtype[Any] | type | None`, found `dict[str | int, <class 'bool'>]`
+ static_frame/test/unit/test_frame_iter.py:365:27 error[unresolved-attribute] Attribute `p` is not defined on `tuple[Any, Any]` in union `Any | tuple[Any, Any]`
+ static_frame/test/unit/test_frame_iter.py:1266:48 error[invalid-argument-type] Argument to bound method `IterNodeDepthLevelAxis.__call__` is incorrect: Expected `int | list[int]`, found `tuple[Literal[1], Literal[2]]`
- static_frame/test/unit/test_frame_iter.py:1799:13 error[unresolved-attribute] Attribute `to_pairs` is not defined on `ndarray[Any, Any]` in union `@Todo | ndarray[Any, Any]`
+ static_frame/test/unit/test_frame_iter.py:1799:13 error[unresolved-attribute] Attribute `to_pairs` is not defined on `ndarray[Any, Any]` in union `Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]`
- static_frame/test/unit/test_frame_iter.py:1810:13 error[unresolved-attribute] Attribute `to_pairs` is not defined on `ndarray[Any, Any]` in union `@Todo | ndarray[Any, Any]`
+ static_frame/test/unit/test_frame_iter.py:1810:13 error[unresolved-attribute] Attribute `to_pairs` is not defined on `ndarray[Any, Any]` in union `Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]`
- static_frame/test/unit/test_frame_iter.py:1847:13 error[unresolved-attribute] Attribute `to_pairs` is not defined on `ndarray[Any, Any]` in union `@Todo | ndarray[Any, Any]`
+ static_frame/test/unit/test_frame_iter.py:1847:13 error[unresolved-attribute] Attribute `to_pairs` is not defined on `ndarray[Any, Any]` in union `Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]`
- static_frame/test/unit/test_frame_via_fill_value.py:351:23 error[unresolved-attribute] Attribute `columns` is not defined on `Series[Any, Any]` in union `@Todo | Series[Any, Any]`
+ static_frame/test/unit/test_frame_via_fill_value.py:351:23 error[unresolved-attribute] Attribute `columns` is not defined on `Series[Any, Any]` in union `Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]`
- static_frame/test/unit/test_index_hierarchy.py:77:25 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/test/unit/test_index_hierarchy.py:1825:41 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_tree` is incorrect: Expected `dict[Hashable, Divergent]`, found `OrderedDict[str, OrderedDict[str, tuple[int, int]]]`
+ static_frame/test/unit/test_index_hierarchy.py:2952:27 error[invalid-argument-type] Argument to bound method `IndexHierarchy.union` is incorrect: Expected `Iterable[Hashable]`, found `Frame[Any, Any, *tuple[Any, ...]]`
+ static_frame/test/unit/test_index_hierarchy.py:3162:27 error[unsupported-operator] Operator `@` is not supported between two objects of type `IndexHierarchy[*tuple[Any, ...]]`
+ static_frame/test/unit/test_index_hierarchy.py:3180:14 error[unsupported-operator] Operator `*` is not supported between objects of type `IndexHierarchyGO[*tuple[Any, ...]]` and `Index[Any]`
+ static_frame/test/unit/test_index_hierarchy.py:3183:14 error[unsupported-operator] Operator `+` is not supported between two objects of type `IndexHierarchyGO[*tuple[Any, ...]]`
+ static_frame/test/unit/test_index_hierarchy.py:3202:14 error[unsupported-operator] Operator `@` is not supported between two objects of type `IndexHierarchy[*tuple[Any, ...]]`
+ static_frame/test/unit/test_index_hierarchy.py:3308:15 error[unsupported-operator] Operator `+` is not supported between objects of type `IndexHierarchy[*tuple[Any, ...]]` and `Literal["_"]`
+ static_frame/test/unit/test_index_hierarchy.py:3318:15 error[unsupported-operator] Operator `*` is not supported between objects of type `IndexHierarchy[*tuple[Any, ...]]` and `Literal[2]`
+ static_frame/test/unit/test_index_hierarchy.py:5270:17 error[unsupported-operator] Operator `*` is not supported between two objects of type `IndexHierarchyGO[*tuple[Any, ...]]`
+ static_frame/test/unit/test_index_hierarchy.py:5325:30 error[invalid-argument-type] Argument to bound method `InterfaceIndexHierarchyAsType.__call__` is incorrect: Expected `dtype[Any]`, found `<class 'str'>`
- static_frame/test/unit/test_index_hierarchy.py:1760:26 error[unsupported-operator] Operator `in` is not supported between objects of type `ndarray[tuple[Any, ...], dtype[Any]]` and `IndexHierarchy`
+ static_frame/test/unit/test_index_hierarchy.py:1760:26 error[unsupported-operator] Operator `in` is not supported between objects of type `ndarray[tuple[Any, ...], dtype[Any]]` and `IndexHierarchy[*tuple[Any, ...]]`
- static_frame/test/unit/test_index_hierarchy.py:4446:20 error[invalid-argument-type] Method `__getitem__` of type `bound method InterfaceIndexHierarchyAsType[IndexHierarchy].__getitem__(key: int | list[int] | slice[Any, Any, Any] | ndarray[Any, dtype[signedinteger[_64Bit]]] | None) -> IndexHierarchyAsType` cannot be called with key of type `list[bool]` on object of type `InterfaceIndexHierarchyAsType[IndexHierarchy]`
+ static_frame/test/unit/test_index_hierarchy.py:4446:20 error[invalid-argument-type] Method `__getitem__` of type `bound method InterfaceIndexHierarchyAsType[IndexHierarchy[*tuple[Any, ...]]].__getitem__(key: int | list[int] | slice[Any, Any, Any] | ndarray[Any, dtype[signedinteger[_64Bit]]] | None) -> IndexHierarchyAsType` cannot be called with key of type `list[bool]` on object of type `InterfaceIndexHierarchyAsType[IndexHierarchy[*tuple[Any, ...]]]`
+ static_frame/test/unit/test_interface.py:37:32 error[invalid-argument-type] Argument to constructor `int.__new__` is incorrect: Expected `str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc`, found `Iterable[tuple[Hashable, Any]]`
- static_frame/test/unit/test_quilt.py:1790:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame | Series[Any, Any]]]`, found `IterNodeDelegate[Quilt]`
+ static_frame/test/unit/test_quilt.py:1790:20 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]]]`, found `IterNodeDelegate[Quilt]`
- static_frame/test/unit/test_quilt.py:1871:24 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame | Series[Any, Any]]]`, found `IterNodeDelegate[Quilt]`
+ static_frame/test/unit/test_quilt.py:1871:24 error[invalid-argument-type] Argument to `Batch.__init__` is incorrect: Expected `Iterator[tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]]]`, found `IterNodeDelegate[Quilt]`
- static_frame/test/unit/test_store_config.py:91:29 error[unresolved-attribute] Object of type `(...) -> Any` has no attribute `__name__`
+ static_frame/test/unit/test_store_config.py:91:29 error[unresolved-attribute] Object of type `((...) -> Any) | ((...) -> Frame[Any, Any, *tuple[Any, ...]])` has no attribute `__name__`
- static_frame/test/unit/test_store_zip.py:342:24 error[invalid-yield] Yield type `tuple[Hashable, Frame]` does not match annotated yield type `tuple[str, Frame]`
+ static_frame/test/unit/test_store_zip.py:342:24 error[invalid-yield] Yield type `tuple[Hashable, Frame[Any, Any, *tuple[Any, ...]]]` does not match annotated yield type `tuple[str, Frame[Any, Any, *tuple[Any, ...]]]`
- static_frame/test/unit/test_store_zip.py:427:29 error[invalid-argument-type] Argument is incorrect: Expected `((Hashable, @Todo, /) -> @Todo) | None`, found `int | Unknown`
+ static_frame/test/unit/test_store_zip.py:427:29 error[invalid-argument-type] Argument is incorrect: Expected `((Hashable, Frame[Any, Any, *tuple[Any, ...]], /) -> Frame[Any, Any, *tuple[Any, ...]]) | None`, found `int | Unknown`
- static_frame/test/unit/test_yarn.py:1438:72 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/test/unit/test_yarn.py:420:31 error[invalid-argument-type] Argument to bound method `Yarn.from_concat` is incorrect: Expected `Iterable[Yarn[Any]]`, found `tuple[Frame[Any, Any, *tuple[Any, ...]], Frame[Any, Any, *tuple[Any, ...]]]`
+ static_frame/test/unit/test_yarn.py:461:31 error[invalid-argument-type] Argument to bound method `Yarn.from_concat` is incorrect: Expected `Iterable[Yarn[Any]]`, found `tuple[Frame[Any, Any, *tuple[Any, ...]], Frame[Any, Any, *tuple[Any, ...]], Frame[Any, Any, *tuple[Any, ...]]]`
+ static_frame/test/unit/test_yarn.py:505:31 error[invalid-argument-type] Argument to bound method `Yarn.from_concat` is incorrect: Expected `Iterable[Yarn[Any]]`, found `tuple[Frame[Any, Any, *tuple[Any, ...]], Frame[Any, Any, *tuple[Any, ...]], Frame[Any, Any, *tuple[Any, ...]]]`
+ static_frame/test/unit/test_yarn.py:765:27 error[unresolved-attribute] Object of type `Frame[Any, Any, *tuple[Any, ...]]` has no attribute `_values`
+ static_frame/test/unit/test_yarn.py:1801:38 error[unresolved-attribute] Object of type `Frame[Any, Any, *tuple[Any, ...]]` has no attribute `_hierarchy`
- static_frame/test/unit/test_yarn.py:1712:53 error[unresolved-attribute] Attribute `size` is not defined on `tuple[Any, Any]` in union `@Todo | tuple[Any, Any]`
+ static_frame/test/unit/test_yarn.py:1712:53 error[unresolved-attribute] Attribute `size` is not defined on `tuple[Any, Any]` in union `Any | tuple[Any, Any]`

trio (https://github.com/python-trio/trio)
- src/trio/_core/_tests/type_tests/nursery_start.py:58:34 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- src/trio/_core/_tests/type_tests/nursery_start.py:59:34 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- src/trio/_core/_tests/type_tests/nursery_start.py:61:37 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- src/trio/_core/_tests/type_tests/nursery_start.py:64:41 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- src/trio/_core/_tests/type_tests/nursery_start.py:67:41 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- src/trio/_core/_tests/type_tests/nursery_start.py:77:53 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ src/trio/_tests/test_signals.py:73:39 error[invalid-argument-type] Argument to function `to_thread_run_sync` is incorrect: Expected `(def naughty() -> CoroutineType[Any, Any, None], /) -> Unknown`, found `def run[*PosArgT, RetT](async_fn: (*PosArgT) -> Awaitable[RetT], *args: PosArgT, *, clock: Clock | None = None, instruments: Sequence[Instrument] = ..., restrict_keyboard_interrupt_to_checkpoints: bool = False, strict_exception_groups: bool = True) -> RetT`
+ src/trio/_core/_tests/test_guest_mode.py:496:13 error[invalid-argument-type] Argument to function `start_guest_run` is incorrect: Expected `(() -> object, /) -> object`, found `bound method AbstractEventLoop.call_soon_threadsafe[*_Ts](callback: (*_Ts) -> object, *args: _Ts, *, context: Context | None = None) -> Handle`
+ src/trio/_core/_tests/test_io.py:453:32 error[invalid-argument-type] Argument to bound method `Nursery.start_soon` is incorrect: Expected `(def wait_readable(fd: int | _HasFileNo) -> CoroutineType[Any, Any, None], socket, /) -> Awaitable[object]`, found `def allow_OSError[**ArgsT](async_func: (**ArgsT) -> Awaitable[object], *args: ArgsT.args, **kwargs: ArgsT.kwargs) -> CoroutineType[Any, Any, None]`
+ src/trio/_core/_tests/test_io.py:512:32 error[invalid-argument-type] Argument to bound method `Nursery.start_soon` is incorrect: Expected `(def wait_readable(fd: int | _HasFileNo) -> CoroutineType[Any, Any, None], socket, /) -> Awaitable[object]`, found `def allow_OSError[**ArgsT](async_func: (**ArgsT) -> Awaitable[object], *args: ArgsT.args, **kwargs: ArgsT.kwargs) -> CoroutineType[Any, Any, None]`
+ src/trio/_core/_tests/test_run.py:84:19 error[invalid-argument-type] Argument to function `run` is incorrect: Expected `() -> Awaitable[T@trivial]`, found `def trivial[T](x: T) -> CoroutineType[Any, Any, T]`
+ src/trio/_core/_tests/type_tests/run.py:47:10 error[invalid-argument-type] Argument to function `run` is incorrect: Expected `(Literal["hello"] | int | None, /) -> Awaitable[int]`, found `def has_optional(arg: int | None = None) -> CoroutineType[Any, Any, int]`
+ src/trio/_core/_tests/type_tests/run.py:50:22 error[invalid-argument-type] Argument to function `run` is incorrect: Expected `(int | str, /) -> Awaitable[str | int]`, found `Overload[(arg: int) -> CoroutineType[Any, Any, str], (arg: str) -> CoroutineType[Any, Any, int]]`
+ src/trio/_core/_tests/type_tests/run.py:51:22 error[invalid-argument-type] Argument to function `run` is incorrect: Expected `(str | int, /) -> Awaitable[str | int]`, found `Overload[(arg: int) -> CoroutineType[Any, Any, str], (arg: str) -> CoroutineType[Any, Any, int]]`
+ src/trio/_dtls.py:1222:17 error[invalid-argument-type] Argument to function `spawn_system_task` is incorrect: Expected `(ReferenceType[Self@_ensure_receive_loop] | ReferenceType[DTLSEndpoint], SocketType, /) -> Awaitable[object]`, found `def dtls_receive_loop(endpoint_ref: ReferenceType[DTLSEndpoint], sock: SocketType) -> CoroutineType[Any, Any, None]`
+ src/trio/_tests/test_threads.py:881:25 error[invalid-argument-type] Argument to function `to_thread_run_sync` is incorrect: Expected `() -> Unknown`, found `partial[(int | float, /, *, trio_token: TrioToken | None = ...) -> None]`
+ src/trio/_tests/test_threads.py:921:45 error[invalid-argument-type] Argument to function `to_thread_run_sync` is incorrect: Expected `(def current_task() -> Task, /) -> Unknown`, found `def from_thread_run_sync[*Ts, RetT](fn: (*Ts) -> RetT, *args: Ts, *, trio_token: TrioToken | None = None) -> RetT`
+ src/trio/_tests/test_threads.py:1121:38 error[invalid-argument-type] Argument to function `to_thread_run_sync` is incorrect: Expected `(def sleep(seconds: int | float) -> CoroutineType[Any, Any, None], Literal[0], /) -> Unknown`, found `def from_thread_run[*Ts, RetT](afn: (*Ts) -> Awaitable[RetT], *args: Ts, *, trio_token: TrioToken | None = None) -> RetT`
- src/trio/_tests/test_util.py:108:32 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `(...) -> Awaitable[Unknown]`, found `CoroutineType[Any, Any, None]`
+ src/trio/_tests/test_util.py:108:32 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `() -> Awaitable[Unknown]`, found `CoroutineType[Any, Any, None]`
- src/trio/_tests/test_util.py:122:36 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `(...) -> Awaitable[Unknown]`, found `Generator[Coroutine[None, None, None], None, None]`
+ src/trio/_tests/test_util.py:122:36 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `() -> Awaitable[Unknown]`, found `Generator[Coroutine[None, None, None], None, None]`
- src/trio/_tests/test_util.py:135:32 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `(...) -> Awaitable[Unknown]`, found `Deferred`
+ src/trio/_tests/test_util.py:135:32 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `() -> Awaitable[Unknown]`, found `Deferred`
- src/trio/_tests/test_util.py:139:32 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `(...) -> Awaitable[Unknown]`, found `() -> Deferred`
+ src/trio/_tests/test_util.py:139:32 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `() -> Awaitable[Unknown]`, found `() -> Deferred`
- src/trio/_tests/test_util.py:143:32 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `(...) -> Awaitable[Unknown]`, found `def len(obj: Sized, /) -> int`
+ src/trio/_tests/test_util.py:143:32 error[invalid-argument-type] Argument to function `coroutine_or_error` is incorrect: Expected `(Sized, /) -> Awaitable[Unknown]`, found `def len(obj: Sized, /) -> int`
+ src/trio/_tests/test_wait_for_object.py:84:13 error[invalid-argument-type] Argument to bound method `Nursery.start_soon` is incorrect: Expected `(*args: Unknown) -> Awaitable[object]`, found `def to_thread_run_sync[*Ts, RetT](sync_fn: (*Ts) -> RetT, *args: Ts, *, thread_name: str | None = None, abandon_on_cancel: bool = False, limiter: CapacityLimiter | None = None) -> CoroutineType[Any, Any, RetT]`
+ src/trio/_tests/test_wait_for_object.py:103:13 error[invalid-argument-type] Argument to bound method `Nursery.start_soon` is incorrect: Expected `(*args: Unknown) -> Awaitable[object]`, found `def to_thread_run_sync[*Ts, RetT](sync_fn: (*Ts) -> RetT, *args: Ts, *, thread_name: str | None = None, abandon_on_cancel: bool = False, limiter: CapacityLimiter | None = None) -> CoroutineType[Any, Any, RetT]`
+ src/trio/_tests/test_wait_for_object.py:122:13 error[invalid-argument-type] Argument to bound method `Nursery.start_soon` is incorrect: Expected `(*args: Unknown) -> Awaitable[object]`, found `def to_thread_run_sync[*Ts, RetT](sync_fn: (*Ts) -> RetT, *args: Ts, *, thread_name: str | None = None, abandon_on_cancel: bool = False, limiter: CapacityLimiter | None = None) -> CoroutineType[Any, Any, RetT]`

xarray (https://github.com/pydata/xarray)
- xarray/computation/rolling.py:199:9 error[unsupported-operator] Operator `/=` is not supported between objects of type `T_Xarray@Rolling` and `Unknown`
- xarray/core/coordinates.py:1214:69 error[invalid-argument-type] Method `__getitem__` of type `(bound method T_Xarray@assert_coordinate_consistent.__getitem__(key: Any) -> T_Xarray@assert_coordinate_consistent) | (Overload[(key: Hashable) -> DataArray, (key: Iterable[Hashable]) -> T_Xarray@assert_coordinate_consistent])` cannot be called with key of type `Unknown` on object of type `T_Xarray@assert_coordinate_consistent`
- xarray/core/coordinates.py:1217:51 error[invalid-argument-type] Method `__getitem__` of type `(bound method T_Xarray@assert_coordinate_consistent.__getitem__(key: Any) -> T_Xarray@assert_coordinate_consistent) | (Overload[(key: Hashable) -> DataArray, (key: Iterable[Hashable]) -> T_Xarray@assert_coordinate_consistent])` cannot be called with key of type `Unknown` on object of type `T_Xarray@assert_coordinate_consistent`
- xarray/core/groupby.py:688:25 error[invalid-argument-type] Argument to bound method `DataArray.transpose` is incorrect: Argument type `T_Xarray@GroupBy` does not satisfy upper bound `DataArray` of type variable `Self`
- xarray/core/groupby.py:712:27 error[invalid-argument-type] Argument to bound method `DataArray.isel` is incorrect: Argument type `T_Xarray@GroupBy` does not satisfy upper bound `DataArray` of type variable `Self`
- xarray/core/groupby.py:871:23 error[invalid-argument-type] Argument to bound method `Dataset.isel` is incorrect: Argument type `T_Xarray@GroupBy` does not satisfy upper bound `Dataset` of type variable `Self`
- xarray/core/groupby.py:963:24 error[invalid-argument-type] Method `__getitem__` of type `(bound method T_Xarray@GroupBy.__getitem__(key: Any) -> T_Xarray@GroupBy) | (Overload[(key: Hashable) -> DataArray, (key: Iterable[Hashable]) -> T_Xarray@GroupBy])` cannot be called with key of type `Unknown` on object of type `T_Xarray@GroupBy`
- xarray/core/groupby.py:1227:15 error[invalid-argument-type] Argument to bound method `DataArray.transpose` is incorrect: Argument type `T_Xarray@GroupBy` does not satisfy upper bound `DataArray` of type variable `Self`
- xarray/core/groupby.py:1227:15 error[invalid-argument-type] Argument to bound method `Dataset.transpose` is incorrect: Argument type `T_Xarray@GroupBy` does not satisfy upper bound `Dataset` of type variable `Self`
- xarray/core/resample.py:107:16 error[invalid-argument-type] Argument to bound method `DataArray.drop_vars` is incorrect: Argument type `T_Xarray@Resample` does not satisfy upper bound `DataArray` of type variable `Self`
- xarray/core/resample.py:107:16 error[invalid-argument-type] Argument to bound method `Dataset.drop_vars` is incorrect: Argument type `T_Xarray@Resample` does not satisfy upper bound `Dataset` of type variable `Self`
- xarray/core/resample.py:129:23 error[invalid-argument-type] Argument to bound method `DataArray.drop_vars` is incorrect: Argument type `T_Xarray@Resample` does not satisfy upper bound `DataArray` of type variable `Self`
- xarray/core/resample.py:129:23 error[invalid-argument-type] Argument to bound method `Dataset.drop_vars` is incorrect: Argument type `T_Xarray@Resample` does not satisfy upper bound `Dataset` of type variable `Self`
- xarray/core/resample.py:151:16 error[invalid-argument-type] Argument to bound method `Dataset.reindex` is incorrect: Argument type `T_Xarray@Resample` does not satisfy upper bound `Dataset` of type variable `Self`
- xarray/core/resample.py:178:16 error[invalid-argument-type] Argument to bound method `Dataset.reindex` is incorrect: Argument type `T_Xarray@Resample` does not satisfy upper bound `Dataset` of type variable `Self`
- xarray/core/resample.py:206:16 error[invalid-argument-type] Argument to bound method `Dataset.reindex` is incorrect: Argument type `T_Xarray@Resample` does not satisfy upper bound `Dataset` of type variable `Self`
- xarray/core/resample.py:245:16 error[invalid-argument-type] Argument to bound method `DataArray.interp` is incorrect: Argument type `T_Xarray@Resample` does not satisfy upper bound `DataArray` of type variable `Self`

Full report with detailed diff (timing results)

@dhruvmanila dhruvmanila force-pushed the dhruv/codex/typevartuple-support branch from c9b3969 to 4479d6b Compare May 19, 2026 16:08
@codspeed-hq

codspeed-hq Bot commented May 19, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 6.88%

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

❌ 2 regressed benchmarks
✅ 125 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation ty_micro[many_protocol_members_mismatch] 368.3 ms 396.8 ms -7.19%
WallTime static_frame 22.5 s 24 s -6.58%

Tip

Investigate this regression with the CodSpeed MCP and your agent.


Comparing dhruv/codex/typevartuple-support (5d80af0) with main (267af00)

Open in CodSpeed

@dhruvmanila dhruvmanila force-pushed the dhruv/codex/typevartuple-support branch 3 times, most recently from f0dc84f to 37e8025 Compare May 22, 2026 11:46
@dhruvmanila dhruvmanila force-pushed the dhruv/codex/typevartuple-support branch from 37e8025 to fc2e4d0 Compare May 27, 2026 10:34
@dhruvmanila dhruvmanila force-pushed the dhruv/codex/typevartuple-support branch 2 times, most recently from 5ce4724 to 24c8463 Compare June 5, 2026 11:42
@astral-sh-bot

astral-sh-bot Bot commented Jun 5, 2026

Copy link
Copy Markdown

ruff-ecosystem results

Linter (stable)

✅ ecosystem check detected no linter changes.

Linter (preview)

✅ ecosystem check detected no linter changes.

@dhruvmanila dhruvmanila changed the title [ty] Add initial TypeVarTuple support [ty] Support TypeVarTuple and Unpack Jun 5, 2026
@dhruvmanila dhruvmanila force-pushed the dhruv/codex/typevartuple-support branch from f764d13 to 3241dca Compare June 5, 2026 15:22
@dhruvmanila dhruvmanila force-pushed the dhruv/codex/typevartuple-support branch from 3241dca to 9dad1bf Compare June 8, 2026 07:45
@dhruvmanila dhruvmanila force-pushed the dhruv/codex/typevartuple-support branch from 7bdd946 to 5d80af0 Compare June 9, 2026 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ty Multi-file analysis & type inference

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support typing.Unpack support TypeVarTuple

1 participant