[Uludag-commits] r15575 - branches/pisi-db/pisi/db
uludag-commits at pardus.org.tr
uludag-commits at pardus.org.tr
1 Eki 2007 Pzt 13:57:41 EEST
Author: faik
Date: Mon Oct 1 13:57:41 2007
New Revision: 15575
Modified:
branches/pisi-db/pisi/db/sourcedb.py
Log:
Source database fixes
Switch to itembyrepo class usage
Use __generate_X funcs
Modified: branches/pisi-db/pisi/db/sourcedb.py
=================================================================
--- branches/pisi-db/pisi/db/sourcedb.py (original)
+++ branches/pisi-db/pisi/db/sourcedb.py Mon Oct 1 13:57:41 2007
@@ -30,41 +30,40 @@
repodb = pisi.db.repodb.RepoDB()
for repo in repodb.list_repos():
+ doc = repodb.get_repo_doc(repo)
+ self.__source_nodes[repo], self.__pkgstosrc[repo] = self.__generate_sources(doc)
- self.__source_nodes[repo] = {}
- self.__pkgstosrc[repo] = {}
+ self.sdb = pisi.db.itembyrepo.ItemByRepo(self.__source_nodes)
+ self.psdb = pisi.db.itembyrepo.ItemByRepo(self.__pkgstosrc)
- doc = repodb.get_repo_doc(repo)
- for spec in doc.tags("SpecFile"):
- src_name = spec.getTag("Source").getTagData("Name")
- self.__source_nodes[repo][src_name] = spec.toString()
- for package in spec.tags("Package"):
- self.__pkgstosrc[repo][package.getTagData("Name")] = src_name
-
- def list_sources(self, repo):
- if self.__source_nodes.has_key(repo):
- return self.__source_nodes[repo].keys()
+ def __generate_sources(self, doc):
+
+ sources = {}
+ pkgstosrc = {}
+
+ for spec in doc.tags("SpecFile"):
+ src_name = spec.getTag("Source").getTagData("Name")
+ sources[src_name] = spec.toString()
+ for package in spec.tags("Package"):
+ pkgstosrc[package.getTagData("Name")] = src_name
+
+ return sources, pkgstosrc
- raise Exception(_('Repository %s does not exists.') % repo)
+ def list_sources(self, repo=None):
+ return self.sdb.get_item_keys(repo)
- def has_spec(self, name, repo):
- return self.__source_nodes.has_key(repo) and self.__source_nodes[repo].has_key(name)
+ def has_spec(self, name, repo=None):
+ return self.sdb.has_item(name, repo)
- def get_spec(self, name, repo):
+ def get_spec(self, name, repo=None):
spec, repo = self.get_spec_repo(name, repo)
return spec
- def get_spec_repo(self, name, repo):
- if self.__source_nodes.has_key(repo):
- if self.__source_nodes[repo].has_key(name):
- spec = pisi.specfile.SpecFile()
- spec.parse(self.__source_nodes[repo][name])
- return spec, repo
-
- raise Exception(_('Source package %s not found.') % name)
-
- def pkgtosrc(self, name, repo):
- if self.__pkgstosrc.has_key(repo) and self.__pkgstosrc[repo].has_key(name):
- return self.__pkgstosrc[repo][name]
-
+ def get_spec_repo(self, name, repo=None):
+ src, repo = self.sdb.get_item_repo(name, repo)
+ spec = pisi.specfile.SpecFile()
+ spec.parse(src)
+ return spec, repo
+ def pkgtosrc(self, name, repo=None):
+ return self.psdb.get_item(name, repo)
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi