PHP 8.2.30
Preview: fix_print.py Size: 2.80 KB
/opt/alt/python27/lib64/python2.7/lib2to3/fixes/fix_print.py

# Copyright 2006 Google, Inc. All Rights Reserved.
# Licensed to PSF under a Contributor Agreement.

"""Fixer for print.

Change:
    'print'          into 'print()'
    'print ...'      into 'print(...)'
    'print ... ,'    into 'print(..., end=" ")'
    'print >>x, ...' into 'print(..., file=x)'

No changes are applied if print_function is imported from __future__

"""

# Local imports
from .. import patcomp
from .. import pytree
from ..pgen2 import token
from .. import fixer_base
from ..fixer_util import Name, Call, Comma, String, is_tuple


parend_expr = patcomp.compile_pattern(
              """atom< '(' [atom|STRING|NAME] ')' >"""
              )


class FixPrint(fixer_base.BaseFix):

    BM_compatible = True

    PATTERN = """
              simple_stmt< any* bare='print' any* > | print_stmt
              """

    def transform(self, node, results):
        assert results

        bare_print = results.get("bare")

        if bare_print:
            # Special-case print all by itself
            bare_print.replace(Call(Name(u"print"), [],
                               prefix=bare_print.prefix))
            return
        assert node.children[0] == Name(u"print")
        args = node.children[1:]
        if len(args) == 1 and parend_expr.match(args[0]):
            # We don't want to keep sticking parens around an
            # already-parenthesised expression.
            return

        sep = end = file = None
        if args and args[-1] == Comma():
            args = args[:-1]
            end = " "
        if args and args[0] == pytree.Leaf(token.RIGHTSHIFT, u">>"):
            assert len(args) >= 2
            file = args[1].clone()
            args = args[3:] # Strip a possible comma after the file expression
        # Now synthesize a print(args, sep=..., end=..., file=...) node.
        l_args = [arg.clone() for arg in args]
        if l_args:
            l_args[0].prefix = u""
        if sep is not None or end is not None or file is not None:
            if sep is not None:
                self.add_kwarg(l_args, u"sep", String(repr(sep)))
            if end is not None:
                self.add_kwarg(l_args, u"end", String(repr(end)))
            if file is not None:
                self.add_kwarg(l_args, u"file", file)
        n_stmt = Call(Name(u"print"), l_args)
        n_stmt.prefix = node.prefix
        return n_stmt

    def add_kwarg(self, l_nodes, s_kwd, n_expr):
        # XXX All this prefix-setting may lose comments (though rarely)
        n_expr.prefix = u""
        n_argument = pytree.Node(self.syms.argument,
                                 (Name(s_kwd),
                                  pytree.Leaf(token.EQUAL, u"="),
                                  n_expr))
        if l_nodes:
            l_nodes.append(Comma())
            n_argument.prefix = u" "
        l_nodes.append(n_argument)

Directory Contents

Dirs: 0 × Files: 156

Name Size Perms Modified Actions
2.38 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.07 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
2.04 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
984 B lrw-r--r-- 2025-01-08 10:43:35
Edit Download
1.56 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.56 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
321 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
846 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
846 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
591 B lrw-r--r-- 2025-01-08 10:43:35
Edit Download
1003 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1003 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.73 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.73 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.61 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.27 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.99 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.99 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1002 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.44 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.40 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.01 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.10 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.06 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.44 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.76 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.76 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.06 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.25 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.25 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
645 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.14 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.14 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
547 B lrw-r--r-- 2025-01-08 10:43:35
Edit Download
972 B lrw-r--r-- 2025-01-08 10:43:35
Edit Download
972 B lrw-r--r-- 2025-01-08 10:43:35
Edit Download
452 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
979 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
979 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.15 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
3.16 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.13 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
4.77 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
4.52 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
4.42 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.18 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.25 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
3.25 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
5.56 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
5.38 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
5.38 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
289 B lrw-r--r-- 2025-01-08 10:43:35
Edit Download
660 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
660 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
710 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.16 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.16 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.82 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.79 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.79 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.57 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.85 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.85 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.51 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.80 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.80 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.04 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
2.02 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.98 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
477 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
894 B lrw-r--r-- 2025-01-08 10:43:35
Edit Download
894 B lrw-r--r-- 2025-01-08 10:43:35
Edit Download
2.99 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.02 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.02 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
8.02 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
6.56 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
6.52 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
615 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.16 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.16 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
573 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.03 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.03 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.11 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.57 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.54 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
598 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.11 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.11 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
773 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.29 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.29 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.39 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
5.22 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
5.22 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.20 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.56 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.56 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.80 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.73 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.63 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.87 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
2.49 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.49 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
455 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
989 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
989 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
839 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.28 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.28 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.17 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.50 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
2.50 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
614 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.04 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
1.04 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
1.66 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
2.01 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.01 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
450 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
906 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
906 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.01 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.73 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.73 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.55 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.00 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.00 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
5.45 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
5.46 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
5.46 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.77 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
2.20 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.20 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.24 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.74 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.74 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
8.19 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
7.11 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
7.11 KB lrw-r--r-- 2025-01-08 10:43:35
Edit Download
1.07 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.40 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.40 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
2.64 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.12 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
3.12 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
690 B lrw-r--r-- 2025-01-08 10:43:35
Edit Download
1.18 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.18 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
904 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.37 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
1.37 KB lrw-r--r-- 2025-01-08 10:43:36
Edit Download
47 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
146 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download
146 B lrw-r--r-- 2025-01-08 10:43:36
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).