forked from VimPlug/jedi
24
jedi/evaluate/compiled.py
Normal file
24
jedi/evaluate/compiled.py
Normal 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
10
test/test_compiled.py
Normal 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
|
||||||
Reference in New Issue
Block a user