MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / _add_getter

Method _add_getter

lib/sqlalchemy/sql/lambdas.py:1418–1436  ·  view source on GitHub ↗
(self, key, getter_fn)

Source from the content-addressed store, hash-verified

1416 return self._sa__add_getter(key, operator.itemgetter)
1417
1418 def _add_getter(self, key, getter_fn):
1419 bind_paths = object.__getattribute__(self, "_bind_paths")
1420
1421 bind_path_key = (key, getter_fn)
1422 if bind_path_key in bind_paths:
1423 return bind_paths[bind_path_key]
1424
1425 getter = getter_fn(key)
1426 elem = object.__getattribute__(self, "_to_evaluate")
1427 value = getter(elem)
1428
1429 rolled_down_value = AnalyzedCode._roll_down_to_literal(value)
1430
1431 if coercions._deep_is_literal(rolled_down_value):
1432 wrapper = PyWrapper(self._sa_fn, key, value, getter=getter)
1433 bind_paths[bind_path_key] = wrapper
1434 return wrapper
1435 else:
1436 return value
1437
1438
1439@inspection._inspects(LambdaElement)

Callers

nothing calls this directly

Calls 3

PyWrapperClass · 0.85
_roll_down_to_literalMethod · 0.80
__getattribute__Method · 0.45

Tested by

no test coverage detected