Larry Hastings <la...@hastings.org> added the comment:

> Hey Larry, it would seem that PEP 649 as currently specified would make it 
> impossible to access annotations via the inspect module in cases where 
> x.__annotations__ raises (because one of the annotations references an 
> undefined variable).

That's true.  If PEP 649 is accepted, inspect.signature() might want to catch 
NameError when examining __annotations__ on the object.  Though I'm not sure 
what it should do when the exception is raised.


> I really think that we need *some* way of accessing partial annotations. Even 
> just leaving the failing key out of __annotations__ (but keeping other keys 
> if their annotation works) would be better than failing to return an 
> __annotations__ dict at all.

Unfortunately I don't agree--"errors should never pass silently."  Silently 
omitting the failed annotation seems like it would be a bad experience.  What 
if the value you needed from the annotation was the one that was omitted?  Now 
you have a mystery obscuring your existing problem.

There is a PR against PEP 649 specifically to suppress NameErrors:

    https://github.com/larryhastings/co_annotations/pull/3

I haven't merged the PR as I don't agree with it.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue43463>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to