some new features
This commit is contained in:
47
.venv/lib/python3.12/site-packages/Cython/Tempita/compat3.py
Normal file
47
.venv/lib/python3.12/site-packages/Cython/Tempita/compat3.py
Normal file
@ -0,0 +1,47 @@
|
||||
import sys
|
||||
|
||||
__all__ = ['b', 'basestring_', 'bytes', 'unicode_', 'next', 'is_unicode']
|
||||
|
||||
if sys.version < "3":
|
||||
b = bytes = str
|
||||
basestring_ = basestring
|
||||
unicode_ = unicode
|
||||
else:
|
||||
|
||||
def b(s):
|
||||
if isinstance(s, str):
|
||||
return s.encode('latin1')
|
||||
return bytes(s)
|
||||
basestring_ = (bytes, str)
|
||||
bytes = bytes
|
||||
unicode_ = str
|
||||
text = str
|
||||
|
||||
if sys.version < "3":
|
||||
|
||||
def next(obj):
|
||||
return obj.next()
|
||||
else:
|
||||
next = next
|
||||
|
||||
if sys.version < "3":
|
||||
|
||||
def is_unicode(obj):
|
||||
return isinstance(obj, unicode)
|
||||
else:
|
||||
|
||||
def is_unicode(obj):
|
||||
return isinstance(obj, str)
|
||||
|
||||
|
||||
def coerce_text(v):
|
||||
if not isinstance(v, basestring_):
|
||||
if sys.version < "3":
|
||||
attr = '__unicode__'
|
||||
else:
|
||||
attr = '__str__'
|
||||
if hasattr(v, attr):
|
||||
return unicode(v)
|
||||
else:
|
||||
return bytes(v)
|
||||
return v
|
||||
Reference in New Issue
Block a user