""" Adds this import line: from builtins import XYZ for each of the functions XYZ that is used in the module. """ 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_builtins = '''filter map zip ascii chr hex input next oct open round super bytes dict int range str'''.split() expression = '|'.join(["name='{0}'".format(name) for name in replaced_builtins]) class FixFutureBuiltins(fixer_base.BaseFix): BM_compatible = True run_order = 9 # Currently we only match uses as a function. This doesn't match e.g.: # if isinstance(s, str): # ... PATTERN = """ power< ({0}) trailer< '(' args=[any] ')' > rest=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))
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 3.63 KB | 0644 |
|
feature_base.py | File | 1.68 KB | 0644 |
|
fix_add_all__future__imports.py | File | 676 B | 0644 |
|
fix_add_all_future_builtins.py | File | 1.24 KB | 0644 |
|
fix_add_future_standard_library_import.py | File | 663 B | 0644 |
|
fix_annotations.py | File | 1.54 KB | 0644 |
|
fix_division.py | File | 904 B | 0644 |
|
fix_features.py | File | 2.61 KB | 0644 |
|
fix_fullargspec.py | File | 438 B | 0644 |
|
fix_future_builtins.py | File | 1.42 KB | 0644 |
|
fix_getcwd.py | File | 873 B | 0644 |
|
fix_imports.py | File | 4.83 KB | 0644 |
|
fix_imports2.py | File | 8.38 KB | 0644 |
|
fix_kwargs.py | File | 5.85 KB | 0644 |
|
fix_memoryview.py | File | 551 B | 0644 |
|
fix_metaclass.py | File | 3.18 KB | 0644 |
|
fix_newstyle.py | File | 888 B | 0644 |
|
fix_next.py | File | 1.2 KB | 0644 |
|
fix_printfunction.py | File | 401 B | 0644 |
|
fix_raise.py | File | 1.07 KB | 0644 |
|
fix_raise_.py | File | 1.2 KB | 0644 |
|
fix_throw.py | File | 835 B | 0644 |
|
fix_unpacking.py | File | 5.81 KB | 0644 |
|