GRAYBYTE WORDPRESS FILE MANAGER8618

Server IP : 198.54.121.189 / Your IP : 216.73.216.112
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 : /opt/cloudlinux/venv/lib/python3.11/site-packages/libfuturize/fixes/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/libfuturize/fixes//fix_next_call.py
"""
Based on fix_next.py by Collin Winter.

Replaces it.next() -> next(it), per PEP 3114.

Unlike fix_next.py, this fixer doesn't replace the name of a next method with __next__,
which would break Python 2 compatibility without further help from fixers in
stage 2.
"""

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

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


class FixNextCall(fixer_base.BaseFix):
    BM_compatible = True
    PATTERN = """
    power< base=any+ trailer< '.' attr='next' > trailer< '(' ')' > >
    |
    power< head=any+ trailer< '.' attr='next' > not trailer< '(' ')' > >
    |
    global=global_stmt< 'global' any* 'next' any* >
    """

    order = "pre" # Pre-order tree traversal

    def start_tree(self, tree, filename):
        super(FixNextCall, 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:
                # Omit this:
                # attr.replace(Name("__next__", prefix=attr.prefix))
                pass
            else:
                base = [n.clone() for n in base]
                base[0].prefix = ""
                node.replace(Call(Name("next", prefix=node.prefix), base))
        elif name:
            # Omit this:
            # n = Name("__next__", prefix=name.prefix)
            # name.replace(n)
            pass
        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
            # Omit this:
            # 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
..
--
May 15 2025 08:30:33
root / root
0755
__pycache__
--
May 15 2025 08:30:33
root / root
0755
__init__.py
5.113 KB
April 17 2025 13:10:59
root / root
0644
fix_UserDict.py
3.75 KB
April 17 2025 13:10:59
root / root
0644
fix_absolute_import.py
3.066 KB
April 17 2025 13:10:59
root / root
0644
fix_add__future__imports_except_unicode_literals.py
0.646 KB
April 17 2025 13:10:59
root / root
0644
fix_basestring.py
0.385 KB
April 17 2025 13:10:59
root / root
0644
fix_bytes.py
0.669 KB
April 17 2025 13:10:59
root / root
0644
fix_cmp.py
0.685 KB
April 17 2025 13:10:59
root / root
0644
fix_division.py
0.223 KB
April 17 2025 13:10:59
root / root
0644
fix_division_safe.py
3.546 KB
April 17 2025 13:10:59
root / root
0644
fix_execfile.py
0.899 KB
April 17 2025 13:10:59
root / root
0644
fix_future_builtins.py
1.979 KB
April 17 2025 13:10:59
root / root
0644
fix_future_standard_library.py
0.716 KB
April 17 2025 13:10:59
root / root
0644
fix_future_standard_library_urllib.py
0.978 KB
April 17 2025 13:10:59
root / root
0644
fix_input.py
0.671 KB
April 17 2025 13:10:59
root / root
0644
fix_metaclass.py
9.344 KB
April 17 2025 13:10:59
root / root
0644
fix_next_call.py
3.084 KB
April 17 2025 13:10:59
root / root
0644
fix_object.py
0.397 KB
April 17 2025 13:10:59
root / root
0644
fix_oldstr_wrap.py
1.186 KB
April 17 2025 13:10:59
root / root
0644
fix_order___future__imports.py
0.81 KB
April 17 2025 13:10:59
root / root
0644
fix_print.py
3.79 KB
April 17 2025 13:10:59
root / root
0644
fix_print_with_import.py
0.718 KB
April 17 2025 13:10:59
root / root
0644
fix_raise.py
3.813 KB
April 17 2025 13:10:59
root / root
0644
fix_remove_old__future__imports.py
0.831 KB
April 17 2025 13:10:59
root / root
0644
fix_unicode_keep_u.py
0.761 KB
April 17 2025 13:10:59
root / root
0644
fix_unicode_literals_import.py
0.358 KB
April 17 2025 13:10:59
root / root
0644
fix_xrange_with_import.py
0.468 KB
April 17 2025 13:10:59
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF