Skip to content

Commit 797abd1

Browse files
pythongh-134657: Remove newly added private names from asyncio.__all__ (python#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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy