SILENT KILLERPanel

Current Path: > > opt > alt > python33 > lib64 > > > python3.3 > lib2to3 > 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/python33/lib64///python3.3/lib2to3/fixes

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
__init__.py File 47 bytes April 17 2024 16:58:20.
fix_apply.py File 1901 bytes April 17 2024 16:58:20.
fix_basestring.py File 320 bytes April 17 2024 16:58:20.
fix_buffer.py File 590 bytes April 17 2024 16:58:20.
fix_callable.py File 1151 bytes April 17 2024 16:58:20.
fix_dict.py File 3816 bytes April 17 2024 16:58:20.
fix_except.py File 3344 bytes April 17 2024 16:58:20.
fix_exec.py File 1001 bytes April 17 2024 16:58:20.
fix_execfile.py File 1990 bytes April 17 2024 16:58:20.
fix_exitfunc.py File 2497 bytes April 17 2024 16:58:20.
fix_filter.py File 2102 bytes April 17 2024 16:58:20.
fix_funcattrs.py File 644 bytes April 17 2024 16:58:20.
fix_future.py File 547 bytes April 17 2024 16:58:20.
fix_getcwdu.py File 451 bytes April 17 2024 16:58:20.
fix_has_key.py File 3222 bytes April 17 2024 16:58:20.
fix_idioms.py File 4876 bytes April 17 2024 16:58:20.
fix_import.py File 3256 bytes April 17 2024 16:58:20.
fix_imports.py File 5684 bytes April 17 2024 16:58:20.
fix_imports2.py File 289 bytes April 17 2024 16:58:20.
fix_input.py File 707 bytes April 17 2024 16:58:20.
fix_intern.py File 1402 bytes April 17 2024 16:58:20.
fix_isinstance.py File 1608 bytes April 17 2024 16:58:20.
fix_itertools.py File 1548 bytes April 17 2024 16:58:20.
fix_itertools_imports.py File 2086 bytes April 17 2024 16:58:20.
fix_long.py File 476 bytes April 17 2024 16:58:20.
fix_map.py File 3058 bytes April 17 2024 16:58:20.
fix_metaclass.py File 8201 bytes April 17 2024 16:58:20.
fix_methodattrs.py File 606 bytes April 17 2024 16:58:20.
fix_ne.py File 571 bytes April 17 2024 16:58:20.
fix_next.py File 3174 bytes April 17 2024 16:58:20.
fix_nonzero.py File 597 bytes April 17 2024 16:58:20.
fix_numliterals.py File 768 bytes April 17 2024 16:58:20.
fix_operator.py File 3471 bytes April 17 2024 16:58:20.
fix_paren.py File 1227 bytes April 17 2024 16:58:20.
fix_print.py File 2854 bytes April 17 2024 16:58:20.
fix_raise.py File 2926 bytes April 17 2024 16:58:20.
fix_raw_input.py File 454 bytes April 17 2024 16:58:20.
fix_reduce.py File 837 bytes April 17 2024 16:58:20.
fix_renames.py File 2221 bytes April 17 2024 16:58:20.
fix_repr.py File 613 bytes April 17 2024 16:58:20.
fix_set_literal.py File 1697 bytes April 17 2024 16:58:20.
fix_standarderror.py File 449 bytes April 17 2024 16:58:20.
fix_sys_exc.py File 1034 bytes April 17 2024 16:58:20.
fix_throw.py File 1582 bytes April 17 2024 16:58:20.
fix_tuple_params.py File 5565 bytes April 17 2024 16:58:20.
fix_types.py File 1797 bytes April 17 2024 16:58:20.
fix_unicode.py File 1256 bytes April 17 2024 16:58:20.
fix_urllib.py File 8384 bytes April 17 2024 16:58:20.
fix_ws_comma.py File 1090 bytes April 17 2024 16:58:20.
fix_xrange.py File 2694 bytes April 17 2024 16:58:20.
fix_xreadlines.py File 689 bytes April 17 2024 16:58:20.
fix_zip.py File 902 bytes April 17 2024 16:58:20.

Reading File: //opt/alt/python33/lib64///python3.3/lib2to3/fixes/fix_exitfunc.py

"""
Convert use of sys.exitfunc to use the atexit module.
"""

# Author: Benjamin Peterson

from lib2to3 import pytree, fixer_base
from lib2to3.fixer_util import Name, Attr, Call, Comma, Newline, syms


class FixExitfunc(fixer_base.BaseFix):
    keep_line_order = True
    BM_compatible = True

    PATTERN = """
              (
                  sys_import=import_name<'import'
                      ('sys'
                      |
                      dotted_as_names< (any ',')* 'sys' (',' any)* >
                      )
                  >
              |
                  expr_stmt<
                      power< 'sys' trailer< '.' 'exitfunc' > >
                  '=' func=any >
              )
              """

    def __init__(self, *args):
        super(FixExitfunc, self).__init__(*args)

    def start_tree(self, tree, filename):
        super(FixExitfunc, self).start_tree(tree, filename)
        self.sys_import = None

    def transform(self, node, results):
        # First, find a the sys import. We'll just hope it's global scope.
        if "sys_import" in results:
            if self.sys_import is None:
                self.sys_import = results["sys_import"]
            return

        func = results["func"].clone()
        func.prefix = ""
        register = pytree.Node(syms.power,
                               Attr(Name("atexit"), Name("register"))
                               )
        call = Call(register, [func], node.prefix)
        node.replace(call)

        if self.sys_import is None:
            # That's interesting.
            self.warning(node, "Can't find sys import; Please add an atexit "
                             "import at the top of your file.")
            return

        # Now add an atexit import after the sys import.
        names = self.sys_import.children[1]
        if names.type == syms.dotted_as_names:
            names.append_child(Comma())
            names.append_child(Name("atexit", " "))
        else:
            containing_stmt = self.sys_import.parent
            position = containing_stmt.children.index(self.sys_import)
            stmt_container = containing_stmt.parent
            new_import = pytree.Node(syms.import_name,
                              [Name("import"), Name("atexit", " ")]
                              )
            new = pytree.Node(syms.simple_stmt, [new_import])
            containing_stmt.insert_child(position + 1, Newline())
            containing_stmt.insert_child(position + 2, new)

SILENT KILLER Tool