On 8/14/06, Collin Winter <[EMAIL PROTECTED]> wrote:
The way I read this, it forces (more or less) each
annotation-consuming library to invent new ways to spell Python's
built-in types.

I think that this is related to your other question. What if an annotation consuming library wanted to use Python's built-in types nested within their own top-level structures.

def foo(a: xxx([x, y, z])): ...

I would say that the innermost list has its semantics (as metadata) defined by "xxx", not raw Python. That's the only reasonable thing.

> "This implies that the interpretation of built-in types would be controlled
> by Python's developers and documented in Python's documentation.

The inherent difficulty in defining a standard interpretation for
these types is what motivated me to leave this up to the authors of
annotation consumers.

There are three issues: first, we need to RESERVE the types for standardization by Guido and crew. Second, we can decide to do the standardization at any point. Third, we absolutely need a standard for multiple independent annotations on a parameter. Using lists is a no-brainer. So let's do that.

If you have an idea, though, feel free to propose something concrete.

Yes, my proposal is here:

>  "In Python 3000, semantics will be attached to the following types: objects
> of type string (or subtype of string) are to be used for documentation
> (though they are not necessarily the exclusive source of documentation about
> the type). Objects of type list (or subtype of list) are to be used for
> attaching multiple independent annotations."

Does this mean all lists "are to be used for attaching multiple
independent annotations", or just top-level lists (ie, "def foo(a: [x,
y])" indicates two independent annotations)? What does "def foo(a: [x,
[y, z]])" indicate?

I meant only top-level lists. I hadn't thought through nesting.

def foo(a: [x, y, [a, b, c]]): ...

This should probably be just handled recursively or disallowed. I don't feel strongly either way.

 Paul Prescod

_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to