[Python-ideas] PEP 484 (Type Hints) -- first draft round

Guido van Rossum guido at python.org
Fri Jan 16 22:47:53 CET 2015


On Fri, Jan 16, 2015 at 1:08 PM, Petr Viktorin <encukou at gmail.com> wrote:

> "On Fri, Jan 16, 2015 at 6:17 PM, Guido van Rossum <guido at python.org>
> wrote:
> [...]
> > * Tuple, used as ``Tuple[index0_type, index1_type, ...]``.
> >   Arbitrary-length tuples might be expressed using ellipsis, in which
> >   case the following arguments are considered the same type as the last
> >   defined type on the tuple.
>
> How would Tuple[...] or Tuple[t1, ..., t2] work? The PEP should say
> such shenanigans are undefined, rather than leave it to
> interpretation.
>

Good point. This needs to be elaborated. See
https://github.com/ambv/typehinting/issues/30. (Wanna submit a pull
request?)


> Also, does the empty tuple match Tuple[int, ...]?
>

I think it probably does. At least the corresponding thing for lists works
in mypy:

    x = []  # type: List[int]

So I think we should allow a similar thing for tuples:

    x = ()  # type: Tuple[int, ...]


> [...]
> > * WINDOWS
> >
> > * UNIXOID, equivalent to ``not WINDOWS``
>
> I wonder what the use cases are here. Is this useful, as a dichotomy,
> outside of asyncio (or other low-level stdlib code)?
>

The stdlib is full of things that work differently on Windows. Consequently
application code will also often contain things like

    if <windows>:
        <do it the Windows way>
    else:
        <do it the other way>

Typically each branch can only be type-checked if the stdlib for that
particular platform is accessible. So it makes sense to standardize on a
way of spelling the test in a way that static checkers can understand.

-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150116/a94ca1f7/attachment.html>


More information about the Python-ideas mailing list