PHP 8.2.30
Preview: fix_exitfunc.py Size: 2.44 KB
//opt/alt/python27/lib64/python2.7/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 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 = u""
        register = pytree.Node(syms.power,
                               Attr(Name(u"atexit"), Name(u"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(u"atexit", u" "))
        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(u"import"), Name(u"atexit", u" ")]
                              )
            new = pytree.Node(syms.simple_stmt, [new_import])
            containing_stmt.insert_child(position + 1, Newline())
            containing_stmt.insert_child(position + 2, new)

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).