Yury Selivanov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								188598851d 
								
							 
						 
						
							
							
								
								GH-91048: Add utils for capturing async call stack for asyncio programs and enable profiling ( #124640 )  
							
							... 
							
							
							
							Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Savannah Ostrowski <savannahostrowski@gmail.com>
Co-authored-by: Jacob Coffee <jacob@z7x.org>
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> 
							
						 
						
							2025-01-22 17:25:29 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Wang Ran (汪然) 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								1a1056d394 
								
							 
						 
						
							
							
								
								Fix typo in Lib/asyncio/futures.py ( #128819 )  
							
							
							
						 
						
							2025-01-15 17:54:31 +05:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Thomas Grainger 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0b28ea4a35 
								
							 
						 
						
							
							
								
								gh-124958: Revert "gh-125472: Revert "gh-124958: fix asyncio.TaskGroup and _PyFuture refcycles ... ( #125486 )  
							
							... 
							
							
							
							* Revert "gh-125472: Revert "gh-124958: fix asyncio.TaskGroup and _PyFuture refcycles (#12… (#125476 )"
This reverts commit e99650b80a 
							
						 
						
							2024-10-14 15:45:58 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Kirill Podoprigora 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e99650b80a 
								
							 
						 
						
							
							
								
								gh-125472: Revert "gh-124958: fix asyncio.TaskGroup and _PyFuture refcycles (#12… ( #125476 )  
							
							... 
							
							
							
							Revert "gh-124958: fix asyncio.TaskGroup and _PyFuture refcycles (#124959 )"
This reverts commit d5dbbf4372 
							
						 
						
							2024-10-14 17:59:13 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Thomas Grainger 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								d5dbbf4372 
								
							 
						 
						
							
							
								
								gh-124958: fix asyncio.TaskGroup and _PyFuture refcycles ( #124959 )  
							
							
							
						 
						
							2024-10-14 08:19:56 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Kumar Aditya 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								48042c52a6 
								
							 
						 
						
							
							
								
								fix outdated comments in asyncio ( #121783 )  
							
							
							
						 
						
							2024-07-15 05:59:19 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									rsp4jack 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								85843348c5 
								
							 
						 
						
							
							
								
								gh-117459: Keep the traceback in _convert_future_exc ( #117460 )  
							
							
							
						 
						
							2024-04-03 20:13:32 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jamie Phan 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4826d52338 
								
							 
						 
						
							
							
								
								gh-112182: Replace StopIteration with RuntimeError for future ( #113220 )  
							
							... 
							
							
							
							When an `StopIteration` raises into `asyncio.Future`, this will cause
a thread to hang. This commit address this by not raising an exception
and silently transforming the `StopIteration` with a `RuntimeError`,
which the caller can reconstruct from `fut.exception().__cause__` 
							
						 
						
							2024-01-09 21:21:00 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Kristján Valur Jónsson 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								52161781a6 
								
							 
						 
						
							
							
								
								GH-111693: Propagate correct asyncio.CancelledError instance out of asyncio.Condition.wait() ( #111694 )  
							
							... 
							
							
							
							Also fix a race condition in `asyncio.Semaphore.acquire()` when cancelled. 
							
						 
						
							2024-01-08 11:57:48 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								fd38a2f0ec 
								
							 
						 
						
							
							
								
								gh-93453: No longer create an event loop in get_event_loop() ( #98440 )  
							
							... 
							
							
							
							asyncio.get_event_loop() now always return either running event loop or
the result of get_event_loop_policy().get_event_loop() call. The latter
should now raise an RuntimeError if no current event loop was set
instead of creating and setting a new event loop.
It affects also a number of asyncio functions and constructors which
call get_event_loop() implicitly: ensure_future(), shield(), gather(),
etc.
DeprecationWarning is no longer emitted if there is no running event loop but
the current event loop was set.
Co-authored-by: Łukasz Langa <lukasz@langa.pl> 
							
						 
						
							2022-12-06 18:42:12 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Guido van Rossum 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								09de8d7aaf 
								
							 
						 
						
							
							
								
								GH-90985: Revert  "Deprecate passing a message into cancel()" ( #97999 )  
							
							... 
							
							
							
							Reason: we were too hasty in deprecating this.
We shouldn't deprecate it before we have a replacement. 
							
						 
						
							2022-10-06 17:30:27 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Guido van Rossum 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e9d63760fe 
								
							 
						 
						
							
							
								
								GH-96827: Don't touch closed loops from executor threads ( #96837 )  
							
							... 
							
							
							
							* When chaining futures, skip callback if loop closed.
* When shutting down an executor, don't wake a closed loop. 
							
						 
						
							2022-09-30 12:55:40 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Kumar Aditya 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								86c1df1872 
								
							 
						 
						
							
							
								
								bpo-45924: Fix asyncio incorrect traceback when future's exception is raised multiple times (GH-30274)  
							
							
							
						 
						
							2022-07-11 13:32:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andrew Svetlov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0360e9f346 
								
							 
						 
						
							
							
								
								bpo-46829: Deprecate passing a message into Future.cancel() and Task.cancel() (GH-31840)  
							
							... 
							
							
							
							After a long deliberation we ended up feeling that the message argument for Future.cancel(), added in 3.9, was a bad idea, so we're deprecating it in 3.11 and plan to remove it in 3.13. 
							
						 
						
							2022-03-23 08:43:05 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andrew Svetlov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								30b5d41fab 
								
							 
						 
						
							
							
								
								bpo-47039: Normalize repr() of asyncio future and task objects (GH-31950)  
							
							
							
						 
						
							2022-03-17 03:03:09 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andrew Svetlov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4140bcb1cd 
								
							 
						 
						
							
							
								
								bpo-45390: Propagate CancelledError's message from cancelled task to its awaiter (GH-31383)  
							
							... 
							
							
							
							Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> 
							
						 
						
							2022-02-21 22:59:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Kumar Aditya 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								ea5b96842e 
								
							 
						 
						
							
							
								
								bpo-46469: Make asyncio generic classes return GenericAlias (GH-30777)  
							
							... 
							
							
							
							* bpo-46469: Make asyncio generic classes return GenericAlias
* 📜 🤖  Added by blurb_it.
* Update Misc/NEWS.d/next/Library/2022-01-22-05-05-08.bpo-46469.plUab5.rst
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> 
							
						 
						
							2022-01-22 13:28:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Serhiy Storchaka 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								172c0f2752 
								
							 
						 
						
							
							
								
								bpo-39529: Deprecate creating new event loop in asyncio.get_event_loop() (GH-23554)  
							
							... 
							
							
							
							asyncio.get_event_loop() emits now a deprecation warning when it creates a new event loop.
In future releases it will became an alias of asyncio.get_running_loop(). 
							
						 
						
							2021-04-25 13:40:44 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Wansoo Kim 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								5b0194ed31 
								
							 
						 
						
							
							
								
								bpo-41241: Unnecessary Type casting in 'if condition' (GH-21396)  
							
							... 
							
							
							
							This is my first issue!
So, if there's anything wrong, please tell me!
Also, thank you always for all the contributors!
Automerge-Triggered-By: GH:asvetlov 
							
						 
						
							2020-11-28 03:37:08 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Chris Jerdonek 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								da742ba826 
								
							 
						 
						
							
							
								
								bpo-31033: Improve the traceback for cancelled asyncio tasks (GH-19951)  
							
							... 
							
							
							
							When an asyncio.Task is cancelled, the exception traceback now
starts with where the task was first interrupted.  Previously,
the traceback only had "depth one." 
							
						 
						
							2020-05-17 22:47:31 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Chris Jerdonek 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								1ce5841eca 
								
							 
						 
						
							
							
								
								bpo-31033: Add a msg argument to Future.cancel() and Task.cancel() (GH-19979)  
							
							
							
						 
						
							2020-05-15 16:55:50 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Batuhan Taşkaya 
								
							 
						 
						
							
							
							
							
								
							
							
								dec367261e 
								
							 
						 
						
							
							
								
								bpo-38978: Implement __class_getitem__ for asyncio objects (GH-17491)  
							
							... 
							
							
							
							https://bugs.python.org/issue38978  
						
							2019-12-07 03:05:07 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andrew Svetlov 
								
							 
						 
						
							
							
							
							
								
							
							
								dad6be5ffe 
								
							 
						 
						
							
							
								
								bpo-38785: Prevent asyncio from crashing  (GH-17144)  
							
							... 
							
							
							
							if parent `__init__` is not called from a constructor of object derived from `asyncio.Future`
https://bugs.python.org/issue38785  
							
						 
						
							2019-11-13 13:36:46 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andrew Svetlov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0baa72f4b2 
								
							 
						 
						
							
							
								
								bpo-34622: Extract asyncio exceptions into a separate module (GH-9141)  
							
							
							
						 
						
							2018-09-11 10:13:04 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								fdccfe09f0 
								
							 
						 
						
							
							
								
								bpo-33469: RuntimeError after closing loop that used run_in_executor (GH-7171)  
							
							
							
						 
						
							2018-05-28 17:10:20 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								22feeb88b4 
								
							 
						 
						
							
							
								
								bpo-32643: Drop support for a few private Task and Future APIs. ( #5293 )  
							
							... 
							
							
							
							Specifically, it's not possible to subclass Task/Future classes
and override the following methods:
* Future._schedule_callbacks
* Task._step
* Task._wakeup 
							
						 
						
							2018-01-24 11:31:01 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f23746a934 
								
							 
						 
						
							
							
								
								bpo-32436: Implement PEP 567 ( #5027 )  
							
							
							
						 
						
							2018-01-22 19:11:18 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								e0aef4f3cd 
								
							 
						 
						
							
							
								
								bpo-31721: Allow Future._log_traceback to only be set to False ( #5009 )  
							
							
							
						 
						
							2017-12-25 16:16:10 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0cf16f9ea0 
								
							 
						 
						
							
							
								
								bpo-32363: Disable Task.set_exception() and Task.set_result() ( #4923 )  
							
							
							
						 
						
							2017-12-25 10:48:15 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								ca9b36cd1a 
								
							 
						 
						
							
							
								
								bpo-32415: Add asyncio.Task.get_loop() and Future.get_loop() ( #4992 )  
							
							
							
						 
						
							2017-12-23 15:04:15 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andrew Svetlov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f74ef458ab 
								
							 
						 
						
							
							
								
								bpo-32311: Implement asyncio.create_task() shortcut ( #4848 )  
							
							... 
							
							
							
							* Implement functionality
* Add documentation 
							
						 
						
							2017-12-15 07:04:38 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andrew Svetlov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								8874342cf3 
								
							 
						 
						
							
							
								
								bpo-32258: Replace 'yield from' to 'await' in asyncio docs ( #4779 )  
							
							... 
							
							
							
							* Replace 'yield from' to 'await' in asyncio docs
* Fix docstrings 
							
						 
						
							2017-12-11 17:35:49 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								6370f345e1 
								
							 
						 
						
							
							
								
								bpo-32262: Fix codestyle; use f-strings formatting where necessary. ( #4775 )  
							
							
							
						 
						
							2017-12-10 18:36:12 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Victor Stinner 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3f438a9fa0 
								
							 
						 
						
							
							
								
								asyncio: Remove asyncio/compat.py ( #4606 )  
							
							... 
							
							
							
							The asyncio/compat.py file was written to support Python < 3.5 and
Python < 3.5.2. But Python 3.5 doesn't accept bugfixes anymore, only
security fixes. There is no more need to backport bugfixes to Python
3.5, and so no need to have a single code base for Python 3.5, 3.6
and 3.7.
Say hello (again) to "async" and "await", who became real keywords in
Python 3.7 ;-) 
							
						 
						
							2017-11-28 14:43:52 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Victor Stinner 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								c16bacec3c 
								
							 
						 
						
							
							
								
								asyncio: Remove unused Future._tb_logger attribute ( #4596 )  
							
							... 
							
							
							
							It was only used on Python 3.3, now only Future._log_traceback is
used. 
							
						 
						
							2017-11-28 00:35:33 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Antoine Pitrou 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								921e9432a1 
								
							 
						 
						
							
							
								
								bpo-31970: Reduce performance overhead of asyncio debug mode. ( #4314 )  
							
							... 
							
							
							
							* bpo-31970: Reduce performance overhead of asyncio debug mode. 
							
						 
						
							2017-11-07 17:23:29 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Antoine Pitrou 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								22b1128559 
								
							 
						 
						
							
							
								
								bpo-31960: Fix asyncio.Future documentation for thread (un)safety. ( #4319 )  
							
							
							
						 
						
							2017-11-07 17:03:28 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
							
							
								
							
							
								7ce1c6fb57 
								
							 
						 
						
							
							
								
								bpo-30508: Don't log exceptions if Task/Future "cancel()" method called ( #2050 )  
							
							
							
						 
						
							2017-06-11 13:49:18 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									INADA Naoki 
								
							 
						 
						
							
							
							
							
								
							
							
								3e2ad8ec61 
								
							 
						 
						
							
							
								
								bpo-29617: Remove Python 3.3 support from asyncio (GH-232)  
							
							
							
						 
						
							2017-04-25 10:57:18 +09:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
							
							
								
							
							
								a0c1ba608e 
								
							 
						 
						
							
							
								
								Issue  #28544 : Implement asyncio.Task in C.  
							
							... 
							
							
							
							This implementation provides additional 10-20% speed boost for
asyncio programs.
The patch also fixes _asynciomodule.c to use Arguments Clinic, and
makes '_schedule_callbacks' an overridable method (as it was in 3.5). 
							
						 
						
							2016-10-28 12:52:37 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
							
							
								
							
							
								01c521ba7a 
								
							 
						 
						
							
							
								
								asyncio: Increase asyncio.Future test coverage; test both implementations.  
							
							... 
							
							
							
							Also, add 'isfuture' to 'asyncio.futures.__all__', so that it's
exposed as 'asyncio.isfuture'. 
							
						 
						
							2016-10-23 22:34:35 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									INADA Naoki 
								
							 
						 
						
							
							
							
							
								
							
							
								a83636247e 
								
							 
						 
						
							
							
								
								Issue  #28448 : Fix C implemented asyncio.Future didn't work on Windows  
							
							
							
						 
						
							2016-10-21 12:30:15 +09:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									INADA Naoki 
								
							 
						 
						
							
							
							
							
								
							
							
								c411a7d821 
								
							 
						 
						
							
							
								
								Issue  #28452 : Remove _asyncio._init_module function  
							
							
							
						 
						
							2016-10-18 11:48:14 +09:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									INADA Naoki 
								
							 
						 
						
							
							
							
							
								
							
							
								9f2ce25481 
								
							 
						 
						
							
							
								
								Issue  #28428 : Rename _futures module to _asyncio.  
							
							... 
							
							
							
							It will have more speedup functions or classes other than asyncio.Future. 
							
						 
						
							2016-10-15 15:39:19 +09:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									INADA Naoki 
								
							 
						 
						
							
							
							
							
								
							
							
								9e4e38ecd2 
								
							 
						 
						
							
							
								
								Issue  #26801 : Added C implementation of asyncio.Future.  
							
							... 
							
							
							
							Original patch by Yury Selivanov. 
							
						 
						
							2016-10-09 14:44:47 +09:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Guido van Rossum 
								
							 
						 
						
							
							
							
							
								
							
							
								7b3b3dc85d 
								
							 
						 
						
							
							
								
								Merge asyncio upstream.  
							
							
							
						 
						
							2016-09-09 14:26:31 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Guido van Rossum 
								
							 
						 
						
							
							
							
							
								
							
							
								1140a03426 
								
							 
						 
						
							
							
								
								Rename Future._blocking to _asyncio_future_blocking.  
							
							... 
							
							
							
							This is now an official "protected" API that can be used to write
classes that are duck-type-compatible with Future without subclassing
it.  (For that purpose I also changed isinstance(result, Future) to
check for this attribute instead.)
Hopefully Amber Brown can use this to make Twisted.Deferred compatible
with asyncio.Future.
Tests and docs are TBD. 
							
						 
						
							2016-09-09 12:54:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
							
							
								
							
							
								7661db6228 
								
							 
						 
						
							
							
								
								Issue  #27041 : asyncio: Add loop.create_future method  
							
							
							
						 
						
							2016-05-16 15:38:39 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Yury Selivanov 
								
							 
						 
						
							
							
							
							
								
							
							
								1bd030788d 
								
							 
						 
						
							
							
								
								asyncio: Prevent StopIteration from being thrown into a Future  
							
							... 
							
							
							
							Patch by Chris Angelico (issue #26221 ) 
							
						 
						
							2016-03-02 11:03:28 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Martin Panter 
								
							 
						 
						
							
							
							
							
								
							
							
								c04fb56e36 
								
							 
						 
						
							
							
								
								Issue  #26304 : Change "allows to <verb>" to "allows <verb>ing" or similar  
							
							... 
							
							
							
							The original form is incorrect grammar and feels awkward, even though the
meaning is clear. 
							
						 
						
							2016-02-10 05:44:01 +00:00