1
0
forked from VimPlug/jedi

add a 'compiled' module, to finally solve #102 and #335

This commit is contained in:
Dave Halter
2014-01-07 18:45:02 +01:00
parent f3768f818b
commit 70413768ef
2 changed files with 34 additions and 0 deletions

24
jedi/evaluate/compiled.py Normal file
View File

@@ -0,0 +1,24 @@
from jedi.cache import underscore_memoization
class PyObject(object):
def __init__(self, obj, parent=None):
self.obj = obj
self.parent = parent
def get_defined_names(self):
for name in dir(self.obj):
yield PyName(self, name)
class PyName(object):
def __init__(self, obj, name):
self._obj = obj
self._name = name
self.start_pos = 0, 0 # an illegal start_pos, to make sorting easy.
@property
@underscore_memoization
def parent(self):
return PyObject(getattr(self._obj.obj, self._name), self._obj)

10
test/test_compiled.py Normal file
View File

@@ -0,0 +1,10 @@
from jedi._compatibility import builtins
from jedi.evaluate import compiled
from jedi.evaluate import Evaluator
def test_simple():
bltn = compiled.PyObject(builtins)
obj = compiled.PyObject('_str_', bltn)
upper = Evaluator().find_types(obj, 'upper')
assert len(upper) == 1