LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Static Public Attributes | List of all members
lsst.afw.typehandling._SimpleGenericMap.SimpleGenericMap Class Reference
Inheritance diagram for lsst.afw.typehandling._SimpleGenericMap.SimpleGenericMap:
lsst.afw.typehandling._GenericMap.MutableGenericMap lsst.afw.typehandling._GenericMap.AutoKeyMeta lsst.afw.typehandling._GenericMap.GenericMap

Public Member Functions

def fromkeys (cls, iterable, value=None)
 
def pop (self, key, default=None)
 
def __repr__ (self)
 
def __eq__ (self, other)
 
def __call__ (cls, *args, **kwargs)
 

Static Public Attributes

 setdefault = MutableMapping.setdefault
 
 update = MutableMapping.update
 
 keys = Mapping.keys
 
 values = Mapping.values
 
 items = Mapping.items
 

Detailed Description

A `dict`-like `~collections.abc.MutableMapping` for use when sharing a
map between C++ and Python.

For compatibility with C++, ``SimpleGenericMap`` 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 `~lsst.afw.typehandling.Storable` as a mixin.

As a safety precaution, `~lsst.afw.typehandling.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
:cpp:class:`shared_ptr` in C++.

Parameters
----------
mapping : `collections.abc.Mapping`, optional
iterable : iterable, optional
dtype : `type`, optional
    The type of key the map accepts. Not required if ``mapping`` or
    ``iterable`` is provided.
**kwargs
    Aside from the ``dtype`` keyword, a ``SimpleGenericMap`` takes the same
    input arguments as `dict`.

Definition at line 29 of file _SimpleGenericMap.py.

Member Function Documentation

◆ __call__()

def lsst.afw.typehandling._GenericMap.AutoKeyMeta.__call__ (   cls,
args,
**  kwargs 
)
inherited

Definition at line 135 of file _GenericMap.py.

135  def __call__(cls, *args, **kwargs): # noqa N805, non-self first param
136  if len(cls.TEMPLATE_PARAMS) != 1:
137  raise ValueError("AutoKeyMeta requires exactly one template parameter")
138  dtypeKey = cls.TEMPLATE_PARAMS[0]
139  dtype = kwargs.get(dtypeKey, None)
140 
141  # Try to infer dtype if not provided
142  if dtype is None and len(args) >= 1:
143  dtype = cls._guessKeyType(args[0])
144  if dtype is not None:
145  kwargs[dtypeKey] = dtype
146 
147  return super().__call__(*args, **kwargs)
148 

◆ __eq__()

def lsst.afw.typehandling._GenericMap.GenericMap.__eq__ (   self,
  other 
)
inherited

Definition at line 55 of file _GenericMap.py.

55  def __eq__(self, other):
56  if len(self) != len(other):
57  return False
58 
59  for key, value in self.items():
60  try:
61  if (value != other[key]):
62  return False
63  except KeyError:
64  return False
65  return True
66 

◆ __repr__()

def lsst.afw.typehandling._GenericMap.GenericMap.__repr__ (   self)
inherited

Definition at line 49 of file _GenericMap.py.

49  def __repr__(self):
50  className = type(self).__name__
51  return className + "({" + ", ".join("%r: %r" % (key, value) for key, value in self.items()) + "})"
52 
table::Key< int > type
Definition: Detector.cc:163

◆ fromkeys()

def lsst.afw.typehandling._SimpleGenericMap.SimpleGenericMap.fromkeys (   cls,
  iterable,
  value = None 
)

Definition at line 59 of file _SimpleGenericMap.py.

59  def fromkeys(cls, iterable, value=None):
60  return cls({key: value for key in iterable})
61 
62 
63 SimpleGenericMap.register(str, SimpleGenericMapS)
64 
65 
66 # pybind11-generated constructor, can only create empty map

◆ pop()

def lsst.afw.typehandling._GenericMap.MutableGenericMap.pop (   self,
  key,
  default = None 
)
inherited

Definition at line 106 of file _GenericMap.py.

106  def pop(self, key, default=None):
107  try:
108  value = self[key]
109  del self[key]
110  return value
111  except KeyError:
112  if default is not None:
113  return default
114  else:
115  raise
116 
117 
118 MutableGenericMap.register(str, MutableGenericMapS)
119 MutableMapping.register(MutableGenericMapS)
120 
121 

Member Data Documentation

◆ items

lsst.afw.typehandling._GenericMap.GenericMap.items = Mapping.items
staticinherited

Definition at line 70 of file _GenericMap.py.

◆ keys

lsst.afw.typehandling._GenericMap.GenericMap.keys = Mapping.keys
staticinherited

Definition at line 68 of file _GenericMap.py.

◆ setdefault

lsst.afw.typehandling._GenericMap.MutableGenericMap.setdefault = MutableMapping.setdefault
staticinherited

Definition at line 102 of file _GenericMap.py.

◆ update

lsst.afw.typehandling._GenericMap.MutableGenericMap.update = MutableMapping.update
staticinherited

Definition at line 103 of file _GenericMap.py.

◆ values

lsst.afw.typehandling._GenericMap.GenericMap.values = Mapping.values
staticinherited

Definition at line 69 of file _GenericMap.py.


The documentation for this class was generated from the following file: