MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _dict_decorators

Function _dict_decorators

lib/sqlalchemy/orm/collections.py:1219–1320  ·  view source on GitHub ↗

Tailored instrumentation wrappers for any dict-like mapping class.

()

Source from the content-addressed store, hash-verified

1217
1218
1219def _dict_decorators() -> Dict[str, Callable[[_FN], _FN]]:
1220 """Tailored instrumentation wrappers for any dict-like mapping class."""
1221
1222 def _tidy(fn):
1223 fn._sa_instrumented = True
1224 fn.__doc__ = getattr(dict, fn.__name__).__doc__
1225
1226 def __setitem__(fn):
1227 def __setitem__(self, key, value, _sa_initiator=None):
1228 if key in self:
1229 __del(self, self[key], _sa_initiator, key)
1230 value = __set(self, value, _sa_initiator, key)
1231 fn(self, key, value)
1232
1233 _tidy(__setitem__)
1234 return __setitem__
1235
1236 def __delitem__(fn):
1237 def __delitem__(self, key, _sa_initiator=None):
1238 if key in self:
1239 __del(self, self[key], _sa_initiator, key)
1240 fn(self, key)
1241
1242 _tidy(__delitem__)
1243 return __delitem__
1244
1245 def clear(fn):
1246 def clear(self):
1247 for key in self:
1248 __del(self, self[key], None, key)
1249 fn(self)
1250
1251 _tidy(clear)
1252 return clear
1253
1254 def pop(fn):
1255 def pop(self, key, default=NO_ARG):
1256 __before_pop(self)
1257 _to_del = key in self
1258 if default is NO_ARG:
1259 item = fn(self, key)
1260 else:
1261 item = fn(self, key, default)
1262 if _to_del:
1263 __del(self, item, None, key)
1264 return item
1265
1266 _tidy(pop)
1267 return pop
1268
1269 def popitem(fn):
1270 def popitem(self):
1271 __before_pop(self)
1272 item = fn(self)
1273 __del(self, item[1], None, 1)
1274 return item
1275
1276 _tidy(popitem)

Callers 1

collections.pyFile · 0.85

Calls 3

localsFunction · 0.85
copyMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected