1
0
forked from VimPlug/jedi

@publish_method should provide arguments

This commit is contained in:
Dave Halter
2020-06-08 09:15:33 +02:00
parent d4f0424ddc
commit 6d0d75c7d9
3 changed files with 12 additions and 13 deletions

View File

@@ -255,7 +255,7 @@ class _BuiltinMappedMethod(ValueWrapper):
def py__call__(self, arguments): def py__call__(self, arguments):
# TODO add TypeError if params are given/or not correct. # TODO add TypeError if params are given/or not correct.
return self._method(self._value) return self._method(self._value, arguments)
class SpecialMethodFilter(DictFilter): class SpecialMethodFilter(DictFilter):
@@ -330,7 +330,7 @@ class _AttributeOverwriteMixin(object):
def get_filters(self, *args, **kwargs): def get_filters(self, *args, **kwargs):
yield SpecialMethodFilter(self, self.overwritten_methods, self._wrapped_value) yield SpecialMethodFilter(self, self.overwritten_methods, self._wrapped_value)
for filter in self._wrapped_value.get_filters(): for filter in self._wrapped_value.get_filters(*args, **kwargs):
yield filter yield filter

View File

@@ -58,13 +58,13 @@ class GeneratorBase(LazyAttributeOverwrite, IterableMixin):
return True return True
@publish_method('__iter__') @publish_method('__iter__')
def py__iter__(self, contextualized_node=None): def _iter(self, arguments):
return ValueSet([self]) return ValueSet([self])
@publish_method('send') @publish_method('send')
@publish_method('next', python_version_match=2) @publish_method('next', python_version_match=2)
@publish_method('__next__', python_version_match=3) @publish_method('__next__', python_version_match=3)
def py__next__(self): def py__next__(self, arguments):
return ValueSet.from_sets(lazy_value.infer() for lazy_value in self.py__iter__()) return ValueSet.from_sets(lazy_value.infer() for lazy_value in self.py__iter__())
def py__stop_iteration_returns(self): def py__stop_iteration_returns(self):
@@ -290,12 +290,12 @@ class DictComprehension(ComprehensionMixin, Sequence, _DictKeyMixin):
return ValueSet.from_sets(values for keys, values in self._iterate()) return ValueSet.from_sets(values for keys, values in self._iterate())
@publish_method('values') @publish_method('values')
def _imitate_values(self): def _imitate_values(self, arguments):
lazy_value = LazyKnownValues(self._dict_values()) lazy_value = LazyKnownValues(self._dict_values())
return ValueSet([FakeList(self.inference_state, [lazy_value])]) return ValueSet([FakeList(self.inference_state, [lazy_value])])
@publish_method('items') @publish_method('items')
def _imitate_items(self): def _imitate_items(self, arguments):
lazy_values = [ lazy_values = [
LazyKnownValue( LazyKnownValue(
FakeTuple( FakeTuple(
@@ -457,12 +457,12 @@ class DictLiteralValue(_DictMixin, SequenceLiteralValue, _DictKeyMixin):
yield LazyKnownValues(types) yield LazyKnownValues(types)
@publish_method('values') @publish_method('values')
def _imitate_values(self): def _imitate_values(self, arguments):
lazy_value = LazyKnownValues(self._dict_values()) lazy_value = LazyKnownValues(self._dict_values())
return ValueSet([FakeList(self.inference_state, [lazy_value])]) return ValueSet([FakeList(self.inference_state, [lazy_value])])
@publish_method('items') @publish_method('items')
def _imitate_items(self): def _imitate_items(self, arguments):
lazy_values = [ lazy_values = [
LazyKnownValue(FakeTuple( LazyKnownValue(FakeTuple(
self.inference_state, self.inference_state,
@@ -552,7 +552,7 @@ class FakeDict(_DictMixin, Sequence, _DictKeyMixin):
return lazy_value.infer() return lazy_value.infer()
@publish_method('values') @publish_method('values')
def _values(self): def _values(self, arguments):
return ValueSet([FakeTuple( return ValueSet([FakeTuple(
self.inference_state, self.inference_state,
[LazyKnownValues(self._dict_values())] [LazyKnownValues(self._dict_values())]

View File

@@ -260,13 +260,12 @@ class ReversedObject(AttributeOverwrite):
super(ReversedObject, self).__init__(reversed_obj) super(ReversedObject, self).__init__(reversed_obj)
self._iter_list = iter_list self._iter_list = iter_list
@publish_method('__iter__') def py__iter__(self, contextualized_node):
def py__iter__(self, contextualized_node=None):
return self._iter_list return self._iter_list
@publish_method('next', python_version_match=2) @publish_method('next', python_version_match=2)
@publish_method('__next__', python_version_match=3) @publish_method('__next__', python_version_match=3)
def py__next__(self): def py__next__(self, arguments):
return ValueSet.from_sets( return ValueSet.from_sets(
lazy_value.infer() for lazy_value in self._iter_list lazy_value.infer() for lazy_value in self._iter_list
) )
@@ -401,7 +400,7 @@ class PropertyObject(AttributeOverwrite, ValueWrapper):
@publish_method('deleter') @publish_method('deleter')
@publish_method('getter') @publish_method('getter')
@publish_method('setter') @publish_method('setter')
def _return_self(self): def _return_self(self, arguments):
return ValueSet({self}) return ValueSet({self})