Mercurial > repos > bcclaywell > argo_navis
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)