[Python-ideas] PEP 3107 Function Annotations: interoperability (again)

Guido van Rossum guido at python.org
Tue Jan 2 01:40:33 CET 2007

Well, it's your PEP, isn't it? Just submit a change to the PEP editor.

If it were me, any suggestion of how annotations could/should be used
should be stricken from the PEP, including the example

  def foo(a: int, b: dict, c: int = 5):

The only place where an example like this could be mentioned would be
a motivational section which could suffice by referring to Collin's
existing type annotation library and explaining how it could be made
more elegant by attaching the types directly to the arguments. The
interop issue needn't be mentioned -- I imagine it's not easy to
ensure interop between something like Collin's current library and
some other library that makes extensive use of decorators, either.

A later PEP, based on actual experience, could propose an interop
convention to be used by frameworks that expect to be needing it. To
me the current fuss about interop sounds like over-analyzing the
situation based on zero data points. Remember YAGNI.


On 1/1/07, Tony Lownds <tony at pagedna.com> wrote:
> In discussing the Function Annotations PEP on python-list,
> interoperability
> between schemes came up again:
> http://mail.python.org/pipermail/python-list/2006-December/420645.html
> John Roth wrote:
> > Third, it's half of a proposal. Type checking isn't the only use
> > for metadata about functions/methods, classes, properties
> > and other objects, and the notion that there are only going to
> > be a small number of non-intersecting libraries out there is
> > an abdication of responsibility to think this thing through.
> This issue came up before in
> http://mail.python.org/pipermail/python-3000/2006-August/002796.html
> and a rather long thread followed. Here is the paragraph in the PEP that
> needs updating, at the least:
>     There is no worry that these libraries will assign semantics at
>     random, or that a variety of libraries will appear, each with
>     varying semantics and interpretations of what, say, a tuple of
>     strings means. The difficulty inherent in writing annotation
>     interpreting libraries will keep their number low and their
>     authorship in the hands of people who, frankly, know what they're
>     doing.
> The notion that libraries don't intersect should be stripped from the
> PEP. The question in my mind is whether this PEP needs to take
> responsibility for interoperability.
> I contend that people who design an annotation-consuming library
> that ends up intersecting several others will likely be capable of
> finding
> a solution even if not ideal without a central mechanism, and will be
> far
> better situated to define a solution for a central mechanism.
> Any thoughts?
> Thanks
> -Tony
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas

--Guido van Rossum (home page: http://www.python.org/~guido/)

More information about the Python-ideas mailing list