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