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. --Guido On 1/1/07, Tony Lownds <tony@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@python.org http://mail.python.org/mailman/listinfo/python-ideas
-- --Guido van Rossum (home page: http://www.python.org/~guido/)