6 from __future__
import print_function
12 pyDM.ColumnType.bool_:
"bit(boolean)",
13 pyDM.ColumnType.int8:
"int8",
14 pyDM.ColumnType.uint8:
"uint8",
15 pyDM.ColumnType.int16:
"int16",
16 pyDM.ColumnType.uint16:
"uint16",
17 pyDM.ColumnType.int32:
"int32",
18 pyDM.ColumnType.uint32:
"uint32",
19 pyDM.ColumnType.int64:
"int64",
20 pyDM.ColumnType.float_:
"float",
21 pyDM.ColumnType.double_:
"double",
22 pyDM.ColumnType.string:
"string",
23 pyDM.ColumnType.cstr:
"cstr"
27 def output_layout(layout):
28 for i
in range(layout.columns()):
29 print(
"\t" + layout.name(i) +
" (type = " + typeNames[layout.type(i)] +
")")
32 def DM_attribute_handling(filename):
35 assert pt1.hasInfo() ==
False
39 f = pyDM.AddInfoLayoutFactory()
40 f.addColumn(pyDM.ColumnSemantic.Amplitude)
41 f.addColumn(pyDM.ColumnSemantic.EchoWidth)
42 f.addColumn(pyDM.ColumnType.uint32,
"_testAttr")
43 layout1 = f.getLayout()
45 f.addColumn(pyDM.ColumnType.uint32,
"_testAttr")
46 layout2 = f.getLayout()
49 output_layout(layout1)
52 output_layout(layout2)
55 pt2 = pyDM.Point(layout1)
56 assert pt2.hasInfo() ==
True
57 assert pt2.info().columns() == 3
61 assert pt2.info().isNull(0) ==
True and pt3.info().isNull(0) ==
True
62 assert pt2.getAddInfo() == pt3.getAddInfo()
64 pt2.info().set(0, 10.23)
65 amp = pt3.info().get(0)
66 assert pt2.info().get(0) == pt3.info().get(
71 pt4.setAddInfo(pt2.info().clone())
72 assert pt2.getAddInfo() != pt4.getAddInfo()
74 pt2.info().set(0, 5.92)
75 assert abs(pt2.info().get(0) - 5.92) < 1e-5
and abs(pt4.info().get(0) - 10.23) < 1e-5
80 assert pt2.info().isView() ==
False
81 pt2.setAddInfoView(layout2,
True)
83 assert pt2.info().isView() ==
True
84 assert layout2.columns() == 1
and pt2.info().columns() == 1
89 assert pt3.info().columns() == 1
and pt3.info().get(0) == 15
92 pt2.restoreAddInfoFullLayout()
93 assert pt2.info().isView() ==
False and pt2.info().columns() == 3
95 value = pt3.info().get(2)
100 pt3.cloneAddInfoView(layout2,
True)
102 assert pt2.getAddInfo() != pt3.getAddInfo()
103 pt3.info().set(0, 35)
104 value = pt2.info().get(2)
105 assert pt2.info().get(2) == 35
and pt3.info().get(0) == 35
110 attributs = [
"Amplitude",
"EchoWidth",
"_testAttr"]
113 dm = pyDM.Datamanager.load(filename,
True,
False)
117 print(
"Unable to open ODM '" + filename +
"'")
120 print(
"Create layout based on ODM '" + filename +
"'")
121 for attr
in attributs:
122 type, inDM = f.addColumn(dm, attr,
True, pyDM.ColumnType.uint32)
124 print(
"\t" + attr +
" exists in ODM (type = " + typeNames[type] +
")")
126 print(
"\t" + attr +
" does NOT exist in ODM (type = " + typeNames[type] +
")")
127 layout3 = f.getLayout()
130 output_layout(layout3)
133 if len(sys.argv) == 1:
134 print(
"ODM parameter missing")
137 DM_attribute_handling(sys.argv[1])