call_signatures -> find_signatures

This commit is contained in:
Dave Halter
2019-12-20 15:41:20 +01:00
parent 6c7b8f669f
commit f32b0aebeb
2 changed files with 11 additions and 7 deletions

View File

@@ -371,6 +371,9 @@ class Script(object):
return _usages(**kwargs) return _usages(**kwargs)
def call_signatures(self): def call_signatures(self):
return self.find_signatures(*self._pos)
def find_signatures(self, line=None, column=None):
""" """
Return the function object of the call you're currently in. Return the function object of the call you're currently in.
@@ -384,9 +387,10 @@ class Script(object):
This would return an empty list.. This would return an empty list..
:rtype: list of :class:`classes.CallSignature` :rtype: list of :class:`classes.Signature`
""" """
call_details = helpers.get_call_signature_details(self._module_node, self._pos) pos = line, column
call_details = helpers.get_call_signature_details(self._module_node, pos)
if call_details is None: if call_details is None:
return [] return []
@@ -396,13 +400,13 @@ class Script(object):
context, context,
call_details.bracket_leaf, call_details.bracket_leaf,
self._code_lines, self._code_lines,
self._pos pos
) )
debug.speed('func_call followed') debug.speed('func_call followed')
# TODO here we use stubs instead of the actual values. We should use # TODO here we use stubs instead of the actual values. We should use
# the signatures from stubs, but the actual values, probably?! # the signatures from stubs, but the actual values, probably?!
return [classes.CallSignature(self._inference_state, signature, call_details) return [classes.Signature(self._inference_state, signature, call_details)
for signature in definitions.get_signatures()] for signature in definitions.get_signatures()]
def _analysis(self): def _analysis(self):

View File

@@ -650,15 +650,15 @@ class Signature(Definition):
return self._signature.to_string() return self._signature.to_string()
class CallSignature(Signature): class Signature(Signature):
""" """
`CallSignature` objects is the return value of `Script.call_signatures`. `Signature` objects is the return value of `Script.call_signatures`.
It knows what functions you are currently in. e.g. `isinstance(` would It knows what functions you are currently in. e.g. `isinstance(` would
return the `isinstance` function with its params. Without `(` it would return the `isinstance` function with its params. Without `(` it would
return nothing. return nothing.
""" """
def __init__(self, inference_state, signature, call_details): def __init__(self, inference_state, signature, call_details):
super(CallSignature, self).__init__(inference_state, signature) super(Signature, self).__init__(inference_state, signature)
self._call_details = call_details self._call_details = call_details
self._signature = signature self._signature = signature