diff options
author | Chris Larson <chris_larson@mentor.com> | 2011-04-04 09:36:45 -0700 |
---|---|---|
committer | Chris Larson <chris_larson@mentor.com> | 2011-04-05 17:23:07 -0700 |
commit | 1190406c526c7bb7cf415867be83e0403812a7dd (patch) | |
tree | ede0aaec85199ab556df6d35d0c957a36a3b6ca7 /lib/bb/persist_data.py | |
parent | d6fba8bad6277eb2a19e94f93a7a4baf74b29ef3 (diff) | |
download | bitbake-1190406c526c7bb7cf415867be83e0403812a7dd.tar.gz |
persist_data: implement comparison, same as dict
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Diffstat (limited to 'lib/bb/persist_data.py')
-rw-r--r-- | lib/bb/persist_data.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/bb/persist_data.py b/lib/bb/persist_data.py index af96b76f4..03adc7cc5 100644 --- a/lib/bb/persist_data.py +++ b/lib/bb/persist_data.py @@ -26,7 +26,8 @@ import logging import os.path import sys import warnings -import bb.msg, bb.data, bb.utils +from bb.compat import total_ordering +from collections import Mapping try: import sqlite3 @@ -43,6 +44,7 @@ if hasattr(sqlite3, 'enable_shared_cache'): sqlite3.enable_shared_cache(True) +@total_ordering class SQLTable(collections.MutableMapping): """Object representing a table/domain in the database""" def __init__(self, cursor, table): @@ -102,6 +104,12 @@ class SQLTable(collections.MutableMapping): data = self._execute("SELECT key FROM %s;" % self.table) return (row[0] for row in data) + def __lt__(self, other): + if not isinstance(other, Mapping): + raise NotImplemented + + return len(self) < len(other) + def values(self): return list(self.itervalues()) @@ -175,6 +183,7 @@ def connect(database): def persist(domain, d): """Convenience factory for SQLTable objects based upon metadata""" + import bb.data, bb.utils cachedir = (bb.data.getVar("PERSISTENT_DIR", d, True) or bb.data.getVar("CACHE", d, True)) if not cachedir: |