diff options
Diffstat (limited to 'astroid/util.py')
-rw-r--r-- | astroid/util.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/astroid/util.py b/astroid/util.py index 5c506b59..1111202f 100644 --- a/astroid/util.py +++ b/astroid/util.py @@ -8,10 +8,23 @@ import sys import warnings +import importlib import lazy_object_proxy import six +def lazy_descriptor(obj): + class DescriptorProxy(lazy_object_proxy.Proxy): + def __get__(self, instance, owner=None): + return self.__class__.__get__(self, instance) + return DescriptorProxy(obj) + + +def lazy_import(module_name): + return lazy_object_proxy.Proxy( + lambda: importlib.import_module('.' + module_name, 'astroid')) + + def reraise(exception): '''Reraises an exception with the traceback from the current exception block.''' |