mirror of
				https://github.com/python/cpython.git
				synced 2025-10-29 20:51:26 +00:00 
			
		
		
		
	gh-127949: deprecate asyncio.get_event_loop_policy (#128053)
				
					
				
			This deprecates `asyncio.get_event_loop_policy` and will be removed in Python 3.16.
This commit is contained in:
		
							parent
							
								
									bad3cdefa8
								
							
						
					
					
						commit
						dbd08fb60d
					
				
					 9 changed files with 40 additions and 26 deletions
				
			
		|  | @ -40,6 +40,10 @@ for the current process: | |||
| 
 | ||||
|    Return the current process-wide policy. | ||||
| 
 | ||||
|    .. deprecated:: next | ||||
|       The :func:`get_event_loop_policy` function is deprecated and | ||||
|       will be removed in Python 3.16. | ||||
| 
 | ||||
| .. function:: set_event_loop_policy(policy) | ||||
| 
 | ||||
|    Set the current process-wide policy to *policy*. | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ | |||
|     'AbstractEventLoopPolicy', | ||||
|     'AbstractEventLoop', 'AbstractServer', | ||||
|     'Handle', 'TimerHandle', | ||||
|     '_get_event_loop_policy', | ||||
|     'get_event_loop_policy', | ||||
|     '_set_event_loop_policy', | ||||
|     'set_event_loop_policy', | ||||
|  | @ -761,12 +762,15 @@ def _init_event_loop_policy(): | |||
|             _event_loop_policy = DefaultEventLoopPolicy() | ||||
| 
 | ||||
| 
 | ||||
| def get_event_loop_policy(): | ||||
| def _get_event_loop_policy(): | ||||
|     """Get the current event loop policy.""" | ||||
|     if _event_loop_policy is None: | ||||
|         _init_event_loop_policy() | ||||
|     return _event_loop_policy | ||||
| 
 | ||||
| def get_event_loop_policy(): | ||||
|     warnings._deprecated('asyncio.get_event_loop_policy', remove=(3, 16)) | ||||
|     return _get_event_loop_policy() | ||||
| 
 | ||||
| def _set_event_loop_policy(policy): | ||||
|     """Set the current event loop policy. | ||||
|  | @ -778,7 +782,7 @@ def _set_event_loop_policy(policy): | |||
|     _event_loop_policy = policy | ||||
| 
 | ||||
| def set_event_loop_policy(policy): | ||||
|     warnings._deprecated('set_event_loop_policy', remove=(3,16)) | ||||
|     warnings._deprecated('asyncio.set_event_loop_policy', remove=(3,16)) | ||||
|     _set_event_loop_policy(policy) | ||||
| 
 | ||||
| def get_event_loop(): | ||||
|  | @ -794,17 +798,17 @@ def get_event_loop(): | |||
|     current_loop = _get_running_loop() | ||||
|     if current_loop is not None: | ||||
|         return current_loop | ||||
|     return get_event_loop_policy().get_event_loop() | ||||
|     return _get_event_loop_policy().get_event_loop() | ||||
| 
 | ||||
| 
 | ||||
| def set_event_loop(loop): | ||||
|     """Equivalent to calling get_event_loop_policy().set_event_loop(loop).""" | ||||
|     get_event_loop_policy().set_event_loop(loop) | ||||
|     _get_event_loop_policy().set_event_loop(loop) | ||||
| 
 | ||||
| 
 | ||||
| def new_event_loop(): | ||||
|     """Equivalent to calling get_event_loop_policy().new_event_loop().""" | ||||
|     return get_event_loop_policy().new_event_loop() | ||||
|     return _get_event_loop_policy().new_event_loop() | ||||
| 
 | ||||
| 
 | ||||
| # Alias pure-Python implementations for testing purposes. | ||||
|  |  | |||
|  | @ -2397,7 +2397,7 @@ def test_handle_repr_debug(self): | |||
|         self.assertRegex(repr(h), regex) | ||||
| 
 | ||||
|     def test_handle_source_traceback(self): | ||||
|         loop = asyncio.get_event_loop_policy().new_event_loop() | ||||
|         loop = asyncio.new_event_loop() | ||||
|         loop.set_debug(True) | ||||
|         self.set_event_loop(loop) | ||||
| 
 | ||||
|  | @ -2759,22 +2759,29 @@ def test_set_event_loop(self): | |||
|         old_loop.close() | ||||
| 
 | ||||
|     def test_get_event_loop_policy(self): | ||||
|         with self.assertWarnsRegex( | ||||
|                 DeprecationWarning, "'asyncio.get_event_loop_policy' is deprecated"): | ||||
|             policy = asyncio.get_event_loop_policy() | ||||
|             self.assertIsInstance(policy, asyncio.AbstractEventLoopPolicy) | ||||
|             self.assertIs(policy, asyncio.get_event_loop_policy()) | ||||
| 
 | ||||
|     def test_set_event_loop_policy(self): | ||||
|         with self.assertWarnsRegex( | ||||
|                 DeprecationWarning, "'set_event_loop_policy' is deprecated"): | ||||
|                 DeprecationWarning, "'asyncio.set_event_loop_policy' is deprecated"): | ||||
|             self.assertRaises( | ||||
|                 TypeError, asyncio.set_event_loop_policy, object()) | ||||
| 
 | ||||
|         with self.assertWarnsRegex( | ||||
|                 DeprecationWarning, "'asyncio.get_event_loop_policy' is deprecated"): | ||||
|             old_policy = asyncio.get_event_loop_policy() | ||||
| 
 | ||||
|         policy = asyncio.DefaultEventLoopPolicy() | ||||
|         with self.assertWarnsRegex( | ||||
|                 DeprecationWarning, "'set_event_loop_policy' is deprecated"): | ||||
|                 DeprecationWarning, "'asyncio.set_event_loop_policy' is deprecated"): | ||||
|             asyncio.set_event_loop_policy(policy) | ||||
| 
 | ||||
|         with self.assertWarnsRegex( | ||||
|                 DeprecationWarning, "'asyncio.get_event_loop_policy' is deprecated"): | ||||
|             self.assertIs(policy, asyncio.get_event_loop_policy()) | ||||
|             self.assertIsNot(policy, old_policy) | ||||
| 
 | ||||
|  | @ -2859,7 +2866,7 @@ class Policy(asyncio.DefaultEventLoopPolicy): | |||
|             def get_event_loop(self): | ||||
|                 raise TestError | ||||
| 
 | ||||
|         old_policy = asyncio.get_event_loop_policy() | ||||
|         old_policy = asyncio._get_event_loop_policy() | ||||
|         try: | ||||
|             asyncio._set_event_loop_policy(Policy()) | ||||
|             loop = asyncio.new_event_loop() | ||||
|  | @ -2899,7 +2906,7 @@ async def func(): | |||
|         self.assertIs(asyncio._get_running_loop(), None) | ||||
| 
 | ||||
|     def test_get_event_loop_returns_running_loop2(self): | ||||
|         old_policy = asyncio.get_event_loop_policy() | ||||
|         old_policy = asyncio._get_event_loop_policy() | ||||
|         try: | ||||
|             asyncio._set_event_loop_policy(asyncio.DefaultEventLoopPolicy()) | ||||
|             loop = asyncio.new_event_loop() | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ def setUp(self): | |||
|         asyncio._set_event_loop_policy(policy) | ||||
| 
 | ||||
|     def tearDown(self): | ||||
|         policy = asyncio.get_event_loop_policy() | ||||
|         policy = asyncio._get_event_loop_policy() | ||||
|         if policy.loop is not None: | ||||
|             self.assertTrue(policy.loop.is_closed()) | ||||
|             self.assertTrue(policy.loop.shutdown_ag_run) | ||||
|  | @ -208,7 +208,7 @@ async def main(): | |||
|             await asyncio.sleep(0) | ||||
|             return 42 | ||||
| 
 | ||||
|         policy = asyncio.get_event_loop_policy() | ||||
|         policy = asyncio._get_event_loop_policy() | ||||
|         policy.set_event_loop = mock.Mock() | ||||
|         asyncio.run(main()) | ||||
|         self.assertTrue(policy.set_event_loop.called) | ||||
|  | @ -495,7 +495,7 @@ def test_set_event_loop_called_once(self): | |||
|         async def coro(): | ||||
|             pass | ||||
| 
 | ||||
|         policy = asyncio.get_event_loop_policy() | ||||
|         policy = asyncio._get_event_loop_policy() | ||||
|         policy.set_event_loop = mock.Mock() | ||||
|         runner = asyncio.Runner() | ||||
|         runner.run(coro()) | ||||
|  |  | |||
|  | @ -886,8 +886,7 @@ class SubprocessWatcherMixin(SubprocessMixin): | |||
| 
 | ||||
|         def setUp(self): | ||||
|             super().setUp() | ||||
|             policy = asyncio.get_event_loop_policy() | ||||
|             self.loop = policy.new_event_loop() | ||||
|             self.loop = asyncio.new_event_loop() | ||||
|             self.set_event_loop(self.loop) | ||||
| 
 | ||||
|         def test_watcher_implementation(self): | ||||
|  |  | |||
|  | @ -332,7 +332,7 @@ async def main(): | |||
|                 asyncio.get_running_loop(), | ||||
|                 asyncio.SelectorEventLoop) | ||||
| 
 | ||||
|         old_policy = asyncio.get_event_loop_policy() | ||||
|         old_policy = asyncio._get_event_loop_policy() | ||||
|         try: | ||||
|             asyncio._set_event_loop_policy( | ||||
|                 asyncio.WindowsSelectorEventLoopPolicy()) | ||||
|  | @ -346,7 +346,7 @@ async def main(): | |||
|                 asyncio.get_running_loop(), | ||||
|                 asyncio.ProactorEventLoop) | ||||
| 
 | ||||
|         old_policy = asyncio.get_event_loop_policy() | ||||
|         old_policy = asyncio._get_event_loop_policy() | ||||
|         try: | ||||
|             asyncio._set_event_loop_policy( | ||||
|                 asyncio.WindowsProactorEventLoopPolicy()) | ||||
|  |  | |||
|  | @ -496,7 +496,7 @@ class TestAsyncExitStack(TestBaseExitStack, unittest.IsolatedAsyncioTestCase): | |||
|     class SyncAsyncExitStack(AsyncExitStack): | ||||
|         @staticmethod | ||||
|         def run_coroutine(coro): | ||||
|             loop = asyncio.get_event_loop_policy().get_event_loop() | ||||
|             loop = asyncio.new_event_loop() | ||||
|             t = loop.create_task(coro) | ||||
|             t.add_done_callback(lambda f: loop.stop()) | ||||
|             loop.run_forever() | ||||
|  |  | |||
|  | @ -480,7 +480,7 @@ def test_setup_get_event_loop(self): | |||
| 
 | ||||
|         class TestCase1(unittest.IsolatedAsyncioTestCase): | ||||
|             def setUp(self): | ||||
|                 asyncio.get_event_loop_policy().get_event_loop() | ||||
|                 asyncio._get_event_loop_policy().get_event_loop() | ||||
| 
 | ||||
|             async def test_demo1(self): | ||||
|                 pass | ||||
|  |  | |||
|  | @ -3773,7 +3773,7 @@ module_init(asyncio_state *state) | |||
|     } | ||||
| 
 | ||||
|     WITH_MOD("asyncio.events") | ||||
|     GET_MOD_ATTR(state->asyncio_get_event_loop_policy, "get_event_loop_policy") | ||||
|     GET_MOD_ATTR(state->asyncio_get_event_loop_policy, "_get_event_loop_policy") | ||||
| 
 | ||||
|     WITH_MOD("asyncio.base_futures") | ||||
|     GET_MOD_ATTR(state->asyncio_future_repr_func, "_future_repr") | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Kumar Aditya
						Kumar Aditya