import os
import log
import string
+import codecs
def uuid_python():
return str(uuid_random())
def msg(m):
sys.stderr.write(m)
-def sendfile(src, dst):
- cnt = 0
- while 1:
- s = src.read(10000)
- if s == "": break
- cnt += len(s)
- dst.write(s)
- return cnt
-
def append_to(log, msg):
f = open(log, "a")
f.write("%s\n" % msg)
last_section = m.group(1)
f.close()
return last_section
+
+def cmp_to_key(mycmp):
+ 'Convert a cmp= function into a key= function'
+ class K:
+ def __init__(self, obj, *args):
+ self.obj = obj
+ def __lt__(self, other):
+ return mycmp(self.obj, other.obj) < 0
+ def __gt__(self, other):
+ return mycmp(self.obj, other.obj) > 0
+ def __eq__(self, other):
+ return mycmp(self.obj, other.obj) == 0
+ def __le__(self, other):
+ return mycmp(self.obj, other.obj) <= 0
+ def __ge__(self, other):
+ return mycmp(self.obj, other.obj) >= 0
+ def __ne__(self, other):
+ return mycmp(self.obj, other.obj) != 0
+ return K
+
+def to_bytes(s):
+ if type(s) is bytes:
+ return s
+ elif type(s) is str or (sys.version_info[0] < 3 and type(s) is unicode):
+ return codecs.encode(s, 'utf-8')
+ else:
+ raise TypeError("Expected bytes or string, but got %s." % type(s))
+
+def to_str(s):
+ if type(s) is bytes:
+ return codecs.decode(s, 'utf-8')
+ elif type(s) is str or (sys.version_info[0] < 3 and type(s) is unicode):
+ return s
+ else:
+ raise TypeError("Expected bytes or string, but got %s." % type(s))
+
+def cmp(a, b):
+ return (a > b) - (a < b)