X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=TLD_Builder%2Futil.py;h=af6b8f12bd2e8ca3022a2215f4b1cd19bac7e3e2;hb=a68953c88fba6e657febf9cb06273f44288f759c;hp=67bd9a1be30d230f7be2c0bdf4d9a32b4a1c3ba3;hpb=98531ab4a0e4e065d3b11b051b3e4bd7653c6ac0;p=tld-builder.git diff --git a/TLD_Builder/util.py b/TLD_Builder/util.py index 67bd9a1..af6b8f1 100644 --- a/TLD_Builder/util.py +++ b/TLD_Builder/util.py @@ -5,6 +5,7 @@ import sys import os import log import string +import codecs def uuid_python(): return str(uuid_random()) @@ -31,15 +32,6 @@ def pkg_name(nvr): 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) @@ -76,3 +68,41 @@ def find_last_section(log): 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)