Current Path: > > opt > cloudlinux > venv > lib > python3.11 > site-packages > libfuturize > fixes
Operation : Linux premium131.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 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
__init__.py | File | 5236 bytes | April 17 2025 13:10:59. | |
fix_UserDict.py | File | 3840 bytes | April 17 2025 13:10:59. | |
fix_absolute_import.py | File | 3140 bytes | April 17 2025 13:10:59. | |
fix_add__future__imports_except_unicode_literals.py | File | 662 bytes | April 17 2025 13:10:59. | |
fix_basestring.py | File | 394 bytes | April 17 2025 13:10:59. | |
fix_bytes.py | File | 685 bytes | April 17 2025 13:10:59. | |
fix_cmp.py | File | 701 bytes | April 17 2025 13:10:59. | |
fix_division.py | File | 228 bytes | April 17 2025 13:10:59. | |
fix_division_safe.py | File | 3631 bytes | April 17 2025 13:10:59. | |
fix_execfile.py | File | 921 bytes | April 17 2025 13:10:59. | |
fix_future_builtins.py | File | 2027 bytes | April 17 2025 13:10:59. | |
fix_future_standard_library.py | File | 733 bytes | April 17 2025 13:10:59. | |
fix_future_standard_library_urllib.py | File | 1001 bytes | April 17 2025 13:10:59. | |
fix_input.py | File | 687 bytes | April 17 2025 13:10:59. | |
fix_metaclass.py | File | 9568 bytes | April 17 2025 13:10:59. | |
fix_next_call.py | File | 3158 bytes | April 17 2025 13:10:59. | |
fix_object.py | File | 407 bytes | April 17 2025 13:10:59. | |
fix_oldstr_wrap.py | File | 1214 bytes | April 17 2025 13:10:59. | |
fix_order___future__imports.py | File | 829 bytes | April 17 2025 13:10:59. | |
fix_print.py | File | 3881 bytes | April 17 2025 13:10:59. | |
fix_print_with_import.py | File | 735 bytes | April 17 2025 13:10:59. | |
fix_raise.py | File | 3904 bytes | April 17 2025 13:10:59. | |
fix_remove_old__future__imports.py | File | 851 bytes | April 17 2025 13:10:59. | |
fix_unicode_keep_u.py | File | 779 bytes | April 17 2025 13:10:59. | |
fix_unicode_literals_import.py | File | 367 bytes | April 17 2025 13:10:59. | |
fix_xrange_with_import.py | File | 479 bytes | April 17 2025 13:10:59. |
"""Fixer for 'raise E, V' From Armin Ronacher's ``python-modernize``. raise -> raise raise E -> raise E raise E, 5 -> raise E(5) raise E, 5, T -> raise E(5).with_traceback(T) raise E, None, T -> raise E.with_traceback(T) raise (((E, E'), E''), E'''), 5 -> raise E(5) raise "foo", V, T -> warns about string exceptions raise E, (V1, V2) -> raise E(V1, V2) raise E, (V1, V2), T -> raise E(V1, V2).with_traceback(T) CAVEATS: 1) "raise E, V, T" cannot be translated safely in general. If V is not a tuple or a (number, string, None) literal, then: raise E, V, T -> from future.utils import raise_ raise_(E, V, T) """ # Author: Collin Winter, Armin Ronacher, Mark Huang # Local imports from lib2to3 import pytree, fixer_base from lib2to3.pgen2 import token from lib2to3.fixer_util import Name, Call, is_tuple, Comma, Attr, ArgList from libfuturize.fixer_util import touch_import_top class FixRaise(fixer_base.BaseFix): BM_compatible = True PATTERN = """ raise_stmt< 'raise' exc=any [',' val=any [',' tb=any]] > """ def transform(self, node, results): syms = self.syms exc = results["exc"].clone() if exc.type == token.STRING: msg = "Python 3 does not support string exceptions" self.cannot_convert(node, msg) return # Python 2 supports # raise ((((E1, E2), E3), E4), E5), V # as a synonym for # raise E1, V # Since Python 3 will not support this, we recurse down any tuple # literals, always taking the first element. if is_tuple(exc): while is_tuple(exc): # exc.children[1:-1] is the unparenthesized tuple # exc.children[1].children[0] is the first element of the tuple exc = exc.children[1].children[0].clone() exc.prefix = u" " if "tb" in results: tb = results["tb"].clone() else: tb = None if "val" in results: val = results["val"].clone() if is_tuple(val): # Assume that exc is a subclass of Exception and call exc(*val). args = [c.clone() for c in val.children[1:-1]] exc = Call(exc, args) elif val.type in (token.NUMBER, token.STRING): # Handle numeric and string literals specially, e.g. # "raise Exception, 5" -> "raise Exception(5)". val.prefix = u"" exc = Call(exc, [val]) elif val.type == token.NAME and val.value == u"None": # Handle None specially, e.g. # "raise Exception, None" -> "raise Exception". pass else: # val is some other expression. If val evaluates to an instance # of exc, it should just be raised. If val evaluates to None, # a default instance of exc should be raised (as above). If val # evaluates to a tuple, exc(*val) should be called (as # above). Otherwise, exc(val) should be called. We can only # tell what to do at runtime, so defer to future.utils.raise_(), # which handles all of these cases. touch_import_top(u"future.utils", u"raise_", node) exc.prefix = u"" args = [exc, Comma(), val] if tb is not None: args += [Comma(), tb] return Call(Name(u"raise_"), args, prefix=node.prefix) if tb is not None: tb.prefix = "" exc_list = Attr(exc, Name('with_traceback')) + [ArgList([tb])] else: exc_list = [exc] return pytree.Node(syms.raise_stmt, [Name(u"raise")] + exc_list, prefix=node.prefix)
SILENT KILLER Tool