Skip to content

Commit

Permalink
Merge pull request #3019 from srinivasreddy/rm_ast
Browse files Browse the repository at this point in the history
remove '_ast' module; and redirect '_ast' references to 'ast'
  • Loading branch information
nicoddemus authored Dec 12, 2017
2 parents 964c29c + fc5ec58 commit 771b5c8
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 23 deletions.
14 changes: 5 additions & 9 deletions _pytest/_code/source.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
from __future__ import absolute_import, division, generators, print_function

import ast
from ast import PyCF_ONLY_AST as _AST_FLAG
from bisect import bisect_right
import sys
import six
import inspect
import tokenize
import py
cpy_compile = compile

try:
import _ast
from _ast import PyCF_ONLY_AST as _AST_FLAG
except ImportError:
_AST_FLAG = 0
_ast = None
cpy_compile = compile


class Source(object):
Expand Down Expand Up @@ -209,7 +205,7 @@ def compile_(source, filename=None, mode='exec', flags=generators.compiler_flag,
retrieval of the source code for the code object
and any recursively created code objects.
"""
if _ast is not None and isinstance(source, _ast.AST):
if isinstance(source, ast.AST):
# XXX should Source support having AST?
return cpy_compile(source, filename, mode, flags, dont_inherit)
_genframe = sys._getframe(1) # the caller
Expand Down Expand Up @@ -322,7 +318,7 @@ def get_statement_startend2(lineno, node):
# AST's line numbers start indexing at 1
values = []
for x in ast.walk(node):
if isinstance(x, _ast.stmt) or isinstance(x, _ast.ExceptHandler):
if isinstance(x, ast.stmt) or isinstance(x, ast.ExceptHandler):
values.append(x.lineno - 1)
for name in "finalbody", "orelse":
val = getattr(x, name, None)
Expand Down
5 changes: 2 additions & 3 deletions _pytest/assertion/rewrite.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"""Rewrite assertion AST to produce nice error messages"""
from __future__ import absolute_import, division, print_function
import ast
import _ast
import errno
import itertools
import imp
Expand Down Expand Up @@ -914,7 +913,7 @@ def visit_Attribute(self, attr):
def visit_Compare(self, comp):
self.push_format_context()
left_res, left_expl = self.visit(comp.left)
if isinstance(comp.left, (_ast.Compare, _ast.BoolOp)):
if isinstance(comp.left, (ast.Compare, ast.BoolOp)):
left_expl = "({0})".format(left_expl)
res_variables = [self.variable() for i in range(len(comp.ops))]
load_names = [ast.Name(v, ast.Load()) for v in res_variables]
Expand All @@ -925,7 +924,7 @@ def visit_Compare(self, comp):
results = [left_res]
for i, op, next_operand in it:
next_res, next_expl = self.visit(next_operand)
if isinstance(next_operand, (_ast.Compare, _ast.BoolOp)):
if isinstance(next_operand, (ast.Compare, ast.BoolOp)):
next_expl = "({0})".format(next_expl)
results.append(next_res)
sym = binop_map[op.__class__]
Expand Down
8 changes: 2 additions & 6 deletions _pytest/assertion/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@
import _pytest._code
import py
import six
try:
from collections import Sequence
except ImportError:
Sequence = list

from collections import Sequence

u = six.text_type

Expand Down Expand Up @@ -113,7 +109,7 @@ def assertrepr_compare(config, op, left, right):
summary = u('%s %s %s') % (ecu(left_repr), op, ecu(right_repr))

def issequence(x):
return (isinstance(x, (list, tuple, Sequence)) and not isinstance(x, basestring))
return isinstance(x, Sequence) and not isinstance(x, basestring)

def istext(x):
return isinstance(x, basestring)
Expand Down
1 change: 1 addition & 0 deletions changelog/3018.trivial
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Clean up code by replacing imports and references of `_ast` to `ast`.
7 changes: 2 additions & 5 deletions testing/code/test_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,10 @@
import py
import pytest
from _pytest._code import Source
from _pytest._code.source import _ast
from _pytest._code.source import ast

if _ast is not None:
astonly = pytest.mark.nothing
else:
astonly = pytest.mark.xfail("True", reason="only works with AST-compile")

astonly = pytest.mark.nothing
failsonjython = pytest.mark.xfail("sys.platform.startswith('java')")


Expand Down

0 comments on commit 771b5c8

Please sign in to comment.