Move the python parser tree.

This commit is contained in:
Dave Halter
2017-03-16 17:20:32 +01:00
parent b136800cfc
commit 448bfd0992
28 changed files with 1670 additions and 1671 deletions

View File

@@ -14,7 +14,7 @@ import warnings
import sys
from jedi.parser.python import load_grammar
from jedi.parser import tree
from jedi.parser.python import tree
from jedi.parser.diff import FastParser
from jedi.parser.utils import save_parser
from jedi import debug

View File

@@ -1,5 +1,5 @@
from jedi.parser import token
from jedi.parser import tree
from jedi.parser.python import tree
from jedi import debug
from jedi import settings
from jedi.api import classes

View File

@@ -7,7 +7,7 @@ from collections import namedtuple
from jedi._compatibility import u
from jedi.evaluate.helpers import evaluate_call_of_leaf
from jedi import parser
from jedi.parser import tree
from jedi.parser.python import tree
from jedi.parser import tokenize
from jedi.cache import time_cache
from jedi import common

View File

@@ -4,7 +4,7 @@ import keyword
from jedi._compatibility import is_py3, is_py35
from jedi import common
from jedi.evaluate.filters import AbstractNameDefinition
from jedi.parser.tree import Leaf
from jedi.parser.python.tree import Leaf
try:
from pydoc_data import topics as pydoc_topics
except ImportError:

View File

@@ -1,5 +1,5 @@
from jedi.api import classes
from jedi.parser import tree
from jedi.parser.python import tree
from jedi.evaluate import imports
from jedi.evaluate.filters import TreeNameDefinition
from jedi.evaluate.representation import ModuleContext

View File

@@ -63,7 +63,7 @@ that are not used are just being ignored.
import copy
import sys
from jedi.parser import tree
from jedi.parser.python import tree
from jedi import debug
from jedi.common import unite
from jedi.evaluate import representation as er

View File

@@ -2,7 +2,7 @@
Module for statical analysis.
"""
from jedi import debug
from jedi.parser import tree
from jedi.parser.python import tree
from jedi.evaluate.compiled import CompiledObject
from jedi.common import unite

View File

@@ -10,7 +10,7 @@ from functools import partial
from jedi._compatibility import builtins as _builtins, unicode
from jedi import debug
from jedi.cache import underscore_memoization, memoize_method
from jedi.parser.tree import Param, Operator
from jedi.parser.python.tree import Param, Operator
from jedi.evaluate.helpers import FakeName
from jedi.evaluate.filters import AbstractFilter, AbstractNameDefinition, \
ContextNameMixin

View File

@@ -10,7 +10,7 @@ import types
from jedi._compatibility import is_py3, builtins, unicode, is_py34
from jedi.parser.python import parse
from jedi.parser import tree as pt
from jedi.parser.python import tree as pt
modules = {}
@@ -113,7 +113,7 @@ def _faked(module, obj, name):
if faked_mod is None:
return None, None
# Having the module as a `parser.tree.Module`, we need to scan
# Having the module as a `parser.python.tree.Module`, we need to scan
# for methods.
if name is None:
if inspect.isbuiltin(obj) or inspect.isclass(obj):

View File

@@ -17,7 +17,7 @@ class MixedObject(object):
"""
A ``MixedObject`` is used in two ways:
1. It uses the default logic of ``parser.tree`` objects,
1. It uses the default logic of ``parser.python.tree`` objects,
2. except for getattr calls. The names dicts are generated in a fashion
like ``CompiledObject``.

View File

@@ -23,7 +23,7 @@ from jedi.common import unite
from jedi.evaluate import context
from jedi.evaluate.cache import memoize_default
from jedi.parser.python import parse
from jedi.parser.tree import search_ancestor
from jedi.parser.python.tree import search_ancestor
from jedi.common import indent_block
from jedi.evaluate.iterable import SequenceLiteralContext, FakeSequence

View File

@@ -17,7 +17,7 @@ It works as follows:
- execute these calls and check the input. This work with a ``ParamListener``.
"""
from jedi.parser import tree
from jedi.parser.python import tree
from jedi import settings
from jedi import debug
from jedi.evaluate.cache import memoize_default

View File

@@ -4,7 +4,7 @@ are needed for name resolution.
"""
from abc import abstractmethod
from jedi.parser.tree import search_ancestor
from jedi.parser.python.tree import search_ancestor
from jedi.evaluate import flow_analysis
from jedi.common import to_list, unite

View File

@@ -15,7 +15,7 @@ Unfortunately every other thing is being ignored (e.g. a == '' would be easy to
check for -> a is a string). There's big potential in these checks.
"""
from jedi.parser import tree
from jedi.parser.python import tree
from jedi import debug
from jedi.common import unite
from jedi import settings

View File

@@ -2,7 +2,7 @@ import copy
from itertools import chain
from contextlib import contextmanager
from jedi.parser import tree
from jedi.parser.python import tree
def deep_ast_copy(obj):

View File

@@ -21,7 +21,7 @@ from jedi import debug
from jedi import settings
from jedi.common import source_to_unicode, unite
from jedi.parser.diff import FastParser
from jedi.parser import tree
from jedi.parser.python import tree
from jedi.parser.utils import save_parser, load_parser, parser_cache
from jedi.evaluate import sys_path
from jedi.evaluate import helpers

View File

@@ -3,7 +3,7 @@ from collections import defaultdict
from jedi._compatibility import zip_longest
from jedi import debug
from jedi import common
from jedi.parser import tree
from jedi.parser.python import tree
from jedi.evaluate import iterable
from jedi.evaluate import analysis
from jedi.evaluate import context

View File

@@ -22,8 +22,8 @@ x support for type hint comments for functions, `# type: (int, str) -> int`.
import itertools
import os
from jedi.parser import ParserSyntaxError, tree
from jedi.parser.python import parse
from jedi.parser import ParserSyntaxError
from jedi.parser.python import parse, tree
from jedi.common import unite
from jedi.evaluate.cache import memoize_default
from jedi.evaluate import compiled

View File

@@ -4,7 +4,7 @@ Handles operator precedence.
import operator as op
from jedi._compatibility import unicode
from jedi.parser import tree
from jedi.parser.python import tree
from jedi import debug
from jedi.evaluate.compiled import CompiledObject, create, builtin_from_name
from jedi.evaluate import analysis

View File

@@ -1,5 +1,5 @@
"""
Like described in the :mod:`jedi.parser.tree` module,
Like described in the :mod:`jedi.parser.python.tree` module,
there's a need for an ast like module to represent the states of parsed
modules.
@@ -42,7 +42,7 @@ import re
from itertools import chain
from jedi._compatibility import use_metaclass
from jedi.parser import tree
from jedi.parser.python import tree
from jedi import debug
from jedi import common
from jedi.evaluate.cache import memoize_default, CachedMetaClass, NO_DEFAULT

View File

@@ -4,7 +4,7 @@ import sys
from jedi.evaluate.site import addsitedir
from jedi._compatibility import exec_function, unicode
from jedi.parser import tree
from jedi.parser.python import tree
from jedi.parser import ParserWithRecovery
from jedi.evaluate.cache import memoize_default
from jedi import debug

View File

@@ -13,7 +13,7 @@ from jedi._compatibility import use_metaclass
from jedi import settings
from jedi.common import splitlines
from jedi.parser import ParserWithRecovery
from jedi.parser.tree import EndMarker
from jedi.parser.python.tree import EndMarker
from jedi.parser.utils import parser_cache
from jedi import debug
from jedi.parser.tokenize import (generate_tokens, NEWLINE, TokenInfo,

View File

@@ -1,6 +1,6 @@
import re
from jedi.parser import tree
from jedi.parser.python import tree
from jedi.parser import tokenize
from jedi.parser.token import (DEDENT, INDENT, ENDMARKER, NEWLINE, NUMBER,
STRING, tok_name)

1631
jedi/parser/python/tree.py Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -16,7 +16,7 @@ import difflib
from jedi import common
from jedi.evaluate import helpers
from jedi.parser import tree as pt
from jedi.parser.python import tree as pt
class Refactoring(object):

View File

@@ -6,7 +6,7 @@ import jedi
from jedi._compatibility import u, is_py3
from jedi.parser import ParserWithRecovery
from jedi.parser.python import parse, load_grammar
from jedi.parser import tree as pt
from jedi.parser.python import tree
def test_user_statement_on_import():
@@ -17,7 +17,7 @@ def test_user_statement_on_import():
for pos in [(2, 1), (2, 4)]:
p = parse(s)
stmt = p.get_statement_for_position(pos)
assert isinstance(stmt, pt.Import)
assert isinstance(stmt, tree.Import)
assert [str(n) for n in stmt.get_defined_names()] == ['time']
@@ -41,19 +41,19 @@ class TestCallAndName():
def test_call_type(self):
call = self.get_call('hello')
assert isinstance(call, pt.Name)
assert isinstance(call, tree.Name)
def test_literal_type(self):
literal = self.get_call('1.0')
assert isinstance(literal, pt.Literal)
assert isinstance(literal, tree.Literal)
assert type(literal.eval()) == float
literal = self.get_call('1')
assert isinstance(literal, pt.Literal)
assert isinstance(literal, tree.Literal)
assert type(literal.eval()) == int
literal = self.get_call('"hello"')
assert isinstance(literal, pt.Literal)
assert isinstance(literal, tree.Literal)
assert literal.eval() == 'hello'
@@ -204,7 +204,7 @@ def test_param_splitting():
def test_unicode_string():
s = pt.String(None, u(''), (0, 0))
s = tree.String(None, u(''), (0, 0))
assert repr(s) # Should not raise an Error!

View File

@@ -6,7 +6,7 @@ import pytest
from jedi._compatibility import u, unicode
from jedi.parser.python import parse
from jedi.parser import tree as pt
from jedi.parser.python import tree
class TestsFunctionAndLambdaParsing(object):
@@ -36,12 +36,12 @@ class TestsFunctionAndLambdaParsing(object):
return request.keywords['expected']
def test_name(self, node, expected):
assert isinstance(node.name, pt.Name)
assert isinstance(node.name, tree.Name)
assert unicode(node.name) == u(expected['name'])
def test_params(self, node, expected):
assert isinstance(node.params, list)
assert all(isinstance(x, pt.Param) for x in node.params)
assert all(isinstance(x, tree.Param) for x in node.params)
assert [unicode(x.name) for x in node.params] == [u(x) for x in expected['params']]
def test_is_generator(self, node, expected):