Create noblock.py

This commit is contained in:
Mr-Blob
2018-06-19 10:02:21 +00:00
committed by GitHub
parent 844d3a4869
commit ccd6f14efc
+13
View File
@@ -0,0 +1,13 @@
#!/usr/bin/env python3.6
# -*- coding: utf-8 -*-
import asyncio
import functools
def no_block(func):
"""Turns a blocking function into a non-blocking coroutine function."""
@functools.wraps(func)
async def no_blocking_handler(*args, **kwargs):
partial = functools.partial(func, *args, **kwargs)
return await asyncio.get_event_loop().run_in_executor(None, partial)
return no_blocking_handler