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

@@ -357,7 +357,7 @@ class PipeFit(object):
357
357
  dst, P = contours.find_closest_point(X[0], X[1], self.cpipe)
358
358
  D[i, :] = P - X
359
359
  ddd[i] = dst
360
- W = 1 + 1.6*(y_max - X[1])/height
360
+ W = 1 + 2*(y_max - X[1])/height
361
361
  weights[i] = W
362
362
  sum_weights += W
363
363
 
@@ -369,7 +369,7 @@ class PipeFit(object):
369
369
  res = np.dot(ddd, weights)/sum_weights
370
370
 
371
371
  if self.debug:
372
- dbg_ax. clear()
372
+ dbg_ax.clear()
373
373
  dbg_ax.plot(self.cpipe[:, 0], self.cpipe[:, 1])
374
374
  dbg_ax.plot(out[:, 0], out[:, 1])
375
375
  dbg_ax.set_title("area {:3f} dist {:.3f}".format(real_area, np.sum(ddd)/npts))
@@ -420,7 +420,7 @@ class PipeFit(object):
420
420
 
421
421
  return res
422
422
 
423
- def fit(self, data, M0=None, factor=1.0):
423
+ def fit(self, data, M0=None, factor=1.0, simplify=True):
424
424
  """Do the fit.
425
425
 
426
426
  Args:
@@ -451,12 +451,15 @@ class PipeFit(object):
451
451
  print("\n** Initial guess")
452
452
  self.print_transform(M)
453
453
  else:
454
- M = M0
454
+ M = M0[0:5]
455
455
 
456
456
  self.core_center, self.core_band = self.get_data_center(data)
457
457
 
458
-
459
- self.data = contours.contour_simplify(data, 1.25*factor)
458
+ if simplify:
459
+ self.data = contours.contour_simplify(data, 1.25*factor)
460
+ else:
461
+ self.data = np.array(data)
462
+
460
463
  # self.data = data
461
464
  verbose = 0
462
465
  if self.debug:
@@ -482,9 +485,9 @@ class PipeFit(object):
482
485
  self.R = M
483
486
  return M
484
487
 
485
- def fit_ex(self, data, limit=5e6, factor=1):
488
+ def fit_ex(self, data, M0=None, limit=5e6, factor=1, simplify=True):
486
489
  """Does the regular fit and tries to correct."""
487
- R = self.fit(data, factor=factor)
490
+ R = self.fit(data, factor=factor, M0=M0, simplify=simplify)
488
491
 
489
492
  # Check for an offset...
490
493
  if self.res.cost > limit:
@@ -0,0 +1,74 @@
1
+ import sys
2
+ from pathlib import Path
3
+ import numpy as np
4
+ import matplotlib.pyplot as plt
5
+
6
+
7
+
8
+ cwd = Path(__file__).parent
9
+ if cwd.exists():
10
+ sys.path.insert(0, cwd.as_posix())
11
+
12
+ from petal_qc.thermal import PipeFit, contours
13
+
14
+
15
+ class PipeIterFit:
16
+ """makes an iterative fit removing outliers in each iteration."""
17
+
18
+ def __init__(self, data):
19
+ """Initialize class."""
20
+ self.data = data
21
+ ptype = PipeFit.PipeFit.guess_pipe_type(data)
22
+ self.PF = PipeFit.PipeFit(ptype)
23
+
24
+ def remove_outsiders(self, data, thrs):
25
+ """Removes points which are further than thrs from the fit."""
26
+ D = np.zeros(len(data))
27
+ out = self.PF.transform_data(data, self.PF.R)
28
+ i = 0
29
+ for x, y in out:
30
+ dst, P = contours.find_closest_point(x, y, self.PF.pipe)
31
+ D[i] = dst
32
+ i += 1
33
+
34
+ indx = np.where(D < thrs)[0]
35
+ return np.array(data[indx, :])
36
+
37
+ def fit(self, threshold=20, factor=1.0):
38
+ total_data = self.data
39
+ data_size = len(total_data)
40
+
41
+ fig, ax = plt.subplots(1, 1, tight_layout=True)
42
+
43
+ M0 = self.PF.fit_ex(total_data, factor=factor)
44
+ sample_data = self.remove_outsiders(self.PF.data, threshold)
45
+ last_size = len(sample_data)
46
+
47
+ # Adaptively determining the number of iterations
48
+ while True:
49
+ M0 = self.PF.fit_ex(sample_data, M0=M0, factor=factor, simplify=False)
50
+
51
+ out = self.PF.transform_data(self.PF.data, M0)
52
+ D = []
53
+ for x, y in out:
54
+ dst, P = contours.find_closest_point(x, y, self.PF.pipe)
55
+ D.append(dst)
56
+
57
+ ax.clear()
58
+ ax.hist(D)
59
+ plt.draw()
60
+ plt.pause(0.0001)
61
+ self.PF.plot()
62
+
63
+ sample_data = self.remove_outsiders(self.PF.data, 20)
64
+ sample_size = len(sample_data)
65
+ if sample_size == last_size:
66
+ break
67
+
68
+ last_size = sample_size
69
+
70
+ self.PF.plot()
71
+ return M0
72
+
73
+ def plot(self):
74
+ self.PF.plot()
@@ -21,7 +21,7 @@ from petal_qc.thermal import IRBFile
21
21
  from petal_qc.thermal import IRCore
22
22
  from petal_qc.thermal import IRPetal
23
23
  from petal_qc.thermal import Petal_IR_Analysis
24
- from petal_qc.thermal import PipeFit
24
+ from petal_qc.thermal import PipeFit, PipeIterFit
25
25
  from petal_qc.thermal.PetalColorMaps import HighContrast
26
26
  from petal_qc.thermal.IRDataGetter import IRDataGetter
27
27
  from petal_qc.thermal.IRPetalParam import IRPetalParam
@@ -182,8 +182,13 @@ def create_IR_core(options):
182
182
  ofile = output_folder(options.folder, "{}_pipe_{}.txt".format(prfx, pipe_type))
183
183
  np.savetxt(ofile, pipes[i])
184
184
 
185
- PF = PipeFit.PipeFit(pipe_type)
186
- R = PF.fit_ex(pipes[i], factor=getter.factor)
185
+ #PF = PipeFit.PipeFit(pipe_type)
186
+ #R = PF.fit_ex(pipes[i], factor=getter.factor)
187
+
188
+ iPF = PipeIterFit.PipeIterFit(pipes[i])
189
+ PF = iPF.PF
190
+ R = iPF.fit(factor=getter.factor, threshold=12*getter.factor)
191
+
187
192
  if options.debug or options.report:
188
193
  _X = all_3d_points[i][:, 0]
189
194
  _Y = all_3d_points[i][:, 1]
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env python3
2
+ """Test dashboard."""
3
+ import os
4
+ import sys
5
+ import copy
6
+ from pathlib import Path
7
+ from argparse import ArgumentParser
8
+
9
+ try:
10
+ import itkdb_gtk
11
+
12
+ except ImportError:
13
+ cwd = Path(__file__).parent.parent
14
+ sys.path.append(cwd.as_posix())
15
+ import itkdb_gtk
16
+
17
+ from itkdb_gtk import ITkDBlogin, ITkDButils, UploadTest
18
+ from petal_qc.utils.ArgParserUtils import RangeListAction
19
+
20
+
21
+ HOME=os.getenv("HOME")
22
+ cloud=Path("{}/Nextcloud/ITk/5-Petal_cores".format(HOME))
23
+
24
+ def uploadXrays(session, options):
25
+ """Upload Xray tests."""
26
+ if len(options.cores) == 0:
27
+ print("I need a list of cores.")
28
+ return
29
+
30
+ defaults = {
31
+ "institution": "IFIC",
32
+ "runNumber": "1",
33
+ }
34
+
35
+ dto = ITkDButils.get_test_skeleton(session, "CORE_PETAL", "XRAYIMAGING", defaults)
36
+ dto["properties"]["OPERATOR"]="Nico"
37
+ dto["properties"]["MACHINEID"]="Xray"
38
+
39
+ for core in options.cores:
40
+ petal_id = "PPC.{:03d}".format(core)
41
+ try:
42
+ obj = ITkDButils.get_DB_component(session, petal_id)
43
+ SN = obj["serialNumber"]
44
+
45
+ except Exception as E:
46
+ print("Could not find {} in DB:\n{}".format(petal_id, E))
47
+ continue
48
+
49
+ values = copy.deepcopy(dto)
50
+ print("Petal {}".format(petal_id))
51
+ values["component"] = SN
52
+
53
+ image = cloud / petal_id / "Rx_{}.png".format(petal_id)
54
+ if not image.exists():
55
+ print("Xray image does not esxist.\n\t{}".format(image))
56
+ continue
57
+
58
+ A = ITkDButils.Attachment(path=image.as_posix(), title=image.name, desc="X-ray image")
59
+ values["results"]["IMAGELINK"] = image.name
60
+ uploadW = UploadTest.UploadTest(session, values, [A, ])
61
+
62
+
63
+
64
+ def main():
65
+ """Main entry"""
66
+ parser = ArgumentParser()
67
+ parser.add_argument("--cores", dest="cores", action=RangeListAction, default=[],
68
+ help="Create list of cores to analyze. The list is made with numbers or ranges (ch1:ch2 or ch1:ch2:step) ")
69
+ options = parser.parse_args()
70
+
71
+ # ITk_PB authentication
72
+ dlg = ITkDBlogin.ITkDBlogin()
73
+ session = dlg.get_client()
74
+
75
+ try:
76
+ uploadXrays(session, options)
77
+
78
+ except Exception as E:
79
+ print(E)
80
+
81
+ dlg.die()
82
+
83
+
84
+
85
+ if __name__ == "__main__":
86
+ main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: petal_qc
3
- Version: 0.0.21
3
+ Version: 0.0.22
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,22 +1,24 @@
1
1
  petal_qc/PetalReceptionTests.py,sha256=xFFqh_TYVXOWP0H1Q4I8V8sP8p8_w5tCCrhtENN7yvM,10825
2
- petal_qc/__init__.py,sha256=J6xF3JrSVAdwmg2ezs6nGmQ_uRs4vyV86I9VNZOC3kU,1595
2
+ petal_qc/__init__.py,sha256=ltg8iE7hMGTw0UPsUVJo4An7tiOxiDvom962DOfjNOs,1736
3
3
  petal_qc/dashBoard.py,sha256=U_UHNMca3H2ogD4a0Vpe4ZVUKEv2-xmGZQEZ9_aH0E4,4034
4
- petal_qc/getPetalCoreTestSummary.py,sha256=obHSMwdFc6Y51TaFxb1Gj5s0mfgVWZljUTz83Lt8T5w,5130
4
+ petal_qc/getPetalCoreTestSummary.py,sha256=OnvX5zFfyfnLhmPy84kZq2XkfOH5DaDrYSXpiwrmln8,5436
5
+ petal_qc/readTemplateTable.py,sha256=zh6j_g_AYKCJ4ajmGEoy9KI9giL7tBhZdpbUE8s2b7I,8405
6
+ petal_qc/uploadXrays.py,sha256=j_iKGjxWAKLGTFVXivwdnhsleTuYcR4zvuSWxwzCGKU,2289
5
7
  petal_qc/BTreport/CheckBTtests.py,sha256=CoKTnW_7gbL42rVaBy9FnH1SEYifmgg1P5Iy253vDFk,9855
6
8
  petal_qc/BTreport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
9
  petal_qc/BTreport/bustapeReport.py,sha256=M0EZQEh8G-65p6-gCOyZ0WlvnRbzQHXPwAWta9ZExnQ,6907
8
10
  petal_qc/metrology/Cluster.py,sha256=UtZ5q1EFb8f3qC0hEYBbhRg2pPbW_28aJX2EEMu00Ho,2105
9
11
  petal_qc/metrology/DataFile.py,sha256=PbFqy3-WSj69epV5EjhHc1GKhA8I74FmJYOXUjN0V20,1367
10
- petal_qc/metrology/PetalMetrology.py,sha256=ZEJnkR2vjNmbH7SChPtSsC1YNKgFwfa9YkHc1XNleK8,12333
12
+ petal_qc/metrology/PetalMetrology.py,sha256=zTJ5xSGz5d9flDvnQpQnq5cWvNMP5DXJkhDw_SmLFEU,12748
11
13
  petal_qc/metrology/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
14
  petal_qc/metrology/all2csv.py,sha256=KTgEGaediylwkGN7gyWyQqUjU0f9FOa3xF4z1W38EcU,1569
13
- petal_qc/metrology/analyze_locking_points.py,sha256=83f8nNgmXWClQnIG1plu3YYuxNmeEeTu8VKJE9izw70,20531
15
+ petal_qc/metrology/analyze_locking_points.py,sha256=1uUN4dfBDk9NopQxyLePJ8r_qJHcsxogB1M4z7FZh6g,20912
14
16
  petal_qc/metrology/cold_noise.py,sha256=PuTaQ73WrQCJdE9ezS4UFmA3atwCuvM0ZsUOYu1ZIBw,3106
15
- petal_qc/metrology/compare_Cores.py,sha256=dP0i_C_VrM4s3i0RrI2g4ZcjRmgIHlAgodhGS87YYgw,9458
17
+ petal_qc/metrology/compare_Cores.py,sha256=7t6RJ2QiJl-zmNG886jSLswS8rhD4zgipZlxjz7oTbM,9931
16
18
  petal_qc/metrology/comparisonTable.py,sha256=6Zmh-x0ahs28ZJQuHMrIiRcblUmTN1_-1otFSRNMPds,1743
17
19
  petal_qc/metrology/convert_mitutoyo.py,sha256=tpnB_fHBR8PpJeb7_q9foYKGNDRhJzxHNemmpfbSt8E,5650
18
20
  petal_qc/metrology/convert_smartscope.py,sha256=0vAEYn7ec4qTnLfjphj1QA6tK3vZsXyF6nYYj3jE5Yc,6174
19
- petal_qc/metrology/coreMetrology.py,sha256=rGzCyPqlfsnh2XUUDiykQFlRt3kkFkrQqVOhOJUNhyU,13427
21
+ petal_qc/metrology/coreMetrology.py,sha256=Dg5aVLOQzdl1IK15iugtnsqKks1ydePelkWFuFH5MUc,12962
20
22
  petal_qc/metrology/data2csv.py,sha256=2ttMSmfGLPIaOqZGima2dH6sdnSRAFTHlEbSOfW5ebA,1809
21
23
  petal_qc/metrology/do_Metrology.py,sha256=wA3fKJrdDLGYd0lEi8uSP9uRwQeS59nX6F4VtNnm9LM,4356
22
24
  petal_qc/metrology/flatness4nigel.py,sha256=SUHwn6pCEUWQV_62-_9-VKrmUdL4gVQcSA3aTtYq958,4071
@@ -25,9 +27,9 @@ petal_qc/metrology/petal_flatness.py,sha256=f8UqAmwbSkOngFbwekeGq6cX5flSkd7JNhCY
25
27
  petal_qc/metrology/readAVSdata.py,sha256=6GRUac9b3iOoVoGfWr6rsNj1smsw9aT0tu5wuNuumAE,25615
26
28
  petal_qc/metrology/show_data_file.py,sha256=yZPcmMy-1EWWySiBBx0hNB3tPVh19bTr0PDaXSyIF4c,4057
27
29
  petal_qc/metrology/testSummary.py,sha256=0BhcEd1BPz2Mbonzi8nyZOzNSzpUqowBFNl5cVutqsk,994
28
- petal_qc/metrology/test_paralelism.py,sha256=_j__OdUwdXWM494_9HpGPuPHixMwwVphCcvHEfzWi_k,1981
29
- petal_qc/metrology/uploadPetalInformation.py,sha256=K2hHXmoQ-qi5HLTmFNn5jVsZDDXX88psGV-XIRgx1kA,26728
30
- petal_qc/test/analyzeMetrologyTable.py,sha256=_ipKV8-rXgLca5Bu3ATLZjGR5koFN4-qwpj88rgf-x0,3098
30
+ petal_qc/metrology/test_paralelism.py,sha256=Ij9WlHxyG8It3JqdCVVIWPeuv1OjBGeOsLkD44V2h5A,2024
31
+ petal_qc/metrology/uploadPetalInformation.py,sha256=EM2ThfXxVbZYXMxUuzTcKeGnh3SjOHQUzk09AwK80hI,27560
32
+ petal_qc/test/analyzeMetrologyTable.py,sha256=hYyDGm7yns5i5SS6--DZfDX4bXbCEvilYPKk1Nm54e0,6759
31
33
  petal_qc/test/checkAVStests.py,sha256=0xAJLazfkgfQ0ouc17fivaj69OXTiS9sali0DhH-jTs,4814
32
34
  petal_qc/test/checkCoreShipments.py,sha256=d9W_uE0tMdfJGRuiiTOGyIW60SIj08QKWjd3Y8aVBi8,1554
33
35
  petal_qc/test/compare_golden.py,sha256=lG1rtYLw_PwKWrLk0VVdbnRhi7Ytu78q7PGWcYptM_8,1171
@@ -39,7 +41,8 @@ petal_qc/test/getAVSjson.py,sha256=o8AYtyr7Vnp-enznmQ-NNiivZipmxtoVrmsfnRCl0X4,9
39
41
  petal_qc/test/getAVStests.py,sha256=MsphZFxiPLCo6gf1ZTQ5Sy415rF35NgvF13OGagunV0,10308
40
42
  petal_qc/test/listPetalCoreComponents.py,sha256=7U9wokRkgeZdYZKeZdAadA32BlhVK6okInuh94hmj24,2502
41
43
  petal_qc/test/prepareDESYfiles.py,sha256=uRir2fv0oGqB6hKnIqRltDW-oLz1tR2SDvVkMVxCfKI,4106
42
- petal_qc/test/reportFromJSon.py,sha256=WKb6M_TDvQV7XzaJgElQNORXBiu31zJNp45ulNSl7kk,2367
44
+ petal_qc/test/reportFromJSon.py,sha256=raF83IArZusR5kh7Lg-Q_3SoHJuM5hPpnnLYgrKBHlQ,2366
45
+ petal_qc/test/testMitutoyo.py,sha256=xN0H13rmcpGbXDLBjccNL8ybdevu-j_gMnracY29ONg,228
43
46
  petal_qc/test/test_Graphana.py,sha256=4wADxS_ObG9n4vsCvD1GwPQnx8bFUiUOS6ZwK83wTl8,1082
44
47
  petal_qc/test/test_coreThermal.py,sha256=YRPK3DGG7Tz66K4Kka3euXgUDzW_JlIqSYicMBhb96E,1516
45
48
  petal_qc/thermal/CSVImage.py,sha256=Vt2kYmUsZWkQvxcF8fDda3HO1Rb29kPQHnEoHFCqWYo,2038
@@ -48,16 +51,17 @@ petal_qc/thermal/DebugPlot.py,sha256=OmREFwNDAKgoObDmcgHrB4d8m3bf2znfsKVGsb5rBGQ
48
51
  petal_qc/thermal/IRBFile.py,sha256=_no8iUyuSQ41j34o3LVzUCjMYoviwjz02tsWvFsTUzA,23462
49
52
  petal_qc/thermal/IRCore.py,sha256=sidf7HtrzEUcllv0E_o1Hks-2_2dl4Og_LWcwgPNRcE,3062
50
53
  petal_qc/thermal/IRDataGetter.py,sha256=px9nFTuDPuwaSkhfA3wT52_3UhwVdD1BtB494poqIp4,11639
51
- petal_qc/thermal/IRPetal.py,sha256=hVOD0VAKTA2xvNXbZ-TXAYHNlihNWsUkI2i9IEwQhZk,40887
54
+ petal_qc/thermal/IRPetal.py,sha256=Im3Xa1ADAzuCKLEzl9i40qOMvfLCGJ8dopA2jGVT7zU,41638
52
55
  petal_qc/thermal/IRPetalParam.py,sha256=u-1tUxjWnLYr7mbdKEtnMssJep-AS7e7HCaUGwu99C8,4682
53
56
  petal_qc/thermal/PetalColorMaps.py,sha256=6CvJHzRdojLHu3BROYSekHw8g_BJ1lJ_edyhovTIydU,3831
54
57
  petal_qc/thermal/Petal_IR_Analysis.py,sha256=BrTii0GZ6KsNM65JUpfRNgOjsR1b2vFJUf0AyskTe3g,3998
55
- petal_qc/thermal/PipeFit.py,sha256=8nEjpZC1mWh4-bhXzwXfjO8WkC_6hFYX0XXPjTHwNUw,18345
58
+ petal_qc/thermal/PipeFit.py,sha256=7jeGPlIBCzeXIKKprGmucxWRrWLxhS4A4HZdt-tQpF4,18502
59
+ petal_qc/thermal/PipeIterFit.py,sha256=5ZOUKlZIsYVB3NSKsT-o3kNojHCXzX9ctMrqvWlJYfM,2053
56
60
  petal_qc/thermal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
61
  petal_qc/thermal/analyze_IRCore.py,sha256=-MsKGJR-5pJV93ipLau0FHQeconLhMPDuLQIT9LMWsU,21115
58
62
  petal_qc/thermal/contours.py,sha256=l8eZOvOhJ50cpJZ2ZPOZ-yjsg3ByQAZ0BPUajag0MwU,9862
59
63
  petal_qc/thermal/coreThermal.py,sha256=lBPyBm3Fo5uXBw6AIpzTY4Ku238Gr9lwm36Iihfbqp0,16203
60
- petal_qc/thermal/create_IRCore.py,sha256=s3X-NBc6KdkqOG7kAcG5ldyTRSuommxIruzMFMu8CjQ,9183
64
+ petal_qc/thermal/create_IRCore.py,sha256=pRHanrKdN9rCL2BurpnCI_958CySu0Ku9yjwssBeCpg,9354
61
65
  petal_qc/thermal/create_core_report.py,sha256=32F7u7ffnLmGX5J_YP2oa8O_pI0euh9z3p0CTpA3-WM,6135
62
66
  petal_qc/thermal/pipe_back.npz,sha256=yooZuVYtHU541HcV6Gh_5B0BqdYAVEvYAuVvMMSY7Jc,3632
63
67
  petal_qc/thermal/pipe_front.npz,sha256=DuwruG9C2Z1rLigqWMApY4Orsf1SGUQGKy0Yan8Bk8A,3697
@@ -72,8 +76,8 @@ petal_qc/utils/docx_utils.py,sha256=zVmSKHDVE8cUwbXxqyPtgS0z62VCFya1DWklOpO1rCQ,
72
76
  petal_qc/utils/fit_utils.py,sha256=3KUGWpBMV-bVDkQHWBigXot8chOpjAVBJ5H5b5dbdjk,5349
73
77
  petal_qc/utils/readGraphana.py,sha256=YVOztJC3q3P7F0I9Ggeiu6Mv9rZLKgj3clkLCU7k4i4,1918
74
78
  petal_qc/utils/utils.py,sha256=CqCsNIcEg6FQb3DN70tmqeLVLlQqsRfDzhfGevlnfBc,4035
75
- petal_qc-0.0.21.dist-info/METADATA,sha256=DcO69dmOdXq0CtsnCIJSVpdkLy5lwtZKRKktWBxCv2k,953
76
- petal_qc-0.0.21.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
77
- petal_qc-0.0.21.dist-info/entry_points.txt,sha256=YPrZOsRBRsiKNDvsnbug0-Khj7DcN_Sdpq-tB_XjykI,505
78
- petal_qc-0.0.21.dist-info/top_level.txt,sha256=CCo1Xe6kLS79PruhsB6bk2CuL9VFtNdNpgJjYUs4jk4,9
79
- petal_qc-0.0.21.dist-info/RECORD,,
79
+ petal_qc-0.0.22.dist-info/METADATA,sha256=wOc_109Gke7y9aMvGCDFvSW_ciFb2aVuHO39MeB1W6Q,953
80
+ petal_qc-0.0.22.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
81
+ petal_qc-0.0.22.dist-info/entry_points.txt,sha256=8cW3MiDBs3BdBPIzf4YtkOjr-MhPKu9aWfc0BTYBhxQ,554
82
+ petal_qc-0.0.22.dist-info/top_level.txt,sha256=CCo1Xe6kLS79PruhsB6bk2CuL9VFtNdNpgJjYUs4jk4,9
83
+ petal_qc-0.0.22.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.3.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -9,4 +9,5 @@ doMetrology = petal_qc:doMetrology
9
9
  petalCoreTestSummary = petal_qc:petalCoreTestSummary
10
10
  petalReceptionTests = petal_qc:petalReceptionTests
11
11
  petalqc_dashBoard = petal_qc:dashBoard
12
+ readReceptionTests = petal_qc:readReceptionTests
12
13
  uploadPetalInformation = petal_qc:uploadPetalInformation