[Python-ideas] from future import function_annotations (original) (raw)
Tony Lownds tony at PageDNA.com
Wed Apr 11 17:24:19 CEST 2007
- Previous message: [Python-ideas] from __future__ import function_annotations
- Next message: [Python-ideas] from __future__ import function_annotations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Apr 11, 2007, at 4:01 AM, Tobias Ivarsson wrote:
I am just curiously wondering about the plans for introducing function annotations (PEP 3107). I could not find any information about this in the PEP, neither when I searched the mail archives. The way I see it this feature could be quite interesting to introduce as early as possible since I believe that there are quite a few tools that could benefit from this today. I could for example see Jython using function annotations for declaring methods that are supposed to be accessible from java code. This is done via annotations in the doc string today, and would be a lot clearer using function annotations. Jython could implement this use of function annotations without python supporting it, but that would make the code incompatible between python and Jython, which would be highly unfortunate. Therefore i propose that python adds support for function annotations in version 2.6 via from future import functionannotations This would make the change as compatible as for example @decorators or the with-statement.
Function annotations PEP is accepted and code has been checked in to
p3yk. I don't think there would be much support for
the syntax in 2.6, but I could be wrong. A more palatable
compatibility strategy may be to introduce a decorator that sets
function.annotations, so that these two function definitions
would have equivalent annotations:
@annotate(int, int, returns=int) ... def gcd1(m, n): ... etc
def gcd2(m: int, n: int) -> int: ... etc
It's easier for a decorator to be compatible with run-time semantics,
and more likely to avoid syntax questions, than embedding
the annotattions in docstrings. Source code conversion (2to3) could
change the @annotate decorator form to the in-line function
form. Tools could be written to use either annotation set.
What do y'all think?
-Tony
- Previous message: [Python-ideas] from __future__ import function_annotations
- Next message: [Python-ideas] from __future__ import function_annotations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]