diff --git a/jedi/api/classes.py b/jedi/api/classes.py index b97d23df..3650a3d0 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -236,7 +236,7 @@ class BaseDefinition(object): >>> script = Script(source, 1, len('def f'), 'example.py') >>> doc = script.goto_definitions()[0].docstring() >>> print(doc) - f(a, b = 1) + f(a, b=1) Document for function f. diff --git a/jedi/evaluate/finder.py b/jedi/evaluate/finder.py index 0a5855bf..42105951 100644 --- a/jedi/evaluate/finder.py +++ b/jedi/evaluate/finder.py @@ -502,7 +502,7 @@ def get_names_of_scope(evaluator, scope, position=None, star_search=True, includ >>> from jedi._compatibility import u >>> from jedi.parser import Parser, load_grammar - >>> parser = Parser(load_grammar('python3.4'), u(''' + >>> parser = Parser(load_grammar(), u(''' ... x = ['a', 'b', 'c'] ... def func(): ... y = None @@ -515,7 +515,7 @@ def get_names_of_scope(evaluator, scope, position=None, star_search=True, includ scope. >>> from jedi.evaluate import Evaluator - >>> pairs = list(get_names_of_scope(Evaluator(), scope)) + >>> pairs = list(get_names_of_scope(Evaluator(load_grammar()), scope)) >>> pairs[0] (, []) diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index eb45ce02..4106e4c7 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -748,7 +748,8 @@ class ModuleWrapper(use_metaclass(CachedMetaClass, pr.Module, Wrapper)): yield self, self._module_attributes() for star_module in self.star_imports(): yield self, star_module.get_defined_names() - yield self, self.base.global_names + if self.base.global_names: + yield self, self.base.global_names sub_modules = self._sub_modules() if sub_modules: yield self, self._sub_modules() diff --git a/jedi/parser/tree.py b/jedi/parser/tree.py index ebc87bff..a906a3e3 100644 --- a/jedi/parser/tree.py +++ b/jedi/parser/tree.py @@ -19,18 +19,18 @@ The easiest way to play with this module is to use :class:`parsing.Parser`. :attr:`parsing.Parser.module` holds an instance of :class:`SubModule`: >>> from jedi._compatibility import u ->>> from jedi.parser import Parser ->>> parser = Parser(u('import os'), 'example.py') +>>> from jedi.parser import Parser, load_grammar +>>> parser = Parser(load_grammar(), u('import os'), 'example.py') >>> submodule = parser.module >>> submodule - + Any subclasses of :class:`Scope`, including :class:`SubModule` has attribute :attr:`imports `. This attribute has import statements in this scope. Check this out: >>> submodule.imports -[] +[] See also :attr:`Scope.subscopes` and :attr:`Scope.statements`. @@ -557,8 +557,8 @@ class Scope(Simple, DocstringMixin): Get all defined names in this scope. Useful for autocompletion. >>> from jedi._compatibility import u - >>> from jedi.parser import Parser - >>> parser = Parser(u(''' + >>> from jedi.parser import Parser, load_grammar + >>> parser = Parser(load_grammar(), u(''' ... a = x ... b = y ... b.c = z