X-Git-Url: https://git.tld-linux.org/?p=tld-ftp-admin.git;a=blobdiff_plain;f=modules%2Fftptree.py;h=aa00e02f9d3c8e59f52a20a78820d3fbbeba9313;hp=70db8a0aa0ac476e64f27a2a1659b801af38e90d;hb=51b9814081f743180ffed6c80fd7945acb554ce2;hpb=f7b22268ab563fa906be0653d037f1805e220e5c diff --git a/modules/ftptree.py b/modules/ftptree.py index 70db8a0..aa00e02 100644 --- a/modules/ftptree.py +++ b/modules/ftptree.py @@ -1,6 +1,17 @@ # vi: encoding=utf-8 ts=8 sts=4 sw=4 et -import os, config, string, urllib, re, rpm +from __future__ import print_function + +import os +import config +import string +try: + import urllib.request as urlmess +except ImportError: + import urllib as urlmess + pass +import re +import rpm from common import fileexists, noarchcachedir from baseftptree import BasePkg, BaseFtpTree from sign import is_signed @@ -13,23 +24,23 @@ class SomeError(Exception): return def __str__(self): - print "","An Error occured!" + return "An Error occured!" def bailoutonerror(): if not errnum == 0: - print "%d error(s) encountered... aborting" % errnum - raise SomeError + print("%d error(s) encountered... aborting" % errnum) + raise SomeError() def pinfo(msg): - print 'INFO: ' + msg + print('INFO: ' + msg) def perror(msg): global errnum errnum = errnum + 1 - print 'ERR: ' + msg + print('ERR: ' + msg) def pwarning(msg): - print 'WARN: ' + msg + print('WARN: ' + msg) def rm(file, test = False): if test: @@ -38,7 +49,7 @@ def rm(file, test = False): else: try: os.remove(file) - except OSError, e: + except OSError as e: pinfo("os.remove(%s): %s" % (file, e)) #raise @@ -53,14 +64,14 @@ def mv(src, dst, test = False): else: try: os.rename(fsrc, fdst) - except OSError, e: + except OSError as e: pinfo("os.rename(%s, %s): %s" % (fsrc, fdst, e)) raise class Pkg(BasePkg): def __init__(self, nvr, tree): BasePkg.__init__(self, nvr, tree) - self.name = string.join(nvr.split('-')[:-2], '-') + self.name = '-'.join(nvr.split('-')[:-2]) self.version = nvr.split('-')[-2] self.release = nvr.split('-')[-1] self.marked4removal = False @@ -88,7 +99,7 @@ class Pkg(BasePkg): if not config.separate_debuginfo: return False pkg = nvr.split('-')[:-2] - return pkg[-1] == 'debuginfo' + return pkg[-1] == 'debuginfo' or pkg[-1] == 'debugsource' def is_sourcefile(self, file): """ @@ -139,7 +150,7 @@ class Pkg(BasePkg): def load(self, content=None): BasePkg.load(self, content) - if self.info.has_key('move'): + if 'move' in self.info: self.mark4moving() def writeinfo(self): @@ -147,7 +158,7 @@ class Pkg(BasePkg): for bid in self.build.keys(): f.write("info:build:%s:requester:%s\ninfo:build:%s:requester_email:%s\n" % (bid, self.build[bid].requester, bid, self.build[bid].requester_email)) for key in self.info.keys(): - f.write("info:%s:%s\n" % (key, string.join(self.info[key], ':'))) + f.write("info:%s:%s\n" % (key, ':'.join(self.info[key]))) for arch in self.files.keys(): for rpm in self.files[arch]: f.write("file:%s:%s\n" % (arch, rpm)) @@ -273,14 +284,14 @@ class FtpTree(BaseFtpTree): self.do_checkbuild = True def __getitem__(self, key): - if self.loadedpkgs.has_key(key): + if key in self.loadedpkgs: return self.loadedpkgs[key] elif key in self.pkgnames: pkg=Pkg(key, self) self.loadedpkgs[key]=pkg return pkg else: - raise KeyError, key + raise KeyError(key) def has_key(self, key): if key in self.pkgnames: @@ -369,8 +380,8 @@ class FtpTree(BaseFtpTree): return True else: return False - list = filter(checkfiletype, os.listdir(self.basedir+'/SRPMS/.metadata')) - self.pkgnames = map((lambda x: x[:-13]), list) + pkglist = list(filter(checkfiletype, os.listdir(self.basedir+'/SRPMS/.metadata'))) + self.pkgnames = list(map((lambda x: x[:-13]), pkglist)) def __mark4something(self, wannabepkgs, markfunction): def chopoffextension(pkg): @@ -396,11 +407,11 @@ class FtpTree(BaseFtpTree): Reads config.builderqueue to grab the info """ - f = urllib.urlopen(config.builderqueue) + f = urlmess.urlopen(config.builderqueue) requests = {} reid = re.compile(r'^.*id=(.*) pri.*$') regb = re.compile(r'^group:.*$|builders:.*$', re.M) - for i in re.findall(regb, f.read()): + for i in re.findall(regb, f.read().decode('utf-8')): if i[0] == 'g': id = reid.sub(r'\1', i) requests[id] = "" @@ -410,7 +421,7 @@ class FtpTree(BaseFtpTree): for pkg in marked: for bid in pkg.build.keys(): - if requests.has_key(bid) and not requests[bid].find('?') == -1: + if bid in requests and not requests[bid].find('?') == -1: pkg.error("(buildid %s) building not finished" % bid) def __checkarchs(self, dsttree, marked): @@ -487,7 +498,7 @@ class FtpTree(BaseFtpTree): return True else: return False - return filter(filter_other_pkgs, tree.pkgnames) + return list(filter(filter_other_pkgs, tree.pkgnames)) def __find_older_pkgs(self, pkg): def filter_older_pkgs(x): @@ -498,7 +509,7 @@ class FtpTree(BaseFtpTree): return True else: return False - return filter(filter_older_pkgs, self.__find_other_pkgs(pkg, self)) + return list(filter(filter_older_pkgs, self.__find_other_pkgs(pkg, self))) def __checksigns(self, tree, pkgs, test = False): """ @@ -535,7 +546,7 @@ class FtpTree(BaseFtpTree): def findbyname(name): def x(nvr): return '-'.join(nvr.split('-')[:-2]) == name - return filter(x, tree.pkgnames) + return list(filter(x, tree.pkgnames)) for pkg in pkgs: obsoletes = pkg.obsoletes()