Mercurial > public > mercurial-scm > hg-stable
diff mercurial/bundle2.py @ 29771:e584c6235500
py3: conditionalize the raise statement
raise E,V,T is not acceptable in Python 3, thats is conditionalized.
Moreover this will result in syntax error so we have to use exec() to
execute this. Related PEP- https://www.python.org/dev/peps/pep-3109/#id14
My implementation is motivated from the six implementation except they are
defining a new function exec_() to prevent adding an extra frame AFAIK :)
https://bitbucket.org/gutworth/six/src/ca4580a5a648/six.py#six.py-680
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Mon, 08 Aug 2016 23:51:11 +0530 |
parents | 953839de96ab |
children | 2c302c654451 |
line wrap: on
line diff
--- a/mercurial/bundle2.py Tue Aug 09 09:02:51 2016 +0000 +++ b/mercurial/bundle2.py Mon Aug 08 23:51:11 2016 +0530 @@ -989,7 +989,10 @@ outdebug(ui, 'closing payload chunk') # abort current part payload yield _pack(_fpayloadsize, 0) - raise exc_info[0], exc_info[1], exc_info[2] + if sys.version_info[0] >= 3: + raise exc_info[0](exc_info[1]).with_traceback(exc_info[2]) + else: + exec("""raise exc_info[0], exc_info[1], exc_info[2]""") # end of payload outdebug(ui, 'closing payload chunk') yield _pack(_fpayloadsize, 0)