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?


Until extensive usage happens with annotations we shouldn't try to shoehorn consumers of the annotations into a specific solution.  As you said, something will probably organically grow and that can be supported in another PEP later on (probably with stdlib support).  People tend to want to design up front but with something like this that is meant to be highly customizable by the people wanting to use it you just don't get that option without ample feedback from users.

-Brett