From 725e55485af2ed1fce53502b481a4336078b70f7 Mon Sep 17 00:00:00 2001 From: ColinDuquesnoy Date: Wed, 26 Feb 2014 13:53:09 +0100 Subject: [PATCH] Add params property to compiled object --- jedi/evaluate/compiled/__init__.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/jedi/evaluate/compiled/__init__.py b/jedi/evaluate/compiled/__init__.py index 2c604e9f..a82fda7f 100644 --- a/jedi/evaluate/compiled/__init__.py +++ b/jedi/evaluate/compiled/__init__.py @@ -11,6 +11,9 @@ from jedi import debug from jedi.parser.representation import Base from jedi.cache import underscore_memoization from jedi.evaluate.sys_path import get_sys_path +from jedi.parser.representation import Param +from jedi.parser.representation import SubModule +from jedi.evaluate.helpers import FakeName from . import fake @@ -20,6 +23,20 @@ class CompiledObject(Base): asserts = [] path = None # modules have this attribute - set it to None. + @property + def params(self): + params_str, ret = self._parse_function_doc() + tokens = params_str.split(',') + params = [] + module = SubModule(self.get_parent_until().name) + # it seems like start_pos/end_pos is always (0, 0) for a compiled + # object + start_pos, end_pos = (0, 0), (0, 0) + for p in tokens: + params.append(Param(module, [FakeName(p.strip())], start_pos, + end_pos)) + return params + def __init__(self, obj, parent=None): self.obj = obj self.parent = parent