1 from __future__
import absolute_import
2 from .Mixins
import PrintOptions, _SimpleParameterTypeBase, _ParameterTypeBase, _Parameterizable, _ConfigureComponent, _Labelable, _TypedParameterizable, _Unlabelable, _modifyParametersFromDict
3 from .Mixins
import _ValidatingParameterListBase, specialImportRegistry
4 from .Mixins
import saveOrigin
5 from .ExceptionHandling
import format_typename, format_outerframe
6 from past.builtins
import long
11 from six.moves
import builtins
14 """Class type for 'untracked' to allow nice syntax""" 15 __name__ =
"untracked" 18 """used to set a 'param' parameter to be 'untracked'""" 19 param.setIsTracked(
False)
22 """A factory which allows syntax untracked.name(value) to construct an 23 instance of 'name' class which is set to be untracked""" 24 if name ==
"__bases__":
raise AttributeError
26 def __init__(self,name):
29 param = globals()[self.
name](*value,**params)
30 return _Untracked.__call__(param)
39 return isinstance(value,int)
42 """only used for cfg-parsing""" 43 if len(value) >1
and '0x' == value[:2]:
49 return self.
value()!=0
55 return ((isinstance(value,int)
and value >= 0)
or 56 (isinstance(value,long)
and value >= 0)
and value <= 0xFFFFFFFF)
59 """only used for cfg-parsing""" 60 if len(value) >1
and '0x' == value[:2]:
61 return uint32(long(value,16))
66 return self.
value()!=0
73 return isinstance(value,int)
or (
74 isinstance(value,long)
and 75 (-0x7FFFFFFFFFFFFFFF < value <= 0x7FFFFFFFFFFFFFFF) )
78 """only used for cfg-parsing""" 79 if len(value) >1
and '0x' == value[:2]:
80 return uint32(long(value,16))
81 return int64(long(value))
85 return self.
value()!=0
92 return ((isinstance(value,int)
and value >= 0)
or 93 (isinstance(value,long)
and value >= 0)
and value <= 0xFFFFFFFFFFFFFFFF)
96 """only used for cfg-parsing""" 97 if len(value) >1
and '0x' == value[:2]:
98 return uint32(long(value,16))
103 return self.
value()!=0
110 return isinstance(value, (int, long, float))
113 """only used for cfg-parsing""" 118 return self.
value()!=0.
120 return double._pythonValue(self.
_value)
123 if math.isinf(value):
125 return "float('inf')" 127 return "-float('inf')" 128 if math.isnan(value):
129 return "float('nan')" 137 return (isinstance(value,type(
False))
or isinstance(value,type(
True)))
140 """only used for cfg-parsing""" 141 if value.lower()
in (
'true',
't',
'on',
'yes',
'1'):
143 if value.lower()
in (
'false',
'f',
'off',
'no',
'0'):
146 return bool(builtins.bool(eval(value)))
149 raise RuntimeError(
'can not make bool from string '+value)
163 return isinstance(value,type(
''))
172 if sys.version_info >= (3, 0):
174 t=codecs.escape_encode(value.encode(
'utf-8'))
175 value = t[0].
decode(
'utf-8')
177 value = value.encode(
"string-escape")
181 value=value.replace(
'\\x0',
'\\')
187 """only used for cfg-parsing""" 194 parameterSet.addString(self.
isTracked(), myname, value)
196 return len(self.
value()) !=0
202 if isinstance(run, str):
215 raise RuntimeError(
'EventID ctor must have 2 or 3 arguments')
227 parts = value.split(
":")
241 parameterSet.addEventID(self.
isTracked(), myname, self.
cppID(parameterSet))
246 super(LuminosityBlockID,self).
__init__()
247 if isinstance(run, str):
262 """only used for cfg-parsing""" 263 parts = value.split(
":")
270 parameterSet.addLuminosityBlockID(self.
isTracked(), myname, self.
cppID(parameterSet))
274 def __init__(self, start, startSub=None, end=None, endSub=None):
275 super(LuminosityBlockRange,self).
__init__()
276 if isinstance(start, str):
305 """only used for cfg-parsing""" 306 value = value.replace(
' ',
'')
307 parts = value.split(
"-")
308 startParts = parts[0].
split(
":")
310 endParts = parts[1].
split(
":")
312 endParts = parts[0].
split(
":")
314 if startParts[1].lower() ==
"0":
316 elif startParts[1].lower() ==
"max":
318 elif startParts[1].lower() ==
"min":
320 if endParts[1].lower() ==
"max":
322 elif endParts[1].lower() ==
"min":
325 int(endParts[0]),
int(endParts[1]))
332 parameterSet.addLuminosityBlockRange(self.
isTracked(), myname, self.
cppID(parameterSet))
337 if isinstance(start, str):
360 raise RuntimeError(
'EventRange ctor must have 4 or 6 arguments')
383 """only used for cfg-parsing""" 384 value = value.replace(
' ',
'')
385 parts = value.split(
"-")
386 startParts = parts[0].
split(
":")
388 endParts = parts[1].
split(
":")
390 endParts = parts[0].
split(
":")
396 if s != e
or s < 2
or s > 3:
397 raise RuntimeError(
'EventRange ctor must have 4 or 6 arguments')
399 if startParts[i].lower() ==
"0":
401 elif startParts[i].lower() ==
"max":
403 elif startParts[i].lower() ==
"min":
405 if endParts[i].lower() ==
"max":
407 elif endParts[i].lower() ==
"min":
410 blumi = startParts[1]
412 bevent = startParts[2]
417 bevent = startParts[1]
420 raise RuntimeError(
'EventRange ctor must have 4 or 6 arguments')
432 parameterSet.addEventRange(self.
isTracked(), myname, self.
cppID(parameterSet))
435 def __init__(self,moduleLabel,productInstanceLabel='',processName=''):
437 self.
_setValues(moduleLabel, productInstanceLabel, processName)
444 moduleLabel = property(getModuleLabel,setModuleLabel,
"module label for the product")
451 productInstanceLabel = property(getProductInstanceLabel,setProductInstanceLabel,
"product instance label for the product")
458 processName = property(getProcessName,setProcessName,
"process name for the product")
461 """When used as the process name this value will make the framework skip the current process 462 when looking backwards in time for the data product. 464 return "@skipCurrentProcess" 467 """When used as the process name this value will make the framework use the current process 468 as the process when looking for the data product. 470 return "@currentProcess" 483 if cfgValue ==
'\"\"':
485 colonedValue =
"\""+cfgValue+
"\"" 487 return colonedValue.replace(
":",
"\",\"")
493 (other.__moduleLabel,other.__productInstance,other.__processName))
496 (other.__moduleLabel,other.__productInstance,other.__processName))
499 (other.__moduleLabel,other.__productInstance,other.__processName))
502 (other.__moduleLabel,other.__productInstance,other.__processName))
505 (other.__moduleLabel,other.__productInstance,other.__processName))
508 (other.__moduleLabel,other.__productInstance,other.__processName))
512 "Return the string rep" 516 return value.configValue()
519 parts = string.split(
":")
524 def _setValues(self,moduleLabel,productInstanceLabel='',processName=''):
528 if -1 != moduleLabel.find(
":"):
529 toks = moduleLabel.split(
":")
541 parameterSet.addInputTag(self.
isTracked(), myname, self.
cppTag(parameterSet))
553 moduleLabel = property(getModuleLabel,setModuleLabel,
"module label for the product")
560 dataLabel = property(getDataLabel,setDataLabel,
"data label for the product")
564 result +=
':' + self.
__data 571 if cfgValue ==
'\"\"':
573 colonedValue =
"\""+cfgValue+
"\"" 575 return colonedValue.replace(
":",
"\",\"")
592 "Return the string rep" 596 return value.configValue()
599 parts = string.split(
":")
607 if -1 != moduleLabel.find(
":"):
610 toks = moduleLabel.split(
":")
615 raise RuntimeError(
"an ESInputTag was passed the value'"+moduleLabel+
"' which contains more than one ':'")
622 parameterSet.addESInputTag(self.
isTracked(), myname, self.
cppTag(parameterSet))
626 super(FileInPath,self).
__init__(value)
631 return string.formatValueForConfig(self.
value())
634 return string.formatValueForConfig(value)
639 parameterSet.addNewFileInPath( self.
isTracked(), myname, self.
value() )
643 _ParameterTypeBase.__init__(self)
644 _TypedParameterizable.__init__(self,type_,*arg,**args)
655 return _TypedParameterizable.dumpPython(self, options)
658 return copy.copy(self)
660 proc._placePSet(name,self)
662 return object.__str__(self)
667 _ParameterTypeBase.__init__(self)
668 _Parameterizable.__init__(self,*arg,**args)
672 """Returns true if this PSet is actually a reference to a different PSet 674 return hasattr(self,
"refToPSet_")
682 param = getattr(self,name)
684 config+=options.indentation()+param.configTypeName()+
' '+name+
' = '+param.configValue(options)+
'\n' 686 config += options.indentation()+
'}\n' 689 return self.
pythonTypeName()+
"(\n"+_Parameterizable.dumpPython(self, options)+options.indentation()+
")" 693 returnValue =
PSet(**myparams)
694 returnValue.setIsTracked(self.
isTracked())
695 returnValue._isModified =
False 696 returnValue._isFrozen =
False 699 return copy.copy(self)
701 proc._placePSet(name,self)
703 return object.__str__(self)
705 newpset = parameterSet.newPSet()
707 parameterSet.addPSet(self.
isTracked(), myname, newpset)
710 ref = parameterSet.getTopPSet_(self.refToPSet_.value())
711 ref.insertContentsInto(parameterSet)
718 super(vint32,self).
__init__(*arg,**args)
722 return int32._isValid(item)
725 return vint32(*_ValidatingParameterListBase._itemsFromStrings(value,int32._valueFromString))
733 super(vuint32,self).
__init__(*arg,**args)
736 return uint32._isValid(item)
739 return vuint32(*_ValidatingParameterListBase._itemsFromStrings(value,uint32._valueFromString))
747 super(vint64,self).
__init__(*arg,**args)
750 return int64._isValid(item)
753 return vint64(*_ValidatingParameterListBase._itemsFromStrings(value,int64._valueFromString))
761 super(vuint64,self).
__init__(*arg,**args)
764 return uint64._isValid(item)
767 return vuint64(*_ValidatingParameterListBase._itemsFromStrings(value,vuint64._valueFromString))
775 super(vdouble,self).
__init__(*arg,**args)
778 return double._isValid(item)
781 return vdouble(*_ValidatingParameterListBase._itemsFromStrings(value,double._valueFromString))
785 return double._pythonValue(item)
792 super(vbool,self).
__init__(*arg,**args)
795 return bool._isValid(item)
798 return vbool(*_ValidatingParameterListBase._itemsFromStrings(value,bool._valueFromString))
806 super(vstring,self).
__init__(*arg,**args)
810 return string._isValid(item)
812 return string.formatValueForConfig(item)
815 return vstring(*_ValidatingParameterListBase._itemsFromStrings(value,string._valueFromString))
821 super(VLuminosityBlockID,self).
__init__(*arg,**args)
824 return LuminosityBlockID._isValid(item)
826 return LuminosityBlockID.formatValueForConfig(item)
828 return item.dumpPython(options)
831 return VLuminosityBlockID(*_ValidatingParameterListBase._itemsFromStrings(value,LuminosityBlockID._valueFromString))
836 if isinstance(item, str):
837 item = LuminosityBlockID._valueFromString(item)
838 cppIDs.append(item.cppID(parameterSet))
839 parameterSet.addVLuminosityBlockID(self.
isTracked(), myname, cppIDs)
844 super(VInputTag,self).
__init__(*arg,**args)
847 return InputTag._isValid(item)
850 if isinstance(item, str):
853 return InputTag.formatValueForConfig(item)
856 if isinstance(item, str):
859 return item.dumpPython(options)
862 return VInputTag(*_ValidatingParameterListBase._itemsFromStrings(value,InputTag._valueFromString))
867 if isinstance(item, str):
869 cppTags.append(item.cppTag(parameterSet))
870 parameterSet.addVInputTag(self.
isTracked(), myname, cppTags)
874 super(VESInputTag,self).
__init__(*arg,**args)
877 return ESInputTag._isValid(item)
880 if isinstance(item, str):
883 return ESInputTag.formatValueForConfig(item)
886 if isinstance(item, str):
889 return item.dumpPython(options)
892 return VESInputTag(*_ValidatingParameterListBase._itemsFromStrings(value,ESInputTag._valueFromString))
897 if isinstance(item, str):
899 cppTags.append(item.cppTag(parameterSet))
900 parameterSet.addVESInputTag(self.
isTracked(), myname, cppTags)
904 super(VEventID,self).
__init__(*arg,**args)
907 return EventID._isValid(item)
909 return EventID.formatValueForConfig(item)
912 if isinstance(item, str):
915 return item.dumpPython(options)
918 return VEventID(*_ValidatingParameterListBase._itemsFromStrings(value,EventID._valueFromString))
923 if isinstance(item, str):
924 item = EventID._valueFromString(item)
925 cppIDs.append(item.cppID(parameterSet))
926 parameterSet.addVEventID(self.
isTracked(), myname, cppIDs)
931 super(VLuminosityBlockRange,self).
__init__(*arg,**args)
934 return LuminosityBlockRange._isValid(item)
936 return LuminosityBlockRange.formatValueForConfig(item)
938 if isinstance(item, str):
941 return item.dumpPython(options)
944 return VLuminosityBlockRange(*_ValidatingParameterListBase._itemsFromStrings(value,VLuminosityBlockRange._valueFromString))
949 if isinstance(item, str):
950 item = LuminosityBlockRange._valueFromString(item)
951 cppIDs.append(item.cppID(parameterSet))
952 parameterSet.addVLuminosityBlockRange(self.
isTracked(), myname, cppIDs)
957 super(VEventRange,self).
__init__(*arg,**args)
960 return EventRange._isValid(item)
962 return EventRange.formatValueForConfig(item)
964 if isinstance(item, str):
967 return item.dumpPython(options)
970 return VEventRange(*_ValidatingParameterListBase._itemsFromStrings(value,VEventRange._valueFromString))
975 if isinstance(item, str):
976 item = EventRange._valueFromString(item)
977 cppIDs.append(item.cppID(parameterSet))
978 parameterSet.addVEventRange(self.
isTracked(), myname, cppIDs)
983 super(VPSet,self).
__init__(*arg,**args)
987 return isinstance(item, PSet)
and PSet._isValid(item)
989 return PSet.configValue(item, options)
991 return PSet.dumpPython(item,options)
993 return copy.copy(self)
995 proc._placeVPSet(name,self)
998 parametersets =
list()
1000 newparameterset = parameterSet.newPSet()
1001 pset.insertContentsInto(newparameterset)
1002 parametersets.append(newparameterset)
1003 parameterSet.addVPSet(self.
isTracked(), myname, parametersets)
1008 """Extracts all PSets from the module and makes C++ equivalent 1011 if not isinstance(module,dict):
1012 module =
dict( ( (x,getattr(module,x))
for x
in dir(module)) )
1014 for x,p
in six.iteritems(module):
1015 if isinstance(p,PSet):
1016 p.insertInto(cppPSetMaker,x)
1024 v.setIsTracked(tracked)
1025 setattr(self.
pset,label,v)
1028 v.setIsTracked(tracked)
1029 setattr(self.
pset,label,v)
1032 v.setIsTracked(tracked)
1033 setattr(self.
pset,label,v)
1036 v.setIsTracked(tracked)
1037 setattr(self.
pset,label,v)
1040 v.setIsTracked(tracked)
1041 setattr(self.
pset,label,v)
1044 v.setIsTracked(tracked)
1045 setattr(self.
pset,label,v)
1048 v.setIsTracked(tracked)
1049 setattr(self.
pset,label,v)
1051 v = copy.deepcopy(value)
1052 v.setIsTracked(tracked)
1053 setattr(self.
pset,label,v)
1055 v = copy.deepcopy(value)
1056 v.setIsTracked(tracked)
1057 setattr(self.
pset,label,v)
1059 v = copy.deepcopy(value)
1060 v.setIsTracked(tracked)
1061 setattr(self.
pset,label,v)
1063 v = copy.deepcopy(value)
1064 v.setIsTracked(tracked)
1065 setattr(self.
pset,label,v)
1067 v = copy.deepcopy(value)
1068 v.setIsTracked(tracked)
1069 setattr(self.
pset,label,v)
1071 v = copy.deepcopy(value)
1072 v.setIsTracked(tracked)
1073 setattr(self.
pset,label,v)
1076 v.setIsTracked(tracked)
1077 setattr(self.
pset,label,v)
1080 v.setIsTracked(tracked)
1081 setattr(self.
pset,label,v)
1084 v.setIsTracked(tracked)
1085 setattr(self.
pset,label,v)
1088 v.setIsTracked(tracked)
1089 setattr(self.
pset,label,v)
1092 v.setIsTracked(tracked)
1093 setattr(self.
pset,label,v)
1096 v.setIsTracked(tracked)
1097 setattr(self.
pset,label,v)
1100 v.setIsTracked(tracked)
1101 setattr(self.
pset,label,v)
1104 v.setIsTracked(tracked)
1105 setattr(self.
pset,label,v)
1108 v.setIsTracked(tracked)
1109 setattr(self.
pset,label,v)
1112 v.setIsTracked(tracked)
1113 setattr(self.
pset,label,v)
1116 v.setIsTracked(tracked)
1117 setattr(self.
pset,label,v)
1120 v.setIsTracked(tracked)
1121 setattr(self.
pset,label,v)
1124 v.setIsTracked(tracked)
1125 setattr(self.
pset,label,v)
1128 v.setIsTracked(tracked)
1129 setattr(self.
pset,label,v)
1131 return InputTag(label,instance,process)
1147 value.pset.setIsTracked(tracked)
1148 setattr(self.
pset,label,value.pset)
1152 v.extend([x.pset
for x
in value])
1153 v.setIsTracked(tracked)
1154 setattr(self.
pset,label,v)
1158 module.insertInto(convert,name)
1159 return getattr(convert.pset,name)
1162 returnValue =
VPSet()
1163 for name,module
in six.iteritems(kw):
1170 super(EDAlias,self).
__init__(**kargs)
1173 returnValue = EDAlias.__new__(type(self))
1175 if len(myparams) == 0
and len(params)
and len(args):
1180 returnValue.__init__(*args, **myparams)
1185 proc._placeAlias(name,self)
1194 newpset = parameterSet.newPSet()
1195 newpset.addString(
True,
"@module_label", myname)
1196 newpset.addString(
True,
"@module_type", type(self).__name__)
1197 newpset.addString(
True,
"@module_edm_type", type(self).__name__)
1199 param = getattr(self,name)
1200 param.insertInto(newpset, name)
1204 specialImportRegistry.registerUse(self)
1205 resultList = [
'cms.EDAlias(']
1208 resultList[-1] = resultList[-1] + separator
1210 param = self.__dict__[name]
1212 resultList.append(options.indentation()+name+
' = '+param.dumpPython(options))
1214 return '\n'.
join(resultList)+
'\n)' 1216 if __name__ ==
"__main__":
1248 class testTypes(unittest.TestCase):
1251 self.assertEqual(i.value(),1)
1253 self.assertRaises(ValueError,int32,
"i")
1254 i = int32._valueFromString(
"0xA")
1255 self.assertEqual(i.value(),10)
1256 self.assert_(
not int32(0))
1260 self.assertEqual(i.value(),1)
1263 self.assertEqual(i.value(),0)
1265 self.assertRaises(ValueError,uint32,
"i")
1266 self.assertRaises(ValueError,uint32,-1)
1267 i = uint32._valueFromString(
"0xA")
1268 self.assertEqual(i.value(),10)
1272 self.assertEqual(d.value(),1)
1273 self.assertEqual(d.pythonValue(),
'1')
1275 self.assertEqual(d,
float(
'Inf'))
1276 self.assertEqual(d.pythonValue(),
"float('inf')")
1278 self.assertEqual(d,-
float(
'Inf'))
1279 self.assertEqual(d.pythonValue(),
"-float('inf')")
1281 self.assert_(math.isnan(d.value()))
1282 self.assertEqual(d.pythonValue(),
"float('nan')")
1285 self.assertEqual(d.value(),[1])
1286 self.assertEqual(d.dumpPython(),
'cms.vdouble(1)')
1288 self.assertEqual(d,[
float(
'inf')])
1289 self.assertEqual(d.dumpPython(),
"cms.vdouble(float('inf'))")
1291 self.assertEqual(d,[-
float(
'inf')])
1292 self.assertEqual(d.dumpPython(),
"cms.vdouble(-float('inf'))")
1294 self.assert_(math.isnan(d[0]))
1295 self.assertEqual(d.dumpPython(),
"cms.vdouble(float('nan'))")
1298 self.assertEqual(len(v),0)
1301 self.assertEqual(len(v),1)
1302 self.assertEqual(v[0],1)
1306 self.assertEqual(v[1],3)
1308 self.assertEqual(v[1],4)
1310 self.assertEqual(len(v),4)
1311 self.assertEqual([1,5,4,2],
list(v))
1312 self.assertEqual(repr(v),
"cms.vint32(1, 5, 4, 2)")
1313 self.assertRaises(TypeError,v.append,(
'blah'))
1316 self.assertEqual(b.value(),
True)
1319 self.assertEqual(b.value(),
False)
1321 b = bool._valueFromString(
"2")
1322 self.assertEqual(b.value(),
True)
1323 self.assertEqual(repr(b),
"cms.bool(True)")
1324 self.assertRaises(ValueError,
lambda:
bool(
"False"))
1326 s=
string(
'this is a test')
1327 self.assertEqual(s.value(),
'this is a test')
1328 self.assertEqual(repr(s),
"cms.string(\'this is a test\')")
1331 self.assertEqual(s.value(),
'\0')
1332 self.assertEqual(s.configValue(),
"'\\0'")
1334 self.assertEqual(s2.value(),
'')
1335 self.assert_(
not s2)
1337 a =
vstring(
"",
"Barack",
"John",
"Sarah",
"Joe")
1338 self.assertEqual(len(a), 5)
1339 self.assertEqual(a[0],
"")
1340 self.assertEqual(a[3],
"Sarah")
1344 p=untracked(
int32(1))
1345 self.assertRaises(TypeError,untracked,(1),{})
1346 self.failIf(p.isTracked())
1347 p=untracked.int32(1)
1348 self.assertEqual(repr(p),
"cms.untracked.int32(1)")
1349 self.assertRaises(TypeError,untracked,(1),{})
1350 self.failIf(p.isTracked())
1351 p=untracked.vint32(1,5,3)
1352 self.assertRaises(TypeError,untracked,(1,5,3),{})
1353 self.failIf(p.isTracked())
1354 p = untracked.PSet(b=
int32(1))
1355 self.failIf(p.isTracked())
1356 self.assertEqual(p.b.value(),1)
1358 it = InputTag._valueFromString(
"label::proc")
1359 self.assertEqual(it.getModuleLabel(),
"label")
1360 self.assertEqual(it.getProductInstanceLabel(),
"")
1361 self.assertEqual(it.getProcessName(),
"proc")
1364 it=
InputTag(
'label',processName=
'proc')
1365 self.assertEqual(it.getModuleLabel(),
"label")
1366 self.assertEqual(it.getProductInstanceLabel(),
"")
1367 self.assertEqual(it.getProcessName(),
"proc")
1368 self.assertEqual(repr(it),
"cms.InputTag(\"label\",\"\",\"proc\")")
1370 self.assertEqual(repr(vit),
"cms.VInputTag(cms.InputTag(\"label1\"), cms.InputTag(\"label2\"))")
1371 vit =
VInputTag(
"label1",
"label2:label3")
1372 self.assertEqual(repr(vit),
"cms.VInputTag(\"label1\", \"label2:label3\")")
1373 it=
InputTag(
'label',processName=InputTag.skipCurrentProcess())
1374 self.assertEqual(it.getModuleLabel(),
"label")
1375 self.assertEqual(it.getProductInstanceLabel(),
"")
1376 self.assertEqual(it.getProcessName(),
"@skipCurrentProcess")
1377 it=
InputTag(
'label',
'x',InputTag.skipCurrentProcess())
1378 self.assertEqual(it.getModuleLabel(),
"label")
1379 self.assertEqual(it.getProductInstanceLabel(),
"x")
1380 self.assertEqual(it.getProcessName(),
"@skipCurrentProcess")
1381 it =
InputTag(
"label:in:@skipCurrentProcess")
1382 self.assertEqual(it.getModuleLabel(),
"label")
1383 self.assertEqual(it.getProductInstanceLabel(),
"in")
1384 self.assertEqual(it.getProcessName(),
"@skipCurrentProcess")
1387 self.assertEqual(a.isModified(),
False)
1388 a.setModuleLabel(
"a")
1389 self.assertEqual(a.isModified(),
False)
1390 a.setModuleLabel(
"b")
1391 self.assertEqual(a.isModified(),
True)
1393 a.setProductInstanceLabel(
"b")
1394 self.assertEqual(a.isModified(),
True)
1396 a.setProcessName(
"b")
1397 self.assertEqual(a.isModified(),
True)
1400 self.assertEqual(a.isModified(),
True)
1402 it = ESInputTag._valueFromString(
"label:data")
1403 self.assertEqual(it.getModuleLabel(),
"label")
1404 self.assertEqual(it.getDataLabel(),
"data")
1408 self.assertEqual(it.getModuleLabel(),
"")
1409 self.assertEqual(it.getDataLabel(),
"data")
1410 self.assertEqual(repr(it),
"cms.ESInputTag(\"\",\"data\")")
1412 self.assertEqual(repr(vit),
"cms.VESInputTag(cms.ESInputTag(\"label1\"), cms.ESInputTag(\"label2\"))")
1414 self.assertEqual(repr(vit),
"cms.VESInputTag(\"label1\", \"label2:label3\")")
1418 self.assertRaises(ValueError, PSet,
"foo")
1419 self.assertRaises(TypeError, PSet, foo =
"bar")
1420 self.assertEqual(repr(p1),
"cms.PSet(\n a = cms.PSet(\n b = cms.int32(1)\n ),\n anInt = cms.int32(1)\n)")
1423 self.assertEqual(repr(vp1),
"cms.VPSet(cms.PSet(\n i = cms.int32(2)\n))")
1424 self.assert_(p1.hasParameter([
'a',
'b']))
1425 self.failIf(p1.hasParameter([
'a',
'c']))
1426 self.assertEqual(p1.getParameter([
'a',
'b']).
value(), 1)
1428 p3 = untracked.PSet(i =
int32(1), ui=untracked.int32(2), a =
PSet(b = untracked.int32(1)), b = untracked.PSet(b =
int32(1)))
1430 self.assertFalse(p4.isTracked())
1431 self.assert_(p4.i.isTracked())
1432 self.assertFalse(p4.ui.isTracked())
1433 self.assert_(p4.a.isTracked())
1434 self.assertFalse(p4.b.isTracked())
1435 self.assertFalse(p4.a.b.isTracked())
1436 self.assert_(p4.b.b.isTracked())
1437 p4 = p3.clone( i =
None, b =
dict(b = 5))
1438 self.assertEqual(p3.i.value(), 1)
1439 self.assertEqual(hasattr(p4,
"i"),
False)
1440 self.assertEqual(p3.b.b.value(), 1)
1441 self.assertEqual(p4.b.b.value(), 5)
1442 self.assertEqual(p4.a.b.value(), 1)
1443 self.assertEqual(p4.ui.value(), 2)
1445 self.assertRaises(TypeError, p4.clone,
dict(b =
None))
1446 self.assertRaises(TypeError, p4.clone, [])
1447 self.assertRaises(TypeError, p4.clone, 42)
1450 self.assertEqual(len(p1),2)
1451 self.assertEqual(p1[0].anInt.value(), 1)
1452 self.assertEqual(p1[1].anInt.value(), 2)
1453 self.assertRaises(TypeError,
lambda :
VPSet(3))
1454 self.assertRaises(TypeError,
lambda :
VPSet(
int32(3)))
1455 self.assertRaises(SyntaxError,
lambda :
VPSet(foo=
PSet()))
1458 self.assert_(hasattr(aliasfoo2,
"foo2"))
1460 self.assert_(
not hasattr(aliasfoo2,
"foo2"))
1461 self.assert_(
"foo2" not in aliasfoo2.parameterNames_())
1464 aliasfoo3 = aliasfoo2.clone(
1465 foo2 = {0:
dict(type =
"Foo4")},
1468 self.assertTrue(hasattr(aliasfoo3,
"foo2"))
1469 self.assertTrue(hasattr(aliasfoo3,
"foo3"))
1470 self.assertEqual(aliasfoo3.foo2[0].type,
"Foo4")
1471 self.assertEqual(aliasfoo3.foo3[0].type,
"Foo3")
1473 aliasfoo4 = aliasfoo3.clone(foo2 =
None)
1474 self.assertFalse(hasattr(aliasfoo4,
"foo2"))
1475 self.assertTrue(hasattr(aliasfoo4,
"foo3"))
1476 self.assertEqual(aliasfoo4.foo3[0].type,
"Foo3")
1479 f =
FileInPath(
"FWCore/ParameterSet/python/Types.py")
1480 self.assertEqual(f.configValue(),
"'FWCore/ParameterSet/python/Types.py'")
1483 self.assertEqual(s1.type_(),
"EmbeddedRootSource")
1484 self.assertEqual(s1.configValue(),
1485 """EmbeddedRootSource { """+
""" 1486 vstring fileNames = { 1493 self.assertEqual(s1.type.value(),1)
1496 self.assertEqual( repr(eid),
"cms.EventID(2, 0, 3)" )
1498 eid.insertInto(pset,
'foo')
1499 eid2 = EventID._valueFromString(
'3:4')
1500 eid2.insertInto(pset,
'foo2')
1504 self.assertEqual( repr(veid[0]),
"cms.EventID(2, 0, 3)" )
1505 self.assertEqual( repr(veid2[0]),
"'1:2'" )
1506 self.assertEqual( veid2.dumpPython(),
'cms.VEventID("1:2", "3:4")')
1508 veid.insertInto(pset,
'foo')
1512 self.assertEqual( repr(lid),
"cms.LuminosityBlockID(2, 3)" )
1514 lid.insertInto(pset,
'foo')
1515 lid2 = LuminosityBlockID._valueFromString(
'3:4')
1516 lid2.insertInto(pset,
'foo2')
1521 self.assertEqual( repr(vlid[0]),
"cms.LuminosityBlockID(2, 3)" )
1522 self.assertEqual( repr(vlid2[0]),
"'1:2'" )
1524 vlid.insertInto(pset,
'foo')
1528 range2 = EventRange._valueFromString(
"1:2 - 3:4")
1529 range3 = EventRange._valueFromString(
"1:MIN - 3:MAX")
1530 self.assertEqual(repr(range1), repr(range1))
1531 self.assertEqual(repr(range3),
"cms.EventRange(1, 0, 1, 3, 0, 0)")
1533 range1.insertInto(pset,
'foo')
1534 range2.insertInto(pset,
'bar')
1538 self.assertEqual( repr(v1[0]),
"cms.EventRange(1, 0, 2, 3, 0, 4)" )
1540 v2.insertInto(pset,
'foo')
1544 range2 = LuminosityBlockRange._valueFromString(
"1:2 - 3:4")
1545 range3 = LuminosityBlockRange._valueFromString(
"1:MIN - 3:MAX")
1546 self.assertEqual(repr(range1), repr(range1))
1547 self.assertEqual(repr(range3),
"cms.LuminosityBlockRange(1, 1, 3, 0)")
1549 range1.insertInto(pset,
'foo')
1550 range2.insertInto(pset,
'bar')
1554 self.assertEqual( repr(v1[0]),
"cms.LuminosityBlockRange(1, 2, 3, 4)" )
1556 v2.insertInto(pset,
'foo')
1559 p =
PSet(a = untracked.int32(7),
1560 b = untracked.InputTag(
"b"),
1561 c = untracked.ESInputTag(
"c"),
1566 h = untracked.string(
'dummy'),
1567 i = untracked.bool(
False),
1568 j = untracked.uint32(7),
1569 k = untracked.int64(7),
1570 l = untracked.uint64(7),
1571 m = untracked.double(7.0),
1573 o = untracked.vint32(7,8),
1578 t = untracked.VEventRange(
EventRange(1,1,1,8,8,8),
EventRange(9,9,9,18,18,18)),
1580 v = untracked.vstring(
'dummy',
'anotherdummy'),
1581 w = untracked.vbool(
False,
True),
1582 x = untracked.vuint32(7,8),
1583 y = untracked.vint64(7,8),
1584 z = untracked.vuint64(7,8),
1588 p.insertInto(convert,
"p")
1589 self.assert_(hasattr(convert.pset,
'p'))
1590 self.assert_(hasattr(convert.pset.p,
'a'))
1591 self.assertEqual(p.a,convert.pset.p.a)
1592 self.assertEqual(p.a.isTracked(),convert.pset.p.a.isTracked())
1595 q.insertInto(convert,
"q")
1596 self.assert_(hasattr(convert.pset,
'q'))
1597 self.assert_(hasattr(convert.pset.q,
'b'))
1598 self.assertEqual(q.b,convert.pset.q.b)
1599 self.assert_(hasattr(convert.pset.q,
'p'))
1600 self.assert_(hasattr(convert.pset.q.p,
'a'))
1601 self.assertEqual(p.a,convert.pset.q.p.a)
1602 for i
in p.parameterNames_():
1603 self.assertEqual(
str(getattr(p,i)),
str(getattr(convert.pset.p,i)))
1605 p =
PSet(a = untracked.int32(7))
1609 v.insertInto(convert,
'v')
1610 self.assert_(hasattr(convert.pset,
'v'))
1611 self.assert_(len(convert.pset.v)==2)
1612 self.assertEqual(v[0].a,convert.pset.v[0].a)
1613 self.assertEqual(v[1].b,convert.pset.v[1].b)
1614 self.assertEqual(v[1].p.a, convert.pset.v[1].p.a)
1619 self.assertGreater(
int64(100), 99)
1620 self.assertLess(3,
uint32(4))
1621 self.assertLess(6.999999999,
uint64(7))
1622 self.assertLessEqual(-5,
int32(-5))
1627 self.assertGreater(6,
double(5))
1628 self.assertLess(
uint64(0xFFFFFFFFFFFFFFFF), 0xFFFFFFFFFFFFFFFF+1)
1631 self.assertGreater(
string(
"I am a string"),
"I am a strinf")
1632 self.assertGreaterEqual(
"I am a string",
string(
"I am a string"))
1633 self.assertLess(5,
string(
"I am a string"))
1636 if sys.version_info < (3, 0):
1637 self.assertLess(
double(3),
"I am a string")
1638 self.assertLess(3,
string(
"I am a string"))
1639 self.assertLess(
double(5),
"4")
1641 with self.assertRaises(TypeError):
1642 double(3) <
"I am a string" 1643 with self.assertRaises(TypeError):
1644 3 <
string(
"I am a string")
1652 self.assertNotEqual(nan, nan)
1653 self.assertFalse(nan > 3
or nan < 3
or nan == 3)
def addInt32(self, tracked, label, value)
def configValueForItem(self, item, options)
def addNewFileInPath(self, tracked, label, value)
def __init__(self, arg, args)
def convertToPSet(name, module)
def addVLuminosityBlockRange(self, tracked, label, value)
def configValueForItem(self, item, options)
def insertInto(self, parameterSet, myname)
def addVPSet(self, tracked, label, value)
def addVEventID(self, tracked, label, value)
def newLuminosityBlockID(self, pargs, kargs)
def testincompatibletypes(self)
def newESInputTag(self, moduleLabel, dataLabel)
def _valueFromString(value)
def dumpPython(self, options=PrintOptions())
def makeCppPSet(module, cppPSetMaker)
def dumpConfig(self, options=PrintOptions())
def insertInto(self, parameterSet, myname)
def _valueFromString(value)
def addDouble(self, tracked, label, value)
def insertInto(self, parameterSet, myname)
def cppID(self, parameterSet)
def _modifyParametersFromDict(params, newParams, errorRaiser, keyDepth="")
def formatValueForConfig(value)
def testLuminosityBlockID(self)
def insertInto(self, parameterSet, myname)
def _valueFromString(value)
def __init__(self, type_, arg, args)
def insertInto(self, parameterSet, myname)
def _valueFromString(value)
def pythonValue(self, options=PrintOptions())
def configValueForItem(self, item, options)
def addLuminosityBlockRange(self, tracked, label, value)
def __init__(self, arg, kargs)
def addVLuminosityBlockID(self, tracked, label, value)
def _valueFromString(value)
def insertInto(self, parameterSet, myname)
def insertInto(self, parameterSet, myname)
def addVInt32(self, tracked, label, value)
def nameInProcessDesc_(self, myname)
def addBool(self, tracked, label, value)
def insertInto(self, parameterSet, myname)
def addVString(self, tracked, label, value)
def luminosityBlock(self)
def _valueFromString(value)
def newLuminosityBlockRange(self, r, l, r2, l2)
def testPSetConversion(self)
def addVUInt64(self, tracked, label, value)
def insertInto(self, parameterSet, myname)
def luminosityBlock(self)
def addLuminosityBlockRange(self, pargs, kargs)
def testVLuminosityBlockID(self)
def newLuminosityBlockRange(self, pargs, kargs)
def pythonValueForItem(self, item, options)
def addLuminosityBlockID(self, pargs, kargs)
def __init__(self, arg, args)
def configValueForItem(self, item, options)
def _valueFromString(value)
def __init__(self, value)
def testVLuminosityBlockRange(self)
def addVLuminosityBlockID(self, pargs, kargs)
def newEventRange(self, pargs, kargs)
def _valueFromString(value)
def cppID(self, parameterSet)
def insertInto(self, parameterSet, myname)
def addVEventRange(self, pargs, kargs)
def insertInto(self, parameterSet, myname)
def insertInto(self, parameterSet, myname)
def insertInto(self, parameterSet, myname)
def _valueFromString(value)
def addInt64(self, tracked, label, value)
def pythonValue(self, options=PrintOptions())
def configValue(self, options=PrintOptions())
def insertContentsInto(self, parameterSet)
def configValue(self, options=PrintOptions())
def insertInto(self, parameterSet, myname)
def __init__(self, run, block=None)
def _valueFromString(value)
def _valueFromString(value)
def __init__(self, arg, args)
def pythonValue(self, options=PrintOptions())
def insertInto(self, parameterSet, myname)
def addEventRange(self, tracked, label, value)
def insertInto(self, parameterSet, myname)
def configValue(self, options=PrintOptions())
def newVLuminosityBlockRange(self, pargs, kargs)
def __getattr__(self, name)
def newInputTag(self, label, instance, process)
def appendToProcessDescList_(self, lst, myname)
def addVDouble(self, tracked, label, value)
def addVEventRange(self, tracked, label, value)
def _valueFromString(value)
def __init__(self, arg, args)
bool decode(bool &, std::string const &)
def __init__(self, arg, args)
def insertInto(self, parameterSet, myname)
def pythonValueForItem(self, item, options)
def addEventID(self, tracked, label, value)
def __init__(self, arg, args)
def addPSet(self, tracked, label, value)
def newLuminosityBlockID(self, r, l)
def addUInt32(self, tracked, label, value)
def __init__(self, start, startSub=None, end=None, endSub=None)
def insertInto(self, parameterSet, myname)
def clone(self, args, params)
def pythonValue(self, options=PrintOptions())
def testVPSetConversion(self)
def saveOrigin(obj, level)
def _valueFromString(value)
def insertInto(self, parameterSet, myname)
def cppID(self, parameterSet)
def addInputTag(self, tracked, label, value)
def configValueForItem(self, item, options)
def pythonValueForItem(self, item, options)
def __init__(self, arg, args)
def _valueFromString(value)
def insertInto(self, parameterSet, myname)
def addESInputTag(self, tracked, label, value)
def insertInto(self, parameterSet, myname)
def dumpPython(self, options=PrintOptions())
def configValue(self, options=PrintOptions())
def newEventID(self, pargs, kargs)
def addVLuminosityBlockRange(self, pargs, kargs)
def __init__(self, arg, args)
def _valueFromString(value)
def testInputTagModified(self)
def testLuminosityBlockRange(self)
def configValueForItem(self, item, options)
def newVEventRange(self, pargs, kargs)
def __init__(self, value)
static std::string join(char **cmd)
def insertInto(self, parameterSet, myname)
def __init__(self, arg, args)
def _place(self, name, proc)
def formatValueForConfig(value)
def insertInto(self, parameterSet, myname)
def _valueFromString(value)
def addVInputTag(self, tracked, label, value)
def parameterNames_(self)
def addEventID(self, pargs, kargs)
def _valueFromString(value)
def pythonValueForItem(self, item, options)
def cppID(self, parameterSet)
def pythonValueForItem(self, item, options)
def newEventID(self, r, l, e)
def __init__(self, run, args)
def _valueFromString(value)
def addLuminosityBlockID(self, tracked, label, value)
def pythonValueForItem(self, item, options)
def testVEventRange(self)
def __init__(self, arg, args)
def insertInto(self, parameterSet, myname)
def _place(self, name, proc)
def __init__(self, arg, args)
def __init__(self, arg, args)
def __init__(self, start, args)
def _place(self, name, proc)
def _valueFromString(value)
def insertInto(self, parameterSet, myname)
def addString(self, tracked, label, value)
def addUInt64(self, tracked, label, value)
def _place(self, name, proc)
def __init__(self, arg, args)
def _valueFromString(value)
def newEventRange(self, r, l, e, r2, l2, e2)
def dumpPython(self, options=PrintOptions())
def addVEventID(self, pargs, kargs)
def addVESInputTag(self, tracked, label, value)
def addVInt64(self, tracked, label, value)
def _valueFromString(value)
def configValue(self, options=PrintOptions())
def insertInto(self, parameterSet, myname)
def addEventRange(self, pargs, kargs)
def insertContentsInto(self, parameterSet)
def _valueFromString(value)
def dumpPython(self, options=PrintOptions())
def addVUInt32(self, tracked, label, value)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def pythonValue(self, options=PrintOptions())
def addVBool(self, tracked, label, value)
def configValue(self, options=PrintOptions())
def _valueFromString(value)