<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<div class="moz-cite-prefix">On 12/21/2014 08:05 PM, Guido van
Rossum wrote:<br>
</div>
<blockquote
cite="mid:CAP7+vJJF=6Q141QpKHz=V8HA3zdyqP56yoL9E1qYE_bfNhPmww@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Sun, Dec 21, 2014 at 3:47 PM, Nick
Coghlan <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:ncoghlan@gmail.com" target="_blank">ncoghlan@gmail.com</a>></span>
wrote:
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><br>
<div class="gmail_extra">
<div class="gmail_quote"><span class="">On 22 December
2014 at 06:32, Andrew Svetlov <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:andrew.svetlov@gmail.com"
target="_blank">andrew.svetlov@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0
0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">Sorry, I want to ask
again.<br>
The proposal is for static checks only?<br>
My expectations for processing annotations in
runtime as-is (just a<br>
mark without any restrictions) will not changed?<br>
</blockquote>
<div><br>
</div>
</span>
<div>Correct, there are no changes being proposed to
the runtime semantics of annotations. The type
hinting proposal describes a conventional use for
them that will be of benefit to static type
checking systems and integrated development
environments, but it will be exactly that: a
convention, not an enforced behaviour.</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Well... The elephant in the room is that *eventually*
other uses of annotations *may* be frowned upon, or may
need to be marked by some decorator. But I promise that in
Python 3.5 your code will not break -- it just might not
be very useful to run a static checker like mypy on it.
(IIRC mypy used to only typecheck code that imports the
typing.py module, but this seems to have changed.)<br>
<br>
</div>
<div>When we discussed this earlier this year, a few other
uses of annotations were brought up, and some have
proposed that static type annotations would need to be
marked by a decorator. There is even a proposed syntax
that allows multiple annotations to coexist for the same
argument (a dict with fixed keys -- to me it looks pretty
ugly though).<br>
</div>
</div>
</div>
</div>
</blockquote>
<br>
What I ended up doing for my scription program was to move the
annotations outside the def, and store them in a different
attribute, applied with a decorator:<br>
<br>
@Command(<br>
file=('source file', ),<br>
dir=('target directory', ),<br>
options=('extra options', MULTI, ),<br>
)<br>
def copy(file, dir, options):<br>
pass<br>
<br>
copy.__scription__ --> {'file':..., 'dir':..., 'options':...}<br>
<br>
--<br>
~Ethan~<br>
</body>
</html>