petal-qc 0.0.10__py3-none-any.whl → 0.0.12__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of petal-qc might be problematic. Click here for more details.

@@ -2,6 +2,7 @@
2
2
  """GUI for thermal QC of petal cores."""
3
3
  import sys
4
4
  import os
5
+ import copy
5
6
  from pathlib import Path
6
7
  from argparse import ArgumentParser
7
8
  import json
@@ -25,15 +26,16 @@ except ImportError:
25
26
  from petal_qc.thermal.IRPetalParam import IRPetalParam
26
27
  from petal_qc.thermal import IRBFile
27
28
  from petal_qc.thermal.IRDataGetter import IRDataGetter
29
+ from petal_qc.thermal.DESYdata import DesyData
28
30
 
29
31
  from petal_qc.thermal.analyze_IRCore import golden_from_json
32
+ from petal_qc.thermal.create_core_report import create_report
30
33
  from petal_qc.utils.readGraphana import ReadGraphana
31
34
 
32
35
  import gi
33
36
  gi.require_version("Gtk", "3.0")
34
- from gi.repository import Gtk, GObject, Gio, GLib
37
+ from gi.repository import Gtk, Gio
35
38
 
36
- from petal_qc.thermal.create_core_report import create_report
37
39
 
38
40
  class CoreThermal(itkdb_gtk.dbGtkUtils.ITkDBWindow):
39
41
  """Application window."""
@@ -48,17 +50,31 @@ class CoreThermal(itkdb_gtk.dbGtkUtils.ITkDBWindow):
48
50
  panel_size: size of message pannel.
49
51
  """
50
52
  super().__init__(session=session, title=title, help_link=__HELP__ )
51
-
52
53
  self.petal_SN = None
53
54
  self.param = params if params else IRPetalParam()
54
55
  self.param.add_attachments = True
55
56
  self.param.create_golden = False
56
- self.irbfile = None
57
+ self.irbfile = self.param.files if len(self.param.files)>0 else None
57
58
  self.folder = None
58
59
  self.golden = None
59
60
  self.results = None
60
61
  self.alternativeID = None
61
62
  self.outDB = None
63
+ self.desy_opts = None
64
+ self.ific_opts = None
65
+ if self.param.institute is None:
66
+ is_desy = False
67
+ for site in self.pdb_user["institutions"]:
68
+ if "DESY" in site["code"]:
69
+ is_desy = True
70
+ break
71
+
72
+ self.param.institute = "DESY" if is_desy else "IFIC"
73
+
74
+ if self.param.institute == "IFIC":
75
+ self.ific_opts = copy.deepcopy(self.param)
76
+ else:
77
+ self.desy_opts = copy.deepcopy(self.param)
62
78
 
63
79
  # Active button in header
64
80
  button = Gtk.Button()
@@ -79,20 +95,36 @@ class CoreThermal(itkdb_gtk.dbGtkUtils.ITkDBWindow):
79
95
  self.hb.pack_end(button)
80
96
 
81
97
  # The file chooser
98
+ self.dataBox = Gtk.Box()
82
99
  self.btnData = Gtk.FileChooserButton()
83
100
  self.btnData.connect("file-set", self.on_file_set)
84
101
 
102
+ self.desyData = Gtk.Button(label="Chose Files")
103
+ self.desyData.connect("clicked", self.on_desy_data)
104
+
105
+ if self.param.institute == "IFIC":
106
+ self.dataBox.pack_start(self.btnData, False, False, 0)
107
+ else:
108
+ self.dataBox.pack_start(self.desyData, False, False, 0)
109
+
85
110
 
86
111
  # The file chooser
87
112
  self.goldenData = Gtk.FileChooserButton()
88
113
  self.goldenData.connect("file-set", self.on_golden_set)
114
+ if self.param.golden and len(self.param.golden)>0:
115
+ self.goldenData.set_file(Gio.File.new_for_path(self.param.golden))
116
+ self.on_golden_set(self.goldenData)
117
+
89
118
 
90
119
  # The Serial number
91
120
  self.SN = itkdb_gtk.dbGtkUtils.TextEntry()
92
- self.SN.connect("text-changed", self.on_SN_changed)
121
+ if self.param.SN is not None and len(self.param.SN)>0:
122
+ self.SN.set_text(self.param.SN)
123
+ elif self.param.alias and len(self.param.alias)>0:
124
+ self.SN.set_text(self.param.alias)
125
+ self.on_SN_changed(self.SN.entry, self.param.alias)
93
126
 
94
- self.run = Gtk.Button(label="Run")
95
- self.run.connect("clicked", self.create_report)
127
+ self.SN.connect("text-changed", self.on_SN_changed)
96
128
 
97
129
  self.btn_state = Gtk.Button(label="Undef")
98
130
  self.btn_state.set_name("btnState")
@@ -110,7 +142,7 @@ class CoreThermal(itkdb_gtk.dbGtkUtils.ITkDBWindow):
110
142
 
111
143
  irow += 1
112
144
  grid.attach(Gtk.Label(label="IRB File"), 0, irow, 1, 1)
113
- grid.attach(self.btnData, 1, irow, 1, 1)
145
+ grid.attach(self.dataBox, 1, irow, 1, 1)
114
146
 
115
147
  self.entryTemp = Gtk.Entry()
116
148
  self.entryTemp.set_text("{:.1f}".format(self.param.tco2))
@@ -153,11 +185,35 @@ class CoreThermal(itkdb_gtk.dbGtkUtils.ITkDBWindow):
153
185
  grid.attach(lbl, 2, irow, 1, 1)
154
186
  grid.attach(self.entryDist, 3, irow, 1, 1)
155
187
 
188
+ irow += 1
189
+ self.desy = Gtk.Switch()
190
+ self.desy.props.halign = Gtk.Align.START
191
+ self.desy.connect("state_set", self.change_institute)
192
+ if params.desy or self.param.institute == "DESY":
193
+ self.desy.set_active(True)
194
+ grid.attach(Gtk.Label(label="DESY"), 0, irow, 1, 1)
195
+ grid.attach(self.desy, 1, irow, 1, 1)
196
+
197
+ irow += 1
198
+ self.run = Gtk.Button(label="Run")
199
+ self.run.connect("clicked", self.create_report)
156
200
 
157
- grid.attach(self.run, 0, 4, 5, 1)
201
+ grid.attach(self.run, 0, irow, 5, 1)
158
202
 
159
203
  self.mainBox.pack_start(self.message_panel.frame, True, True, 0)
160
204
 
205
+ def on_desy_data(self, *args):
206
+ """DESY data button clicked."""
207
+ dlg = DesyData(self.irbfile)
208
+ dlg.show_all()
209
+ if dlg.run() == Gtk.ResponseType.OK:
210
+ self.irbfile = [dlg.front, dlg.back]
211
+ self.param.files = self.irbfile
212
+ self.on_open_file()
213
+
214
+ dlg.hide()
215
+ dlg.destroy()
216
+
161
217
 
162
218
  def on_file_set(self, *args):
163
219
  """File chosen from FileChooser."""
@@ -166,26 +222,59 @@ class CoreThermal(itkdb_gtk.dbGtkUtils.ITkDBWindow):
166
222
  itkdb_gtk.dbGtkUtils.complain("Could not find Data File", PSF, parent=self)
167
223
  return
168
224
 
169
- self.irbfile = PSF
170
- self.param.files =[PSF,]
171
-
225
+ self.irbfile = [PSF, ]
226
+ self.param.files = self.irbfile
227
+ self.on_open_file()
228
+
229
+ def on_open_file(self):
230
+ """Open the files given in the GUI."""
172
231
  #DB = ReadGraphana("localhost")
173
- server = os.getenv("GRAFANA_SERVER")
174
- if server is None:
175
- DB = ReadGraphana()
176
- else:
177
- DB = ReadGraphana(server)
178
-
179
232
  irbf = IRBFile.open_file(self.irbfile)
180
233
  getter = IRDataGetter.factory(self.param.institute, self.param)
181
234
  frames = getter.get_analysis_frame(irbf)
182
- try:
183
- X, val = DB.get_temperature(frames[0].timestamp, 3)
184
- inlet = np.min(val)
185
- self.entryTemp.set_text("{:.1f}".format(inlet))
235
+
236
+ if self.param.institute == "IFIC":
237
+ server = os.getenv("GRAFANA_SERVER")
238
+ if server is None:
239
+ DB = ReadGraphana()
240
+ else:
241
+ DB = ReadGraphana(server)
242
+
243
+ try:
244
+ X, val = DB.get_temperature(frames[0].timestamp, 3)
245
+ inlet = np.min(val)
246
+ self.entryTemp.set_text("{:.1f}".format(inlet))
247
+
248
+ except Exception as E:
249
+ print(E)
250
+ self.entryTemp.set_text("-30")
251
+
252
+
253
+ def change_institute(self, *args):
254
+ """Switch clicked."""
255
+ if self.desy.get_active():
256
+ self.param.institute = "DESY"
257
+ upper = self.btnData.get_parent()
258
+ if upper:
259
+ self.dataBox.remove(self.btnData)
260
+ self.dataBox.add(self.desyData)
186
261
 
187
- except ValueError:
188
- pass
262
+ self.param.distance = 16
263
+ self.param.width = 16
264
+
265
+ else:
266
+ self.param.institute = "IFIC"
267
+ upper = self.desyData.get_parent()
268
+ if upper:
269
+ self.dataBox.remove(self.desyData)
270
+ self.dataBox.add(self.btnData)
271
+
272
+ self.param.distance = 5
273
+ self.param.width = 2
274
+
275
+
276
+ self.entryDist.set_text("{}".format(self.param.distance))
277
+ self.dataBox.show_all()
189
278
 
190
279
  def on_golden_set(self, *args):
191
280
  """File chosen from FileChooser."""
@@ -312,12 +401,14 @@ class CoreThermal(itkdb_gtk.dbGtkUtils.ITkDBWindow):
312
401
  self.param.out = "{}.json".format(self.alternativeID)
313
402
  self.param.alias = self.alternativeID
314
403
  self.param.SN = self.SN.get_text()
404
+ self.param.desy = self.desy.get_active()
315
405
 
316
406
  self.param.tco2 = float(self.entryTemp.get_text())
317
407
  self.param.distance = int(self.entryDist.get_text())
318
408
  self.param.thrs = float(self.entryTHrs.get_text())
319
409
  self.param.debug = False
320
410
  self.param.report = True
411
+ self.param.files = self.irbfile
321
412
 
322
413
  self.outDB = create_report(self.param)
323
414
  if self.outDB:
@@ -335,13 +426,17 @@ def main():
335
426
  """Entry point."""
336
427
  # Argument parser
337
428
  parser = ArgumentParser()
338
- #parser.add_argument('files', nargs='*', help="Input files")
429
+ parser.add_argument('files', nargs='*', help="Input files")
339
430
  parser.add_argument("--nframe", type=int, default=-1, help="Number of frames. (negative means all.")
340
431
  parser.add_argument('--frame', type=int, default=-1, help="First frame to start.")
341
432
  parser.add_argument("--out", default="core.json", help="Output file name")
433
+ parser.add_argument("--desy", dest='desy', action="store_true", default=False)
434
+
342
435
  parser.add_argument("--alias", default="", help="Alias")
343
436
  parser.add_argument("--SN", default="", help="serial number")
344
437
  parser.add_argument("--folder", default=None, help="Folder to store output files. Superseeds folder in --out")
438
+ parser.add_argument("--golden", default=None, help="The golden to compare width")
439
+
345
440
 
346
441
  IRPetalParam.add_parameters(parser)
347
442
 
@@ -360,13 +455,7 @@ def main():
360
455
 
361
456
  except Exception:
362
457
  # Login with "standard" if the above fails.
363
- import itkdb
364
- import getpass
365
- client = itkdb.Client()
366
- client.user._access_code1 = getpass.getpass("Access 1: ")
367
- client.user._access_code2 = getpass.getpass("Access 2: ")
368
- client.user.authenticate()
369
- print("Hello {} !".format(client.user.name))
458
+ client = itkdb_gtk.ITkDButils.create_client()
370
459
 
371
460
  CT = CoreThermal(options, session=client, title="Petal Thermal analysis.")
372
461
  CT.show_all()
@@ -65,11 +65,13 @@ def get_IRcore_plots():
65
65
  return __figures__
66
66
 
67
67
  def clean_figures():
68
+ """Clean existingfigures."""
68
69
  global __figures__
69
- for key, fig in __figures__:
70
- fig.clean()
70
+ for key, fig in __figures__.items():
71
+ fig.clear()
71
72
  plt.close(fig)
72
73
 
74
+ plt.close("all")
73
75
  __figures__ = {}
74
76
 
75
77
  def get_inlet_temp(irbf, param):
@@ -192,7 +194,7 @@ def create_IR_core(options):
192
194
  # the U-shape pipe minimum.
193
195
  pipes[i] = IRPetal.reorder_pipe_points(pipes[i], pipe_type, R)
194
196
  if ordered_pipes[pipe_type] is not None:
195
- print("### Expect probles. 2 pipes of sme type")
197
+ print("### Expect problems. 2 pipes of same type")
196
198
 
197
199
  ordered_pipes[pipe_type] = pipes[i]
198
200
 
@@ -246,7 +248,8 @@ def create_IR_core(options):
246
248
  return core
247
249
 
248
250
 
249
- if __name__ == "__main__":
251
+ def main():
252
+ """Main entry."""
250
253
  from argparse import ArgumentParser
251
254
 
252
255
  # Argument parser
@@ -267,3 +270,6 @@ if __name__ == "__main__":
267
270
  sys.exit()
268
271
 
269
272
  create_IR_core(options)
273
+
274
+ if __name__ == "__main__":
275
+ main()
@@ -36,9 +36,15 @@ def create_report(options):
36
36
  print("input file {} does not exist.".format(ifile))
37
37
  return
38
38
 
39
+
40
+ print("\n## {} - {}".format(options.SN, options.alias))
41
+
39
42
  goldenFile = Path(options.golden).expanduser().resolve()
40
43
  if not goldenFile.exists():
41
- print("I need a golden file.")
44
+ goldenFile = utils.output_folder(options.folder, options.golden)
45
+ goldenFile = Path(goldenFile).expanduser().resolve()
46
+ if not goldenFile.exists():
47
+ print("I need a golden file.")
42
48
 
43
49
  with open(goldenFile, "r", encoding='utf-8') as fp:
44
50
  golden = golden_from_json(json.load(fp))
@@ -50,6 +56,9 @@ def create_report(options):
50
56
  document.styles['Normal'].font.name = "Calibri"
51
57
  document.add_heading(options.SN, 0)
52
58
 
59
+ P = document.add_paragraph(options.alias, "Subtitle")
60
+ P.alignment = docx_utils.paragraph_align_center()
61
+
53
62
  P = document.add_paragraph(ifile.name, "Subtitle")
54
63
  P.alignment = docx_utils.paragraph_align_center()
55
64
 
@@ -74,8 +83,9 @@ def create_report(options):
74
83
  options.add_attachments = True
75
84
  options.create_golden = False
76
85
 
77
- options.files[0] = utils.output_folder(options.folder, options.out)
86
+ options.files = [utils.output_folder(options.folder, options.out)]
78
87
  options.out = None
88
+ options.no_golden_doc = True
79
89
  out = analyze_IRCore(options, show=False)
80
90
  outDB = out[0] if len(out) else None
81
91
  options.files = []
@@ -124,7 +134,8 @@ def create_report(options):
124
134
 
125
135
  return outDB
126
136
 
127
- if __name__ == "__main__":
137
+ def main():
138
+ """Main entry."""
128
139
  P = IRPetalParam()
129
140
  parser = ArgumentParser()
130
141
  parser.add_argument('files', nargs='*', help="Input files")
@@ -150,4 +161,7 @@ if __name__ == "__main__":
150
161
 
151
162
  options.debug = False
152
163
  options.report = True
153
- create_report(options)
164
+ create_report(options)
165
+
166
+ if __name__ == "__main__":
167
+ main()
@@ -19,7 +19,8 @@ class ReadGraphana(object):
19
19
  """
20
20
  self.client = influxdb.InfluxDBClient(host=host, port=port,
21
21
  username="matlab", password="matlab",
22
- database="clean_room")
22
+ database="clean_room",
23
+ timeout=2)
23
24
 
24
25
  def get_temperature(self, the_time, window=10):
25
26
  """REturns the temperature
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: petal_qc
3
- Version: 0.0.10
3
+ Version: 0.0.12
4
4
  Summary: A collection of scripts for Petal CORE QC.
5
5
  Author-email: Carlos Lacasta <carlos.lacasta@cern.ch>
6
6
  Project-URL: Homepage, https://gitlab.cern.ch/atlas-itk/sw/db/itk-pdb-gtk-gui-utils
@@ -10,7 +10,7 @@ Classifier: Operating System :: OS Independent
10
10
  Requires-Python: >=3.7
11
11
  Description-Content-Type: text/markdown
12
12
  Requires-Dist: itkdb
13
- Requires-Dist: itkdb-gtk
13
+ Requires-Dist: itkdb-gtk >=0.10.10
14
14
  Requires-Dist: numpy
15
15
  Requires-Dist: matplotlib
16
16
  Requires-Dist: lmfit
@@ -1,11 +1,11 @@
1
- petal_qc/__init__.py,sha256=EwHq4w3cI2Kl91MU7Pqp07jkJwnauAd6fXb0caYM11A,939
2
- petal_qc/dashBoard.py,sha256=D2f1rB_saQYiv9mqJT9Sit44jsXviYBvc-b04CjWCa8,3389
3
- petal_qc/BTreport/CheckBTtests.py,sha256=W8KktZUya5qIkcOc4fNHgrtVnQfI_hPxZvbLCINDnqw,8378
1
+ petal_qc/__init__.py,sha256=2tc9yLCkZrU_rjswYXlC_I8D3NjRnMZKEuUH4uwnXfw,1202
2
+ petal_qc/dashBoard.py,sha256=kHfb1JoY3a5BfkxbbBYG1l6YEzzZeymhTX1hUc-8ASM,3463
3
+ petal_qc/BTreport/CheckBTtests.py,sha256=CxR8lcawwhdzkBs8jZCXI6TSGPOsOEigpAND0D1O0cs,8178
4
4
  petal_qc/BTreport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  petal_qc/BTreport/bustapeReport.py,sha256=c5VERxPm6BOgW_yN9O_bEPmCYpuwZ_Yt_I2sMVAp0-I,6895
6
6
  petal_qc/metrology/Cluster.py,sha256=UtZ5q1EFb8f3qC0hEYBbhRg2pPbW_28aJX2EEMu00Ho,2105
7
7
  petal_qc/metrology/DataFile.py,sha256=PbFqy3-WSj69epV5EjhHc1GKhA8I74FmJYOXUjN0V20,1367
8
- petal_qc/metrology/PetalMetrology.py,sha256=vgtfg0yJDdSyMKN0vlfz1uGfx6WXOj7b2x6zZu35dQc,13099
8
+ petal_qc/metrology/PetalMetrology.py,sha256=ckegNsijvGq0HhM0ssBr789FHp1dVcGQnc0ASZ4jMLk,12755
9
9
  petal_qc/metrology/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  petal_qc/metrology/all2csv.py,sha256=KTgEGaediylwkGN7gyWyQqUjU0f9FOa3xF4z1W38EcU,1569
11
11
  petal_qc/metrology/analyze_locking_points.py,sha256=isIWUsZrBpXgQbmXN4Gl5Zbv5R91UC8jQAU113_gRD8,20531
@@ -14,39 +14,43 @@ petal_qc/metrology/compare_Cores.py,sha256=ysfDs0QIqIH0BBgy5RUXZNSzCgjqLfjN2XH7M
14
14
  petal_qc/metrology/comparisonTable.py,sha256=6Zmh-x0ahs28ZJQuHMrIiRcblUmTN1_-1otFSRNMPds,1743
15
15
  petal_qc/metrology/convert_mitutoyo.py,sha256=HdXQzFL5y7r8qXDzti91VItDQ-y6D9rEAYknn4yHwBs,5449
16
16
  petal_qc/metrology/convert_smartscope.py,sha256=0vAEYn7ec4qTnLfjphj1QA6tK3vZsXyF6nYYj3jE5Yc,6174
17
- petal_qc/metrology/coreMetrology.py,sha256=XowWTej50USTY48WeizQ2SYHCLDh7KNZOpHSd9MNFN4,13688
17
+ petal_qc/metrology/coreMetrology.py,sha256=2BHc-h2xaFB3IK6VW_t96_swLiCf04EW7CeHq7hEKe4,13869
18
18
  petal_qc/metrology/data2csv.py,sha256=2ttMSmfGLPIaOqZGima2dH6sdnSRAFTHlEbSOfW5ebA,1809
19
- petal_qc/metrology/do_Metrology.py,sha256=rp_CfBXBSL30mr6nZdN5UwLqljFcsFzmMLEm0YJLmkg,4293
19
+ petal_qc/metrology/do_Metrology.py,sha256=eS8SeEn7oRiEceO3ybhSr2dv_Ki1NoKj9QAySSHmEB8,3949
20
20
  petal_qc/metrology/flatness4nigel.py,sha256=SUHwn6pCEUWQV_62-_9-VKrmUdL4gVQcSA3aTtYq958,4071
21
21
  petal_qc/metrology/gtkutils.py,sha256=1pOTxiE2EZR9zNNNT5cOetga_4NG9DzLaqQPI4c1EzE,3372
22
- petal_qc/metrology/petal_flatness.py,sha256=4fajnx0mhABDn89VFZvzICD6055A2l6BSgaXgb2rTHI,11395
23
- petal_qc/metrology/readAVSdata.py,sha256=B8oBPKY-B0Fi-wWY5sdxARxksFzz_rfOpPBV35Qaee8,23692
22
+ petal_qc/metrology/petal_flatness.py,sha256=JpgWlaxeLFsCZHquSUD3axCNvwtB5LOZ1wQHPUVUwc0,11052
23
+ petal_qc/metrology/readAVSdata.py,sha256=m5RAY3g3l6bKpaSD_HtpPEipbiHqjGQD-dDOmC9wlE8,25503
24
24
  petal_qc/metrology/show_data_file.py,sha256=yZPcmMy-1EWWySiBBx0hNB3tPVh19bTr0PDaXSyIF4c,4057
25
25
  petal_qc/metrology/testSummary.py,sha256=0BhcEd1BPz2Mbonzi8nyZOzNSzpUqowBFNl5cVutqsk,994
26
26
  petal_qc/metrology/test_paralelism.py,sha256=_j__OdUwdXWM494_9HpGPuPHixMwwVphCcvHEfzWi_k,1981
27
- petal_qc/metrology/uploadPetalInformation.py,sha256=pQdi9x3wC1irMn8xMaMssNVZGzimsyvdsQ_2KeJx3_Y,26117
27
+ petal_qc/metrology/uploadPetalInformation.py,sha256=7JXTNRaThXlWLKwPAC6v9N2jFK1nmG5AkGJqEryMyRE,26769
28
+ petal_qc/test/checkAVStests.py,sha256=TQ6EscfqL65sNC6QX5FElakYShnuMvqvKYhroXjZD0Q,4815
29
+ petal_qc/test/compare_golden.py,sha256=lG1rtYLw_PwKWrLk0VVdbnRhi7Ytu78q7PGWcYptM_8,1171
28
30
  petal_qc/test/getAVSjson.py,sha256=o8AYtyr7Vnp-enznmQ-NNiivZipmxtoVrmsfnRCl0X4,977
29
- petal_qc/test/getAVStests.py,sha256=LU4-iedng0i0PPogPwTpUmDlKY0aBxQizC7by4d-W98,4520
30
- petal_qc/test/getPetalCoreTestSummary.py,sha256=iutD_tylwA46VtCd1b3L6Cd4Fv1pIELKjIMgKufRofk,2590
31
+ petal_qc/test/getAVStests.py,sha256=NbbuniNj2MjwaUoLHdHPFyEuKZbTulAaOsf3r2ZVeSE,7665
32
+ petal_qc/test/getPetalCoreTestSummary.py,sha256=5MGr0G0Lvk6ruiUxK5EmJOWv9iz-mIhxRn3WfQzjhoM,2597
33
+ petal_qc/test/listPetalCoreComponents.py,sha256=7U9wokRkgeZdYZKeZdAadA32BlhVK6okInuh94hmj24,2502
31
34
  petal_qc/test/prepareDESYfiles.py,sha256=mJyu1UXSe_VnCv0vHogjhSxl5PCvjmiySNPsDCWoCt0,3582
32
35
  petal_qc/test/test_Graphana.py,sha256=fXcqHzgrfZGjSF-WoMLl96G97XjXVnynHYC-5rKw_-c,1032
33
36
  petal_qc/test/test_coreThermal.py,sha256=YRPK3DGG7Tz66K4Kka3euXgUDzW_JlIqSYicMBhb96E,1516
34
37
  petal_qc/thermal/CSVImage.py,sha256=Vt2kYmUsZWkQvxcF8fDda3HO1Rb29kPQHnEoHFCqWYo,2038
38
+ petal_qc/thermal/DESYdata.py,sha256=YAwxhnmA89uH1vZ_BjDo0VLATTGRngoBSFzYfLSJbZU,1904
35
39
  petal_qc/thermal/DebugPlot.py,sha256=OmREFwNDAKgoObDmcgHrB4d8m3bf2znfsKVGsb5rBGQ,2119
36
- petal_qc/thermal/IRBFile.py,sha256=yScjQrAeB9dnNNO-6_8S34vzrtme0F6y3kwYahMKDxc,22271
40
+ petal_qc/thermal/IRBFile.py,sha256=_no8iUyuSQ41j34o3LVzUCjMYoviwjz02tsWvFsTUzA,23462
37
41
  petal_qc/thermal/IRCore.py,sha256=sidf7HtrzEUcllv0E_o1Hks-2_2dl4Og_LWcwgPNRcE,3062
38
- petal_qc/thermal/IRDataGetter.py,sha256=kRcMbQfNf63VRTVu-ueoRNJma8RzR5pK4MmrXNKemy0,10913
39
- petal_qc/thermal/IRPetal.py,sha256=7PX0MlrsTEYlhvdlRMTrmoc7OvSq6bayUveB6bfu9SU,40749
40
- petal_qc/thermal/IRPetalParam.py,sha256=hrQ9FevzWctvBVHeQ71G0WzllVEa5rYkJom2ezfFYHc,3674
42
+ petal_qc/thermal/IRDataGetter.py,sha256=S-Xaizrop_xQ2pgkvuw_HdKbrsDD84KThwgTfjRg0bQ,11579
43
+ petal_qc/thermal/IRPetal.py,sha256=hVOD0VAKTA2xvNXbZ-TXAYHNlihNWsUkI2i9IEwQhZk,40887
44
+ petal_qc/thermal/IRPetalParam.py,sha256=E4uZvk7Ne5TqoY8UHIbMmgB87vIxmYhTgISvs9ZgCt8,3674
41
45
  petal_qc/thermal/PetalColorMaps.py,sha256=6CvJHzRdojLHu3BROYSekHw8g_BJ1lJ_edyhovTIydU,3831
42
46
  petal_qc/thermal/Petal_IR_Analysis.py,sha256=ALIER9fLn2R26IMhPVzEDL6tlK7XNbCtRtH0y6kTaEU,3950
43
- petal_qc/thermal/PipeFit.py,sha256=vczVMN6EI02rkLzfZdU7mwIaQXoKhF2m5svPnTn7Tl8,17258
47
+ petal_qc/thermal/PipeFit.py,sha256=MNQYk9NivBsDze6CVwE1cFdJjrqqbn8FK19436nFMVY,17575
44
48
  petal_qc/thermal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- petal_qc/thermal/analyze_IRCore.py,sha256=fn1Y0_Iv149m4avRtXK4wSyCiYa1naTRmnT9sFoC4QA,20234
49
+ petal_qc/thermal/analyze_IRCore.py,sha256=HahnXkBRdeLlPt1BKSrj3UP6aDSHqDNbao_wxU-DlTg,20485
46
50
  petal_qc/thermal/contours.py,sha256=ampCKm4byZYKb_4eJFjIkdFIl2bqVXD2mV13d2XUWlw,8244
47
- petal_qc/thermal/coreThermal.py,sha256=VMsK9ErHTBhDNPKY4f2QVT_6eD7xXZ_qLqOLX-0E8sQ,13024
48
- petal_qc/thermal/create_IRCore.py,sha256=T2YpBfbsVUvGuyFqZwcPMmYD2VJo5bE5yL72nskqcb0,8109
49
- petal_qc/thermal/create_core_report.py,sha256=iVjRb-EJ6og-l0_KcAciELX39WWe5JHyt3swyW8xmbc,5484
51
+ petal_qc/thermal/coreThermal.py,sha256=cLH7lOd6EF6y03LVaQUovlNs_Dcx9DCD1Erdw8aNrA0,16227
52
+ petal_qc/thermal/create_IRCore.py,sha256=b1ja1VBELqadyWnugYlMp7eNfaLC_zhL8Q6slwOK0Y8,8219
53
+ petal_qc/thermal/create_core_report.py,sha256=NABi_YmGJ5FUQU9YDpq2mHNr13GUTOfbzUpQ36JlH78,5912
50
54
  petal_qc/thermal/pipe_back.npz,sha256=yooZuVYtHU541HcV6Gh_5B0BqdYAVEvYAuVvMMSY7Jc,3632
51
55
  petal_qc/thermal/pipe_front.npz,sha256=DuwruG9C2Z1rLigqWMApY4Orsf1SGUQGKy0Yan8Bk8A,3697
52
56
  petal_qc/thermal/pipe_read.py,sha256=HrAtEbf8pMhJDETzkevodiTbuprIOh4yHv6PzpRoz7Q,5040
@@ -57,10 +61,10 @@ petal_qc/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
61
  petal_qc/utils/all_files.py,sha256=4ja_DkbTYPY3gUPBAZq0p7KB9lnXZx-OCnpTHg9tm4I,1044
58
62
  petal_qc/utils/docx_utils.py,sha256=Eye16PF8W0mPBVdQvgFKWxPYV7-hzBgANPDZtUEjzf8,5805
59
63
  petal_qc/utils/fit_utils.py,sha256=3KUGWpBMV-bVDkQHWBigXot8chOpjAVBJ5H5b5dbdjk,5349
60
- petal_qc/utils/readGraphana.py,sha256=7EqcjtIWdtV6nyVmlKDHC74Id4a-E3M7j7XSpCyBlSQ,1874
64
+ petal_qc/utils/readGraphana.py,sha256=YVOztJC3q3P7F0I9Ggeiu6Mv9rZLKgj3clkLCU7k4i4,1918
61
65
  petal_qc/utils/utils.py,sha256=CqCsNIcEg6FQb3DN70tmqeLVLlQqsRfDzhfGevlnfBc,4035
62
- petal_qc-0.0.10.dist-info/METADATA,sha256=Y5z3NUlXytejzKx7jvOazGcoYkQylARDiH7uXmkc8AY,944
63
- petal_qc-0.0.10.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
64
- petal_qc-0.0.10.dist-info/entry_points.txt,sha256=wXWEWQdgG2x1x4MeTdwBUwsYbXaC7o2Ky5QXWDbsyiw,258
65
- petal_qc-0.0.10.dist-info/top_level.txt,sha256=CCo1Xe6kLS79PruhsB6bk2CuL9VFtNdNpgJjYUs4jk4,9
66
- petal_qc-0.0.10.dist-info/RECORD,,
66
+ petal_qc-0.0.12.dist-info/METADATA,sha256=4G9SacByvBtXDyAU5xYbhBEhk93eaMRSahzl5wZBQYU,954
67
+ petal_qc-0.0.12.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
68
+ petal_qc-0.0.12.dist-info/entry_points.txt,sha256=LeeZ2NX3oJxd_Ovj8Y1LiK381y8tCeoY_-mdt7fswfs,356
69
+ petal_qc-0.0.12.dist-info/top_level.txt,sha256=CCo1Xe6kLS79PruhsB6bk2CuL9VFtNdNpgJjYUs4jk4,9
70
+ petal_qc-0.0.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.4.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,7 +1,9 @@
1
1
  [gui_scripts]
2
+ analyzeIRCore = petal_qc:analyzeIRCore
2
3
  bustapeReport = petal_qc:bustapeReport
3
4
  coreMetrology = petal_qc:coreMetrology
4
5
  coreThermal = petal_qc:coreThermal
6
+ createCoreThermalReport = petal_qc:createCoreThermalReport
5
7
  doMetrology = petal_qc:doMetrology
6
8
  petalqc_dashBoard = petal_qc:dashBoard
7
9
  uploadPetalInformation = petal_qc:uploadPetalInformation