summaryrefslogtreecommitdiff
path: root/paste/deploy/compat.py
diff options
context:
space:
mode:
Diffstat (limited to 'paste/deploy/compat.py')
-rw-r--r--paste/deploy/compat.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/paste/deploy/compat.py b/paste/deploy/compat.py
new file mode 100644
index 0000000..05047db
--- /dev/null
+++ b/paste/deploy/compat.py
@@ -0,0 +1,32 @@
+# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org)
+# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+"""Python 2<->3 compatibility module"""
+import sys
+
+
+def print_(template, *args, **kwargs):
+ template = str(template)
+ if args:
+ template = template % args
+ elif kwargs:
+ template = template % kwargs
+ sys.stdout.writelines(template)
+
+if sys.version_info < (3, 0):
+ basestring = basestring
+ from ConfigParser import ConfigParser
+ from urllib import unquote
+ iteritems = lambda d: d.iteritems()
+ dictkeys = lambda d: d.keys()
+
+ def reraise(t, e, tb):
+ exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
+else:
+ basestring = str
+ from configparser import ConfigParser
+ from urllib.parse import unquote
+ iteritems = lambda d: d.items()
+ dictkeys = lambda d: list(d.keys())
+
+ def reraise(t, e, tb):
+ raise e.with_traceback(tb)