From 81a35b251aeb9865e5b390b583f22f5256e92e06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miray=20CENG=C4=B0L?= Date: Wed, 23 Oct 2024 20:52:37 +0300 Subject: [PATCH 1/4] Create awaitme_miray_cengil.py --- Week05/awaitme_miray_cengil.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Week05/awaitme_miray_cengil.py diff --git a/Week05/awaitme_miray_cengil.py b/Week05/awaitme_miray_cengil.py new file mode 100644 index 00000000..0a6722c7 --- /dev/null +++ b/Week05/awaitme_miray_cengil.py @@ -0,0 +1,18 @@ +import asyncio +import functools + +def awaitme(func): + """ + A decorator that turns any function into a coroutine. + It properly passes all arguments to the function. + If the function returns a value, the decorator will return it. + """ + @functools.wraps(func) + async def wrapper(*args, **kwargs): + if asyncio.iscoroutinefunction(func) + return await func(*args, **kwargs) + else: + loop = asyncio.get_event_loop() + return await loop.run_in_executor(None, functools.partial(func, *args, **kwargs)) + + return wrapper From 3667cc5feb03174659958aea18acd9c7f138a612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miray=20CENG=C4=B0L?= Date: Wed, 23 Oct 2024 20:55:40 +0300 Subject: [PATCH 2/4] Create awaitme_miray_cengil.py --- Week05/awaitme_miray_cengil.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Week05/awaitme_miray_cengil.py b/Week05/awaitme_miray_cengil.py index 0a6722c7..ee5f5628 100644 --- a/Week05/awaitme_miray_cengil.py +++ b/Week05/awaitme_miray_cengil.py @@ -9,7 +9,7 @@ def awaitme(func): """ @functools.wraps(func) async def wrapper(*args, **kwargs): - if asyncio.iscoroutinefunction(func) + if asyncio.iscoroutinefunction(func): return await func(*args, **kwargs) else: loop = asyncio.get_event_loop() From 24187c73d712b1501b371df57ffc358bbeab2e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miray=20CENG=C4=B0L?= Date: Mon, 4 Nov 2024 02:16:49 +0300 Subject: [PATCH 3/4] awaitme_miray_cengil.py --- Week05/awaitme_miray_cengil.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Week05/awaitme_miray_cengil.py b/Week05/awaitme_miray_cengil.py index ee5f5628..072af680 100644 --- a/Week05/awaitme_miray_cengil.py +++ b/Week05/awaitme_miray_cengil.py @@ -1,5 +1,4 @@ import asyncio -import functools def awaitme(func): """ @@ -7,7 +6,6 @@ def awaitme(func): It properly passes all arguments to the function. If the function returns a value, the decorator will return it. """ - @functools.wraps(func) async def wrapper(*args, **kwargs): if asyncio.iscoroutinefunction(func): return await func(*args, **kwargs) From 9e1ff27b43650d5091ca24b216caf1100d43d57b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miray=20CENG=C4=B0L?= Date: Mon, 4 Nov 2024 02:19:18 +0300 Subject: [PATCH 4/4] Update awaitme_miray_cengil.py --- Week05/awaitme_miray_cengil.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Week05/awaitme_miray_cengil.py b/Week05/awaitme_miray_cengil.py index 072af680..675dc5f6 100644 --- a/Week05/awaitme_miray_cengil.py +++ b/Week05/awaitme_miray_cengil.py @@ -11,6 +11,6 @@ async def wrapper(*args, **kwargs): return await func(*args, **kwargs) else: loop = asyncio.get_event_loop() - return await loop.run_in_executor(None, functools.partial(func, *args, **kwargs)) + return await loop.run_in_executor(None, lambda: func(*args, **kwargs)) return wrapper