* because of a compatibility problem with building the index, can't make

the package -> metadata change before all clients are updated and still 
have the source info . yes, i know this sounds silly. the new packagedb 
is tagged to packagedb-metadata.py
This commit is contained in:
Eray Özkural
2006-04-20 13:03:20 +00:00
parent 78878638e8
commit c2fa9891a5
2 changed files with 12 additions and 35 deletions
+2 -2
View File
@@ -12,9 +12,9 @@
# PiSi version
__version__ = "1.0.8"
__version__ = "1.0.9"
__dbversion__ = "1.0.8"
__dbversion__ = "1.0.9"
__filesdbversion__ = "1.0.5" # yes, this is the real bottleneck
__all__ = [ 'api', 'config', 'packagedb', 'installdb', 'search' ]
+10 -33
View File
@@ -16,7 +16,7 @@
# Authors: Eray Ozkural <eray@pardus.org.tr>
# Baris Metin <baris@pardus.org.tr>
# we basically store everything in MetaData
# we basically store everything in PackageInfo class
# yes, we are cheap
import os
@@ -33,7 +33,6 @@ import pisi.context as ctx
import pisi.lockeddbshelve as shelve
from pisi.itembyrepodb import ItemByRepoDB
import pisi.itembyrepodb as itembyrepodb
from pisi.metadata import MetaData
class Error(pisi.Error):
pass
@@ -59,27 +58,17 @@ class PackageDB(object):
self.d.destroy()
self.dr.destroy()
def has_metadata(self, name, repo=None, txn = None):
return self.d.has_key(name, repo, txn=txn)
def has_package(self, name, repo=None, txn = None):
return self.d.has_key(name, repo, txn=txn)
def get_metadata(self, name, repo=None, txn = None):
def get_package(self, name, repo=None, txn = None):
try:
return self.d.get_item(name, repo, txn=txn)
except pisi.itembyrepodb.NotfoundError, e:
raise Error(_('Package %s not found') % name)
def get_package(self, name, repo=None, txn = None):
return self.get_metadata(name, repo, txn).package
def get_metadata_repo(self, name, repo=None, txn = None):
return self.d.get_item_repo(name, repo, txn=txn)
def get_package_repo(self, name, repo=None, txn = None):
metadata, repo = self.get_metadata_repo(name, repo, txn=txn)
return metadata.package, repo
return self.d.get_item_repo(name, repo, txn=txn)
def which_repo(self, name, txn = None):
return self.d.which_repo(name, txn=txn)
@@ -90,18 +79,14 @@ class PackageDB(object):
else:
return []
def list_metadatas(self, repo=None, show_tracking=False):
def list_packages(self, repo=None, show_tracking=False):
return self.d.list(repo, show_tracking=show_tracking)
def list_packages(self, repo=None, show_tracking=False):
return self.list_metadatas(repo, show_tracking)
def add_metadata(self, metadata, repo, txn = None):
package_info = metadata.package
def add_package(self, package_info, repo, txn = None):
name = str(package_info.name)
def proc(txn):
self.d.add_item(name, metadata, repo, txn)
self.d.add_item(name, package_info, repo, txn)
for dep in package_info.runtimeDependencies():
dep_name = str(dep.package)
if self.dr.has_key(dep_name, None, txn):
@@ -120,22 +105,17 @@ class PackageDB(object):
for (lang, doc) in package_info.description.iteritems():
if lang in ['en', 'tr']:
pisi.search.add_doc('description', lang, package_info.name, doc, txn)
ctx.txn_proc(proc, txn)
def add_package(self, package_info, repo, txn = None):
metadata = MetaData()
metadata.package = package_info
self.add_metadata(metadata, repo, txn)
ctx.txn_proc(proc, txn)
def clear(self, txn = None):
self.d.clear()
self.dr.clear()
def remove_metadata(self, name, repo = None, txn = None):
def remove_package(self, name, repo = None, txn = None):
name = str(name)
def proc(txn):
metadata = self.d.get_item(name, repo, txn=txn)
package_info = metadata.package
package_info = self.d.get_item(name, repo, txn=txn)
self.d.remove_item(name, repo, txn=txn)
if self.dr.has_key(name, repo, txn=txn):
self.dr.remove_item(name, repo, txn=txn)
@@ -143,10 +123,7 @@ class PackageDB(object):
if type(repo)==types.StringType:
ctx.componentdb.remove_package(package_info.partOf, package_info.name, txn)
self.d.txn_proc(proc, txn)
def remove_package(self, name, repo = None, txn = None):
return self.remove_metadata(name, repo, txn)
def remove_repo(self, repo, txn = None):
def proc(txn):
self.d.remove_repo(repo, txn=txn)