Skip to content

Commit 797abd1

Browse files
gh-134657: Remove newly added private names from asyncio.__all__ (#134665)
1 parent f1dcf3c commit 797abd1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+105
-90
lines changed

Lib/asyncio/__init__.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,24 @@
5151
def __getattr__(name: str):
5252
import warnings
5353

54-
deprecated = {
55-
"AbstractEventLoopPolicy",
56-
"DefaultEventLoopPolicy",
57-
"WindowsSelectorEventLoopPolicy",
58-
"WindowsProactorEventLoopPolicy",
59-
}
60-
if name in deprecated:
61-
warnings._deprecated(f"asyncio.{name}", remove=(3, 16))
62-
# deprecated things have underscores in front of them
63-
return globals()["_" + name]
54+
match name:
55+
case "AbstractEventLoopPolicy":
56+
warnings._deprecated(f"asyncio.{name}", remove=(3, 16))
57+
return events._AbstractEventLoopPolicy
58+
case "DefaultEventLoopPolicy":
59+
warnings._deprecated(f"asyncio.{name}", remove=(3, 16))
60+
if sys.platform == 'win32':
61+
return windows_events._DefaultEventLoopPolicy
62+
return unix_events._DefaultEventLoopPolicy
63+
case "WindowsSelectorEventLoopPolicy":
64+
if sys.platform == 'win32':
65+
warnings._deprecated(f"asyncio.{name}", remove=(3, 16))
66+
return windows_events._WindowsSelectorEventLoopPolicy
67+
# Else fall through to the AttributeError below.
68+
case "WindowsProactorEventLoopPolicy":
69+
if sys.platform == 'win32':
70+
warnings._deprecated(f"asyncio.{name}", remove=(3, 16))
71+
return windows_events._WindowsProactorEventLoopPolicy
72+
# Else fall through to the AttributeError below.
6473

6574
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")

Lib/asyncio/events.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@
55
# SPDX-FileCopyrightText: Copyright (c) 2015-2021 MagicStack Inc. http://magic.io
66

77
__all__ = (
8-
"_AbstractEventLoopPolicy",
98
"AbstractEventLoop",
109
"AbstractServer",
1110
"Handle",
1211
"TimerHandle",
13-
"_get_event_loop_policy",
1412
"get_event_loop_policy",
15-
"_set_event_loop_policy",
1613
"set_event_loop_policy",
1714
"get_event_loop",
1815
"set_event_loop",
@@ -791,7 +788,10 @@ def _init_event_loop_policy():
791788
global _event_loop_policy
792789
with _lock:
793790
if _event_loop_policy is None: # pragma: no branch
794-
from . import _DefaultEventLoopPolicy
791+
if sys.platform == 'win32':
792+
from .windows_events import _DefaultEventLoopPolicy
793+
else:
794+
from .unix_events import _DefaultEventLoopPolicy
795795
_event_loop_policy = _DefaultEventLoopPolicy()
796796

797797

Lib/asyncio/unix_events.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828

2929
__all__ = (
3030
'SelectorEventLoop',
31-
'_DefaultEventLoopPolicy',
3231
'EventLoop',
3332
)
3433

Lib/test/libregrtest/save_env.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def get_asyncio_events__event_loop_policy(self):
9797
return support.maybe_get_event_loop_policy()
9898
def restore_asyncio_events__event_loop_policy(self, policy):
9999
asyncio = self.get_module('asyncio')
100-
asyncio._set_event_loop_policy(policy)
100+
asyncio.events._set_event_loop_policy(policy)
101101

102102
def get_sys_argv(self):
103103
return id(sys.argv), sys.argv, sys.argv[:]

Lib/test/test_asyncgen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,7 @@ def setUp(self):
629629
def tearDown(self):
630630
self.loop.close()
631631
self.loop = None
632-
asyncio._set_event_loop_policy(None)
632+
asyncio.events._set_event_loop_policy(None)
633633

634634
def check_async_iterator_anext(self, ait_class):
635635
with self.subTest(anext="pure-Python"):

Lib/test/test_asyncio/test_base_events.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class CustomError(Exception):
2929

3030

3131
def tearDownModule():
32-
asyncio._set_event_loop_policy(None)
32+
asyncio.events._set_event_loop_policy(None)
3333

3434

3535
def mock_socket_module():

Lib/test/test_asyncio/test_buffered_proto.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66

77
def tearDownModule():
8-
asyncio._set_event_loop_policy(None)
8+
asyncio.events._set_event_loop_policy(None)
99

1010

1111
class ReceiveStuffProto(asyncio.BufferedProtocol):

Lib/test/test_asyncio/test_context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55

66
def tearDownModule():
7-
asyncio._set_event_loop_policy(None)
7+
asyncio.events._set_event_loop_policy(None)
88

99

1010
@unittest.skipUnless(decimal.HAVE_CONTEXTVAR, "decimal is built with a thread-local context")

Lib/test/test_asyncio/test_eager_task_factory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414

1515
def tearDownModule():
16-
asyncio._set_event_loop_policy(None)
16+
asyncio.events._set_event_loop_policy(None)
1717

1818

1919
class EagerTaskFactoryLoopTests:

Lib/test/test_asyncio/test_events.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
from test.support import ALWAYS_EQ, LARGEST, SMALLEST
3939

4040
def tearDownModule():
41-
asyncio._set_event_loop_policy(None)
41+
asyncio.events._set_event_loop_policy(None)
4242

4343

4444
def broken_unix_getsockname():
@@ -2843,21 +2843,21 @@ def test_default_event_loop_policy_deprecation(self):
28432843
self.assertIsInstance(policy, asyncio.DefaultEventLoopPolicy)
28442844

28452845
def test_event_loop_policy(self):
2846-
policy = asyncio._AbstractEventLoopPolicy()
2846+
policy = asyncio.events._AbstractEventLoopPolicy()
28472847
self.assertRaises(NotImplementedError, policy.get_event_loop)
28482848
self.assertRaises(NotImplementedError, policy.set_event_loop, object())
28492849
self.assertRaises(NotImplementedError, policy.new_event_loop)
28502850

28512851
def test_get_event_loop(self):
2852-
policy = asyncio._DefaultEventLoopPolicy()
2852+
policy = test_utils.DefaultEventLoopPolicy()
28532853
self.assertIsNone(policy._local._loop)
28542854

28552855
with self.assertRaises(RuntimeError):
28562856
loop = policy.get_event_loop()
28572857
self.assertIsNone(policy._local._loop)
28582858

28592859
def test_get_event_loop_does_not_call_set_event_loop(self):
2860-
policy = asyncio._DefaultEventLoopPolicy()
2860+
policy = test_utils.DefaultEventLoopPolicy()
28612861

28622862
with mock.patch.object(
28632863
policy, "set_event_loop",
@@ -2869,30 +2869,30 @@ def test_get_event_loop_does_not_call_set_event_loop(self):
28692869
m_set_event_loop.assert_not_called()
28702870

28712871
def test_get_event_loop_after_set_none(self):
2872-
policy = asyncio._DefaultEventLoopPolicy()
2872+
policy = test_utils.DefaultEventLoopPolicy()
28732873
policy.set_event_loop(None)
28742874
self.assertRaises(RuntimeError, policy.get_event_loop)
28752875

28762876
@mock.patch('asyncio.events.threading.current_thread')
28772877
def test_get_event_loop_thread(self, m_current_thread):
28782878

28792879
def f():
2880-
policy = asyncio._DefaultEventLoopPolicy()
2880+
policy = test_utils.DefaultEventLoopPolicy()
28812881
self.assertRaises(RuntimeError, policy.get_event_loop)
28822882

28832883
th = threading.Thread(target=f)
28842884
th.start()
28852885
th.join()
28862886

28872887
def test_new_event_loop(self):
2888-
policy = asyncio._DefaultEventLoopPolicy()
2888+
policy = test_utils.DefaultEventLoopPolicy()
28892889

28902890
loop = policy.new_event_loop()
28912891
self.assertIsInstance(loop, asyncio.AbstractEventLoop)
28922892
loop.close()
28932893

28942894
def test_set_event_loop(self):
2895-
policy = asyncio._DefaultEventLoopPolicy()
2895+
policy = test_utils.DefaultEventLoopPolicy()
28962896
old_loop = policy.new_event_loop()
28972897
policy.set_event_loop(old_loop)
28982898

@@ -2909,7 +2909,7 @@ def test_get_event_loop_policy(self):
29092909
with self.assertWarnsRegex(
29102910
DeprecationWarning, "'asyncio.get_event_loop_policy' is deprecated"):
29112911
policy = asyncio.get_event_loop_policy()
2912-
self.assertIsInstance(policy, asyncio._AbstractEventLoopPolicy)
2912+
self.assertIsInstance(policy, asyncio.events._AbstractEventLoopPolicy)
29132913
self.assertIs(policy, asyncio.get_event_loop_policy())
29142914

29152915
def test_set_event_loop_policy(self):
@@ -2922,7 +2922,7 @@ def test_set_event_loop_policy(self):
29222922
DeprecationWarning, "'asyncio.get_event_loop_policy' is deprecated"):
29232923
old_policy = asyncio.get_event_loop_policy()
29242924

2925-
policy = asyncio._DefaultEventLoopPolicy()
2925+
policy = test_utils.DefaultEventLoopPolicy()
29262926
with self.assertWarnsRegex(
29272927
DeprecationWarning, "'asyncio.set_event_loop_policy' is deprecated"):
29282928
asyncio.set_event_loop_policy(policy)
@@ -3034,13 +3034,13 @@ def test_get_event_loop_returns_running_loop(self):
30343034
class TestError(Exception):
30353035
pass
30363036

3037-
class Policy(asyncio._DefaultEventLoopPolicy):
3037+
class Policy(test_utils.DefaultEventLoopPolicy):
30383038
def get_event_loop(self):
30393039
raise TestError
30403040

3041-
old_policy = asyncio._get_event_loop_policy()
3041+
old_policy = asyncio.events._get_event_loop_policy()
30423042
try:
3043-
asyncio._set_event_loop_policy(Policy())
3043+
asyncio.events._set_event_loop_policy(Policy())
30443044
loop = asyncio.new_event_loop()
30453045

30463046
with self.assertRaises(TestError):
@@ -3068,7 +3068,7 @@ async def func():
30683068
asyncio.get_event_loop()
30693069

30703070
finally:
3071-
asyncio._set_event_loop_policy(old_policy)
3071+
asyncio.events._set_event_loop_policy(old_policy)
30723072
if loop is not None:
30733073
loop.close()
30743074

@@ -3078,9 +3078,9 @@ async def func():
30783078
self.assertIs(asyncio._get_running_loop(), None)
30793079

30803080
def test_get_event_loop_returns_running_loop2(self):
3081-
old_policy = asyncio._get_event_loop_policy()
3081+
old_policy = asyncio.events._get_event_loop_policy()
30823082
try:
3083-
asyncio._set_event_loop_policy(asyncio._DefaultEventLoopPolicy())
3083+
asyncio.events._set_event_loop_policy(test_utils.DefaultEventLoopPolicy())
30843084
loop = asyncio.new_event_loop()
30853085
self.addCleanup(loop.close)
30863086

@@ -3106,7 +3106,7 @@ async def func():
31063106
asyncio.get_event_loop()
31073107

31083108
finally:
3109-
asyncio._set_event_loop_policy(old_policy)
3109+
asyncio.events._set_event_loop_policy(old_policy)
31103110
if loop is not None:
31113111
loop.close()
31123112

0 commit comments

Comments
 (0)