import_utils.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:utilspie 作者: moin18 项目源码 文件源码
def lazy_load_modules(*modules):
    """
    Decorator to load module to perform related operation for specific function
    and delete the  module from imports once the task is done. GC frees the memory
    related to module during clean-up.
    """
    def decorator(function):
        def wrapper(*args, **kwargs):

            module_dict = {}
            for module_string in modules:
                module = __import__(module_string)

                # Add `module` entry in `sys.modules`. After deleting the module
                # from `sys.modules` and re-importing the module don't update
                # the module entry in `sys.modules` dict
                sys.modules[module.__package__] = module
                reload_module(module)
                module_dict[module_string] = module

            func_response = function(*args, **kwargs)

            for module_string, module in module_dict.items():
                # delete idna module
                delete_module(module_string)
                del module  # delete reference to idna

            return func_response
        return wrapper
    return decorator
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号