Submit
Path:
~
/
/
opt
/
cloudlinux
/
venv
/
lib64
/
python3.11
/
site-packages
/
libfuturize
/
fixes
/
File Content:
fix_absolute_import.py
""" Fixer for import statements, with a __future__ import line. Based on lib2to3/fixes/fix_import.py, but extended slightly so it also supports Cython modules. If spam is being imported from the local directory, this import: from spam import eggs becomes: from __future__ import absolute_import from .spam import eggs and this import: import spam becomes: from __future__ import absolute_import from . import spam """ from os.path import dirname, join, exists, sep from lib2to3.fixes.fix_import import FixImport from lib2to3.fixer_util import FromImport, syms from lib2to3.fixes.fix_import import traverse_imports from libfuturize.fixer_util import future_import class FixAbsoluteImport(FixImport): run_order = 9 def transform(self, node, results): """ Copied from FixImport.transform(), but with this line added in any modules that had implicit relative imports changed: from __future__ import absolute_import" """ if self.skip: return imp = results['imp'] if node.type == syms.import_from: # Some imps are top-level (eg: 'import ham') # some are first level (eg: 'import ham.eggs') # some are third level (eg: 'import ham.eggs as spam') # Hence, the loop while not hasattr(imp, 'value'): imp = imp.children[0] if self.probably_a_local_import(imp.value): imp.value = u"." + imp.value imp.changed() future_import(u"absolute_import", node) else: have_local = False have_absolute = False for mod_name in traverse_imports(imp): if self.probably_a_local_import(mod_name): have_local = True else: have_absolute = True if have_absolute: if have_local: # We won't handle both sibling and absolute imports in the # same statement at the moment. self.warning(node, "absolute and local imports together") return new = FromImport(u".", [imp]) new.prefix = node.prefix future_import(u"absolute_import", node) return new def probably_a_local_import(self, imp_name): """ Like the corresponding method in the base class, but this also supports Cython modules. """ if imp_name.startswith(u"."): # Relative imports are certainly not local imports. return False imp_name = imp_name.split(u".", 1)[0] base_path = dirname(self.filename) base_path = join(base_path, imp_name) # If there is no __init__.py next to the file its not in a package # so can't be a relative import. if not exists(join(dirname(base_path), "__init__.py")): return False for ext in [".py", sep, ".pyc", ".so", ".sl", ".pyd", ".pyx"]: if exists(base_path + ext): return True return False
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
__pycache__
---
0755
__init__.py
5236 bytes
0644
fix_UserDict.py
3840 bytes
0644
fix_absolute_import.py
3140 bytes
0644
fix_add__future__imports_except_unicode_literals.py
662 bytes
0644
fix_basestring.py
394 bytes
0644
fix_bytes.py
685 bytes
0644
fix_cmp.py
701 bytes
0644
fix_division.py
228 bytes
0644
fix_division_safe.py
3631 bytes
0644
fix_execfile.py
921 bytes
0644
fix_future_builtins.py
2027 bytes
0644
fix_future_standard_library.py
733 bytes
0644
fix_future_standard_library_urllib.py
1001 bytes
0644
fix_input.py
687 bytes
0644
fix_metaclass.py
9568 bytes
0644
fix_next_call.py
3158 bytes
0644
fix_object.py
407 bytes
0644
fix_oldstr_wrap.py
1214 bytes
0644
fix_order___future__imports.py
829 bytes
0644
fix_print.py
3881 bytes
0644
fix_print_with_import.py
735 bytes
0644
fix_raise.py
3904 bytes
0644
fix_remove_old__future__imports.py
851 bytes
0644
fix_unicode_keep_u.py
779 bytes
0644
fix_unicode_literals_import.py
367 bytes
0644
fix_xrange_with_import.py
479 bytes
0644
N4ST4R_ID | Naxtarrr