GRAYBYTE WORDPRESS FILE MANAGER3323

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.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
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /lib64/python3.6/lib2to3/fixes/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /lib64/python3.6/lib2to3/fixes//fix_next.py
"""Fixer for it.next() -> next(it), per PEP 3114."""
# Author: Collin Winter

# Things that currently aren't covered:
#   - listcomp "next" names aren't warned
#   - "with" statement targets aren't checked

# Local imports
from ..pgen2 import token
from ..pygram import python_symbols as syms
from .. import fixer_base
from ..fixer_util import Name, Call, find_binding

bind_warning = "Calls to builtin next() possibly shadowed by global binding"


class FixNext(fixer_base.BaseFix):
    BM_compatible = True
    PATTERN = """
    power< base=any+ trailer< '.' attr='next' > trailer< '(' ')' > >
    |
    power< head=any+ trailer< '.' attr='next' > not trailer< '(' ')' > >
    |
    classdef< 'class' any+ ':'
              suite< any*
                     funcdef< 'def'
                              name='next'
                              parameters< '(' NAME ')' > any+ >
                     any* > >
    |
    global=global_stmt< 'global' any* 'next' any* >
    """

    order = "pre" # Pre-order tree traversal

    def start_tree(self, tree, filename):
        super(FixNext, self).start_tree(tree, filename)

        n = find_binding('next', tree)
        if n:
            self.warning(n, bind_warning)
            self.shadowed_next = True
        else:
            self.shadowed_next = False

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

        base = results.get("base")
        attr = results.get("attr")
        name = results.get("name")

        if base:
            if self.shadowed_next:
                attr.replace(Name("__next__", prefix=attr.prefix))
            else:
                base = [n.clone() for n in base]
                base[0].prefix = ""
                node.replace(Call(Name("next", prefix=node.prefix), base))
        elif name:
            n = Name("__next__", prefix=name.prefix)
            name.replace(n)
        elif attr:
            # We don't do this transformation if we're assigning to "x.next".
            # Unfortunately, it doesn't seem possible to do this in PATTERN,
            #  so it's being done here.
            if is_assign_target(node):
                head = results["head"]
                if "".join([str(n) for n in head]).strip() == '__builtin__':
                    self.warning(node, bind_warning)
                return
            attr.replace(Name("__next__"))
        elif "global" in results:
            self.warning(node, bind_warning)
            self.shadowed_next = True


### The following functions help test if node is part of an assignment
###  target.

def is_assign_target(node):
    assign = find_assign(node)
    if assign is None:
        return False

    for child in assign.children:
        if child.type == token.EQUAL:
            return False
        elif is_subtree(child, node):
            return True
    return False

def find_assign(node):
    if node.type == syms.expr_stmt:
        return node
    if node.type == syms.simple_stmt or node.parent is None:
        return None
    return find_assign(node.parent)

def is_subtree(root, node):
    if root == node:
        return True
    return any(is_subtree(c, node) for c in root.children)

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
July 02 2025 13:48:21
root / root
0755
__pycache__
--
July 02 2025 13:48:21
root / root
0755
__init__.py
0.046 KB
December 23 2018 21:37:14
root / root
0644
fix_apply.py
2.373 KB
December 23 2018 21:37:14
root / root
0644
fix_asserts.py
0.961 KB
December 23 2018 21:37:14
root / root
0644
fix_basestring.py
0.313 KB
December 23 2018 21:37:14
root / root
0644
fix_buffer.py
0.576 KB
December 23 2018 21:37:14
root / root
0644
fix_dict.py
3.672 KB
December 23 2018 21:37:14
root / root
0644
fix_except.py
3.266 KB
December 23 2018 21:37:14
root / root
0644
fix_exec.py
0.956 KB
December 23 2018 21:37:14
root / root
0644
fix_execfile.py
2 KB
December 23 2018 21:37:14
root / root
0644
fix_exitfunc.py
2.437 KB
December 23 2018 21:37:14
root / root
0644
fix_filter.py
2.589 KB
December 23 2018 21:37:14
root / root
0644
fix_funcattrs.py
0.629 KB
December 23 2018 21:37:14
root / root
0644
fix_future.py
0.534 KB
December 23 2018 21:37:14
root / root
0644
fix_getcwdu.py
0.44 KB
December 23 2018 21:37:14
root / root
0644
fix_has_key.py
3.121 KB
December 23 2018 21:37:14
root / root
0644
fix_idioms.py
4.762 KB
December 23 2018 21:37:14
root / root
0644
fix_import.py
3.18 KB
December 23 2018 21:37:14
root / root
0644
fix_imports.py
5.551 KB
December 23 2018 21:37:14
root / root
0644
fix_imports2.py
0.282 KB
December 23 2018 21:37:14
root / root
0644
fix_input.py
0.691 KB
December 23 2018 21:37:14
root / root
0644
fix_intern.py
1.206 KB
December 23 2018 21:37:14
root / root
0644
fix_isinstance.py
1.57 KB
December 23 2018 21:37:14
root / root
0644
fix_itertools.py
1.512 KB
December 23 2018 21:37:14
root / root
0644
fix_itertools_imports.py
2.037 KB
December 23 2018 21:37:14
root / root
0644
fix_long.py
0.465 KB
December 23 2018 21:37:14
root / root
0644
fix_map.py
3.555 KB
December 23 2018 21:37:14
root / root
0644
fix_metaclass.py
8.005 KB
December 23 2018 21:37:14
root / root
0644
fix_methodattrs.py
0.592 KB
December 23 2018 21:37:14
root / root
0644
fix_ne.py
0.558 KB
December 23 2018 21:37:14
root / root
0644
fix_next.py
3.1 KB
December 23 2018 21:37:14
root / root
0644
fix_nonzero.py
0.577 KB
December 23 2018 21:37:14
root / root
0644
fix_numliterals.py
0.75 KB
December 23 2018 21:37:14
root / root
0644
fix_operator.py
3.39 KB
December 23 2018 21:37:14
root / root
0644
fix_paren.py
1.198 KB
December 23 2018 21:37:14
root / root
0644
fix_print.py
2.777 KB
December 23 2018 21:37:14
root / root
0644
fix_raise.py
2.857 KB
December 23 2018 21:37:14
root / root
0644
fix_raw_input.py
0.443 KB
December 23 2018 21:37:14
root / root
0644
fix_reduce.py
0.817 KB
December 23 2018 21:37:14
root / root
0644
fix_reload.py
1.127 KB
December 23 2018 21:37:14
root / root
0644
fix_renames.py
2.169 KB
December 23 2018 21:37:14
root / root
0644
fix_repr.py
0.599 KB
December 23 2018 21:37:14
root / root
0644
fix_set_literal.py
1.657 KB
December 23 2018 21:37:14
root / root
0644
fix_standarderror.py
0.438 KB
December 23 2018 21:37:14
root / root
0644
fix_sys_exc.py
1.01 KB
December 23 2018 21:37:14
root / root
0644
fix_throw.py
1.545 KB
December 23 2018 21:37:14
root / root
0644
fix_tuple_params.py
5.435 KB
December 23 2018 21:37:14
root / root
0644
fix_types.py
1.732 KB
December 23 2018 21:37:14
root / root
0644
fix_unicode.py
1.227 KB
December 23 2018 21:37:14
root / root
0644
fix_urllib.py
8.157 KB
December 23 2018 21:37:14
root / root
0644
fix_ws_comma.py
1.064 KB
December 23 2018 21:37:14
root / root
0644
fix_xrange.py
2.631 KB
December 23 2018 21:37:14
root / root
0644
fix_xreadlines.py
0.673 KB
December 23 2018 21:37:14
root / root
0644
fix_zip.py
1.259 KB
December 23 2018 21:37:14
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF