diff options
| author | Andi Albrecht <albrecht.andi@gmail.com> | 2016-05-15 21:02:17 +0200 |
|---|---|---|
| committer | Andi Albrecht <albrecht.andi@gmail.com> | 2016-05-15 21:02:17 +0200 |
| commit | efb6fd4bdb80b985c356bb6eb996e6e25cf63b05 (patch) | |
| tree | 5ca2ce45fc9cf0a35efbcf68bb643f3a12e2575d /sqlparse/compat.py | |
| parent | 9ab1464ea9c1d0296d698d9637ed3e3cd92326f9 (diff) | |
| parent | 955996e3e5c49fb6b7f200ceecee2f8082656ac4 (diff) | |
| download | sqlparse-efb6fd4bdb80b985c356bb6eb996e6e25cf63b05.tar.gz | |
Merge pull request #235 from vmuriart/refactor
Refactor
Diffstat (limited to 'sqlparse/compat.py')
| -rw-r--r-- | sqlparse/compat.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/sqlparse/compat.py b/sqlparse/compat.py index 6b26384..334883b 100644 --- a/sqlparse/compat.py +++ b/sqlparse/compat.py @@ -14,29 +14,40 @@ PY2 = sys.version_info[0] == 2 PY3 = sys.version_info[0] == 3 if PY3: + def u(s): + return str(s) + + + range = range text_type = str string_types = (str,) from io import StringIO - def u(s): - return str(s) elif PY2: + def u(s, encoding=None): + encoding = encoding or 'unicode-escape' + try: + return unicode(s) + except UnicodeDecodeError: + return unicode(s, encoding) + + + range = xrange text_type = unicode string_types = (basestring,) - from StringIO import StringIO # flake8: noqa - - def u(s): - return unicode(s) + from StringIO import StringIO # Directly copied from six: def with_metaclass(meta, *bases): """Create a base class with a metaclass.""" + # This requires a bit of explanation: the basic idea is to make a dummy # metaclass for one level of class instantiation that replaces itself with # the actual metaclass. class metaclass(meta): def __new__(cls, name, this_bases, d): return meta(name, bases, d) + return type.__new__(metaclass, 'temporary_class', (), {}) |
