Bases: Mixin
, MutableMapping
This class is a replacement for dict that allows Pyomo
modeling components to be used as entry keys. The
underlying mapping is based on the Python id() of the
object, which gets around the problem of hashing
subclasses of NumericValue. This class is meant for
creating mappings from Pyomo components to values. The
use of non-Pyomo components as entry keys should be
avoided.
A reference to the object is kept around as long as it
has a corresponding entry in the container, so there is
no need to worry about id() clashes.
We also override __setstate__ so that we can rebuild the
container based on possibly updated object ids after
a deepcopy or pickle.
* An instance of this class should never be
deepcopied/pickled unless it is done so along with the
components for which it contains map entries (e.g., as
part of a block). *
-
__init__(*args, **kwds)[source]
Methods
__init__ (*args, **kwds)
|
|
clear ()
|
|
get (k[,d])
|
|
items ()
|
|
keys ()
|
|
pop (k[,d])
|
If key is not found, d is returned if given, otherwise KeyError is raised. |
popitem ()
|
as a 2-tuple; but raise KeyError if D is empty. |
setdefault (k[,d])
|
|
update ([E, ]**F)
|
If E present and has a .keys() method, does: for k in E: 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 |
values ()
|
|
Attributes
Member Documentation
-
clear() → None. Remove all items from D.[source]
-
get(k[, d]) → D[k] if k in D, else d. d defaults to None.[source]
-
items() → a set-like object providing a view on D's items
-
keys() → a set-like object providing a view on D's keys
-
pop(k[, d]) → v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised.
-
popitem() → (k, v), remove and return some (key, value) pair
as a 2-tuple; but raise KeyError if D is empty.
-
setdefault(k[, d]) → D.get(k,d), also set D[k]=d if k not in D[source]
-
update([E, ]**F) → None. Update D from mapping/iterable E and F.[source]
If E present and has a .keys() method, does: for k in E: 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
-
values() → an object providing a view on D's values