[Rpm-metadata] createrepo/__init__.py
skvidal at osuosl.org
skvidal at osuosl.org
Tue Jun 16 19:34:38 UTC 2009
createrepo/__init__.py | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
New commits:
commit 3f793c0cf10c6352e5449976123afadd4c11c4bb
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Tue Jun 16 15:24:03 2009 -0400
- prestodelta.xml file generation is now roughly 60X faster than it was before
- python unicode string concatenation sucks, a lot.
- add a delta xml generation profile output
- get rid of some incorrect output about db files and delta metadata
- get rid of some old not-useful comments in the code
diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index 36bb350..92f6fe4 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -256,7 +256,6 @@ class MetaDataGenerator:
name = os.path.join(top, name)
if os.path.isdir(name):
self._os_path_walk(name, func, arg)
- # module
def getFileList(self, directory, ext):
"""Return all files in path matching ext, store them in filelist,
recurse dirs. Returns a list object"""
@@ -364,7 +363,6 @@ class MetaDataGenerator:
self.writeMetadataDocs(packages)
self.closeMetadataDocs()
- # module
def openMetadataDocs(self):
if self.conf.database_only:
self.setup_sqlite_dbs()
@@ -594,11 +592,14 @@ class MetaDataGenerator:
self.otherfile.close()
if self.conf.deltas:
+ deltam_st = time.time()
if not self.conf.quiet:
self.callback.log(_('Saving delta metadata'))
self.deltafile.write(self.generate_delta_xml())
self.deltafile.write('\n</prestodelta>')
self.deltafile.close()
+ if self.conf.profile:
+ self.callback.log('deltam time: %0.3f' % (time.time() - deltam_st))
def _do_delta_rpm_package(self, pkg):
"""makes the drpms, if possible, for this package object.
@@ -679,7 +680,7 @@ class MetaDataGenerator:
# the tag for the target + each of the drpm infos + closure for the target
# tag
targets = {}
- result = u''
+ results = []
for drpm_fn in self.getFileList(self.conf.deltadir, 'drpm'):
drpm_rel_fn = os.path.normpath(self.conf.delta_relative +
'/' + drpm_fn) # this is annoying
@@ -689,17 +690,19 @@ class MetaDataGenerator:
drpm = deltarpms.DeltaRPMPackage(drpm_po, self.conf.outputdir,
drpm_rel_fn)
if not targets.has_key(drpm_po.pkgtup):
- targets[drpm_po.pkgtup] = u''
- targets[drpm_po.pkgtup] += drpm.xml_dump_metadata()
+ targets[drpm_po.pkgtup] = []
+ targets[drpm_po.pkgtup].append(drpm.xml_dump_metadata())
for (n, a, e, v, r) in targets.keys():
- result += """ <newpackage name="%s" epoch="%s" version="%s" release="%s" arch="%s">\n""" % (
- n, e, v, r, a)
- for src in targets[(n, a, e, v, r)]:
- result += src
- result += """ </newpackage>\n"""
+ results.append(""" <newpackage name="%s" epoch="%s" version="%s" release="%s" arch="%s">\n""" % (
+ n, e, v, r, a))
+ results.extend(targets[(n,a,e,v,r)])
+# for src in targets[(n, a, e, v, r)]:
+# results.append(src)
- return result
+ results.append(" </newpackage>\n")
+
+ return ' '.join(results)
def addArbitraryMetadata(self, mdfile, mdtype, xml_node, compress=True,
compress_type='gzip', attribs={}):
@@ -828,8 +831,9 @@ class MetaDataGenerator:
db_compressed_sums = {}
if self.conf.database:
- if self.conf.verbose:
- self.callback.log("Starting %s db creation: %s" % (ftype,
+ if ftype in ['primary', 'filelists', 'other']:
+ if self.conf.verbose:
+ self.callback.log("Starting %s db creation: %s" % (ftype,
time.ctime()))
if ftype == 'primary':
More information about the Rpm-metadata
mailing list