[yum-commits] 2 commits - yum/packages.py
zpavlas at osuosl.org
zpavlas at osuosl.org
Thu Dec 6 11:18:59 UTC 2012
yum/packages.py | 100 ++++++++++++++++++++++++--------------------------------
1 file changed, 43 insertions(+), 57 deletions(-)
New commits:
commit 5a6928232055cd20bcf99e2fd4fc9802e15d06b6
Author: ZdenÄk Pavlas <zpavlas at redhat.com>
Date: Fri Nov 23 13:22:35 2012 +0100
xml_dump_{primary,filelists,other}_metadata() cleanup
Fix indent of some elements, remove some insignificant newlines.
Always put a single \n between </package> and next <package> tags.
Save few strcats.
diff --git a/yum/packages.py b/yum/packages.py
index 323af76..62f989f 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -1203,25 +1203,14 @@ class YumAvailablePackage(PackageObject, RpmBase):
return msg
def _dump_files(self, primary=False):
- msg ="\n"
- if not primary:
- files = self.returnFileEntries('file')
- dirs = self.returnFileEntries('dir')
- ghosts = self.returnFileEntries('ghost')
- else:
- files = self.returnFileEntries('file', primary_only=True)
- dirs = self.returnFileEntries('dir', primary_only=True)
- ghosts = self.returnFileEntries('ghost', primary_only=True)
-
- for fn in sorted(files):
- msg += """ <file>%s</file>\n""" % misc.to_xml(fn)
- for fn in sorted(dirs):
- msg += """ <file type="dir">%s</file>\n""" % misc.to_xml(fn)
- for fn in sorted(ghosts):
- msg += """ <file type="ghost">%s</file>\n""" % misc.to_xml(fn)
-
- return msg
-
+ msg = []
+ for fn in sorted(self.returnFileEntries('file', primary)):
+ msg.append('\n <file>%s</file>' % misc.to_xml(fn))
+ for fn in sorted(self.returnFileEntries('dir', primary)):
+ msg.append('\n <file type="dir">%s</file>' % misc.to_xml(fn))
+ for fn in sorted(self.returnFileEntries('ghost', primary)):
+ msg.append('\n <file type="ghost">%s</file>' % misc.to_xml(fn))
+ return ''.join(msg)
def _requires_with_pre(self):
raise NotImplementedError()
@@ -1284,7 +1273,7 @@ class YumAvailablePackage(PackageObject, RpmBase):
def _dump_changelog(self, clog_limit):
if not self.changelog:
return ""
- msg = "\n"
+ msg = []
# We need to output them "backwards", so the oldest is first
if not clog_limit:
clogs = self.changelog
@@ -1299,10 +1288,10 @@ class YumAvailablePackage(PackageObject, RpmBase):
hack_ts += 1
last_ts = ts
ts += hack_ts
- msg += """<changelog author="%s" date="%s">%s</changelog>\n""" % (
+ msg.append('\n <changelog author="%s" date="%s">%s</changelog>' % (
misc.to_xml(author, attrib=True), misc.to_xml(str(ts)),
- misc.to_xml(content))
- return msg
+ misc.to_xml(content)))
+ return ''.join(msg)
def xml_dump_primary_metadata(self):
msg = """\n<package type="rpm">"""
@@ -1313,23 +1302,25 @@ class YumAvailablePackage(PackageObject, RpmBase):
return msg
def xml_dump_filelists_metadata(self):
- msg = """\n<package pkgid="%s" name="%s" arch="%s">
- <version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
- self.arch, self.epoch, self.ver, self.rel)
- msg += self._dump_files()
- msg += "</package>\n"
+ msg = """
+<package pkgid="%s" name="%s" arch="%s">
+ <version epoch="%s" ver="%s" rel="%s"/>%s
+</package>""" % (self.checksum, self.name, self.arch,
+ self.epoch, self.ver, self.rel,
+ self._dump_files())
assert type(msg) is str
return msg
def xml_dump_other_metadata(self, clog_limit=0):
- msg = """\n<package pkgid="%s" name="%s" arch="%s">
- <version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
- self.arch, self.epoch, self.ver, self.rel)
- msg += "%s\n</package>\n" % self._dump_changelog(clog_limit)
+ msg = """
+<package pkgid="%s" name="%s" arch="%s">
+ <version epoch="%s" ver="%s" rel="%s"/>%s
+</package>""" % (self.checksum, self.name, self.arch,
+ self.epoch, self.ver, self.rel,
+ self._dump_changelog(clog_limit))
assert type(msg) is str
return msg
-
# HACK: This is completely retarded. Don't blame me, someone just fix
# rpm-python already. This is almost certainly not all of the problems,
# but w/e.
@@ -2196,11 +2187,11 @@ class YumLocalPackage(YumHeaderPackage):
relpath = self.localpath
if self._baseurl:
- msg = """<location xml:base="%s" href="%s"/>\n""" % (
+ msg = """ <location xml:base="%s" href="%s"/>\n""" % (
misc.to_xml(self._baseurl, attrib=True),
misc.to_xml(relpath, attrib=True))
else:
- msg = """<location href="%s"/>\n""" % misc.to_xml(relpath, attrib=True)
+ msg = """ <location href="%s"/>\n""" % misc.to_xml(relpath, attrib=True)
return msg
commit 72febef86c0f1238baac3a7232c97152132fe55a
Author: ZdenÄk Pavlas <zpavlas at redhat.com>
Date: Fri Nov 23 10:29:06 2012 +0100
Avoid converting to unicode and back in dump_xml_*. BZ 716235.
Some speedup in createpo (from 2 to 6 percent)
diff --git a/yum/packages.py b/yum/packages.py
index 1ce45f4..323af76 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -857,22 +857,14 @@ class YumAvailablePackage(PackageObject, RpmBase):
if hasattr(self, '_committer_ret'):
return self._committer_ret
- def _nf2ascii(x):
- """ does .encode("ascii", "replace") but it never fails. """
- ret = []
- for val in x:
- if ord(val) >= 128:
- val = '?'
- ret.append(val)
- return "".join(ret)
-
if not len(self.changelog): # Empty changelog is _possible_ I guess
self._committer_ret = self.packager
return self._committer_ret
val = self.changelog[0][1]
# Chagnelog data is in multiple locale's, so we convert to ascii
# ignoring "bad" chars.
- val = _nf2ascii(val)
+ val = misc.to_unicode(val, errors='replace')
+ val = val.encode('ascii', 'replace')
# Hacky way to get rid of version numbers...
ix = val.find('> ')
if ix != -1:
@@ -1123,10 +1115,10 @@ class YumAvailablePackage(PackageObject, RpmBase):
packager = url = ''
if self.packager:
- packager = misc.to_unicode(misc.to_xml(self.packager))
+ packager = misc.to_xml(self.packager)
if self.url:
- url = misc.to_unicode(misc.to_xml(self.url))
+ url = misc.to_xml(self.url)
(csum_type, csum, csumid) = self.checksums[0]
msg = """
<name>%s</name>
@@ -1140,8 +1132,8 @@ class YumAvailablePackage(PackageObject, RpmBase):
<time file="%s" build="%s"/>
<size package="%s" installed="%s" archive="%s"/>\n""" % (self.name,
self.arch, self.epoch, self.ver, self.rel, csum_type, csum,
- misc.to_unicode(misc.to_xml(self.summary)),
- misc.to_unicode(misc.to_xml(self.description)),
+ misc.to_xml(self.summary),
+ misc.to_xml(self.description),
packager, url, self.filetime,
self.buildtime, self.packagesize, self.installedsize, self.archivesize)
@@ -1314,25 +1306,28 @@ class YumAvailablePackage(PackageObject, RpmBase):
def xml_dump_primary_metadata(self):
msg = """\n<package type="rpm">"""
- msg += misc.to_unicode(self._dump_base_items())
- msg += misc.to_unicode(self._dump_format_items())
+ msg += self._dump_base_items()
+ msg += self._dump_format_items()
msg += """\n</package>"""
- return misc.to_utf8(msg)
+ assert type(msg) is str
+ return msg
def xml_dump_filelists_metadata(self):
msg = """\n<package pkgid="%s" name="%s" arch="%s">
<version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
self.arch, self.epoch, self.ver, self.rel)
- msg += misc.to_unicode(self._dump_files())
+ msg += self._dump_files()
msg += "</package>\n"
- return misc.to_utf8(msg)
+ assert type(msg) is str
+ return msg
def xml_dump_other_metadata(self, clog_limit=0):
msg = """\n<package pkgid="%s" name="%s" arch="%s">
<version epoch="%s" ver="%s" rel="%s"/>\n""" % (self.checksum, self.name,
self.arch, self.epoch, self.ver, self.rel)
- msg += "%s\n</package>\n" % misc.to_unicode(self._dump_changelog(clog_limit))
- return misc.to_utf8(msg)
+ msg += "%s\n</package>\n" % self._dump_changelog(clog_limit)
+ assert type(msg) is str
+ return msg
# HACK: This is completely retarded. Don't blame me, someone just fix
@@ -1519,9 +1514,9 @@ class YumHeaderPackage(YumAvailablePackage):
# then create a _loadChangelog() method to put them into the
# self._changelog attr
if len(self.hdr['changelogname']) > 0:
- return zip(misc.to_unicode(self.hdr['changelogtime'], errors='replace'),
- misc.to_unicode(self.hdr['changelogname'], errors='replace'),
- misc.to_unicode(self.hdr['changelogtext'], errors='replace'))
+ return zip(self.hdr['changelogtime'],
+ self.hdr['changelogname'],
+ self.hdr['changelogtext'])
return []
def returnChecksums(self):
More information about the Yum-commits
mailing list