From 2ea2a8c6cdf6280eebc80f67b423962bee2102bb Mon Sep 17 00:00:00 2001 From: David Halter Date: Wed, 7 Aug 2013 14:36:35 +0430 Subject: [PATCH] filter all non executables when used with call_signatures, fixes #240 --- jedi/api.py | 3 ++- test/test_regression.py | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/jedi/api.py b/jedi/api.py index e8df0e37..758a7457 100644 --- a/jedi/api.py +++ b/jedi/api.py @@ -467,7 +467,8 @@ class Script(object): origins = cache.cache_function_definition(_callable, user_stmt) debug.speed('func_call followed') - return [api_classes.CallDef(o, index, call) for o in origins] + return [api_classes.CallDef(o, index, call) for o in origins + if o.isinstance(er.Function, er.Instance, er.Class)] def _func_call_and_param_index(self): debug.speed('func_call start') diff --git a/test/test_regression.py b/test/test_regression.py index f31e3d29..3f6c83ef 100755 --- a/test/test_regression.py +++ b/test/test_regression.py @@ -15,6 +15,7 @@ import inspect from .base import TestBase, unittest, cwd_at import jedi +from jedi import Script from jedi._compatibility import utf8, unicode, is_py33 from jedi import api, parsing, common @@ -238,6 +239,12 @@ class TestRegression(TestBase): s = """import functools; test = getattr(functools, 'partial'); test(""" check(self.function_definition(s), 'partial', 0) + def test_call_signature_on_module(self): + """github issue #240""" + s = 'import datetime; datetime(' + # just don't throw an exception (if numpy doesn't exist, just ignore it) + assert Script(s).call_signatures() == [] + def test_function_definition_empty_paren_pre_space(self): s = textwrap.dedent("""\ def f(a, b):