SILENT KILLERPanel

Current Path: > > opt > alt > python37 > lib > python3.7 > > site-packages > libfuturize > fixes


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt/python37/lib/python3.7//site-packages/libfuturize/fixes

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
__init__.py File 5141 bytes October 25 2018 22:21:01.
fix_UserDict.py File 3840 bytes October 25 2018 22:21:01.
fix_absolute_import.py File 3140 bytes October 25 2018 22:21:01.
fix_add__future__imports_except_unicode_literals.py File 662 bytes October 25 2018 22:21:01.
fix_basestring.py File 394 bytes October 25 2018 22:21:01.
fix_bytes.py File 685 bytes October 25 2018 22:21:01.
fix_cmp.py File 701 bytes October 25 2018 22:21:01.
fix_division.py File 228 bytes October 25 2018 22:21:01.
fix_division_safe.py File 3460 bytes October 25 2018 22:21:01.
fix_execfile.py File 921 bytes October 25 2018 22:21:01.
fix_future_builtins.py File 2027 bytes October 25 2018 22:21:01.
fix_future_standard_library.py File 733 bytes October 25 2018 22:21:01.
fix_future_standard_library_urllib.py File 1001 bytes October 25 2018 22:21:01.
fix_metaclass.py File 9568 bytes October 25 2018 22:21:01.
fix_next_call.py File 3158 bytes October 25 2018 22:21:01.
fix_object.py File 407 bytes October 25 2018 22:21:01.
fix_oldstr_wrap.py File 1214 bytes October 25 2018 22:21:01.
fix_order___future__imports.py File 829 bytes October 25 2018 22:21:01.
fix_print.py File 3384 bytes October 25 2018 22:21:01.
fix_print_with_import.py File 735 bytes October 25 2018 22:21:01.
fix_raise.py File 2167 bytes October 25 2018 22:21:01.
fix_remove_old__future__imports.py File 851 bytes October 25 2018 22:21:01.
fix_unicode_keep_u.py File 779 bytes October 25 2018 22:21:01.
fix_unicode_literals_import.py File 367 bytes October 25 2018 22:21:01.
fix_xrange_with_import.py File 479 bytes October 25 2018 22:21:01.

Reading File: //opt/alt/python37/lib/python3.7//site-packages/libfuturize/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(...)"     not changed
    "print ... ,"    into "print(..., end=' ')"
    "print >>x, ..." into "print(..., file=x)"

No changes are applied if print_function is imported from __future__

"""

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

parend_expr = patcomp.compile_pattern(
              """atom< '(' [arith_expr|atom|power|term|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))
            # The "from __future__ import print_function"" declaration is added
            # by the fix_print_with_import fixer, so we skip it here.
            # add_future(node, u'print_function')
            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

        # Note that there are corner cases where adding this future-import is
        # incorrect, for example when the file also has a 'print ()' statement
        # that was intended to print "()".
        # add_future(node, u'print_function')
        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)

SILENT KILLER Tool