PHP 7.4.33
Preview: fix_next.py Size: 3.11 KB
/home/godevadmin/public_html/upload_images/home/000~ROOT~000/usr/lib64/python2.7/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(u'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(u"__next__", prefix=attr.prefix))
            else:
                base = [n.clone() for n in base]
                base[0].prefix = u""
                node.replace(Call(Name(u"next", prefix=node.prefix), base))
        elif name:
            n = Name(u"__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() == u'__builtin__':
                    self.warning(node, bind_warning)
                return
            attr.replace(Name(u"__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)

Directory Contents

Dirs: 0 × Files: 156

Name Size Perms Modified Actions
2.38 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.04 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.00 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
984 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.52 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.52 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
321 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
807 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
807 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
591 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
964 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
964 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
3.73 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
3.68 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
3.56 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
3.27 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.94 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.94 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1002 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.40 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.37 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
2.01 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.06 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.03 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
2.44 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.69 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.69 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.06 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.22 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.22 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
645 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.10 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.10 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
547 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
933 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
933 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
452 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
940 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
940 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
3.15 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
3.12 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
3.09 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
4.77 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
4.43 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
4.33 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
3.18 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
3.18 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
3.18 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
5.56 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
5.25 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
5.25 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
289 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
634 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
634 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
710 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.12 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.12 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.82 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.75 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.75 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.57 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.81 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.81 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.51 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.76 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.76 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.04 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.98 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.94 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
477 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
855 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
855 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.99 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.98 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.98 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
8.02 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
6.45 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
6.40 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
615 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.13 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.13 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
573 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1001 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1001 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
3.11 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
3.47 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
3.44 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
598 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.07 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.07 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
773 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.24 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.24 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
3.39 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
5.03 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
5.03 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.20 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.52 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.52 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.80 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.68 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.58 KB lrw-r--r-- 2024-04-10 04:58:43
Edit Download
2.87 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.45 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.45 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
455 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
950 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
950 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
839 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.25 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.25 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.17 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.41 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.41 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
614 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.01 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.01 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.66 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.96 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.96 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
450 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
867 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
867 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.01 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.68 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.68 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.55 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.96 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.96 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
5.45 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
5.33 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
5.33 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.77 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
2.16 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.16 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.24 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.69 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.69 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
8.19 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
6.99 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
6.99 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.07 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.36 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.36 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
2.64 KB lrw-r--r-- 2024-04-10 04:58:35
Edit Download
3.01 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
3.01 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
690 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.14 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.14 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
904 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
1.33 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
1.33 KB lrw-r--r-- 2024-04-10 04:58:46
Edit Download
47 B lrw-r--r-- 2024-04-10 04:58:35
Edit Download
133 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download
133 B lrw-r--r-- 2024-04-10 04:58:46
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).