Metadata-Version: 2.1
Name: module-wrapper
Version: 0.1.3
Summary: Module wrapper Python library
Home-page: https://github.com/rominf/module-wrapper
License: Apache-2.0
Keywords: module,wrapper,proxy,decorator
Author: Roman Inflianskas
Author-email: infroma@gmail.com
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: wrapt
Description-Content-Type: text/markdown

# module-wrapper - module wrapper Python library
## Installation
To install from PyPI: https://pypi.org/project/module-wrapper/ run:
```shell
$ pip install module-wrapper
```

## Usage
Example from https://github.com/rominf/aioify:
```pyhton
from functools import wraps, partial
import asyncio

import module_wrapper


__all__ = ['aioify']


def wrap(func):
    @wraps(func)
    async def run(*args, loop=None, executor=None, **kwargs):
        if loop is None:
            loop = asyncio.get_event_loop()
        pfunc = partial(func, *args, **kwargs)
        return await loop.run_in_executor(executor, pfunc)
    return run


def aioify(obj, name=None):
    def create(cls):
        return 'create', wrap(cls)

    return module_wrapper.wrap(obj=obj, wrapper=wrap, methods_to_add={create}, name=name)
```

