diff venv/lib/python2.7/site-packages/docutils/_compat.py @ 0:d67268158946 draft

planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author bcclaywell
date Mon, 12 Oct 2015 17:43:33 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/venv/lib/python2.7/site-packages/docutils/_compat.py	Mon Oct 12 17:43:33 2015 -0400
@@ -0,0 +1,48 @@
+# $Id: _compat.py 7486 2012-07-11 12:25:14Z milde $
+# Author: Georg Brandl <georg@python.org>
+# Copyright: This module has been placed in the public domain.
+
+"""
+Python 2/3 compatibility definitions.
+
+This module currently provides the following helper symbols:
+
+* bytes (name of byte string type; str in 2.x, bytes in 3.x)
+* b (function converting a string literal to an ASCII byte string;
+  can be also used to convert a Unicode string into a byte string)
+* u_prefix (unicode repr prefix: 'u' in 2.x, '' in 3.x)
+  (Required in docutils/test/test_publisher.py)
+* BytesIO (a StringIO class that works with bytestrings)
+"""
+
+import sys
+
+if sys.version_info < (3,0):
+    b = bytes = str
+    u_prefix = 'u'
+    from StringIO import StringIO as BytesIO
+else:
+    import builtins
+    bytes = builtins.bytes
+    u_prefix = ''
+    def b(s):
+        if isinstance(s, str):
+            return s.encode('latin1')
+        elif isinstance(s, bytes):
+            return s
+        else:
+            raise TypeError("Invalid argument %r for b()" % (s,))
+    # using this hack since 2to3 "fixes" the relative import
+    # when using ``from io import BytesIO``
+    BytesIO = __import__('io').BytesIO
+
+if sys.version_info < (2,5):
+    import __builtin__
+
+    def __import__(name, globals={}, locals={}, fromlist=[], level=-1):
+        """Compatibility definition for Python 2.4.
+
+        Silently ignore the `level` argument missing in Python < 2.5.
+        """
+        # we need the level arg because the default changed in Python 3.3
+        return __builtin__.__import__(name, globals, locals, fromlist)