mirror of https://github.com/python/cpython
gh-126705: Make os.PathLike more like a protocol (#126706)
it can now be used as a base class in other protocols
This commit is contained in:
parent
73cf069099
commit
a83472f49b
|
@ -8,6 +8,7 @@ import gc
|
|||
import inspect
|
||||
import itertools
|
||||
import operator
|
||||
import os
|
||||
import pickle
|
||||
import re
|
||||
import sys
|
||||
|
@ -4252,6 +4253,9 @@ class ProtocolTests(BaseTestCase):
|
|||
class CustomProtocol(TestCase, Protocol):
|
||||
pass
|
||||
|
||||
class CustomPathLikeProtocol(os.PathLike, Protocol):
|
||||
pass
|
||||
|
||||
class CustomContextManager(typing.ContextManager, Protocol):
|
||||
pass
|
||||
|
||||
|
|
|
@ -1944,6 +1944,7 @@ _PROTO_ALLOWLIST = {
|
|||
'Reversible', 'Buffer',
|
||||
],
|
||||
'contextlib': ['AbstractContextManager', 'AbstractAsyncContextManager'],
|
||||
'os': ['PathLike'],
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Allow :class:`os.PathLike` to be a base for Protocols.
|
Loading…
Reference in New Issue