404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.145.34.42: ~ $
"""
For the ``future`` package.

Adds this import line::

    from builtins import XYZ

for each of the functions XYZ that is used in the module.

Adds these imports after any other imports (in an initial block of them).
"""

from __future__ import unicode_literals

from lib2to3 import fixer_base
from lib2to3.pygram import python_symbols as syms
from lib2to3.fixer_util import Name, Call, in_special_context

from libfuturize.fixer_util import touch_import_top

# All builtins are:
#     from future.builtins.iterators import (filter, map, zip)
#     from future.builtins.misc import (ascii, chr, hex, input, isinstance, oct, open, round, super)
#     from future.types import (bytes, dict, int, range, str)
# We don't need isinstance any more.

replaced_builtin_fns = '''filter map zip
                       ascii chr hex input next oct
                       bytes range str raw_input'''.split()
                       # This includes raw_input as a workaround for the
                       # lib2to3 fixer for raw_input on Py3 (only), allowing
                       # the correct import to be included. (Py3 seems to run
                       # the fixers the wrong way around, perhaps ignoring the
                       # run_order class attribute below ...)

expression = '|'.join(["name='{0}'".format(name) for name in replaced_builtin_fns])


class FixFutureBuiltins(fixer_base.BaseFix):
    BM_compatible = True
    run_order = 7

    # Currently we only match uses as a function. This doesn't match e.g.:
    #     if isinstance(s, str):
    #         ...
    PATTERN = """
              power<
                 ({0}) trailer< '(' [arglist=any] ')' >
              rest=any* >
              |
              power<
                  'map' trailer< '(' [arglist=any] ')' >
              >
              """.format(expression)

    def transform(self, node, results):
        name = results["name"]
        touch_import_top(u'builtins', name.value, node)
        # name.replace(Name(u"input", prefix=name.prefix))

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 5.11 KB 0644
fix_UserDict.py File 3.75 KB 0644
fix_absolute_import.py File 3.07 KB 0644
fix_add__future__imports_except_unicode_literals.py File 662 B 0644
fix_basestring.py File 394 B 0644
fix_bytes.py File 685 B 0644
fix_cmp.py File 701 B 0644
fix_division.py File 228 B 0644
fix_division_safe.py File 3.55 KB 0644
fix_execfile.py File 921 B 0644
fix_future_builtins.py File 1.98 KB 0644
fix_future_standard_library.py File 733 B 0644
fix_future_standard_library_urllib.py File 1001 B 0644
fix_input.py File 687 B 0644
fix_metaclass.py File 9.34 KB 0644
fix_next_call.py File 3.08 KB 0644
fix_object.py File 407 B 0644
fix_oldstr_wrap.py File 1.19 KB 0644
fix_order___future__imports.py File 829 B 0644
fix_print.py File 3.79 KB 0644
fix_print_with_import.py File 735 B 0644
fix_raise.py File 3.81 KB 0644
fix_remove_old__future__imports.py File 851 B 0644
fix_unicode_keep_u.py File 779 B 0644
fix_unicode_literals_import.py File 367 B 0644
fix_xrange_with_import.py File 479 B 0644