diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/persist_data.py | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/bitbake/lib/bb/persist_data.py b/bitbake/lib/bb/persist_data.py index 0ed0cd28e7..551b58a2a9 100644 --- a/bitbake/lib/bb/persist_data.py +++ b/bitbake/lib/bb/persist_data.py | |||
@@ -66,6 +66,13 @@ class SQLTable(collections.MutableMapping): | |||
66 | continue | 66 | continue |
67 | raise | 67 | raise |
68 | 68 | ||
69 | def __enter__(self): | ||
70 | self.cursor.__enter__() | ||
71 | return self | ||
72 | |||
73 | def __exit__(self, *excinfo): | ||
74 | self.cursor.__exit__(*excinfo) | ||
75 | |||
69 | def __getitem__(self, key): | 76 | def __getitem__(self, key): |
70 | data = self._execute("SELECT * from %s where key=?;" % | 77 | data = self._execute("SELECT * from %s where key=?;" % |
71 | self.table, [key]) | 78 | self.table, [key]) |
@@ -104,35 +111,40 @@ class SQLTable(collections.MutableMapping): | |||
104 | 111 | ||
105 | def __iter__(self): | 112 | def __iter__(self): |
106 | data = self._execute("SELECT key FROM %s;" % self.table) | 113 | data = self._execute("SELECT key FROM %s;" % self.table) |
107 | for row in data: | 114 | return (row[0] for row in data) |
108 | yield row[0] | ||
109 | 115 | ||
110 | def __lt__(self, other): | 116 | def __lt__(self, other): |
111 | if not isinstance(other, Mapping): | 117 | if not isinstance(other, Mapping): |
112 | raise NotImplemented | 118 | raise NotImplemented |
113 | 119 | ||
114 | def iteritems(self): | 120 | return len(self) < len(other) |
115 | data = self._execute("SELECT * FROM %s;" % self.table) | 121 | |
116 | for row in data: | 122 | def values(self): |
117 | yield row[0], row[1] | 123 | return list(self.itervalues()) |
118 | 124 | ||
119 | def itervalues(self): | 125 | def itervalues(self): |
120 | data = self._execute("SELECT value FROM %s;" % self.table) | 126 | data = self._execute("SELECT value FROM %s;" % self.table) |
121 | for row in data: | 127 | return (row[0] for row in data) |
122 | yield row[0] | ||
123 | 128 | ||
124 | def has_key(self, key): | 129 | def items(self): |
125 | return key in self | 130 | return list(self.iteritems()) |
131 | |||
132 | def iteritems(self): | ||
133 | return self._execute("SELECT * FROM %s;" % self.table) | ||
126 | 134 | ||
127 | def clear(self): | 135 | def clear(self): |
128 | self._execute("DELETE FROM %s;" % self.table) | 136 | self._execute("DELETE FROM %s;" % self.table) |
129 | 137 | ||
138 | def has_key(self, key): | ||
139 | return key in self | ||
140 | |||
130 | 141 | ||
131 | class PersistData(object): | 142 | class PersistData(object): |
132 | """Deprecated representation of the bitbake persistent data store""" | 143 | """Deprecated representation of the bitbake persistent data store""" |
133 | def __init__(self, d): | 144 | def __init__(self, d): |
134 | warnings.warn("Use of PersistData will be deprecated in the future", | 145 | warnings.warn("Use of PersistData is deprecated. Please use " |
135 | category=PendingDeprecationWarning, | 146 | "persist(domain, d) instead.", |
147 | category=DeprecationWarning, | ||
136 | stacklevel=2) | 148 | stacklevel=2) |
137 | 149 | ||
138 | self.data = persist(d) | 150 | self.data = persist(d) |