summaryrefslogtreecommitdiff
path: root/astroid/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'astroid/util.py')
-rw-r--r--astroid/util.py13
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.'''