pyyeti.cla.DR_Def.merge¶
- static DR_Def.merge(first, *args)[source]¶
Merge DR_Def instances together to make a new instance
- Parameters:
first (DR_Def instance) – The first DR_Def instance to merge with other instances
*args (any number of DR_Def instances) – The other DR_Def instances to merge with first
- Returns:
DR_Def instance – The merger of all input DR_Def instances
Notes
The final order of categories is as input. That is, the categories of first are first and in the order they were defined. The others are treated similarly. Note that the order can be changed via
pyyeti.ytools.reorder_dict().DR_Event.set_dr_order()can also be used to modify the final data recovery order.The
+operator can also be used to merge DR_Def instances. That is, this:drdefs_new = DR_Def.merge(drdefs1, drdefs2, drdefs3)
is equivalent to this:
drdefs_new = drdefs1 + drdefs2 + drdefs3
except calling
DR_Def.merge()directly is more efficient if there are more than two instances being merged.- Raises:
ValueError – When the there are duplicate category names.
Examples
For demonstration, create two data recovery categories using two DR_Def instances instead of just one, and them merge them together:
>>> from pyyeti import cla >>> >>> drdefs1 = cla.DR_Def() >>> @cla.DR_Def.addcat ... def _(): ... se = 101 ... name = 'atm' ... desc = 'description' ... labels = 12 ... drms = {'atm': 1} ... nondrms = {'radius': 10} ... drfunc = f"Vars[se]['{name}'] @ sol.a" ... drdefs1.add(**locals()) >>> >>> drdefs2 = cla.DR_Def() >>> @cla.DR_Def.addcat ... def _(): ... se = 102 ... name = 'dtm' ... desc = 'description' ... labels = 6 ... drms = {'dtm': 2} ... nondrms = {'station': 20} ... drfunc = f"Vars[se]['{name}'] @ sol.d" ... drdefs2.add(**locals()) >>> >>> drdefs = cla.DR_Def.merge(drdefs1, drdefs2) >>> drdefs DR_Def (...) with 2 categories: ['_vars', 'atm', 'dtm']
You can also use the
+operator:>>> drdefs = drdefs1 + drdefs2 >>> drdefs DR_Def (...) with 2 categories: ['_vars', 'atm', 'dtm']