| """Async executor versions of file functions from the os.path module.""" | |
| import asyncio | |
| from functools import partial, wraps | |
| from os import path | |
| def wrap(func): | |
| async def run(*args, loop=None, executor=None, **kwargs): | |
| if loop is None: | |
| loop = asyncio.get_running_loop() | |
| pfunc = partial(func, *args, **kwargs) | |
| return await loop.run_in_executor(executor, pfunc) | |
| return run | |
| exists = wrap(path.exists) | |
| isfile = wrap(path.isfile) | |
| isdir = wrap(path.isdir) | |
| islink = wrap(path.islink) | |
| ismount = wrap(path.ismount) | |
| getsize = wrap(path.getsize) | |
| getmtime = wrap(path.getmtime) | |
| getatime = wrap(path.getatime) | |
| getctime = wrap(path.getctime) | |
| samefile = wrap(path.samefile) | |
| sameopenfile = wrap(path.sameopenfile) | |