K2LL33D SHELL

 Apache/2.4.7 (Ubuntu)
 Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64
 uid=33(www-data) gid=33(www-data) groups=33(www-data)
 safemode : OFF
 MySQL: ON | Perl: ON | cURL: OFF | WGet: ON
  >  / usr / lib / python2.7 / lib2to3 / fixes /
server ip : 172.67.156.115

your ip : 172.69.130.131

H O M E


Filename/usr/lib/python2.7/lib2to3/fixes/fix_throw.py
Size1.55 kb
Permissionrw-r--r--
Ownerroot : root
Create time27-Apr-2025 09:53
Last modified23-Mar-2014 07:55
Last accessed06-Jul-2025 10:31
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
"""Fixer for generator.throw(E, V, T).

g.throw(E) -> g.throw(E)
g.throw(E, V) -> g.throw(E(V))
g.throw(E, V, T) -> g.throw(E(V).with_traceback(T))

g.throw("foo"[, V[, T]]) will warn about string exceptions."""
# Author: Collin Winter

# Local imports
from .. import pytree
from ..pgen2 import token
from .. import fixer_base
from ..fixer_util import Name, Call, ArgList, Attr, is_tuple

class FixThrow(fixer_base.BaseFix):
BM_compatible = True
PATTERN = """
power< any trailer< '.' 'throw' >
trailer< '(' args=arglist< exc=any ',' val=any [',' tb=any] > ')' >
>
|
power< any trailer< '.' 'throw' > trailer< '(' exc=any ')' > >
"""

def transform(self, node, results):
syms = self.syms

exc = results["exc"].clone()
if exc.type is token.STRING:
self.cannot_convert(node, "Python 3 does not support string exceptions")
return

# Leave "g.throw(E)" alone
val = results.get(u"val")
if val is None:
return

val = val.clone()
if is_tuple(val):
args = [c.clone() for c in val.children[1:-1]]
else:
val.prefix = u""
args = [val]

throw_args = results["args"]

if "tb" in results:
tb = results["tb"].clone()
tb.prefix = u""

e = Call(exc, args)
with_tb = Attr(e, Name(u'with_traceback')) + [ArgList([tb])]
throw_args.replace(pytree.Node(syms.power, with_tb))
else:
throw_args.replace(Call(exc, args))