X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=TLD_Builder%2Futil.py;h=602bad176fe9e4ba01c6d7f4344bd235dc0c2ae2;hb=90e89153ad56b37c24ba84ec1ade4dd4984a4059;hp=b623115d7f2e407e3fe30d69e66a97bfe4a7b32f;hpb=b999f53d4bf5d44586ecf028876e8bc20b5fd2ce;p=tld-builder.git diff --git a/TLD_Builder/util.py b/TLD_Builder/util.py index b623115..602bad1 100644 --- a/TLD_Builder/util.py +++ b/TLD_Builder/util.py @@ -5,16 +5,17 @@ import sys import os import log import string +import codecs def uuid_python(): return str(uuid_random()) def uuid_external(): f = os.popen("uuidgen 2>&1") - u = string.strip(f.read()) + u = f.read().strip() f.close() if len(u) != 36: - raise Exception, "uuid: fatal, cannot generate uuid: %s" % u + raise Exception("uuid: fatal, cannot generate uuid: %s" % u) return u # uuid module available in python >= 2.5 @@ -35,7 +36,7 @@ def sendfile(src, dst): cnt = 0 while 1: s = src.read(10000) - if s == "": break + if s == "" or s == b"": break cnt += len(s) dst.write(s) return cnt @@ -52,9 +53,9 @@ def clean_tmp(dir): def collect_files(log, basedir = "/home"): f = open(log, 'r') rx = re.compile(r"^Wrote: (%s.*\.rpm)$" % basedir) - proc = re.compile(r"^Processing (files):.*$") + proc = re.compile(r"^Processing files:.*$") files = [] - for l in reversed(list(f.xreadlines())): + for l in reversed(list(f)): if proc.match(l): break m = rx.search(l) @@ -76,3 +77,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)