diff options
Diffstat (limited to 'dev-python/cached-property/files/cached-property-1.5.2-python311.patch')
| -rw-r--r-- | dev-python/cached-property/files/cached-property-1.5.2-python311.patch | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/dev-python/cached-property/files/cached-property-1.5.2-python311.patch b/dev-python/cached-property/files/cached-property-1.5.2-python311.patch deleted file mode 100644 index 989033f20036..000000000000 --- a/dev-python/cached-property/files/cached-property-1.5.2-python311.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 297031687679762849dedeaf24aa3a19116f095b Mon Sep 17 00:00:00 2001 -From: Petr Viktorin <encukou@gmail.com> -Date: Thu, 2 Dec 2021 11:26:20 +0100 -Subject: [PATCH 1/2] Don't use asyncio.coroutinefunction if it's not available - -Python 3.11 drops the deprecated @asyncio.coroutine and -asyncio.iscoroutinefunction. - -Using a wrapper with @asyncio.coroutine in __get__ wasn't -necessary (the future from asyncio.ensure_future is awaitable, -and the wrapper doesn't do anything asynchronous), so the -logic can be simplified to just call asyncio.ensure_future -(to schedule the task and store the result when it's -available). - -Tests for @asyncio.coroutine are skipped on 3.11+. - -An unnecessary call to asyncio.coroutine in tests is -removed: it's not necessary to call this for `async def` -functions. ---- - cached_property.py | 24 +++++++++++------------- - conftest.py | 6 +++++- - tests/test_async_cached_property.py | 3 +-- - 3 files changed, 17 insertions(+), 16 deletions(-) - -diff --git a/cached_property.py b/cached_property.py -index 3135871..254739c 100644 ---- a/cached_property.py -+++ b/cached_property.py -@@ -13,6 +13,12 @@ - import asyncio - except (ImportError, SyntaxError): - asyncio = None -+try: -+ iscoroutinefunction = asyncio.iscoroutinefunction -+except AttributeError: -+ # Python 3.11: @asyncio.coroutine was removed -+ from inspect import iscoroutinefunction -+ - - - class cached_property(object): -@@ -30,22 +36,14 @@ def __get__(self, obj, cls): - if obj is None: - return self - -- if asyncio and asyncio.iscoroutinefunction(self.func): -- return self._wrap_in_coroutine(obj) -+ if asyncio and iscoroutinefunction(self.func): -+ value = asyncio.ensure_future(self.func(obj)) -+ else: -+ value = self.func(obj) - -- value = obj.__dict__[self.func.__name__] = self.func(obj) -+ obj.__dict__[self.func.__name__] = value - return value - -- def _wrap_in_coroutine(self, obj): -- @wraps(obj) -- @asyncio.coroutine -- def wrapper(): -- future = asyncio.ensure_future(self.func(obj)) -- obj.__dict__[self.func.__name__] = future -- return future -- -- return wrapper() -- - - class threaded_cached_property(object): - """ -diff --git a/conftest.py b/conftest.py -index 0563f64..1c4b618 100644 ---- a/conftest.py -+++ b/conftest.py -@@ -7,13 +7,17 @@ - # Whether the async and await keywords work - has_async_await = sys.version_info[0] == 3 and sys.version_info[1] >= 5 - -+# Whether "from asyncio import coroutine" *fails* -+version_info = sys.version_info -+dropped_asyncio_coroutine = version_info[0] == 3 and version_info[1] >= 11 -+ - - print("conftest.py", has_asyncio, has_async_await) - - - collect_ignore = [] - --if not has_asyncio: -+if not has_asyncio or dropped_asyncio_coroutine: - collect_ignore.append("tests/test_coroutine_cached_property.py") - - if not has_async_await: -diff --git a/tests/test_async_cached_property.py b/tests/test_async_cached_property.py -index 4ba84f3..d61cc28 100644 ---- a/tests/test_async_cached_property.py -+++ b/tests/test_async_cached_property.py -@@ -9,8 +9,7 @@ - - def unittest_run_loop(f): - def wrapper(*args, **kwargs): -- coro = asyncio.coroutine(f) -- future = coro(*args, **kwargs) -+ future = f(*args, **kwargs) - loop = asyncio.get_event_loop() - loop.run_until_complete(future) - - -From 9b210d12fa73c91743378ba4a966417846e7ea9a Mon Sep 17 00:00:00 2001 -From: Petr Viktorin <encukou@gmail.com> -Date: Thu, 2 Dec 2021 11:44:18 +0100 -Subject: [PATCH 2/2] Restore compatibility with python 2.7 - -This is still necessary according to the Contributing Guidelines. ---- - cached_property.py | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/cached_property.py b/cached_property.py -index 254739c..944e2f5 100644 ---- a/cached_property.py -+++ b/cached_property.py -@@ -13,12 +13,12 @@ - import asyncio - except (ImportError, SyntaxError): - asyncio = None --try: -- iscoroutinefunction = asyncio.iscoroutinefunction --except AttributeError: -- # Python 3.11: @asyncio.coroutine was removed -- from inspect import iscoroutinefunction -- -+if asyncio: -+ try: -+ iscoroutinefunction = asyncio.iscoroutinefunction -+ except AttributeError: -+ # Python 3.11: @asyncio.coroutine was removed -+ from inspect import iscoroutinefunction - - - class cached_property(object): |
