MutableGenericMap#

class lsst.afw.typehandling.MutableGenericMap(*args, **kwds)#

Bases: GenericMap

An abstract MutableMapping for use when sharing a map between C++ and Python.

For compatibility with C++, MutableGenericMap has the following restrictions:

  • all keys must be of the same type

  • values must be built-in types or subclasses of lsst.afw.typehandling.Storable. Almost any user-defined class in C++ or Python can have Storable as a mixin.

As a safety precaution, Storable objects that are added from C++ may be copied when you retrieve them from Python, making it impossible to modify them in-place. This issue does not affect objects that are added from Python, or objects that are always passed by shared_ptr in C++.

Notes#

Key-type specializations of MutableGenericMap are available as, e.g., MutableGenericMap[str].

Attributes Summary

Methods Summary

pop(key[, default])

setdefault(k[,d])

update([E, ]**F)

If E present and has a .keys() method, does: for k in E.keys(): D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

Attributes Documentation

TEMPLATE_DEFAULTS = (None,)#
TEMPLATE_PARAMS = ('dtype',)#

Methods Documentation

pop(key, default=None)#
setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D#
update([E, ]**F) None.  Update D from mapping/iterable E and F.#

If E present and has a .keys() method, does: for k in E.keys(): D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v