petal-qc 0.0.3__py3-none-any.whl → 0.0.5__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.

@@ -3,6 +3,7 @@
3
3
  import json
4
4
  import os
5
5
  import sys
6
+ import bisect
6
7
  from pathlib import Path
7
8
 
8
9
  import matplotlib.dates as pldates
@@ -19,6 +20,14 @@ from petal_qc.thermal import Petal_IR_Analysis
19
20
 
20
21
  CO2_Temp_setting = -35
21
22
 
23
+ def get_array_as_string(A):
24
+ """Return a string rerpresentation."""
25
+ sss="["
26
+ for v in A:
27
+ sss += " {:5.3f}".format(v)
28
+
29
+ sss+=" ]"
30
+ return sss
22
31
 
23
32
  def get_acceptance_band():
24
33
  """returns the width of the acceptance band."""
@@ -362,6 +371,9 @@ def compare_golden(core, golden, value):
362
371
  golden (AnalysisResult): The golden avrage
363
372
  value (str): The name of the variable to compare
364
373
 
374
+ Returns:
375
+ (pass, max difference, array of location of outsiders)
376
+
365
377
  """
366
378
  Y = getattr(core, value)
367
379
  gY = getattr(golden, value)
@@ -373,18 +385,23 @@ def compare_golden(core, golden, value):
373
385
  X = np.array([float(x) for x in range(10)])
374
386
  gX = X
375
387
 
376
- # convert to golden X
377
- spln = CubicSpline(X, Y)
378
- gC = np.array([spln(x) for x in gX])
379
-
380
388
  # compute difference
381
389
  band = get_acceptance_band()
382
- diff = np.abs(gC-gY)
383
- outsiders = np.where(diff > band)
384
- mxval = np.amax(diff)
390
+ outsiders = []
391
+ mxval = -1
392
+ indx = 1
393
+ for x, y in zip(X, Y):
394
+ indx = bisect.bisect_left(gX, x, lo=(indx-1 if indx>1 else 0))
395
+ val = gY[indx]
396
+ diff = abs(y-val)
397
+ if diff > mxval:
398
+ mxval = diff
399
+
400
+ if diff>band:
401
+ outsiders.append(x)
385
402
 
386
403
  rc = mxval < band
387
- return rc, mxval, len(outsiders)
404
+ return rc, mxval, outsiders
388
405
 
389
406
 
390
407
  def analyze_petal_cores(files, golden, options):
@@ -456,15 +473,16 @@ def analyze_petal_cores(files, golden, options):
456
473
  if val[0]:
457
474
  continue
458
475
 
459
- if val[2] < 2:
460
- dbOut["comments"].append(
461
- "{} in side {}: 1 point out of acceptance band.".format(
462
- key, iside)
463
- )
464
- else:
476
+ noutsiders = len(val[2])
477
+ #if noutsiders < 2:
478
+ # dbOut["comments"].append(
479
+ # "{} in side {}: 1 point out of acceptance band. {}".format(
480
+ # key, iside, val[2])
481
+ # )
482
+ if noutsiders>0:
465
483
  dbOut["defects"].append(
466
484
  {"name": key,
467
- "description": "{} in side {}: {} points out of acceptance band".format(key, iside, val[2]),
485
+ "description": "{} in side {}: {} points out of acceptance band. {}".format(key, iside, noutsiders, get_array_as_string(val[2])),
468
486
  "properties": "{} > {}".format(val[1], get_acceptance_band())
469
487
  }
470
488
  )
@@ -11,6 +11,7 @@ import itkdb_gtk.ITkDButils
11
11
  import itkdb_gtk.dbGtkUtils
12
12
  import itkdb_gtk.UploadTest
13
13
 
14
+ __HELP__ = "https://petal-qc.docs.cern.ch"
14
15
 
15
16
  try:
16
17
  import petal_qc
@@ -45,7 +46,7 @@ class CoreThermal(itkdb_gtk.dbGtkUtils.ITkDBWindow):
45
46
  title: Window title.
46
47
  panel_size: size of message pannel.
47
48
  """
48
- super().__init__(session=session, title=title)
49
+ super().__init__(session=session, title=title, help_link=__HELP__ )
49
50
 
50
51
  self.petal_SN = None
51
52
  self.param = params if params else IRPetalParam()
@@ -167,7 +168,8 @@ class CoreThermal(itkdb_gtk.dbGtkUtils.ITkDBWindow):
167
168
  self.irbfile = PSF
168
169
  self.param.files =[PSF,]
169
170
 
170
- DB = ReadGraphana("localhost")
171
+ #DB = ReadGraphana("localhost")
172
+ DB = ReadGraphana()
171
173
  irbf = IRBFile.open_file(self.irbfile)
172
174
  getter = IRDataGetter.factory(self.param.institute, self.param)
173
175
  frames = getter.get_analysis_frame(irbf)
@@ -75,9 +75,11 @@ def clean_figures():
75
75
  def get_inlet_temp(irbf, param):
76
76
  """Gets the value of the inlet temperature from Graphana."""
77
77
 
78
+ print("# Getting the Inlet temperature. Contacting Graphana...")
78
79
  out = -9999
79
80
  getter = IRDataGetter.factory(param.institute, param)
80
- DB = ReadGraphana("localhost")
81
+ #DB = ReadGraphana("localhost")
82
+ DB = ReadGraphana()
81
83
  frames = getter.get_analysis_frame(irbf)
82
84
  the_time = frames[0].timestamp
83
85
  try:
@@ -113,14 +115,14 @@ def create_IR_core(options):
113
115
  if irbf is None:
114
116
  print("Could not fine input file: {}".format(options.files))
115
117
  return
116
-
118
+
117
119
  if options.tco2 <= -999:
118
120
  out = get_inlet_temp(irbf, options)
119
121
  if out <= -999:
120
122
  print("### Cannot get Tcos. Setting to default.")
121
123
  P = IRPetalParam()
122
124
  out = P.tco2
123
-
125
+
124
126
  options.tco2 = out
125
127
 
126
128
  # Set parameters from command line
@@ -81,17 +81,35 @@ def create_report(options):
81
81
  figures = plot_profile_and_golden(golden, core, "path_temp")
82
82
  document.add_heading('Temperature along path', level=1)
83
83
  document.add_picture(figures[0], True, 12, caption="Petal core .vs. Golden (side 0).")
84
- document.add_picture(figures[0], True, 12, caption="Petal core .vs. Golden (side 1).")
84
+ document.add_picture(figures[1], True, 12, caption="Petal core .vs. Golden (side 1).")
85
85
  for F in figures:
86
86
  plt.close(F)
87
87
 
88
88
  figures = plot_profile_and_golden(golden, core, "sensor_avg")
89
- document.add_heading('Average Temperatur on sensors areas.', level=1)
89
+ document.add_heading('Average Temperature on sensors areas.', level=1)
90
90
  document.add_picture(figures[0], True, 12, caption="Sensors .vs. Golden (side 0).")
91
- document.add_picture(figures[0], True, 12, caption="Sensors .vs. Golden (side 1).")
91
+ document.add_picture(figures[1], True, 12, caption="Sensors .vs. Golden (side 1).")
92
92
  for F in figures:
93
93
  plt.close(F)
94
94
 
95
+ document.add_heading('Comments and Defects.', level=1)
96
+ added_defects = False
97
+ if len(outDB["comments"])>0:
98
+ added_defects = True
99
+ document.add_heading("Comments.", level=2)
100
+ for C in outDB["comments"]:
101
+ document.add_paragraph(C)
102
+
103
+ if len(outDB["defects"])>0:
104
+ added_defects = True
105
+ document.add_heading("Defects.", level=2)
106
+ for D in outDB["defects"]:
107
+ document.add_paragraph("{}: {}".format(D["name"], D["description"]))
108
+
109
+ if not added_defects:
110
+ document.add_paragraph("Petal is GOOD. No comments nor defects found.")
111
+
112
+
95
113
  ofile = utils.output_folder(options.folder, "{}-thermal.docx".format(options.SN))
96
114
  document.save(ofile)
97
115
 
@@ -534,14 +534,14 @@ class Line(object):
534
534
  return
535
535
 
536
536
  self.m = delta_y/delta_x
537
- self.b = - self.m * n.x + n.y
537
+ self.b = -self.m * n.x + n.y
538
538
  self.O = Point(m.x, m.y)
539
539
  self.delta = Point(delta_x, delta_y)
540
540
  self.V = self.delta.norm()
541
541
 
542
542
  else: # n has to be a number
543
543
  self.m = n
544
- self.b = - self.m * m.x + m.y
544
+ self.b = -self.m * m.x + m.y
545
545
  alpha = math.atan(n)
546
546
  self.O = m
547
547
  self.V = Point(math.cos(alpha), math.sin(alpha))
@@ -605,7 +605,12 @@ class Line(object):
605
605
 
606
606
  def line_perpendicular_at_point(self, P):
607
607
  """Return the line perpendicular passing by point."""
608
- L = Line(-1.0/self.m, P)
608
+ if self.m==0:
609
+ P0 = Point(P.x, P.y+1.0)
610
+ L = Line(P0, P)
611
+ else:
612
+ L = Line(-1.0/self.m, P)
613
+
609
614
  return L
610
615
 
611
616
  def line_parallel_at_distance(self, d):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: petal_qc
3
- Version: 0.0.3
3
+ Version: 0.0.5
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
@@ -1,51 +1,52 @@
1
- petal_qc/__init__.py,sha256=T6LHv2FfNKEZoPz6lXy-NcguLXFG0cYPK7I-NCR2Ng4,472
2
- petal_qc/dashBoard.py,sha256=aPugRYhCcAzEBPrCyh8A8QKYaB4Q-_T1q3r5A3J2eog,553
3
- petal_qc/BTreport/CheckBTtests.py,sha256=4hNP1V-zcFBN5UvWVbx9nAmittF8Jmb5J17L33t68Eg,9086
1
+ petal_qc/__init__.py,sha256=cIoOb3RvjVFo658SpBKBMj8LbpzX-fjQIhbjxL_zDjY,782
2
+ petal_qc/dashBoard.py,sha256=D2f1rB_saQYiv9mqJT9Sit44jsXviYBvc-b04CjWCa8,3389
3
+ petal_qc/BTreport/CheckBTtests.py,sha256=W8KktZUya5qIkcOc4fNHgrtVnQfI_hPxZvbLCINDnqw,8378
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=H4MwuQ2QxP_Td9KtMly_-osXT1owigzC7QlmRub7oRo,11886
8
+ petal_qc/metrology/PetalMetrology.py,sha256=UoPuvkh2DTnfsMRoSyIHq__SzJeTIEBNhzjptbfFcsQ,13099
9
9
  petal_qc/metrology/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  petal_qc/metrology/all2csv.py,sha256=KTgEGaediylwkGN7gyWyQqUjU0f9FOa3xF4z1W38EcU,1569
11
- petal_qc/metrology/analyze_locking_points.py,sha256=FjLte9VgxVMfR-b1DlViWDsa2vl3ZKfCCptyibEjBUY,20519
11
+ petal_qc/metrology/analyze_locking_points.py,sha256=-nRiObtdXDJDadylq3W2wG4-F9BLEsklvF6ueofBddM,20531
12
12
  petal_qc/metrology/cold_noise.py,sha256=PuTaQ73WrQCJdE9ezS4UFmA3atwCuvM0ZsUOYu1ZIBw,3106
13
- petal_qc/metrology/compare_Cores.py,sha256=IKJ7lGHfF2NyYasXqMF-IzBLknA2Qp4qFzBVxJbKOX8,2415
13
+ petal_qc/metrology/compare_Cores.py,sha256=0VLpsxav0TKggkGhbeoyYNMM4hVjEiE-xMOQMRf4oXI,6807
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
- petal_qc/metrology/convert_smartscope.py,sha256=es3PoUd5d5rpHebgwsS9nrc3uuy9uFKOQ00ZdU5XHQ0,3836
17
- petal_qc/metrology/coreMetrology.py,sha256=L_uoxq8ObmmiMSx41gFCdpQnalR-HgaVUPHzhDYsDiE,13610
16
+ petal_qc/metrology/convert_smartscope.py,sha256=0vAEYn7ec4qTnLfjphj1QA6tK3vZsXyF6nYYj3jE5Yc,6174
17
+ petal_qc/metrology/coreMetrology.py,sha256=t6qsaQA2dbRtzEcqPdlEkxDVgzbUpmDgiASXvVPSzl0,13667
18
18
  petal_qc/metrology/data2csv.py,sha256=2ttMSmfGLPIaOqZGima2dH6sdnSRAFTHlEbSOfW5ebA,1809
19
- petal_qc/metrology/do_Metrology.py,sha256=zPryMgu46fmCyuAGtRGs2yqh0OSxnkSo9bsJMxQ80PU,4107
19
+ petal_qc/metrology/do_Metrology.py,sha256=rp_CfBXBSL30mr6nZdN5UwLqljFcsFzmMLEm0YJLmkg,4293
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=MH3ZlSildLokYnjERQG28qqLg3LL8C6rFLT8VbEI_BA,11190
22
+ petal_qc/metrology/petal_flatness.py,sha256=4fajnx0mhABDn89VFZvzICD6055A2l6BSgaXgb2rTHI,11395
23
23
  petal_qc/metrology/show_data_file.py,sha256=yZPcmMy-1EWWySiBBx0hNB3tPVh19bTr0PDaXSyIF4c,4057
24
24
  petal_qc/metrology/testSummary.py,sha256=0BhcEd1BPz2Mbonzi8nyZOzNSzpUqowBFNl5cVutqsk,994
25
25
  petal_qc/metrology/test_paralelism.py,sha256=_j__OdUwdXWM494_9HpGPuPHixMwwVphCcvHEfzWi_k,1981
26
+ petal_qc/test/prepareDESYfiles.py,sha256=ao5lRnr5SqcBGiFs2F-3YxuLYRdfRRuwUwzKoPWr74k,2978
27
+ petal_qc/test/test_Graphana.py,sha256=fXcqHzgrfZGjSF-WoMLl96G97XjXVnynHYC-5rKw_-c,1032
28
+ petal_qc/test/test_coreThermal.py,sha256=YRPK3DGG7Tz66K4Kka3euXgUDzW_JlIqSYicMBhb96E,1516
26
29
  petal_qc/thermal/CSVImage.py,sha256=Vt2kYmUsZWkQvxcF8fDda3HO1Rb29kPQHnEoHFCqWYo,2038
27
30
  petal_qc/thermal/DebugPlot.py,sha256=OmREFwNDAKgoObDmcgHrB4d8m3bf2znfsKVGsb5rBGQ,2119
28
31
  petal_qc/thermal/IRBFile.py,sha256=yScjQrAeB9dnNNO-6_8S34vzrtme0F6y3kwYahMKDxc,22271
29
32
  petal_qc/thermal/IRCore.py,sha256=y79YEQrq4q2hSdmYbOF7jjEA-wy50Qun0g_AmrRUmls,3056
30
- petal_qc/thermal/IRDataGetter.py,sha256=L7uX6JF0c253bq_NLt7_ddbjnrOCoLDblfIxE_9YL1o,10834
31
- petal_qc/thermal/IRPetal.py,sha256=8H1ltpahzJavM65De8OTSedvilXQkr3LkV8mRnTDhLQ,38334
33
+ petal_qc/thermal/IRDataGetter.py,sha256=5z9kUo5is-D6Cc2B7w8e588RzhUaRsDRRBRvz9ggqh4,10925
34
+ petal_qc/thermal/IRPetal.py,sha256=5QGGnfxt7QTqEmtqF6o8Kgvtu_FB4wGNH3CVSU4TlIk,38334
32
35
  petal_qc/thermal/IRPetalParam.py,sha256=hrQ9FevzWctvBVHeQ71G0WzllVEa5rYkJom2ezfFYHc,3674
33
36
  petal_qc/thermal/PetalColorMaps.py,sha256=6CvJHzRdojLHu3BROYSekHw8g_BJ1lJ_edyhovTIydU,3831
34
37
  petal_qc/thermal/Petal_IR_Analysis.py,sha256=8Deh_bJ5B7DdaUV18saboF7fXZ_8Bt1vkUlsk5RqVeo,3910
35
38
  petal_qc/thermal/PipeFit.py,sha256=bipXxJGxrwlgbrFv8WJA1Ds7Kj4oUwEyqTIswpgni9o,17214
36
39
  petal_qc/thermal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- petal_qc/thermal/analyze_IRCore.py,sha256=lJsADO4ZisESpJLA97MR9oIbdMKzwlZj9vD6WWj64pg,19577
40
+ petal_qc/thermal/analyze_IRCore.py,sha256=482VoSMPi1_GwbdTimYau7VvS8aNb5TwUkKzXbLIg54,20050
38
41
  petal_qc/thermal/contours.py,sha256=ampCKm4byZYKb_4eJFjIkdFIl2bqVXD2mV13d2XUWlw,8244
39
- petal_qc/thermal/coreThermal.py,sha256=veZLvsDXlJdcLz1bFM4Rd9rG2u_UNtpv2l-DirR9Y2M,12765
40
- petal_qc/thermal/create_IRCore.py,sha256=xLHTyfY0VHHA21ES2b_Ix3JKIyiRQpS1qQBGeLt0Z9Q,7233
41
- petal_qc/thermal/create_core_report.py,sha256=zCZtTR6ouHRVZQAen_PutCvvDwHE5aSwq95sIv-8htM,4325
42
+ petal_qc/thermal/coreThermal.py,sha256=VNm72f9mqrCrj9FXk8Z9ovNHa8NYYPnk9YahIj_CLcg,12858
43
+ petal_qc/thermal/create_IRCore.py,sha256=mnAmDTF_t3AMOA7Wv19yXT1IX4oFCgfHwHpdnamZvmI,7311
44
+ petal_qc/thermal/create_core_report.py,sha256=01WTPXO3IEjAdazQibCaVN_PTgaExrDgXq2XlMslpoc,4935
42
45
  petal_qc/thermal/pipe_back.npz,sha256=yooZuVYtHU541HcV6Gh_5B0BqdYAVEvYAuVvMMSY7Jc,3632
43
46
  petal_qc/thermal/pipe_front.npz,sha256=DuwruG9C2Z1rLigqWMApY4Orsf1SGUQGKy0Yan8Bk8A,3697
44
47
  petal_qc/thermal/pipe_read.py,sha256=HrAtEbf8pMhJDETzkevodiTbuprIOh4yHv6PzpRoz7Q,5040
45
48
  petal_qc/thermal/show_IR_petal.py,sha256=vKb8wm9Y7erAdCb93ODREv2qfSexNMfJpV-67wfOhBw,13159
46
- petal_qc/thermal/test_Graphana.py,sha256=fXcqHzgrfZGjSF-WoMLl96G97XjXVnynHYC-5rKw_-c,1032
47
- petal_qc/thermal/test_coreThermal.py,sha256=YRPK3DGG7Tz66K4Kka3euXgUDzW_JlIqSYicMBhb96E,1516
48
- petal_qc/utils/Geometry.py,sha256=XwA_aojk880N-jC1_bnMYFK0bcD-L96JPS81NUerJf0,19765
49
+ petal_qc/utils/Geometry.py,sha256=zlbMcBdyFvmkSXDJzZ36bXDc-Abagksv6fyEXJ3pHek,19869
49
50
  petal_qc/utils/Progress.py,sha256=gCti4n2xfCcOTlAff5GchabGE5BCwavvDZYYKdbEsXU,4064
50
51
  petal_qc/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
52
  petal_qc/utils/all_files.py,sha256=4ja_DkbTYPY3gUPBAZq0p7KB9lnXZx-OCnpTHg9tm4I,1044
@@ -53,8 +54,8 @@ petal_qc/utils/docx_utils.py,sha256=Eye16PF8W0mPBVdQvgFKWxPYV7-hzBgANPDZtUEjzf8,
53
54
  petal_qc/utils/fit_utils.py,sha256=3KUGWpBMV-bVDkQHWBigXot8chOpjAVBJ5H5b5dbdjk,5349
54
55
  petal_qc/utils/readGraphana.py,sha256=Ljr3PSkkTw-A8SRfMa77n7RO7ogLewwDy9dkflzKh2M,1869
55
56
  petal_qc/utils/utils.py,sha256=CqCsNIcEg6FQb3DN70tmqeLVLlQqsRfDzhfGevlnfBc,4035
56
- petal_qc-0.0.3.dist-info/METADATA,sha256=4lvnUeqnwBOTiGqowWZZjowXYKI6Dn_5MD9laVn4Uao,943
57
- petal_qc-0.0.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
58
- petal_qc-0.0.3.dist-info/entry_points.txt,sha256=tkGC458t1_yVr9OHFE1KtJmGQ2wqsbK8WkPWxru4jFk,127
59
- petal_qc-0.0.3.dist-info/top_level.txt,sha256=CCo1Xe6kLS79PruhsB6bk2CuL9VFtNdNpgJjYUs4jk4,9
60
- petal_qc-0.0.3.dist-info/RECORD,,
57
+ petal_qc-0.0.5.dist-info/METADATA,sha256=tU5wxxl2vXtqQq2qjjpCmbq2aVA9-HnCd6bLOVkqatw,943
58
+ petal_qc-0.0.5.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
59
+ petal_qc-0.0.5.dist-info/entry_points.txt,sha256=D1vXewVYzKMi3qN-SFm2ttq20GLVsxAScU8a3t24Cr0,201
60
+ petal_qc-0.0.5.dist-info/top_level.txt,sha256=CCo1Xe6kLS79PruhsB6bk2CuL9VFtNdNpgJjYUs4jk4,9
61
+ petal_qc-0.0.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (71.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -2,3 +2,5 @@
2
2
  bustapeReport = petal_qc:bustapeReport
3
3
  coreMetrology = petal_qc:coreMetrology
4
4
  coreThermal = petal_qc:coreThermal
5
+ doMetrology = petal_qc:doMetrology
6
+ petalqc_dashBoard = petal_qc:dashBoard
File without changes
File without changes