MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / SimpleResultMetaData

Class SimpleResultMetaData

lib/sqlalchemy/engine/result.py:246–424  ·  view source on GitHub ↗

result metadata for in-memory collections.

Source from the content-addressed store, hash-verified

244
245
246class SimpleResultMetaData(ResultMetaData):
247 """result metadata for in-memory collections."""
248
249 __slots__ = (
250 "_keys",
251 "_keymap",
252 "_processors",
253 "_tuplefilter",
254 "_translated_indexes",
255 "_create_unique_filters",
256 "_key_to_index",
257 "_ambiguous_keys",
258 )
259
260 _keys: Sequence[str]
261
262 def __init__(
263 self,
264 keys: Sequence[str],
265 extra: Optional[Sequence[Any]] = None,
266 _processors: Optional[_ProcessorsType] = None,
267 _tuplefilter: Optional[_TupleGetterType] = None,
268 _translated_indexes: Optional[Sequence[int]] = None,
269 _create_unique_filters: Optional[
270 Callable[
271 [Any],
272 Sequence[Optional[Callable[[Any], Any]]],
273 ]
274 ] = None,
275 _ambiguous_keys: Optional[frozenset[str]] = None,
276 ):
277 self._keys = list(keys)
278 self._tuplefilter = _tuplefilter
279 self._translated_indexes = _translated_indexes
280 self._create_unique_filters = _create_unique_filters
281 if extra:
282 assert len(self._keys) == len(extra)
283 recs_names = [
284 (
285 (name,) + (extras if extras else ()),
286 (index, name, extras),
287 )
288 for index, (name, extras) in enumerate(zip(self._keys, extra))
289 ]
290 else:
291 recs_names = [
292 ((name,), (index, name, ()))
293 for index, name in enumerate(self._keys)
294 ]
295
296 self._keymap = {key: rec for keys, rec in recs_names for key in keys}
297
298 if _ambiguous_keys:
299 for name in _ambiguous_keys.intersection(self._keymap):
300 rec = self._keymap[name]
301 self._keymap[name] = (None,) + rec[1:]
302
303 self._processors = _processors

Callers 12

test_nontuple_rowMethod · 0.90
init_objectsMethod · 0.90
_for_freezeMethod · 0.85
_reduceMethod · 0.85
result_tupleFunction · 0.85
null_resultFunction · 0.85
_for_freezeMethod · 0.85
instancesFunction · 0.85

Calls

no outgoing calls