[Python-ideas] Proposal: Use mypy syntax for function annotations

Guido van Rossum guido at python.org
Thu Aug 14 07:11:17 CEST 2014


On Wed, Aug 13, 2014 at 6:09 PM, Gregory P. Smith <greg at krypto.org> wrote:

> First, I am really happy that you are interested in this and that your
> point (2) of what you want to see done is very limited and acknowledges
> that it isn't going to specify everything!  Because that isn't possible. :)
>

What a shame. :-)


> Unfortunately I feel that adding syntax like this to the language itself
> is not useful without enforcement because it that leads to code being
> written with unintentionally incorrect annotations that winds up deployed
> in libraries that later become a problem as soon as an actual analysis tool
> attempts to run over something that uses that unknowingly incorrectly
> specified code in a place where it cannot be easily updated (like the
> standard library).
>

We could refrain from using type annotations in the stdlib (similar to how
we refrain from using Unicode identifiers). Mypy's stubs mechanism makes it
possible to ship the type declarations for stdlib modules with mypy instead
of baking them into the stdlib.


> At the summit in Montreal earlier this year Łukasz Langa (cc'd)
> volunteered to lead writing the PEP on Python type hinting based on the
> many existing implementations of such things (including mypy, cython, numba
> and pytypedecl <https://github.com/google/pytypedecl>). I believe he has
> an initial draft he intends to send out soon. I'll let him speak to that.
>

Mypy has a lot more than an initial draft. Don't be mistaken by its status
as "one person's Ph.D. project" -- Jukka has been thinking about this topic
for a decade, and mypy works remarkably well already. It also has some very
active contributors already.


> Looks like Łukasz already responded, I'll stop writing now and go read
> that. :)
>
> Personal opinion from experience trying: You can't express the depth of
> types for an interface within the Python language syntax itself (assuming
> hacks such as specially formatted comments, strings or docstrings do not
> count). Forward references to things that haven't even been defined yet are
> common. You often want an ability to specify a duck type interface rather
> than a specific type.  I think he has those points covered better than I do.
>

I think mypy has solutions for the syntactic issues, and the rest can be
addressed by introducing a few more magic helper functions. It's remarkably
readable.

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


More information about the Python-ideas mailing list