Kumar Aditya
dbd08fb60d
gh-127949: deprecate `asyncio.get_event_loop_policy` ( #128053 )
...
This deprecates `asyncio.get_event_loop_policy` and will be removed in Python 3.16.
2024-12-18 18:04:20 +05:30
Kumar Aditya
5892853fb7
gh-127949: deprecate `asyncio.set_event_loop_policy` ( #128024 )
...
First step towards deprecating the asyncio policy system.
This deprecates `asyncio.set_event_loop_policy` and will be removed in Python 3.16.
2024-12-18 11:35:29 +05:30
Serhiy Storchaka
5aa62a8de1
gh-110378: Fix test_async_gen_propagates_generator_exit in test_contextlib_async ( #110500 )
...
It now fails if the original bug is not fixed, and no longer produce ResourceWarning with fixed code.
2023-10-10 11:38:40 +02:00
Serhiy Storchaka
96fed66a65
gh-110378: Close invalid generators in contextmanager and asynccontextmanager (GH-110499)
...
contextmanager and asynccontextmanager context managers now close an invalid
underlying generator object that yields more then one value.
2023-10-10 09:43:04 +02:00
Nikita Sobolev
6780d63ae5
gh-110378: Move to `IsolatedAsyncTestCase` in `test_contextlib_async.py` ( #110379 )
2023-10-08 11:44:56 +05:30
Irit Katriel
eeff8e7234
gh-102799: use sys.exception() instead of sys.exc_info() in contextlib ( #103311 )
...
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2023-07-20 14:41:32 +05:30
Grigoriev Semyon
55408f86d7
gh-105726: Add `__slots__` to `AbstractContextManager` and `AbstractAsyncContextManager` ( #106771 )
...
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2023-07-16 15:30:39 +00:00
Thomas Grainger
b3722ca058
gh-95882: fix regression in the traceback of exceptions propagated from inside a contextlib context manager ( #95883 )
2023-01-03 15:47:13 +00:00
Kumar Aditya
d2ef66a10b
GH-89369: test_contextlib_async finalizes event loop after each test ( #93074 )
...
Use asyncio.run().
2022-05-24 15:41:32 +02:00
Irit Katriel
e65e587f93
gh-92118: Add test for traceback when exception is modified by (Async)ExitStack.__exit__ (GH-92339)
2022-05-05 17:39:33 +01:00
Christian Heimes
deeaac49e2
bpo-40280: Skip socket, fork, subprocess tests on Emscripten (GH-31986)
...
- Add requires_fork and requires_subprocess to more tests
- Skip extension import tests if dlopen is not available
- Don't assume that _testcapi is a shared extension
- Skip a lot of socket tests that don't work on Emscripten
- Skip mmap tests, mmap emulation is incomplete
- venv does not work yet
- Cannot get libc from executable
The "entire" test suite is now passing on Emscripten with EMSDK from git head (91 suites are skipped).
2022-03-22 03:04:36 -07:00
John Belmonte
e6d1aa1ac6
bpo-44594: fix (Async)ExitStack handling of __context__ (gh-27089)
...
* bpo-44594: fix (Async)ExitStack handling of __context__
Make enter_context(foo()) / enter_async_context(foo()) equivalent to
`[async] with foo()` regarding __context__ when an exception is raised.
Previously exceptions would be caught and re-raised with the wrong
context when explicitly overriding __context__ with None.
2021-10-03 23:49:55 -07:00
Jason Fried
86b833badd
bpo-38415: Allow using @asynccontextmanager-made ctx managers as decorators (GH-16667)
2021-09-23 23:36:03 +02:00
Nick Coghlan
a2c45e5bcf
bpo-44515: handle non-refcounted GC in contextlib tests (GH-26910)
...
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2021-07-26 22:57:17 +02:00
Thomas Grainger
7f1c330da3
bpo-44566: resolve differences between asynccontextmanager and contextmanager ( #27024 )
2021-07-20 20:15:07 +02:00
Serhiy Storchaka
6cb145d23f
bpo-44471: Change error type for bad objects in ExitStack.enter_context() (GH-26820)
...
A TypeError is now raised instead of an AttributeError in
ExitStack.enter_context() and AsyncExitStack.enter_async_context()
for objects which do not support the context manager or
asynchronous context manager protocols correspondingly.
2021-06-29 11:28:15 +03:00
Dong-hee Na
698e9a8211
bpo-44017: Update test_contextlib_async not to emit DeprecationWarn (GH-25918)
2021-05-06 23:10:52 +09:00
Tom Gringauz
a117167d8d
bpo-41543: contextlib.nullcontext can fill in for an async context manager (GH-21870)
...
Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
2020-11-09 14:34:07 +02:00
Kazantcev Andrey
178695b7ae
bpo-40816 Add AsyncContextDecorator class (GH-20516)
...
Co-authored-by: Yury Selivanov <yury@edgedb.com>
2020-11-05 10:52:24 +02:00
Joongi Kim
6e8dcdaaa4
bpo-41229: Update docs for explicit aclose()-required cases and add contextlib.aclosing() method (GH-21545)
...
This is a PR to:
* Add `contextlib.aclosing` which ia analogous to `contextlib.closing` but for async-generators with an explicit test case for [bpo-41229]()
* Update the docs to describe when we need explicit `aclose()` invocation.
which are motivated by the following issues, articles, and examples:
* [bpo-41229]()
* https://github.com/njsmith/async_generator
* https://vorpus.org/blog/some-thoughts-on-asynchronous-api-design-in-a-post-asyncawait-world/#cleanup-in-generators-and-async-generators
* https://www.python.org/dev/peps/pep-0533/
* https://github.com/achimnol/aiotools/blob/ef7bf0cea7af/src/aiotools/context.py#L152
Particuarly regarding [PEP-533](https://www.python.org/dev/peps/pep-0533/ ), its acceptance (`__aiterclose__()`) would make this little addition of `contextlib.aclosing()` unnecessary for most use cases, but until then this could serve as a good counterpart and analogy to `contextlib.closing()`. The same applies for `contextlib.closing` with `__iterclose__()`.
Also, still there are other use cases, e.g., when working with non-generator objects with `aclose()` methods.
2020-11-02 00:02:48 -08:00
Serhiy Storchaka
142566c028
[3.9] bpo-37116: Use PEP 570 syntax for positional-only parameters. (GH-12620)
...
Turn deprecation warnings added in 3.8 into TypeError.
2019-06-05 18:22:31 +03:00
Serhiy Storchaka
42a139ed88
bpo-36492: Deprecate passing some arguments as keyword arguments. (GH-12637)
...
Deprecated passing the following arguments as keyword arguments:
- "func" in functools.partialmethod(), weakref.finalize(),
profile.Profile.runcall(), cProfile.Profile.runcall(),
bdb.Bdb.runcall(), trace.Trace.runfunc() and
curses.wrapper().
- "function" in unittest.addModuleCleanup() and
unittest.TestCase.addCleanup().
- "fn" in the submit() method of concurrent.futures.ThreadPoolExecutor
and concurrent.futures.ProcessPoolExecutor.
- "callback" in contextlib.ExitStack.callback(),
contextlib.AsyncExitStack.callback() and
contextlib.AsyncExitStack.push_async_callback().
- "c" and "typeid" in the create() method of multiprocessing.managers.Server
and multiprocessing.managers.SharedMemoryServer.
- "obj" in weakref.finalize().
Also allowed to pass arbitrary keyword arguments (even "self" and "func")
if the above arguments are passed as positional argument.
2019-04-01 09:16:35 +03:00
Serhiy Storchaka
db8e3a1e44
bpo-34183: Fix running Lib/test/test_contextlib_async.py as a script. (GH-8381)
2018-07-23 23:38:31 +03:00
Yury Selivanov
52698c7ad9
bpo-33786: Fix asynchronous generators to handle GeneratorExit in athrow() (GH-7467)
2018-06-07 20:31:26 -04:00
Brett Cannon
8425de4147
bpo-33562: Check the global asyncio event loop policy isn't set after any tests (GH-7328)
2018-06-01 20:34:09 -07:00
Ilya Kulakov
1aa094f740
bpo-29302: Implement contextlib.AsyncExitStack. ( #4790 )
2018-01-25 15:51:18 -05:00
Jelle Zijlstra
176baa326b
bpo-30241: implement contextlib.AbstractAsyncContextManager ( #1412 )
2017-12-13 20:19:17 -05:00
Jelle Zijlstra
2e624690bd
bpo-29679: Implement @contextlib.asynccontextmanager ( #360 )
2017-04-30 18:25:58 -07:00