mirror of
https://github.com/openSUSE/osc.git
synced 2024-11-10 06:46:15 +01:00
python3 compatibility: dict
this patch 1.) removes the iteritems/itervalues, which were dropped in py3 items/values are used instead 2.) add an extra list() in a cases the list-based access is needed (included appending, indexing and so) 3.) changes a sorting idiom in few places instead of foo = dict.keys() foo.sort() for i in foo: there is a recommended for i in sorted(dict.keys()): 4.) in one occassion it removes a if dict.has_key() by simpler dict.get(key, default)
This commit is contained in:
parent
c5a235ed78
commit
d3648be24b
@ -331,7 +331,7 @@ def get_prefer_pkgs(dirs, wanted_arch, type):
|
||||
packageQueries.add(packageQuery)
|
||||
|
||||
prefer_pkgs = dict((name, packageQuery.path())
|
||||
for name, packageQuery in packageQueries.iteritems())
|
||||
for name, packageQuery in packageQueries.items())
|
||||
|
||||
depfile = create_deps(packageQueries.values())
|
||||
cpio = cpio.CpioWrite()
|
||||
@ -631,7 +631,7 @@ def main(apiurl, opts, argv):
|
||||
else:
|
||||
raise
|
||||
|
||||
bi = Buildinfo(bi_filename, apiurl, build_type, prefer_pkgs.keys())
|
||||
bi = Buildinfo(bi_filename, apiurl, build_type, list(prefer_pkgs.keys()))
|
||||
|
||||
if bi.debuginfo and not (opts.disable_debuginfo or '--debug' in buildargs):
|
||||
buildargs.append('--debug')
|
||||
@ -660,7 +660,7 @@ def main(apiurl, opts, argv):
|
||||
rpmlist_prefers = []
|
||||
if prefer_pkgs:
|
||||
print 'Evaluating preferred packages'
|
||||
for name, path in prefer_pkgs.iteritems():
|
||||
for name, path in prefer_pkgs.tems():
|
||||
if bi.has_dep(name):
|
||||
# We remove a preferred package from the buildinfo, so that the
|
||||
# fetcher doesn't take care about them.
|
||||
@ -804,7 +804,7 @@ def main(apiurl, opts, argv):
|
||||
else:
|
||||
os.symlink(sffn, tffn)
|
||||
if prefer_pkgs:
|
||||
for name, path in prefer_pkgs.iteritems():
|
||||
for name, path in prefer_pkgs.items():
|
||||
if name == filename:
|
||||
print "Using prefered package: " + path + "/" + filename
|
||||
os.unlink(tffn)
|
||||
|
@ -707,10 +707,8 @@ class RawCmdln(cmd.Cmd):
|
||||
for attr in self.get_names():
|
||||
if attr.startswith("do_"):
|
||||
cmdnames[attr[3:]] = True
|
||||
cmdnames = cmdnames.keys()
|
||||
cmdnames.sort()
|
||||
linedata = []
|
||||
for cmdname in cmdnames:
|
||||
for cmdname in sorted(cmdnames.keys()):
|
||||
if aliases.get(cmdname):
|
||||
a = aliases[cmdname]
|
||||
a.sort()
|
||||
@ -770,8 +768,7 @@ class RawCmdln(cmd.Cmd):
|
||||
helpnames[helpname] = True
|
||||
|
||||
if helpnames:
|
||||
helpnames = helpnames.keys()
|
||||
helpnames.sort()
|
||||
helpnames = sorted(helpnames.keys())
|
||||
linedata = [(self.name+" help "+n, "") for n in helpnames]
|
||||
|
||||
subindent = indent + ' '*4
|
||||
|
@ -4135,7 +4135,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
if not pac.todo:
|
||||
pac.todo = pac.filenamelist + pac.filenamelist_unvers
|
||||
pac.todo.sort()
|
||||
for prj_path, packages in prj_paths.iteritems():
|
||||
for prj_path, packages in prj_paths.items():
|
||||
prj = Project(prj_path)
|
||||
if not msg:
|
||||
msg = get_commit_msg(prj.absdir, pac_objs[prj_path])
|
||||
@ -6490,7 +6490,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
if role_filter:
|
||||
role_filter = '%s (%s)' % (search_term, role_filter)
|
||||
kind_map = {'published/binary/id': 'binary'}
|
||||
for kind, root in res.iteritems():
|
||||
for kind, root in res.items():
|
||||
results = []
|
||||
for node in root.findall(kind_map.get(kind, kind)):
|
||||
result = []
|
||||
@ -7791,7 +7791,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
||||
|
||||
args = parseargs(args)
|
||||
pacs = []
|
||||
apiurls = conf.config['api_host_options'].keys()
|
||||
apiurls = list(conf.config['api_host_options'].keys())
|
||||
apiurl = ''
|
||||
for i in args:
|
||||
if is_project_dir(i):
|
||||
|
21
osc/core.py
21
osc/core.py
@ -1234,9 +1234,7 @@ class Package:
|
||||
|
||||
def __generate_commitlist(self, todo_send):
|
||||
root = ET.Element('directory')
|
||||
keys = todo_send.keys()
|
||||
keys.sort()
|
||||
for i in keys:
|
||||
for i in sorted(todo_send.keys()):
|
||||
ET.SubElement(root, 'entry', name=i, md5=todo_send[i])
|
||||
return root
|
||||
|
||||
@ -2302,10 +2300,7 @@ class Action:
|
||||
raise oscerr.WrongArgs('invalid argument: \'%s\'' % i)
|
||||
# set all type specific attributes
|
||||
for i in Action.type_args[type]:
|
||||
if kwargs.has_key(i):
|
||||
setattr(self, i, kwargs[i])
|
||||
else:
|
||||
setattr(self, i, None)
|
||||
setattr(self, i, kwargs.get(i))
|
||||
|
||||
def to_xml(self):
|
||||
"""
|
||||
@ -3721,7 +3716,7 @@ def get_review_list(apiurl, project='', package='', byuser='', bygroup='', bypro
|
||||
todo['project'] = project
|
||||
if package:
|
||||
todo['package'] = package
|
||||
for kind, val in todo.iteritems():
|
||||
for kind, val in todo.items():
|
||||
xpath_base = 'action/target/@%(kind)s=\'%(val)s\' or ' \
|
||||
'submit/target/@%(kind)s=\'%(val)s\''
|
||||
|
||||
@ -3787,7 +3782,7 @@ def get_request_list(apiurl, project='', package='', req_who='', req_state=('new
|
||||
todo['project'] = project
|
||||
if package:
|
||||
todo['package'] = package
|
||||
for kind, val in todo.iteritems():
|
||||
for kind, val in todo.items():
|
||||
xpath_base = 'action/target/@%(kind)s=\'%(val)s\' or ' \
|
||||
'submit/target/@%(kind)s=\'%(val)s\''
|
||||
|
||||
@ -3827,7 +3822,7 @@ def get_user_projpkgs_request_list(apiurl, user, req_state=('new','review',), re
|
||||
if not i.get('project') in projects:
|
||||
projpkgs.setdefault(i.get('project'), []).append(i.get('name'))
|
||||
xpath = ''
|
||||
for prj, pacs in projpkgs.iteritems():
|
||||
for prj, pacs in projpkgs.items():
|
||||
if not len(pacs):
|
||||
xpath = xpath_join(xpath, 'action/target/@project=\'%s\'' % prj, inner=True)
|
||||
else:
|
||||
@ -4493,7 +4488,7 @@ def aggregate_pac(src_project, src_package, dst_project, dst_package, repo_map =
|
||||
aggregate_template += """\
|
||||
<nosources />
|
||||
"""
|
||||
for src, tgt in repo_map.iteritems():
|
||||
for src, tgt in repo_map.items():
|
||||
aggregate_template += """\
|
||||
<repository target="%s" source="%s" />
|
||||
""" % (tgt, src)
|
||||
@ -5758,7 +5753,7 @@ def search(apiurl, **kwargs):
|
||||
GET /search/kindN?match=xpathN
|
||||
"""
|
||||
res = {}
|
||||
for urlpath, xpath in kwargs.iteritems():
|
||||
for urlpath, xpath in kwargs.items():
|
||||
path = [ 'search' ]
|
||||
path += urlpath.split('_') # FIXME: take underscores as path seperators. I see no other way atm to fix OBS api calls and not breaking osc api
|
||||
u = makeurl(apiurl, path, ['match=%s' % quote_plus(xpath)])
|
||||
@ -6591,7 +6586,7 @@ def filter_role(meta, user, role):
|
||||
remove all project/package nodes if no person node exists
|
||||
where @userid=user and @role=role
|
||||
"""
|
||||
for kind, root in meta.iteritems():
|
||||
for kind, root in meta.items():
|
||||
delete = []
|
||||
for node in root.findall(kind):
|
||||
found = False
|
||||
|
@ -122,7 +122,7 @@ class Fetcher:
|
||||
archive.copyin_file(hdr.filename, os.path.dirname(tmpfile), os.path.basename(tmpfile))
|
||||
self.move_package(tmpfile, pac.localdir, pac)
|
||||
# check if we got all packages... (because we've no .errors file)
|
||||
for pac in pkgs.itervalues():
|
||||
for pac in pkgs.values():
|
||||
if not os.path.isfile(pac.fullfilename):
|
||||
raise oscerr.APIError('failed to fetch file \'%s\': ' \
|
||||
'does not exist in CPIO archive' % pac.repofilename)
|
||||
@ -130,7 +130,7 @@ class Fetcher:
|
||||
if e.errno != 14 or e.code != 414:
|
||||
raise
|
||||
# query str was too large
|
||||
keys = pkgs.keys()
|
||||
keys = list(pkgs.keys())
|
||||
if len(keys) == 1:
|
||||
raise oscerr.APIError('unable to fetch cpio archive: server always returns code 414')
|
||||
n = len(pkgs) / 2
|
||||
@ -145,7 +145,7 @@ class Fetcher:
|
||||
os.unlink(tmpfile)
|
||||
|
||||
def __fetch_cpio(self, apiurl):
|
||||
for prpap, pkgs in self.cpio.iteritems():
|
||||
for prpap, pkgs in self.cpio.items():
|
||||
project, repo, arch, package = prpap.split('/', 3)
|
||||
self.__download_cpio_archive(apiurl, project, repo, arch, package, **pkgs)
|
||||
|
||||
@ -246,7 +246,7 @@ class Fetcher:
|
||||
|
||||
self.__fetch_cpio(buildinfo.apiurl)
|
||||
|
||||
prjs = buildinfo.projects.keys()
|
||||
prjs = list(buildinfo.projects.keys())
|
||||
for i in prjs:
|
||||
dest = "%s/%s" % (self.cachedir, i)
|
||||
if not os.path.exists(dest):
|
||||
|
@ -62,7 +62,7 @@ class CpioHdr:
|
||||
self.namesize = namesize
|
||||
# != 0 indicates CRC format (which we do not support atm)
|
||||
self.checksum = checksum
|
||||
for k,v in self.__dict__.iteritems():
|
||||
for k,v in self.__dict__.items():
|
||||
self.__dict__[k] = int(v, 16)
|
||||
self.filename = filename
|
||||
# data starts at dataoff and ends at dataoff+filesize
|
||||
|
Loading…
Reference in New Issue
Block a user