[Python-Dev] Use more Argument Clinic Annotations?

Dave Halter davidhalter88 at gmail.com
Sun Mar 25 12:47:38 EDT 2018


2018-03-25 18:38 GMT+02:00 Serhiy Storchaka <storchaka at gmail.com>:
> 25.03.18 15:36, Dave Halter пише:
>>
>> I recently started testing Jedi with Python 3.7. Some tests broke. I
>> realized that one of the things that changed in 3.7 was the use of
>> argument clinic in methods like str.replace.
>>
>> The issue is that the text signature doesn't contain a return annotation.
>>
>>>>> str.replace.__text_signature__
>>
>> '($self, old, new, count=-1, /)
>>
>>
>> In Python < 3.7 there was a `S.replace(old, new[, count]) -> str` at
>> the top of the __doc__. T
>>
>> If the __text_signature__ was `'($self, old, new, count=-1, /) -> str`
>> a lot of tools would be able to have the information again.
>>
>> Is this intentional or was this just forgotten? I'd like to note that
>> this information is insanely helpful (at least for Jedi) to pick up
>> type information. I really hope this information can make it back into
>> 3.7, since it was there in earlier versions.
>
>
> Argument Clinic convertors don't have any relations with annotations.
> Annotations are not supported by Argument Clinic.

Is there a way though in which the __text_signature__ could contain
the information `-> str` or do we need to engineer that first?

IMO it's just a small thing in which Python 3.7 got worse than 3.6 and
I hope we can still fix that. Everything else looks great.


More information about the Python-Dev mailing list