Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python27/lib64/python2.7/lib2to3/fixes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //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)
Name
Size
Permissions
Options
__init__.py
0.046 KB
-rw-r--r--
__init__.pyc
0.143 KB
-rw-r--r--
__init__.pyo
0.143 KB
-rw-r--r--
fix_apply.py
2.376 KB
-rw-r--r--
fix_apply.pyc
2.073 KB
-rw-r--r--
fix_apply.pyo
2.041 KB
-rw-r--r--
fix_asserts.py
0.961 KB
-rw-r--r--
fix_asserts.pyc
1.563 KB
-rw-r--r--
fix_asserts.pyo
1.563 KB
-rw-r--r--
fix_basestring.py
0.313 KB
-rw-r--r--
fix_basestring.pyc
0.826 KB
-rw-r--r--
fix_basestring.pyo
0.826 KB
-rw-r--r--
fix_buffer.py
0.577 KB
-rw-r--r--
fix_buffer.pyc
0.979 KB
-rw-r--r--
fix_buffer.pyo
0.979 KB
-rw-r--r--
fix_dict.py
3.734 KB
-rw-r--r--
fix_dict.pyc
3.731 KB
-rw-r--r--
fix_dict.pyo
3.609 KB
-rw-r--r--
fix_except.py
3.273 KB
-rw-r--r--
fix_except.pyc
2.989 KB
-rw-r--r--
fix_except.pyo
2.989 KB
-rw-r--r--
fix_exec.py
0.979 KB
-rw-r--r--
fix_exec.pyc
1.437 KB
-rw-r--r--
fix_exec.pyo
1.404 KB
-rw-r--r--
fix_execfile.py
2.008 KB
-rw-r--r--
fix_execfile.pyc
2.097 KB
-rw-r--r--
fix_execfile.pyo
2.064 KB
-rw-r--r--
fix_exitfunc.py
2.444 KB
-rw-r--r--
fix_exitfunc.pyc
2.756 KB
-rw-r--r--
fix_exitfunc.pyo
2.756 KB
-rw-r--r--
fix_filter.py
2.058 KB
-rw-r--r--
fix_filter.pyc
2.255 KB
-rw-r--r--
fix_filter.pyo
2.255 KB
-rw-r--r--
fix_funcattrs.py
0.63 KB
-rw-r--r--
fix_funcattrs.pyc
1.14 KB
-rw-r--r--
fix_funcattrs.pyo
1.14 KB
-rw-r--r--
fix_future.py
0.534 KB
-rw-r--r--
fix_future.pyc
0.949 KB
-rw-r--r--
fix_future.pyo
0.949 KB
-rw-r--r--
fix_getcwdu.py
0.441 KB
-rw-r--r--
fix_getcwdu.pyc
0.956 KB
-rw-r--r--
fix_getcwdu.pyo
0.956 KB
-rw-r--r--
fix_has_key.py
3.151 KB
-rw-r--r--
fix_has_key.pyc
3.161 KB
-rw-r--r--
fix_has_key.pyo
3.129 KB
-rw-r--r--
fix_idioms.py
4.774 KB
-rw-r--r--
fix_idioms.pyc
4.52 KB
-rw-r--r--
fix_idioms.pyo
4.418 KB
-rw-r--r--
fix_import.py
3.184 KB
-rw-r--r--
fix_import.pyc
3.253 KB
-rw-r--r--
fix_import.pyo
3.253 KB
-rw-r--r--
fix_imports.py
5.56 KB
-rw-r--r--
fix_imports.pyc
5.381 KB
-rw-r--r--
fix_imports.pyo
5.381 KB
-rw-r--r--
fix_imports2.py
0.282 KB
-rw-r--r--
fix_imports2.pyc
0.645 KB
-rw-r--r--
fix_imports2.pyo
0.645 KB
-rw-r--r--
fix_input.py
0.693 KB
-rw-r--r--
fix_input.pyc
1.159 KB
-rw-r--r--
fix_input.pyo
1.159 KB
-rw-r--r--
fix_intern.py
1.822 KB
-rw-r--r--
fix_intern.pyc
1.793 KB
-rw-r--r--
fix_intern.pyo
1.793 KB
-rw-r--r--
fix_isinstance.py
1.571 KB
-rw-r--r--
fix_isinstance.pyc
1.847 KB
-rw-r--r--
fix_isinstance.pyo
1.847 KB
-rw-r--r--
fix_itertools.py
1.514 KB
-rw-r--r--
fix_itertools.pyc
1.801 KB
-rw-r--r--
fix_itertools.pyo
1.801 KB
-rw-r--r--
fix_itertools_imports.py
2.045 KB
-rw-r--r--
fix_itertools_imports.pyc
2.021 KB
-rw-r--r--
fix_itertools_imports.pyo
1.977 KB
-rw-r--r--
fix_long.py
0.466 KB
-rw-r--r--
fix_long.pyc
0.873 KB
-rw-r--r--
fix_long.pyo
0.873 KB
-rw-r--r--
fix_map.py
2.99 KB
-rw-r--r--
fix_map.pyc
3.021 KB
-rw-r--r--
fix_map.pyo
3.021 KB
-rw-r--r--
fix_metaclass.py
8.023 KB
-rw-r--r--
fix_metaclass.pyc
6.564 KB
-rw-r--r--
fix_metaclass.pyo
6.516 KB
-rw-r--r--
fix_methodattrs.py
0.601 KB
-rw-r--r--
fix_methodattrs.pyc
1.163 KB
-rw-r--r--
fix_methodattrs.pyo
1.163 KB
-rw-r--r--
fix_ne.py
0.56 KB
-rw-r--r--
fix_ne.pyc
1.028 KB
-rw-r--r--
fix_ne.pyo
1.028 KB
-rw-r--r--
fix_next.py
3.106 KB
-rw-r--r--
fix_next.pyc
3.573 KB
-rw-r--r--
fix_next.pyo
3.541 KB
-rw-r--r--
fix_nonzero.py
0.584 KB
-rw-r--r--
fix_nonzero.pyc
1.112 KB
-rw-r--r--
fix_nonzero.pyo
1.112 KB
-rw-r--r--
fix_numliterals.py
0.755 KB
-rw-r--r--
fix_numliterals.pyc
1.286 KB
-rw-r--r--
fix_numliterals.pyo
1.286 KB
-rw-r--r--
fix_operator.py
3.391 KB
-rw-r--r--
fix_operator.pyc
5.22 KB
-rw-r--r--
fix_operator.pyo
5.22 KB
-rw-r--r--
fix_paren.py
1.199 KB
-rw-r--r--
fix_paren.pyc
1.559 KB
-rw-r--r--
fix_paren.pyo
1.559 KB
-rw-r--r--
fix_print.py
2.798 KB
-rw-r--r--
fix_print.pyc
2.729 KB
-rw-r--r--
fix_print.pyo
2.635 KB
-rw-r--r--
fix_raise.py
2.865 KB
-rw-r--r--
fix_raise.pyc
2.491 KB
-rw-r--r--
fix_raise.pyo
2.491 KB
-rw-r--r--
fix_raw_input.py
0.444 KB
-rw-r--r--
fix_raw_input.pyc
0.966 KB
-rw-r--r--
fix_raw_input.pyo
0.966 KB
-rw-r--r--
fix_reduce.py
0.819 KB
-rw-r--r--
fix_reduce.pyc
1.284 KB
-rw-r--r--
fix_reduce.pyo
1.284 KB
-rw-r--r--
fix_renames.py
2.166 KB
-rw-r--r--
fix_renames.pyc
2.502 KB
-rw-r--r--
fix_renames.pyo
2.502 KB
-rw-r--r--
fix_repr.py
0.6 KB
-rw-r--r--
fix_repr.pyc
1.044 KB
-rw-r--r--
fix_repr.pyo
1.044 KB
-rw-r--r--
fix_set_literal.py
1.659 KB
-rw-r--r--
fix_set_literal.pyc
2.008 KB
-rw-r--r--
fix_set_literal.pyo
2.008 KB
-rw-r--r--
fix_standarderror.py
0.439 KB
-rw-r--r--
fix_standarderror.pyc
0.885 KB
-rw-r--r--
fix_standarderror.pyo
0.885 KB
-rw-r--r--
fix_sys_exc.py
1.015 KB
-rw-r--r--
fix_sys_exc.pyc
1.731 KB
-rw-r--r--
fix_sys_exc.pyo
1.731 KB
-rw-r--r--
fix_throw.py
1.549 KB
-rw-r--r--
fix_throw.pyc
2.001 KB
-rw-r--r--
fix_throw.pyo
2.001 KB
-rw-r--r--
fix_tuple_params.py
5.446 KB
-rw-r--r--
fix_tuple_params.pyc
5.457 KB
-rw-r--r--
fix_tuple_params.pyo
5.457 KB
-rw-r--r--
fix_types.py
1.767 KB
-rw-r--r--
fix_types.pyc
2.196 KB
-rw-r--r--
fix_types.pyo
2.196 KB
-rw-r--r--
fix_unicode.py
1.239 KB
-rw-r--r--
fix_unicode.pyc
1.742 KB
-rw-r--r--
fix_unicode.pyo
1.742 KB
-rw-r--r--
fix_urllib.py
8.188 KB
-rw-r--r--
fix_urllib.pyc
7.106 KB
-rw-r--r--
fix_urllib.pyo
7.106 KB
-rw-r--r--
fix_ws_comma.py
1.069 KB
-rw-r--r--
fix_ws_comma.pyc
1.401 KB
-rw-r--r--
fix_ws_comma.pyo
1.401 KB
-rw-r--r--
fix_xrange.py
2.636 KB
-rw-r--r--
fix_xrange.pyc
3.116 KB
-rw-r--r--
fix_xrange.pyo
3.116 KB
-rw-r--r--
fix_xreadlines.py
0.674 KB
-rw-r--r--
fix_xreadlines.pyc
1.177 KB
-rw-r--r--
fix_xreadlines.pyo
1.177 KB
-rw-r--r--
fix_zip.py
0.883 KB
-rw-r--r--
fix_zip.pyc
1.366 KB
-rw-r--r--
fix_zip.pyo
1.366 KB
-rw-r--r--