1
0
forked from VimPlug/jedi

Document _import_raw_namespace more

This commit is contained in:
Takafumi Arakaki
2013-03-03 12:37:00 +01:00
parent 12ac71b1fd
commit 6fb42e5f4b

View File

@@ -553,22 +553,40 @@ class Interpreter(Script):
"""
Import interpreted Python objects in a namespace.
Three kinds of objects are treated here.
1. Functions and classes. The objects imported like this::
from os.path import join
2. Modules. The objects imported like this::
import os
3. Instances. The objects created like this::
from datetime import datetime
dt = datetime(2013, 1, 1)
:type raw_namespace: dict
:arg raw_namespace: e.g., the dict given by `locals`
"""
scope = self._parser.scope
for (variable, obj) in raw_namespace.items():
# Import functions and classes
module = getattr(obj, '__module__', None)
if module:
fakeimport = self._make_fakeimport(module, variable)
scope.add_import(fakeimport)
continue
# Import modules
if getattr(obj, '__file__', None):
fakeimport = self._make_fakeimport(obj.__name__)
scope.add_import(fakeimport)
continue
# Import instances
objclass = getattr(obj, '__class__', None)
module = getattr(objclass, '__module__', None)
if objclass and module: