Skip to content

[ty] Recover tuples with bare TypeVarTuples to tuple[Unknown, ...] - #27950

Open
carljm wants to merge 4 commits into
cjm/ty-invariant-gradual-tuple-materializationfrom
cjm/ty-typevartuple-unknown-recovery
Open

[ty] Recover tuples with bare TypeVarTuples to tuple[Unknown, ...]#27950
carljm wants to merge 4 commits into
cjm/ty-invariant-gradual-tuple-materializationfrom
cjm/ty-typevartuple-unknown-recovery

Conversation

@carljm

@carljm carljm commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Recover tuple annotations containing a non-unpacked TypeVarTuple to tuple[Unknown, ...], while preserving the missing-unpack diagnostic. This preserves the tuple type without assuming that the bare pack represents a single element, avoiding cascading assignment errors when the value is used as a variadic tuple.

Track the missing unpack in type-expression metadata and check all tuple elements before recovering, so independent errors are still reported. Recovery stops at the affected tuple: tuple[tuple[Ts]] becomes tuple[tuple[Unknown, ...]], type[tuple[Ts]] becomes type[tuple[Unknown, ...]], and an ordinary tuple[Unknown] keeps its known length. Quoted annotations, typing.Tuple, and implicit tuple aliases use the same recovery.

Allow a fully gradual tuple to be assigned to a symbolic TypeVarTuple tuple, including targets with fixed prefixes or suffixes. This follows the gradual tuple rule and keeps the recovery type assignable to tuple[*Ts]. Source tuples with fixed elements still retain their length constraints, and subtyping is unchanged. This also fixes constrained inference from a synthetic Self when the constraint uses gradual tuple arguments.

Depends on #27946. Addresses the error-recovery cascade that otherwise caused a conformance suite failure in #27943.

Test plan

  • Add PEP 695 mdtests for direct, mixed, and homogeneous tuple annotations; nested tuple and type boundaries; ordinary Unknown elements; quoted annotations; and independent sibling diagnostics.
  • Add legacy TypeVarTuple mdtests for the constructor/assignment conformance example, typing.Tuple, implicit aliases using both tuple spellings as expressions and annotations, and a union-valued name that can refer to a bare pack.
  • Test Any and Unknown tuple assignments to symbolic packs, fixed target boundaries, rejection of fixed source boundaries, and the distinction from subtyping. Update the synthetic Self regression to expect successful constrained inference.

@carljm carljm added the ty Multi-file analysis & type inference label Aug 21, 2026
@astral-sh-bot

astral-sh-bot Bot commented Aug 21, 2026

Copy link
Copy Markdown

Typing conformance results

No changes detected ✅

Current numbers
The percentage of diagnostics emitted that were expected errors held steady at 97.68%. The percentage of expected errors that received a diagnostic held steady at 93.44%. The number of fully passing files held steady at 109/136.

@astral-sh-bot

astral-sh-bot Bot commented Aug 21, 2026

Copy link
Copy Markdown

Memory usage report

Memory usage unchanged ✅

@astral-sh-bot

astral-sh-bot Bot commented Aug 21, 2026

Copy link
Copy Markdown

ecosystem-analyzer results

Lint rule Added Removed Changed
invalid-argument-type 1 133 0
invalid-return-type 0 35 0
invalid-yield 0 4 0
unused-type-ignore-comment 2 2 0
invalid-assignment 0 1 0
Total 3 175 0
Raw diff (178 changes)
core (https://github.com/home-assistant/core)
- homeassistant/helpers/dispatcher.py:116:46 error[invalid-argument-type] Argument to class `partial` is incorrect: Expected `_DispatcherDataType[*tuple[Unknown, ...]]`, found `_DispatcherDataType[*tuple[*_Ts@async_dispatcher_connect]]`

static-frame (https://github.com/static-frame/static-frame)
- static_frame/core/frame.py:855:42 error[invalid-argument-type] Argument to function `frame_to_frame` is incorrect: Expected `type[Frame[Any, Any, *tuple[Any, ...]]]`, found `type[Self@from_overlay]`
- static_frame/core/frame.py:3051:13 error[invalid-argument-type] Argument to bound method `ArchiveFrameConverter.from_archive` is incorrect: Expected `type[Frame[Any, Any, *tuple[Any, ...]]]`, found `type[Self@from_npz]`
- static_frame/core/frame.py:3068:13 error[invalid-argument-type] Argument to bound method `ArchiveFrameConverter.from_archive` is incorrect: Expected `type[Frame[Any, Any, *tuple[Any, ...]]]`, found `type[Self@from_npy]`
- static_frame/core/frame.py:3088:13 error[invalid-argument-type] Argument to bound method `ArchiveFrameConverter.from_archive_mmap` is incorrect: Expected `type[Frame[Any, Any, *tuple[Any, ...]]]`, found `type[Self@from_npy_mmap]`
- static_frame/core/frame.py:3114:34 error[invalid-argument-type] Argument to function `frame_to_frame` is incorrect: Expected `type[Frame[Any, Any, *tuple[Any, ...]]]`, found `type[Self@from_pickle]`
- static_frame/core/frame.py:3709:13 error[invalid-argument-type] Argument to `DFIDataFrame.__init__` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@__dataframe__`
- static_frame/core/frame.py:3816:13 error[invalid-argument-type] Argument to `InterfaceConsolidate.__init__` is incorrect: Argument type `Self@consolidate` does not satisfy constraints (`Index[Any]`, `Series[Any, Any]`, `SeriesHE[Any, Any]`, `Frame[Any, Any, *tuple[Any, ...]]`, `FrameGO[Any, Any]`, `FrameHE[Any, Any, *tuple[Any, ...]]`, `TypeBlocks`, `Bus[Any]`, `Batch`, `Yarn[Any]`, `IndexHierarchy[*tuple[Any, ...]]`, `SeriesAssign`, `FrameAssignILoc`, `ndarray[Any, Any]`, `MaskedArray[Any, Any]`, `Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]`) of type variable `TVContainer_co`
- static_frame/core/frame.py:3833:32 error[invalid-argument-type] Argument to `InterfaceValues.__init__` is incorrect: Argument type `Self@via_values` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `IndexHierarchy[*tuple[Any, ...]]`, `Series[Any, Any]`, `Index[Any]`) of type variable `TVContainer_co`
- static_frame/core/frame.py:3843:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@via_str`
- static_frame/core/frame.py:3869:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@via_dt`
- static_frame/core/frame.py:3889:13 error[invalid-argument-type] Argument to `InterfaceTranspose.__init__` is incorrect: Argument type `Self@via_T` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `IndexHierarchy[*tuple[Any, ...]]`) of type variable `TVContainer_co`
- static_frame/core/frame.py:3901:13 error[invalid-argument-type] Argument to `InterfaceFillValue.__init__` is incorrect: Argument type `Self@via_fill_value` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`) of type variable `TVContainer_co`
- static_frame/core/frame.py:3917:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@via_re`
- static_frame/core/frame.py:3942:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_array` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:3955:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_array_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:3968:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_tuple` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:3981:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_tuple_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:3994:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_series` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4007:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_series_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4021:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4034:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4048:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_array` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4061:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_array_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4075:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_labels` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4088:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_labels_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4102:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_labels_array` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4115:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_labels_array_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4129:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_other` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4142:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_other_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4156:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_other_array` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4169:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_group_other_array_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4188:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_window` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4206:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_window_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4224:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_window_array` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4242:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_window_array_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4254:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_element` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4265:13 error[invalid-argument-type] Argument to `IterNode.__init__` is incorrect: Argument type `Self@iter_element_items` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `Series[Any, Any]`, `Bus[Any]`, `Quilt`, `Yarn[Any]`) of type variable `TContainerAny`
- static_frame/core/frame.py:4279:13 error[invalid-argument-type] Argument to `ReduceDispatchAligned.__init__` is incorrect: Expected `Iterable[tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]]]`, found `tuple[tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Self@reduce]]`
- static_frame/core/frame.py:5510:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]`, found `Series[Any, Any] | Self@_extract_loc_columns`
- static_frame/core/frame.py:5519:48 error[invalid-argument-type] Argument to function `bloc_key_normalize` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_extract_bloc`
- static_frame/core/frame.py:5640:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_extract_iloc_mask`
- static_frame/core/frame.py:5674:32 error[invalid-argument-type] Argument to `FrameAssignILoc.__init__` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_extract_iloc_assign`
- static_frame/core/frame.py:5688:32 error[invalid-argument-type] Argument to `FrameAssignBLoc.__init__` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_extract_bloc_assign`
- static_frame/core/frame.py:5695:28 error[invalid-argument-type] Argument to `FrameAsType.__init__` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_extract_getitem_astype`
- static_frame/core/frame.py:5700:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_extract_getitem_consolidate`
- static_frame/core/frame.py:5757:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_ufunc_unary_operator`
- static_frame/core/frame.py:5801:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_ufunc_binary_operator`
- static_frame/core/frame.py:5830:24 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_ufunc_binary_operator`
- static_frame/core/frame.py:5856:24 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_ufunc_binary_operator`
- static_frame/core/frame.py:5886:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_ufunc_binary_operator`
- static_frame/core/frame.py:5946:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_ufunc_shape_skipna`
- static_frame/core/frame.py:6068:27 error[invalid-yield] Yield type `tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Self@_axis_group_final_iter]` does not match annotated yield type `tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]]`
- static_frame/core/frame.py:6086:27 error[invalid-yield] Yield type `tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Self@_axis_group_final_iter]` does not match annotated yield type `tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]]`
- static_frame/core/frame.py:6255:27 error[invalid-yield] Yield type `tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, ndarray[Any, Any] | Self@_axis_group_labels_items]` does not match annotated yield type `tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]]`
- static_frame/core/frame.py:6258:27 error[invalid-yield] Yield type `tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, ndarray[Any, Any] | Self@_axis_group_labels_items]` does not match annotated yield type `tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Frame[Any, Any, *tuple[Any, ...]] | ndarray[Any, Any]]`
- static_frame/core/frame.py:6476:13 error[invalid-argument-type] Argument to function `axis_window_items` is incorrect: Expected `Series[Any, Any] | Frame[Any, Any, *tuple[Any, ...]] | Quilt`, found `Self@_axis_window_items`
- static_frame/core/frame.py:6511:17 error[invalid-argument-type] Argument to function `axis_window_items` is incorrect: Expected `Series[Any, Any] | Frame[Any, Any, *tuple[Any, ...]] | Quilt`, found `Self@_axis_window`
- static_frame/core/frame.py:6699:27 error[invalid-argument-type] Argument is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]`, found `Series[Any, Any] | Self@sort_values`
- static_frame/core/frame.py:6733:27 error[invalid-argument-type] Argument is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]] | Series[Any, Any]`, found `Series[Any, Any] | Self@sort_values`
- static_frame/core/frame.py:6817:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@isin`
- static_frame/core/frame.py:6841:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@clip`
- static_frame/core/frame.py:6884:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@clip`
- static_frame/core/frame.py:6895:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@transpose`
- static_frame/core/frame.py:6955:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@drop_duplicated`
- static_frame/core/frame.py:6967:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@drop_duplicated`
- static_frame/core/frame.py:6975:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@drop_duplicated`
- static_frame/core/frame.py:7004:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@set_index`
- static_frame/core/frame.py:7036:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@set_index`
- static_frame/core/frame.py:7120:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@set_index_hierarchy`
- static_frame/core/frame.py:7227:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@unset_index`
- static_frame/core/frame.py:7258:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@set_columns`
- static_frame/core/frame.py:7286:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@set_columns`
- static_frame/core/frame.py:7369:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@set_columns_hierarchy`
- static_frame/core/frame.py:7468:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@unset_columns`
- static_frame/core/frame.py:7491:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@__round__`
- static_frame/core/frame.py:7538:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@roll`
- static_frame/core/frame.py:7585:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@shift`
- static_frame/core/frame.py:7661:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_rank`
- static_frame/core/frame.py:7941:16 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@sample`
- static_frame/core/frame.py:8388:21 error[invalid-assignment] Object of type `Self@pivot` is not assignable to `Frame[Any, Any, *tuple[Any, ...]]`
- static_frame/core/frame.py:8446:13 error[invalid-argument-type] Argument to function `pivot_derive_constructors` is incorrect: Expected `type[Frame[Any, Any, *tuple[Any, ...]]]`, found `type[Self@pivot_stack]`
- static_frame/core/frame.py:8529:13 error[invalid-argument-type] Argument to function `pivot_derive_constructors` is incorrect: Expected `type[Frame[Any, Any, *tuple[Any, ...]]]`, found `type[Self@pivot_unstack]`
- static_frame/core/frame.py:8598:13 error[invalid-argument-type] Argument to function `join` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@merge_inner`
- static_frame/core/frame.py:8646:13 error[invalid-argument-type] Argument to function `join` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@merge_left`
- static_frame/core/frame.py:8694:13 error[invalid-argument-type] Argument to function `join` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@merge_right`
- static_frame/core/frame.py:8742:13 error[invalid-argument-type] Argument to function `join` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@merge_outer`
- static_frame/core/frame.py:8791:13 error[invalid-argument-type] Argument to function `join` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@join_inner`
- static_frame/core/frame.py:8840:13 error[invalid-argument-type] Argument to function `join` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@join_left`
- static_frame/core/frame.py:8889:13 error[invalid-argument-type] Argument to function `join` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@join_right`
- static_frame/core/frame.py:8938:13 error[invalid-argument-type] Argument to function `join` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@join_outer`
- static_frame/core/frame.py:9285:13 error[invalid-argument-type] Argument to function `StoreBase.get_field_names_and_dtypes` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@to_arrow`
- static_frame/core/frame.py:9295:43 error[invalid-argument-type] Argument to function `StoreBase.get_column_iterator` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@to_arrow`
- static_frame/core/frame.py:9405:24 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_to_frame`
- static_frame/core/frame.py:9406:20 error[invalid-return-type] Return type does not match returned value: expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@_to_frame`
- static_frame/core/frame.py:9587:39 error[invalid-argument-type] Argument to bound method `JSONMeta.to_dict` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@to_json_typed`
- static_frame/core/frame.py:9944:13 error[invalid-argument-type] Argument to bound method `DBQuery.execute_db_type` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@to_sql`
- static_frame/core/frame.py:9983:18 error[invalid-argument-type] Argument to bound method `StoreXLSX.write` is incorrect: Expected `Iterable[tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Frame[Any, Any, *tuple[Any, ...]]]]`, found `tuple[tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Self@to_xlsx]]`
- static_frame/core/frame.py:10013:18 error[invalid-argument-type] Argument to bound method `StoreSQLite.write` is incorrect: Expected `Iterable[tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Frame[Any, Any, *tuple[Any, ...]]]]`, found `tuple[tuple[Hashable | complex | integer[Any] | ... omitted 8 union elements, Self@to_sqlite]]`
- static_frame/core/frame.py:10029:13 error[invalid-argument-type] Argument to bound method `ArchiveFrameConverter.to_archive` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@to_npz`
- static_frame/core/frame.py:10049:13 error[invalid-argument-type] Argument to bound method `ArchiveFrameConverter.to_archive` is incorrect: Expected `Frame[Any, Any, *tuple[Any, ...]]`, found `Self@to_npy`
+ static_frame/core/frame.py:5773:41 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
+ static_frame/core/frame.py:5775:41 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/core/frame.py:3002:34 error[invalid-argument-type] Argument to function `frame_to_frame` is incorrect: Expected `type[Frame[Any, Any, *tuple[Any, ...]]]`, found `type[Self@from_xlsx]`
- static_frame/core/frame.py:3038:34 error[invalid-argument-type] Argument to function `frame_to_frame` is incorrect: Expected `type[Frame[Any, Any, *tuple[Any, ...]]]`, found `type[Self@from_sqlite]`
- static_frame/core/index_hierarchy.py:1042:24 error[invalid-return-type] Return type does not match returned value: expected `IndexHierarchy[*tuple[Any, ...]]`, found `Self@_cls_ufunc_set`
- static_frame/core/index_hierarchy.py:1387:32 error[invalid-argument-type] Argument to `InterfaceValues.__init__` is incorrect: Argument type `Self@via_values` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `IndexHierarchy[*tuple[Any, ...]]`, `Series[Any, Any]`, `Index[Any]`) of type variable `TVContainer_co`
- static_frame/core/index_hierarchy.py:1422:35 error[invalid-argument-type] Argument to `InterfaceTranspose.__init__` is incorrect: Argument type `Self@via_T` does not satisfy constraints (`Frame[Any, Any, *tuple[Any, ...]]`, `IndexHierarchy[*tuple[Any, ...]]`) of type variable `TVContainer_co`
- static_frame/core/index_hierarchy.py:2345:37 error[invalid-argument-type] Argument to `IndexHierarchyAsType.__init__` is incorrect: Expected `IndexHierarchy[*tuple[Any, ...]]`, found `Self@_extract_getitem_astype`
- static_frame/profile/__main__.py:2509:21 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/typing/test_frame.py:79:23 error[invalid-argument-type] Argument to bound method `Frame.from_records` is incorrect: Argument type `FrameHE[Any, Any, *tuple[Any, ...]]` does not satisfy upper bound `Frame[TVIndex@FrameHE, TVColumns@FrameHE, *tuple[*TVDtypes@FrameHE]]` of type variable `Self`
- static_frame/test/typing/test_frame.py:156:23 error[invalid-argument-type] Argument to bound method `Frame.from_records` is incorrect: Argument type `FrameHE[Any, Any, *tuple[Any, ...]]` does not satisfy upper bound `Frame[TVIndex@FrameHE, TVColumns@FrameHE, *tuple[*TVDtypes@FrameHE]]` of type variable `Self`
- static_frame/test/unit/test_container_util.py:104:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_db_util.py:303:10 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:413:50 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:2098:21 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:2293:21 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:2508:21 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:2515:21 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:2538:21 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:2571:21 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:14977:18 error[invalid-argument-type] Argument to bound method `Frame.from_pickle` is incorrect: Argument type `FrameHE[Any, Any, *tuple[Any, ...]]` does not satisfy upper bound `Frame[TVIndex@FrameHE, TVColumns@FrameHE, *tuple[*TVDtypes@FrameHE]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:19282:21 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame.py:19289:30 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_names` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_frame_he.py:11:14 error[invalid-argument-type] Argument to bound method `Frame.from_element` is incorrect: Argument type `FrameHE[Any, Any, *tuple[Any, ...]]` does not satisfy upper bound `Frame[TVIndex@FrameHE, TVColumns@FrameHE, *tuple[*TVDtypes@FrameHE]]` of type variable `Self`
- static_frame/test/unit/test_frame_he.py:14:24 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_index_hierarchy.py:254:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:271:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:799:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:806:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:807:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:870:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:919:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:1426:14 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_index_items` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2217:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2241:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2272:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2309:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2334:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2368:14 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2706:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2838:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3139:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3187:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3383:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3406:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3413:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3431:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3645:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3703:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3723:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3830:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_pandas` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3853:13 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_pandas` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3862:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_pandas` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3905:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3921:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:3949:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_index_items` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4312:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4498:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4507:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4519:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4565:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4642:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4684:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4716:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4718:45 warning[unused-type-ignore-comment] Unused blanket `type: ignore` directive
- static_frame/test/unit/test_index_hierarchy.py:4763:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4769:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4795:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4833:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:4869:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_names` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:5232:16 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_product` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:5394:14 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_labels` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
+ static_frame/test/unit/test_index_hierarchy.py:5335: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:1835:14 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_tree` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2132:14 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_tree` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2178:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_tree` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`
- static_frame/test/unit/test_index_hierarchy.py:2187:15 error[invalid-argument-type] Argument to bound method `IndexHierarchy.from_tree` is incorrect: Argument type `IndexHierarchyGO[*tuple[Any, ...]]` does not satisfy upper bound `IndexHierarchy[*tuple[*TVIndices@IndexHierarchyGO]]` of type variable `Self`

Full report with detailed diff (timing results)

@carljm
carljm requested a review from dhruvmanila August 21, 2026 03:42
@carljm
carljm marked this pull request as ready for review August 21, 2026 04:00
@carljm
carljm requested a review from a team as a code owner August 21, 2026 04:00

@dhruvmanila dhruvmanila left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks!

Just out of curiosity and you've probably thought about it already, what do you think of recovering it to tuple[Unknown, ...] instead of Unknown? This way we would preserve the tuple structure and not restrict it to one element. I think Pyrefly recovers to that. As such, this is an error case so not worth spending a lot of time right now.

@carljm carljm changed the title [ty] Recover tuples containing bare TypeVarTuples to Unknown [ty] Recover tuples with bare TypeVarTuples to tuple[Unknown, ...] Aug 21, 2026
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.

2 participants