summaryrefslogtreecommitdiff
path: root/rdflib/py3compat.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdflib/py3compat.py')
-rw-r--r--rdflib/py3compat.py118
1 files changed, 0 insertions, 118 deletions
diff --git a/rdflib/py3compat.py b/rdflib/py3compat.py
deleted file mode 100644
index d164d819..00000000
--- a/rdflib/py3compat.py
+++ /dev/null
@@ -1,118 +0,0 @@
-"""
-Utility functions and objects to ease Python 3 compatibility.
-"""
-from __future__ import absolute_import
-from __future__ import division
-from __future__ import print_function
-
-import re
-import codecs
-import warnings
-
-import six
-
-def cast_bytes(s, enc='utf-8'):
- if isinstance(s, six.text_type):
- return s.encode(enc)
- return s
-
-if six.PY3:
- # Python 3:
- # ---------
-
- def ascii(stream):
- return codecs.getreader('ascii')(stream)
-
- def bopen(*args, **kwargs):
- return open(*args, mode = 'rb', **kwargs)
-
- long_type = int
-
- def sign(n):
- if n < 0:
- return -1
- if n > 0:
- return 1
- return 0
-
-else:
- # Python 2
- # --------
-
- def ascii(stream):
- return stream
-
- bopen = open
-
- long_type = long
-
- def sign(n):
- return cmp(n, 0)
-
-r_unicodeEscape = re.compile(r'(\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8})')
-
-def _unicodeExpand(s):
- return r_unicodeEscape.sub(lambda m: six.unichr(int(m.group(0)[2:], 16)), s)
-
-narrow_build = False
-try:
- six.unichr(0x10FFFF)
-except ValueError:
- narrow_build = True
-
-if narrow_build:
- def _unicodeExpand(s):
- try:
- return r_unicodeEscape.sub(
- lambda m: six.unichr(int(m.group(0)[2:], 16)), s)
- except ValueError:
- warnings.warn(
- 'Encountered a unicode char > 0xFFFF in a narrow python build. '
- 'Trying to degrade gracefully, but this can cause problems '
- 'later when working with the string:\n%s' % s)
- return r_unicodeEscape.sub(
- lambda m: codecs.decode(m.group(0), 'unicode_escape'), s)
-
-
-def decodeStringEscape(s):
-
- """
- s is byte-string - replace \ escapes in string
- """
-
- if not six.PY3:
- s = s.decode('string-escape')
- else:
- s = s.replace('\\t', '\t')
- s = s.replace('\\n', '\n')
- s = s.replace('\\r', '\r')
- s = s.replace('\\b', '\b')
- s = s.replace('\\f', '\f')
- s = s.replace('\\"', '"')
- s = s.replace("\\'", "'")
- s = s.replace('\\\\', '\\')
-
- return s
- #return _unicodeExpand(s) # hmm - string escape doesn't do unicode escaping
-
-def decodeUnicodeEscape(s):
- """
- s is a unicode string
- replace \n and \\u00AC unicode escapes
- """
- if not six.PY3:
- s = s.encode('utf-8').decode('string-escape')
- s = _unicodeExpand(s)
- else:
- s = s.replace('\\t', '\t')
- s = s.replace('\\n', '\n')
- s = s.replace('\\r', '\r')
- s = s.replace('\\b', '\b')
- s = s.replace('\\f', '\f')
- s = s.replace('\\"', '"')
- s = s.replace("\\'", "'")
- s = s.replace('\\\\', '\\')
-
- s = _unicodeExpand(s) # hmm - string escape doesn't do unicode escaping
-
- return s