ethereum / ethereum/eth-utils

The `to_tuple` type decorators don't correctly handle generics for item types.

Open
#152 1 comment 0 reactions 0 assignees View on GitHub
p3
Dominant language
Python
Stars
335
Forks
167
PR merge metrics
No merged PRs in 30d

Description

### What was wrong?

When using `to_tuple` on a function which operates on a generic type, type safety is not preserved.

```
TVal = TypeVar('TVal')

@to_tuple
def typing_to_tuple_generic(values: Sequence[TVal]) -> Iterable[TVal]:
yield from values

v_tuple_generic = typing_to_tuple_generic([1, 2, 3])
reveal_type(v_tuple_generic) # error: Revealed type is 'builtins.tuple[TVal`-1]'
```

### How can it be fixed?

???

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.