8000 Question about usage of union of Tuples · Issue #391 · python/typing · GitHub
[go: up one dir, main page]

Skip to content
Question about usage of union of Tuples #391
Closed
@tacaswell

Description

@tacaswell

I just started trying to apply typing to a code base, so I may be greatly miss-understanding what I am doing, but here we go :)

We have a case where we get a tuple back from a user supplied function which must be (None, None), (some_not_none, None), or (some_not_none, other_not_none), that the second value can only be not None if the first value is also not None. (This is why I did not do Tuple[Optional[int], Optional[int]]).

A minimal example to reproduce the issues is

from typing import Tuple, Union

InputType = Union[Tuple[None, None],
                  Tuple[int, None],
                  Tuple[int, int]]


def f(a: InputType) -> None:
    b, c = a

which gives

(dd36) ✔ ~ 
17:32 $ mypy --version
mypy 0.471
(dd36) ✔ ~ 
17:32 $ mypy /tmp/test.py
/tmp/test.py:9: error: 'Union[Tuple[void, void], Tuple[builtins.int, void], Tuple[builtins.int, builtins.int]]' object is not iterable

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0