OpenMTC/build/lib/futile/__init__.py
2017-11-07 14:41:38 +01:00

83 lines
1.6 KiB
Python

from futile.basictypes import basestring, BASE_STR
from futile.logging import LoggerMixin
Base = LoggerMixin
class NOT_SET(object):
__slots__ = ()
def __bool__(self):
return False
__nonzero__ = __bool__
def __str__(self):
return ""
NOT_SET = NOT_SET()
DEFAULT_ENCODING = "utf-8"
DEFAULT_CHUNK_SIZE = 128 * 1024
THREADSAFE = True
def noop(*args, **kw):
pass
def not_implemented(*args, **kw):
raise NotImplementedError()
def tostr(o):
if isinstance(o, basestring):
return o
return BASE_STR(o)
if basestring == str:
uc = tostr
encstr = not_implemented
else:
def uc(s):
if isinstance(s, unicode):
return s
if isinstance(s, basestring):
return s.decode(DEFAULT_ENCODING)
return unicode(s)
def encstr(s):
if isinstance(s, str):
return s
if not isinstance(s, unicode):
s = unicode(s)
return s.encode(DEFAULT_ENCODING)
def identity(x):
return x
_isc = issubclass
def issubclass(o, classes):
"A safer version of __builtin__.issubclass that does not raise TypeError when called with a non-type object"
return isinstance(o, type) and _isc(o, classes)
try:
callable
except NameError:
def callable(x):
return hasattr(x, "__call__")
class ObjectProxy(object):
__slots__ = ("_o")
def __init__(self, proxyobject, *args, **kw):
super(ObjectProxy, self).__init__(*args, **kw)
self._o = proxyobject
def __getattr__(self, k):
return getattr(self._o, k)