1
0
forked from VimPlug/jedi

Start getting signature inferring working

This commit is contained in:
Dave Halter
2019-07-26 02:54:50 +02:00
parent 84219236a7
commit c490d37c2d
3 changed files with 169 additions and 2 deletions

View File

@@ -150,8 +150,18 @@ class TreeNameDefinition(AbstractTreeName):
return self._API_TYPES.get(definition.type, 'statement')
class ParamNameInterface(object):
api_type = u'param'
class _ParamMixin(object):
def maybe_positional_argument(self, include_star=True):
options = [Parameter.POSITIONAL_ONLY, Parameter.POSITIONAL_OR_KEYWORD]
if include_star:
options.append(Parameter.VAR_POSITIONAL)
return self.get_kind() in options
def maybe_keyword_argument(self, include_stars=True):
options = [Parameter.KEYWORD_ONLY, Parameter.POSITIONAL_OR_KEYWORD]
if include_stars:
options.append(Parameter.VAR_KEYWORD)
return self.get_kind() in options
def _kind_string(self):
kind = self.get_kind()
@@ -161,6 +171,10 @@ class ParamNameInterface(object):
return '**'
return ''
class ParamNameInterface(_ParamMixin):
api_type = u'param'
def get_kind(self):
raise NotImplementedError
@@ -247,6 +261,17 @@ class ParamName(BaseTreeParamName):
return params[param_node.position_index]
class ParamNameWrapper(_ParamMixin):
def __init__(self, param_name):
self._wrapped_param_name = param_name
def __getattr__(self, name):
return getattr(self._wrapped_param_name, name)
def __repr__(self):
return '<%s: %s>' % (self.__class__.__name__, self._wrapped_param_name)
class ImportName(AbstractNameDefinition):
start_pos = (1, 0)
_level = 0