mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-15 18:17:07 +08:00
Actually replace tree with representation (in all the imports).
This commit is contained in:
@@ -17,7 +17,7 @@ from itertools import chain
|
|||||||
from jedi._compatibility import next, unicode, builtins
|
from jedi._compatibility import next, unicode, builtins
|
||||||
from jedi.parser import Parser
|
from jedi.parser import Parser
|
||||||
from jedi.parser.tokenize import source_tokens
|
from jedi.parser.tokenize import source_tokens
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.parser.user_context import UserContext, UserContextParser
|
from jedi.parser.user_context import UserContext, UserContextParser
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi import settings
|
from jedi import settings
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from itertools import chain
|
|||||||
from jedi._compatibility import next, unicode, use_metaclass
|
from jedi._compatibility import next, unicode, use_metaclass
|
||||||
from jedi import settings
|
from jedi import settings
|
||||||
from jedi import common
|
from jedi import common
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.evaluate.helpers import statement_elements_in_statement
|
from jedi.evaluate.helpers import statement_elements_in_statement
|
||||||
from jedi.evaluate.cache import memoize_default, CachedMetaClass
|
from jedi.evaluate.cache import memoize_default, CachedMetaClass
|
||||||
from jedi.evaluate import representation as er
|
from jedi.evaluate import representation as er
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from jedi.common import source_to_unicode
|
|||||||
from jedi.cache import underscore_memoization
|
from jedi.cache import underscore_memoization
|
||||||
from jedi.evaluate import compiled
|
from jedi.evaluate import compiled
|
||||||
from jedi.evaluate.compiled.fake import get_module
|
from jedi.evaluate.compiled.fake import get_module
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.parser.fast import FastParser
|
from jedi.parser.fast import FastParser
|
||||||
from jedi.evaluate import helpers
|
from jedi.evaluate import helpers
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from jedi._compatibility import u, unicode
|
from jedi._compatibility import u, unicode
|
||||||
from jedi import common
|
from jedi import common
|
||||||
from jedi.api import classes
|
from jedi.api import classes
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.evaluate import imports
|
from jedi.evaluate import imports
|
||||||
from jedi.evaluate import helpers
|
from jedi.evaluate import helpers
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ import copy
|
|||||||
from itertools import tee, chain
|
from itertools import tee, chain
|
||||||
|
|
||||||
from jedi._compatibility import next, hasattr, unicode
|
from jedi._compatibility import next, hasattr, unicode
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.parser.pytree import python_symbols
|
from jedi.parser.pytree import python_symbols
|
||||||
from jedi.parser.tokenize import Token
|
from jedi.parser.tokenize import Token
|
||||||
from jedi.parser import fast
|
from jedi.parser import fast
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ Module for statical analysis.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.evaluate.compiled import CompiledObject
|
from jedi.evaluate.compiled import CompiledObject
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from jedi._compatibility import builtins as _builtins, unicode
|
|||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi.cache import underscore_memoization, memoize
|
from jedi.cache import underscore_memoization, memoize
|
||||||
from jedi.evaluate.sys_path import get_sys_path
|
from jedi.evaluate.sys_path import get_sys_path
|
||||||
from jedi.parser.representation import Param, SubModule, Base, Operator
|
from jedi.parser.tree import Param, SubModule, Base, Operator
|
||||||
from jedi.evaluate.helpers import FakeName
|
from jedi.evaluate.helpers import FakeName
|
||||||
from . import fake
|
from . import fake
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import inspect
|
|||||||
from jedi._compatibility import is_py3, builtins, unicode
|
from jedi._compatibility import is_py3, builtins, unicode
|
||||||
from jedi.parser import Parser
|
from jedi.parser import Parser
|
||||||
from jedi.parser import tokenize
|
from jedi.parser import tokenize
|
||||||
from jedi.parser.representation import Class
|
from jedi.parser.tree import Class
|
||||||
from jedi.evaluate.helpers import FakeName
|
from jedi.evaluate.helpers import FakeName
|
||||||
|
|
||||||
modules = {}
|
modules = {}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ It works as follows:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from jedi._compatibility import unicode
|
from jedi._compatibility import unicode
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi import settings
|
from jedi import settings
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi.evaluate import helpers
|
from jedi.evaluate import helpers
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ check for -> a is a string). There's big potential in these checks.
|
|||||||
from itertools import chain
|
from itertools import chain
|
||||||
|
|
||||||
from jedi._compatibility import hasattr, unicode, u
|
from jedi._compatibility import hasattr, unicode, u
|
||||||
from jedi.parser import representation as pr, tokenize
|
from jedi.parser import tree as pr, tokenize
|
||||||
from jedi.parser import fast
|
from jedi.parser import fast
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi import common
|
from jedi import common
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
|
|
||||||
|
|
||||||
class Status(object):
|
class Status(object):
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import copy
|
|||||||
from itertools import chain
|
from itertools import chain
|
||||||
|
|
||||||
from jedi._compatibility import unicode
|
from jedi._compatibility import unicode
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from jedi import common
|
|||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi import cache
|
from jedi import cache
|
||||||
from jedi.parser import fast
|
from jedi.parser import fast
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.evaluate.sys_path import get_sys_path, sys_path_with_modifications
|
from jedi.evaluate.sys_path import get_sys_path, sys_path_with_modifications
|
||||||
from jedi.evaluate import helpers
|
from jedi.evaluate import helpers
|
||||||
from jedi import settings
|
from jedi import settings
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ from jedi import common
|
|||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi import settings
|
from jedi import settings
|
||||||
from jedi._compatibility import use_metaclass, is_py3, unicode
|
from jedi._compatibility import use_metaclass, is_py3, unicode
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.evaluate import compiled
|
from jedi.evaluate import compiled
|
||||||
from jedi.evaluate import helpers
|
from jedi.evaluate import helpers
|
||||||
from jedi.evaluate import precedence
|
from jedi.evaluate import precedence
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from itertools import chain
|
|||||||
from jedi._compatibility import unicode, zip_longest
|
from jedi._compatibility import unicode, zip_longest
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi import common
|
from jedi import common
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.evaluate import iterable
|
from jedi.evaluate import iterable
|
||||||
from jedi.evaluate import helpers
|
from jedi.evaluate import helpers
|
||||||
from jedi.evaluate import analysis
|
from jedi.evaluate import analysis
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Handles operator precedence.
|
|||||||
import operator
|
import operator
|
||||||
|
|
||||||
from jedi._compatibility import unicode
|
from jedi._compatibility import unicode
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi.common import PushBackIterator
|
from jedi.common import PushBackIterator
|
||||||
from jedi.evaluate.compiled import (CompiledObject, create, builtin,
|
from jedi.evaluate.compiled import (CompiledObject, create, builtin,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Next to :mod:`jedi.evaluate.cache` this module also makes |jedi| not
|
|||||||
thread-safe. Why? ``execution_recursion_decorator`` uses class variables to
|
thread-safe. Why? ``execution_recursion_decorator`` uses class variables to
|
||||||
count the function calls.
|
count the function calls.
|
||||||
"""
|
"""
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi import settings
|
from jedi import settings
|
||||||
from jedi.evaluate import compiled
|
from jedi.evaluate import compiled
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
"""
|
"""
|
||||||
Like described in the :mod:`jedi.parser.representation` module,
|
Like described in the :mod:`jedi.parser.tree` module,
|
||||||
there's a need for an ast like module to represent the states of parsed
|
there's a need for an ast like module to represent the states of parsed
|
||||||
modules.
|
modules.
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ import pkgutil
|
|||||||
from itertools import chain
|
from itertools import chain
|
||||||
|
|
||||||
from jedi._compatibility import use_metaclass, unicode, Python3Method
|
from jedi._compatibility import use_metaclass, unicode, Python3Method
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.parser.tokenize import Token
|
from jedi.parser.tokenize import Token
|
||||||
from jedi.parser.pytree import python_symbols
|
from jedi.parser.pytree import python_symbols
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
|
|||||||
@@ -13,9 +13,8 @@ from jedi._compatibility import unicode
|
|||||||
from jedi.evaluate import compiled
|
from jedi.evaluate import compiled
|
||||||
from jedi.evaluate import representation as er
|
from jedi.evaluate import representation as er
|
||||||
from jedi.evaluate import iterable
|
from jedi.evaluate import iterable
|
||||||
from jedi.evaluate.helpers import FakeArray, FakeStatement
|
|
||||||
from jedi.parser import Parser
|
from jedi.parser import Parser
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi.evaluate import precedence
|
from jedi.evaluate import precedence
|
||||||
from jedi.evaluate import param
|
from jedi.evaluate import param
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from jedi._compatibility import exec_function, unicode
|
from jedi._compatibility import exec_function, unicode
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.parser import Parser
|
from jedi.parser import Parser
|
||||||
from jedi.evaluate.cache import memoize_default
|
from jedi.evaluate.cache import memoize_default
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
The ``Parser`` tries to convert the available Python code in an easy to read
|
The ``Parser`` tries to convert the available Python code in an easy to read
|
||||||
format, something like an abstract syntax tree. The classes who represent this
|
format, something like an abstract syntax tree. The classes who represent this
|
||||||
tree, are sitting in the :mod:`jedi.parser.representation` module.
|
tree, are sitting in the :mod:`jedi.parser.tree` module.
|
||||||
|
|
||||||
The Python module ``tokenize`` is a very important part in the ``Parser``,
|
The Python module ``tokenize`` is a very important part in the ``Parser``,
|
||||||
because it splits the code into different words (tokens). Sometimes it looks a
|
because it splits the code into different words (tokens). Sometimes it looks a
|
||||||
@@ -21,7 +21,7 @@ import logging
|
|||||||
from jedi._compatibility import next, unicode
|
from jedi._compatibility import next, unicode
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi import common
|
from jedi import common
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pt
|
||||||
from jedi.parser import tokenize
|
from jedi.parser import tokenize
|
||||||
from jedi.parser import pytree
|
from jedi.parser import pytree
|
||||||
from jedi.parser.pgen2 import Driver
|
from jedi.parser.pgen2 import Driver
|
||||||
@@ -52,29 +52,29 @@ class Parser(object):
|
|||||||
source += '\n'
|
source += '\n'
|
||||||
|
|
||||||
_ast_mapping = {
|
_ast_mapping = {
|
||||||
'expr_stmt': pr.ExprStmt,
|
'expr_stmt': pt.ExprStmt,
|
||||||
'classdef': pr.Class,
|
'classdef': pt.Class,
|
||||||
'funcdef': pr.Function,
|
'funcdef': pt.Function,
|
||||||
'file_input': pr.SubModule,
|
'file_input': pt.SubModule,
|
||||||
'import_name': pr.ImportName,
|
'import_name': pt.ImportName,
|
||||||
'import_from': pr.ImportFrom,
|
'import_from': pt.ImportFrom,
|
||||||
'break_stmt': pr.KeywordStatement,
|
'break_stmt': pt.KeywordStatement,
|
||||||
'continue_stmt': pr.KeywordStatement,
|
'continue_stmt': pt.KeywordStatement,
|
||||||
'return_stmt': pr.ReturnStmt,
|
'return_stmt': pt.ReturnStmt,
|
||||||
'raise_stmt': pr.KeywordStatement,
|
'raise_stmt': pt.KeywordStatement,
|
||||||
'yield_expr': pr.YieldExpr,
|
'yield_expr': pt.YieldExpr,
|
||||||
'del_stmt': pr.KeywordStatement,
|
'del_stmt': pt.KeywordStatement,
|
||||||
'pass_stmt': pr.KeywordStatement,
|
'pass_stmt': pt.KeywordStatement,
|
||||||
'global_stmt': pr.GlobalStmt,
|
'global_stmt': pt.GlobalStmt,
|
||||||
'nonlocal_stmt': pr.KeywordStatement,
|
'nonlocal_stmt': pt.KeywordStatement,
|
||||||
'assert_stmt': pr.KeywordStatement,
|
'assert_stmt': pt.KeywordStatement,
|
||||||
'if_stmt': pr.IfStmt,
|
'if_stmt': pt.IfStmt,
|
||||||
'with_stmt': pr.WithStmt,
|
'with_stmt': pt.WithStmt,
|
||||||
'for_stmt': pr.ForStmt,
|
'for_stmt': pt.ForStmt,
|
||||||
'while_stmt': pr.WhileStmt,
|
'while_stmt': pt.WhileStmt,
|
||||||
'try_stmt': pr.TryStmt,
|
'try_stmt': pt.TryStmt,
|
||||||
'comp_for': pr.CompFor,
|
'comp_for': pt.CompFor,
|
||||||
'decorator': pr.Decorator,
|
'decorator': pt.Decorator,
|
||||||
}
|
}
|
||||||
|
|
||||||
self._ast_mapping = dict((getattr(pytree.python_symbols, k), v)
|
self._ast_mapping = dict((getattr(pytree.python_symbols, k), v)
|
||||||
@@ -110,26 +110,26 @@ class Parser(object):
|
|||||||
try:
|
try:
|
||||||
new_node = self._ast_mapping[type](children)
|
new_node = self._ast_mapping[type](children)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
new_node = pr.Node(type, children)
|
new_node = pt.Node(type, children)
|
||||||
|
|
||||||
# We need to check raw_node always, because the same node can be
|
# We need to check raw_node always, because the same node can be
|
||||||
# returned by convert multiple times.
|
# returned by convert multiple times.
|
||||||
if type == pytree.python_symbols.global_stmt:
|
if type == pytree.python_symbols.global_stmt:
|
||||||
self.global_names += new_node.get_defined_names()
|
self.global_names += new_node.get_defined_names()
|
||||||
elif isinstance(new_node, (pr.ClassOrFunc, pr.Module)) \
|
elif isinstance(new_node, (pt.ClassOrFunc, pt.Module)) \
|
||||||
and type in (pytree.python_symbols.funcdef,
|
and type in (pytree.python_symbols.funcdef,
|
||||||
pytree.python_symbols.classdef,
|
pytree.python_symbols.classdef,
|
||||||
pytree.python_symbols.file_input):
|
pytree.python_symbols.file_input):
|
||||||
# scope_name_stack handling
|
# scope_name_stack handling
|
||||||
scope_names = self.scope_names_stack.pop()
|
scope_names = self.scope_names_stack.pop()
|
||||||
if isinstance(new_node, pr.ClassOrFunc):
|
if isinstance(new_node, pt.ClassOrFunc):
|
||||||
n = new_node.name
|
n = new_node.name
|
||||||
scope_names[n.value].remove(n)
|
scope_names[n.value].remove(n)
|
||||||
# Set the func name of the current node
|
# Set the func name of the current node
|
||||||
arr = self.scope_names_stack[-1].setdefault(n.value, [])
|
arr = self.scope_names_stack[-1].setdefault(n.value, [])
|
||||||
arr.append(n)
|
arr.append(n)
|
||||||
new_node.names_dict = scope_names
|
new_node.names_dict = scope_names
|
||||||
elif isinstance(new_node, pr.CompFor):
|
elif isinstance(new_node, pt.CompFor):
|
||||||
# The name definitions of comprehenions shouldn't be part of the
|
# The name definitions of comprehenions shouldn't be part of the
|
||||||
# current scope. They are part of the comprehension scope.
|
# current scope. They are part of the comprehension scope.
|
||||||
for n in new_node.get_defined_names():
|
for n in new_node.get_defined_names():
|
||||||
@@ -143,9 +143,9 @@ class Parser(object):
|
|||||||
if value in ('def', 'class'):
|
if value in ('def', 'class'):
|
||||||
self.scope_names_stack.append({})
|
self.scope_names_stack.append({})
|
||||||
|
|
||||||
return pr.Keyword(value, start_pos, prefix)
|
return pt.Keyword(value, start_pos, prefix)
|
||||||
else:
|
else:
|
||||||
name = pr.Name(value, start_pos, prefix)
|
name = pt.Name(value, start_pos, prefix)
|
||||||
# Keep a listing of all used names
|
# Keep a listing of all used names
|
||||||
arr = self.used_names.setdefault(name.value, [])
|
arr = self.used_names.setdefault(name.value, [])
|
||||||
arr.append(name)
|
arr.append(name)
|
||||||
@@ -153,13 +153,13 @@ class Parser(object):
|
|||||||
arr.append(name)
|
arr.append(name)
|
||||||
return name
|
return name
|
||||||
elif type == tokenize.STRING:
|
elif type == tokenize.STRING:
|
||||||
return pr.String(value, start_pos, prefix)
|
return pt.String(value, start_pos, prefix)
|
||||||
elif type == tokenize.NUMBER:
|
elif type == tokenize.NUMBER:
|
||||||
return pr.Number(value, start_pos, prefix)
|
return pt.Number(value, start_pos, prefix)
|
||||||
elif type in (tokenize.NEWLINE, tokenize.ENDMARKER):
|
elif type in (tokenize.NEWLINE, tokenize.ENDMARKER):
|
||||||
return pr.Whitespace(value, start_pos, prefix)
|
return pt.Whitespace(value, start_pos, prefix)
|
||||||
else:
|
else:
|
||||||
return pr.Operator(value, start_pos, prefix)
|
return pt.Operator(value, start_pos, prefix)
|
||||||
|
|
||||||
def error_recovery(self, grammar, stack, type, value):
|
def error_recovery(self, grammar, stack, type, value):
|
||||||
"""
|
"""
|
||||||
@@ -185,7 +185,7 @@ class Parser(object):
|
|||||||
try:
|
try:
|
||||||
clear_names(c.children)
|
clear_names(c.children)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
if isinstance(c, pr.Name):
|
if isinstance(c, pt.Name):
|
||||||
try:
|
try:
|
||||||
self.scope_names_stack[-1][c.value].remove(c)
|
self.scope_names_stack[-1][c.value].remove(c)
|
||||||
self.used_names[c.value].remove(c)
|
self.used_names[c.value].remove(c)
|
||||||
@@ -200,6 +200,10 @@ class Parser(object):
|
|||||||
|
|
||||||
def __init__old__(self, source, module_path=None, no_docstr=False,
|
def __init__old__(self, source, module_path=None, no_docstr=False,
|
||||||
tokenizer=None, top_module=None):
|
tokenizer=None, top_module=None):
|
||||||
|
|
||||||
|
"""
|
||||||
|
TODO REMOVE THIS
|
||||||
|
"""
|
||||||
self.no_docstr = no_docstr
|
self.no_docstr = no_docstr
|
||||||
|
|
||||||
tokenizer = tokenizer or tokenize.source_tokens(source)
|
tokenizer = tokenizer or tokenize.source_tokens(source)
|
||||||
@@ -208,7 +212,7 @@ class Parser(object):
|
|||||||
# initialize global Scope
|
# initialize global Scope
|
||||||
start_pos = next(self._gen).start_pos
|
start_pos = next(self._gen).start_pos
|
||||||
self._gen.push_last_back()
|
self._gen.push_last_back()
|
||||||
self.module = pr.SubModule(module_path, start_pos, top_module)
|
self.module = pt.SubModule(module_path, start_pos, top_module)
|
||||||
self._scope = self.module
|
self._scope = self.module
|
||||||
self._top_module = top_module or self.module
|
self._top_module = top_module or self.module
|
||||||
|
|
||||||
@@ -257,7 +261,7 @@ class Parser(object):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
self.module.used_names[tok_name] = set([simple])
|
self.module.used_names[tok_name] = set([simple])
|
||||||
self.module.temp_used_names = []
|
self.module.temp_used_names = []
|
||||||
if isinstance(simple, pr.Statement):
|
if isinstance(simple, pt.Statement):
|
||||||
for name, calls in simple.get_names_dict().items():
|
for name, calls in simple.get_names_dict().items():
|
||||||
self._scope.add_name_calls(name, calls)
|
self._scope.add_name_calls(name, calls)
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from jedi._compatibility import use_metaclass, unicode
|
|||||||
from jedi import settings
|
from jedi import settings
|
||||||
from jedi import common
|
from jedi import common
|
||||||
from jedi.parser import Parser
|
from jedi.parser import Parser
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi.parser import tokenize
|
from jedi.parser import tokenize
|
||||||
from jedi import cache
|
from jedi import cache
|
||||||
from jedi.parser.tokenize import (source_tokens, Token, FLOWS, NEWLINE,
|
from jedi.parser.tokenize import (source_tokens, Token, FLOWS, NEWLINE,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from jedi import common
|
|||||||
from jedi.parser import tokenize
|
from jedi.parser import tokenize
|
||||||
from jedi._compatibility import u
|
from jedi._compatibility import u
|
||||||
from jedi.parser.fast import FastParser
|
from jedi.parser.fast import FastParser
|
||||||
from jedi.parser import representation as pr
|
from jedi.parser import tree as pr
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
from jedi.common import PushBackIterator
|
from jedi.common import PushBackIterator
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user