[Python-Dev] PEP 575: Unifying function/method classes
Eric V. Smith
eric at trueblade.com
Thu May 3 07:58:49 EDT 2018
On 5/3/2018 6:22 AM, Jeroen Demeyer wrote:
> On 2018-05-03 11:30, Victor Stinner wrote:
>> Please don't queue backward incompatible changes for Python 4.0. You
>> should use the regular deprecation process.
>
> I don't really see how that can be done here. As Stefan said
>
>> The problem is that this
>> change does not really fit into the deprecation cycle since there is no
>> specific use case to warn about.
>
> The PEP proposes to change an implementation detail. It's really hard to
> determine at runtime whether code is relying on that implementation
> detail. We could insert a DeprecationWarning in some places, but those
> would mostly be false positives (a DeprecationWarning is shown but the
> code won't break).
>
> On top of that, there is no way to show a DeprecationWarning for code
> like "type(x) is foo".
Deprecating doesn't necessarily involve a DeprecationWarning, although
if possible it should, of course. It could just be a documented
deprecation. We've done this before, although I can't think of an
example off the top of my head (which I realize is not exactly helpful).
"If you're doing a type check involving C functions, and you're doing it
<old way>, change it to <new way> because we're going to deprecate the
old way in version x.y". Of course this assumes both <old way> and <new
way> can coexist for several versions, which itself might not be possible.
Eric
More information about the Python-Dev
mailing list