Python collections.abc.Awaitable() Examples
The following are 4
code examples of collections.abc.Awaitable().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
collections.abc
, or try the search function
.
Example #1
Source File: rpc.py From QuLab with MIT License | 6 votes |
def handle_request(self, source, msgID, method, *args, **kw): """ Handle a request from source. """ try: func = self.getRequestHandler(method, source=source, msgID=msgID) if 'timeout' in kw and not acceptArg(func, 'timeout'): del kw['timeout'] if inspect.iscoroutinefunction(func): result = await func(*args, **kw) else: result = await self.loop.run_in_executor( self.executor, functools.partial(func, *args, **kw)) if isinstance(result, Awaitable): result = await result except QuLabRPCError as e: result = e except Exception as e: result = QuLabRPCServerError.make(e) msg = pack(result) await self.response(source, msgID, msg)
Example #2
Source File: test_collections.py From Fluid-Designer with GNU General Public License v3.0 | 4 votes |
def test_Awaitable(self): def gen(): yield @types.coroutine def coro(): yield async def new_coro(): pass class Bar: def __await__(self): yield class MinimalCoro(Coroutine): def send(self, value): return value def throw(self, typ, val=None, tb=None): super().throw(typ, val, tb) def __await__(self): yield non_samples = [None, int(), gen(), object()] for x in non_samples: self.assertNotIsInstance(x, Awaitable) self.assertFalse(issubclass(type(x), Awaitable), repr(type(x))) samples = [Bar(), MinimalCoro()] for x in samples: self.assertIsInstance(x, Awaitable) self.assertTrue(issubclass(type(x), Awaitable)) c = coro() # Iterable coroutines (generators with CO_ITERABLE_COROUTINE # flag don't have '__await__' method, hence can't be instances # of Awaitable. Use inspect.isawaitable to detect them. self.assertNotIsInstance(c, Awaitable) c = new_coro() self.assertIsInstance(c, Awaitable) c.close() # awoid RuntimeWarning that coro() was not awaited class CoroLike: pass Coroutine.register(CoroLike) self.assertTrue(isinstance(CoroLike(), Awaitable)) self.assertTrue(issubclass(CoroLike, Awaitable)) CoroLike = None support.gc_collect() # Kill CoroLike to clean-up ABCMeta cache
Example #3
Source File: test_collections.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 4 votes |
def test_Awaitable(self): def gen(): yield @types.coroutine def coro(): yield async def new_coro(): pass class Bar: def __await__(self): yield class MinimalCoro(Coroutine): def send(self, value): return value def throw(self, typ, val=None, tb=None): super().throw(typ, val, tb) def __await__(self): yield non_samples = [None, int(), gen(), object()] for x in non_samples: self.assertNotIsInstance(x, Awaitable) self.assertFalse(issubclass(type(x), Awaitable), repr(type(x))) samples = [Bar(), MinimalCoro()] for x in samples: self.assertIsInstance(x, Awaitable) self.assertTrue(issubclass(type(x), Awaitable)) c = coro() # Iterable coroutines (generators with CO_ITERABLE_COROUTINE # flag don't have '__await__' method, hence can't be instances # of Awaitable. Use inspect.isawaitable to detect them. self.assertNotIsInstance(c, Awaitable) c = new_coro() self.assertIsInstance(c, Awaitable) c.close() # awoid RuntimeWarning that coro() was not awaited class CoroLike: pass Coroutine.register(CoroLike) self.assertTrue(isinstance(CoroLike(), Awaitable)) self.assertTrue(issubclass(CoroLike, Awaitable)) CoroLike = None support.gc_collect() # Kill CoroLike to clean-up ABCMeta cache
Example #4
Source File: test_collections.py From android_universal with MIT License | 4 votes |
def test_Awaitable(self): def gen(): yield @types.coroutine def coro(): yield async def new_coro(): pass class Bar: def __await__(self): yield class MinimalCoro(Coroutine): def send(self, value): return value def throw(self, typ, val=None, tb=None): super().throw(typ, val, tb) def __await__(self): yield non_samples = [None, int(), gen(), object()] for x in non_samples: self.assertNotIsInstance(x, Awaitable) self.assertFalse(issubclass(type(x), Awaitable), repr(type(x))) samples = [Bar(), MinimalCoro()] for x in samples: self.assertIsInstance(x, Awaitable) self.assertTrue(issubclass(type(x), Awaitable)) c = coro() # Iterable coroutines (generators with CO_ITERABLE_COROUTINE # flag don't have '__await__' method, hence can't be instances # of Awaitable. Use inspect.isawaitable to detect them. self.assertNotIsInstance(c, Awaitable) c = new_coro() self.assertIsInstance(c, Awaitable) c.close() # avoid RuntimeWarning that coro() was not awaited class CoroLike: pass Coroutine.register(CoroLike) self.assertTrue(isinstance(CoroLike(), Awaitable)) self.assertTrue(issubclass(CoroLike, Awaitable)) CoroLike = None support.gc_collect() # Kill CoroLike to clean-up ABCMeta cache