From e3d5ecc57975b2a168bc436efd90bc3223f1b4e7 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 26 Oct 2006 08:10:35 +0000 Subject: [PATCH] Reverse the relationship between __contains__ and has_key in all cache classes since python handles the "in" operator more efficiently than a has_key method call. svn path=/main/trunk/; revision=4821 --- pym/cache/anydbm.py | 2 +- pym/cache/flat_hash.py | 2 +- pym/cache/flat_list.py | 2 +- pym/cache/metadata_overlay.py | 2 +- pym/cache/sql_template.py | 2 +- pym/cache/sqlite.py | 2 +- pym/cache/template.py | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pym/cache/anydbm.py b/pym/cache/anydbm.py index 87e448f30..a4e0003d4 100644 --- a/pym/cache/anydbm.py +++ b/pym/cache/anydbm.py @@ -63,7 +63,7 @@ class database(fs_template.FsBased): def iterkeys(self): return iter(self.__db.keys()) - def has_key(self, cpv): + def __contains__(self, cpv): return cpv in self.__db def __del__(self): diff --git a/pym/cache/flat_hash.py b/pym/cache/flat_hash.py index d4c5930c7..a8adb2205 100644 --- a/pym/cache/flat_hash.py +++ b/pym/cache/flat_hash.py @@ -98,7 +98,7 @@ class database(fs_template.FsBased): raise cache_errors.CacheCorruption(cpv, e) - def has_key(self, cpv): + def __contains__(self, cpv): return os.path.exists(os.path.join(self.location, cpv)) diff --git a/pym/cache/flat_list.py b/pym/cache/flat_list.py index 65fe5a781..85efa4c02 100644 --- a/pym/cache/flat_list.py +++ b/pym/cache/flat_list.py @@ -82,7 +82,7 @@ class database(fs_template.FsBased): raise cache_errors.CacheCorruption(cpv, e) - def has_key(self, cpv): + def __contains__(self, cpv): return os.path.exists(os.path.join(self._base, cpv)) diff --git a/pym/cache/metadata_overlay.py b/pym/cache/metadata_overlay.py index 673ba8dff..9320b0938 100644 --- a/pym/cache/metadata_overlay.py +++ b/pym/cache/metadata_overlay.py @@ -55,7 +55,7 @@ class database(template.database): else: del self.db_rw[cpv] - def has_key(self, cpv): + def __contains__(self, cpv): try: self[cpv] # validates whiteout when necessary except KeyError: diff --git a/pym/cache/sql_template.py b/pym/cache/sql_template.py index 5c8af08f8..e635616e9 100644 --- a/pym/cache/sql_template.py +++ b/pym/cache/sql_template.py @@ -196,7 +196,7 @@ class SQLDatabase(template.database): return self.con.fetchone()[0] - def has_key(self, cpv): + def __contains__(self, cpv): if not self.autocommits: try: self.commit() except self._BaseError, e: diff --git a/pym/cache/sqlite.py b/pym/cache/sqlite.py index 571eff39b..6b1a3d323 100644 --- a/pym/cache/sqlite.py +++ b/pym/cache/sqlite.py @@ -200,7 +200,7 @@ class database(fs_template.FsBased): self._db_table["packages"]["package_key"], self._db_escape_string(cpv))) - def has_key(self, cpv): + def __contains__(self, cpv): cursor = self._db_cursor cursor.execute(" ".join( ["SELECT %s FROM %s" % diff --git a/pym/cache/template.py b/pym/cache/template.py index 565e7d2ab..a628b1161 100644 --- a/pym/cache/template.py +++ b/pym/cache/template.py @@ -89,7 +89,7 @@ class database(object): raise NotImplementedError def has_key(self, cpv): - raise NotImplementedError + return cpv in self def keys(self): return tuple(self.iterkeys()) @@ -114,7 +114,7 @@ class database(object): raise NotImplementedError def __contains__(self, cpv): - return self.has_key(cpv) + raise NotImplementedError def get(self, k, x=None): try: -- 2.26.2