PaIRS-UniNa 0.2.5__cp313-cp313-win_amd64.whl → 0.2.9__cp313-cp313-win_amd64.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.
Files changed (42) hide show
  1. PaIRS_UniNa/Calibration_Tab.py +15 -0
  2. PaIRS_UniNa/Changes.txt +54 -2
  3. PaIRS_UniNa/Explorer.py +118 -19
  4. PaIRS_UniNa/FolderLoop.py +196 -6
  5. PaIRS_UniNa/Input_Tab.py +167 -55
  6. PaIRS_UniNa/Input_Tab_CalVi.py +15 -17
  7. PaIRS_UniNa/Input_Tab_tools.py +9 -10
  8. PaIRS_UniNa/Output_Tab.py +2 -4
  9. PaIRS_UniNa/PaIRS_pypacks.py +227 -56
  10. PaIRS_UniNa/Process_Tab.py +2 -2
  11. PaIRS_UniNa/Process_Tab_Disp.py +1 -1
  12. PaIRS_UniNa/SPIVCalHelp.py +155 -0
  13. PaIRS_UniNa/Saving_tools.py +7 -7
  14. PaIRS_UniNa/TabTools.py +7 -4
  15. PaIRS_UniNa/Vis_Tab.py +129 -60
  16. PaIRS_UniNa/Whatsnew.py +15 -3
  17. PaIRS_UniNa/_PaIRS_PIV.pyd +0 -0
  18. PaIRS_UniNa/__init__.py +4 -4
  19. PaIRS_UniNa/addwidgets_ps.py +28 -20
  20. PaIRS_UniNa/calibView.py +7 -0
  21. PaIRS_UniNa/gPaIRS.py +179 -34
  22. PaIRS_UniNa/icons/flaticon_PaIRS_download_warning.png +0 -0
  23. PaIRS_UniNa/icons/folder_loop_cleanup.png +0 -0
  24. PaIRS_UniNa/icons/folder_loop_cleanup_off.png +0 -0
  25. PaIRS_UniNa/icons/information.png +0 -0
  26. PaIRS_UniNa/icons/information2.png +0 -0
  27. PaIRS_UniNa/icons/pencil_bw.png +0 -0
  28. PaIRS_UniNa/icons/scan_path_loop.png +0 -0
  29. PaIRS_UniNa/icons/scan_path_loop_off.png +0 -0
  30. PaIRS_UniNa/icons/spiv_setup_no.png +0 -0
  31. PaIRS_UniNa/icons/spiv_setup_ok.png +0 -0
  32. PaIRS_UniNa/pivParFor.py +1 -1
  33. PaIRS_UniNa/procTools.py +51 -3
  34. PaIRS_UniNa/rqrdpckgs.txt +6 -5
  35. PaIRS_UniNa/stereoPivParFor.py +1 -1
  36. PaIRS_UniNa/ui_Calibration_Tab.py +90 -57
  37. PaIRS_UniNa/ui_gPairs.py +9 -3
  38. PaIRS_UniNa/whatsnew.txt +4 -4
  39. {pairs_unina-0.2.5.dist-info → pairs_unina-0.2.9.dist-info}/METADATA +32 -17
  40. {pairs_unina-0.2.5.dist-info → pairs_unina-0.2.9.dist-info}/RECORD +42 -32
  41. {pairs_unina-0.2.5.dist-info → pairs_unina-0.2.9.dist-info}/WHEEL +0 -0
  42. {pairs_unina-0.2.5.dist-info → pairs_unina-0.2.9.dist-info}/top_level.txt +0 -0
@@ -2,9 +2,9 @@ from .addwidgets_ps import icons_path
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
4
  ################################################################################
5
- ## Form generated from reading UI file 'Calibration_Tab.ui'
5
+ ## Form generated from reading UI file 'Calibration_TabtAIJpe.ui'
6
6
  ##
7
- ## Created by: Qt User Interface Compiler version 6.7.0
7
+ ## Created by: Qt User Interface Compiler version 6.9.1
8
8
  ##
9
9
  ## WARNING! All changes made in this file will be lost when recompiling UI file!
10
10
  ################################################################################
@@ -40,7 +40,7 @@ class Ui_CalibrationTab(object):
40
40
  font.setPointSize(11)
41
41
  CalibrationTab.setFont(font)
42
42
  icon1 = QIcon()
43
- icon1.addFile(u""+ icons_path +"calibration_logo.png", QSize(), QIcon.Normal, QIcon.Off)
43
+ icon1.addFile(u""+ icons_path +"calibration_logo.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
44
44
  CalibrationTab.setWindowIcon(icon1)
45
45
  self.verticalLayout_65 = QVBoxLayout(CalibrationTab)
46
46
  self.verticalLayout_65.setSpacing(5)
@@ -97,6 +97,22 @@ class Ui_CalibrationTab(object):
97
97
 
98
98
  self.horizontalLayout_2.addWidget(self.w_label_done)
99
99
 
100
+ self.button_info = QToolButton(self.w_Mode)
101
+ self.button_info.setObjectName(u"button_info")
102
+ self.button_info.setMinimumSize(QSize(30, 33))
103
+ self.button_info.setMaximumSize(QSize(30, 33))
104
+ font2 = QFont()
105
+ font2.setPointSize(16)
106
+ self.button_info.setFont(font2)
107
+ self.button_info.setStyleSheet(u"QToolButton#button_PaIRS_download{border: none}")
108
+ icon2 = QIcon()
109
+ icon2.addFile(u""+ icons_path +"information2.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
110
+ self.button_info.setIcon(icon2)
111
+ self.button_info.setIconSize(QSize(24, 24))
112
+ self.button_info.setCheckable(False)
113
+
114
+ self.horizontalLayout_2.addWidget(self.button_info)
115
+
100
116
  self.hs1 = QSpacerItem(30, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
101
117
 
102
118
  self.horizontalLayout_2.addItem(self.hs1)
@@ -105,16 +121,16 @@ class Ui_CalibrationTab(object):
105
121
  self.button_CalVi.setObjectName(u"button_CalVi")
106
122
  self.button_CalVi.setMinimumSize(QSize(99, 33))
107
123
  self.button_CalVi.setMaximumSize(QSize(99, 33))
108
- self.button_CalVi.setCursor(QCursor(Qt.PointingHandCursor))
109
- icon2 = QIcon()
110
- icon2.addFile(u""+ icons_path +"logo_CalVi.png", QSize(), QIcon.Normal, QIcon.Off)
111
- self.button_CalVi.setIcon(icon2)
124
+ self.button_CalVi.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
125
+ icon3 = QIcon()
126
+ icon3.addFile(u""+ icons_path +"logo_CalVi.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
127
+ self.button_CalVi.setIcon(icon3)
112
128
  self.button_CalVi.setIconSize(QSize(75, 25))
113
129
  self.button_CalVi.setCheckable(True)
114
130
 
115
131
  self.horizontalLayout_2.addWidget(self.button_CalVi)
116
132
 
117
- self.hs2 = QSpacerItem(30, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
133
+ self.hs2 = QSpacerItem(50, 20, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
118
134
 
119
135
  self.horizontalLayout_2.addItem(self.hs2)
120
136
 
@@ -122,9 +138,9 @@ class Ui_CalibrationTab(object):
122
138
  self.label_number.setObjectName(u"label_number")
123
139
  self.label_number.setMinimumSize(QSize(15, 0))
124
140
  self.label_number.setMaximumSize(QSize(30, 16777215))
125
- font2 = QFont()
126
- font2.setPointSize(9)
127
- self.label_number.setFont(font2)
141
+ font3 = QFont()
142
+ font3.setPointSize(9)
143
+ self.label_number.setFont(font3)
128
144
  self.label_number.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
129
145
 
130
146
  self.horizontalLayout_2.addWidget(self.label_number)
@@ -137,9 +153,9 @@ class Ui_CalibrationTab(object):
137
153
  self.button_back.setObjectName(u"button_back")
138
154
  self.button_back.setMinimumSize(QSize(24, 24))
139
155
  self.button_back.setMaximumSize(QSize(24, 24))
140
- icon3 = QIcon()
141
- icon3.addFile(u""+ icons_path +"undo.png", QSize(), QIcon.Normal, QIcon.Off)
142
- self.button_back.setIcon(icon3)
156
+ icon4 = QIcon()
157
+ icon4.addFile(u""+ icons_path +"undo.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
158
+ self.button_back.setIcon(icon4)
143
159
  self.button_back.setIconSize(QSize(20, 20))
144
160
 
145
161
  self.horizontalLayout_2.addWidget(self.button_back)
@@ -148,9 +164,9 @@ class Ui_CalibrationTab(object):
148
164
  self.button_forward.setObjectName(u"button_forward")
149
165
  self.button_forward.setMinimumSize(QSize(24, 24))
150
166
  self.button_forward.setMaximumSize(QSize(24, 24))
151
- icon4 = QIcon()
152
- icon4.addFile(u""+ icons_path +"redo.png", QSize(), QIcon.Normal, QIcon.Off)
153
- self.button_forward.setIcon(icon4)
167
+ icon5 = QIcon()
168
+ icon5.addFile(u""+ icons_path +"redo.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
169
+ self.button_forward.setIcon(icon5)
154
170
  self.button_forward.setIconSize(QSize(20, 20))
155
171
 
156
172
  self.horizontalLayout_2.addWidget(self.button_forward)
@@ -171,9 +187,9 @@ class Ui_CalibrationTab(object):
171
187
  self.button_close_tab.setStyleSheet(u"QToolButton{\n"
172
188
  "border-radius: 15px;\n"
173
189
  "}")
174
- icon5 = QIcon()
175
- icon5.addFile(u""+ icons_path +"close.png", QSize(), QIcon.Normal, QIcon.Off)
176
- self.button_close_tab.setIcon(icon5)
190
+ icon6 = QIcon()
191
+ icon6.addFile(u""+ icons_path +"close.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
192
+ self.button_close_tab.setIcon(icon6)
177
193
  self.button_close_tab.setIconSize(QSize(15, 15))
178
194
 
179
195
  self.horizontalLayout_20.addWidget(self.button_close_tab)
@@ -252,7 +268,7 @@ class Ui_CalibrationTab(object):
252
268
  self.scrollArea.setWidgetResizable(True)
253
269
  self.scrollAreaWidgetContents = QWidget()
254
270
  self.scrollAreaWidgetContents.setObjectName(u"scrollAreaWidgetContents")
255
- self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 480, 607))
271
+ self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 480, 605))
256
272
  sizePolicy.setHeightForWidth(self.scrollAreaWidgetContents.sizePolicy().hasHeightForWidth())
257
273
  self.scrollAreaWidgetContents.setSizePolicy(sizePolicy)
258
274
  self.scrollAreaWidgetContents.setMinimumSize(QSize(0, 0))
@@ -276,11 +292,11 @@ class Ui_CalibrationTab(object):
276
292
  self.label_ncam.setSizePolicy(sizePolicy2)
277
293
  self.label_ncam.setMinimumSize(QSize(0, 20))
278
294
  self.label_ncam.setMaximumSize(QSize(80, 20))
279
- font3 = QFont()
280
- font3.setPointSize(10)
281
- font3.setBold(False)
282
- font3.setItalic(True)
283
- self.label_ncam.setFont(font3)
295
+ font4 = QFont()
296
+ font4.setPointSize(10)
297
+ font4.setBold(False)
298
+ font4.setItalic(True)
299
+ self.label_ncam.setFont(font4)
284
300
  self.label_ncam.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter)
285
301
 
286
302
  self.horizontalLayout_5.addWidget(self.label_ncam)
@@ -321,7 +337,7 @@ class Ui_CalibrationTab(object):
321
337
  self.label_list.setSizePolicy(sizePolicy2)
322
338
  self.label_list.setMinimumSize(QSize(110, 20))
323
339
  self.label_list.setMaximumSize(QSize(1000, 20))
324
- self.label_list.setFont(font3)
340
+ self.label_list.setFont(font4)
325
341
  self.label_list.setAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter)
326
342
 
327
343
  self.horizontalLayout_3.addWidget(self.label_list)
@@ -330,12 +346,10 @@ class Ui_CalibrationTab(object):
330
346
  self.button_scan_list.setObjectName(u"button_scan_list")
331
347
  self.button_scan_list.setMinimumSize(QSize(20, 20))
332
348
  self.button_scan_list.setMaximumSize(QSize(20, 20))
333
- font4 = QFont()
334
- font4.setPointSize(16)
335
- self.button_scan_list.setFont(font4)
336
- icon6 = QIcon()
337
- icon6.addFile(u""+ icons_path +"scan_list.png", QSize(), QIcon.Normal, QIcon.Off)
338
- self.button_scan_list.setIcon(icon6)
349
+ self.button_scan_list.setFont(font2)
350
+ icon7 = QIcon()
351
+ icon7.addFile(u""+ icons_path +"scan_list.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
352
+ self.button_scan_list.setIcon(icon7)
339
353
  self.button_scan_list.setIconSize(QSize(18, 18))
340
354
  self.button_scan_list.setCheckable(False)
341
355
 
@@ -349,10 +363,10 @@ class Ui_CalibrationTab(object):
349
363
  self.button_import.setObjectName(u"button_import")
350
364
  self.button_import.setMinimumSize(QSize(20, 20))
351
365
  self.button_import.setMaximumSize(QSize(20, 20))
352
- self.button_import.setFont(font4)
353
- icon7 = QIcon()
354
- icon7.addFile(u""+ icons_path +"read.png", QSize(), QIcon.Normal, QIcon.Off)
355
- self.button_import.setIcon(icon7)
366
+ self.button_import.setFont(font2)
367
+ icon8 = QIcon()
368
+ icon8.addFile(u""+ icons_path +"read.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
369
+ self.button_import.setIcon(icon8)
356
370
  self.button_import.setIconSize(QSize(18, 18))
357
371
  self.button_import.setCheckable(False)
358
372
 
@@ -369,10 +383,10 @@ class Ui_CalibrationTab(object):
369
383
  self.button_copy.setObjectName(u"button_copy")
370
384
  self.button_copy.setMinimumSize(QSize(20, 20))
371
385
  self.button_copy.setMaximumSize(QSize(20, 20))
372
- self.button_copy.setFont(font4)
373
- icon8 = QIcon()
374
- icon8.addFile(u""+ icons_path +"copy.png", QSize(), QIcon.Normal, QIcon.Off)
375
- self.button_copy.setIcon(icon8)
386
+ self.button_copy.setFont(font2)
387
+ icon9 = QIcon()
388
+ icon9.addFile(u""+ icons_path +"copy.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
389
+ self.button_copy.setIcon(icon9)
376
390
  self.button_copy.setIconSize(QSize(18, 18))
377
391
  self.button_copy.setCheckable(False)
378
392
 
@@ -382,10 +396,10 @@ class Ui_CalibrationTab(object):
382
396
  self.button_cut.setObjectName(u"button_cut")
383
397
  self.button_cut.setMinimumSize(QSize(20, 20))
384
398
  self.button_cut.setMaximumSize(QSize(20, 20))
385
- self.button_cut.setFont(font4)
386
- icon9 = QIcon()
387
- icon9.addFile(u""+ icons_path +"cut.png", QSize(), QIcon.Normal, QIcon.Off)
388
- self.button_cut.setIcon(icon9)
399
+ self.button_cut.setFont(font2)
400
+ icon10 = QIcon()
401
+ icon10.addFile(u""+ icons_path +"cut.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
402
+ self.button_cut.setIcon(icon10)
389
403
  self.button_cut.setIconSize(QSize(18, 18))
390
404
  self.button_cut.setCheckable(False)
391
405
 
@@ -395,10 +409,10 @@ class Ui_CalibrationTab(object):
395
409
  self.button_paste_below.setObjectName(u"button_paste_below")
396
410
  self.button_paste_below.setMinimumSize(QSize(20, 20))
397
411
  self.button_paste_below.setMaximumSize(QSize(20, 20))
398
- self.button_paste_below.setFont(font4)
399
- icon10 = QIcon()
400
- icon10.addFile(u""+ icons_path +"paste_below.png", QSize(), QIcon.Normal, QIcon.Off)
401
- self.button_paste_below.setIcon(icon10)
412
+ self.button_paste_below.setFont(font2)
413
+ icon11 = QIcon()
414
+ icon11.addFile(u""+ icons_path +"paste_below.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
415
+ self.button_paste_below.setIcon(icon11)
402
416
  self.button_paste_below.setIconSize(QSize(18, 18))
403
417
  self.button_paste_below.setCheckable(False)
404
418
 
@@ -408,10 +422,10 @@ class Ui_CalibrationTab(object):
408
422
  self.button_paste_above.setObjectName(u"button_paste_above")
409
423
  self.button_paste_above.setMinimumSize(QSize(20, 20))
410
424
  self.button_paste_above.setMaximumSize(QSize(20, 20))
411
- self.button_paste_above.setFont(font4)
412
- icon11 = QIcon()
413
- icon11.addFile(u""+ icons_path +"paste_above.png", QSize(), QIcon.Normal, QIcon.Off)
414
- self.button_paste_above.setIcon(icon11)
425
+ self.button_paste_above.setFont(font2)
426
+ icon12 = QIcon()
427
+ icon12.addFile(u""+ icons_path +"paste_above.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
428
+ self.button_paste_above.setIcon(icon12)
415
429
  self.button_paste_above.setIconSize(QSize(18, 18))
416
430
  self.button_paste_above.setCheckable(False)
417
431
 
@@ -428,10 +442,10 @@ class Ui_CalibrationTab(object):
428
442
  self.button_clean.setObjectName(u"button_clean")
429
443
  self.button_clean.setMinimumSize(QSize(20, 20))
430
444
  self.button_clean.setMaximumSize(QSize(20, 20))
431
- self.button_clean.setFont(font4)
432
- icon12 = QIcon()
433
- icon12.addFile(u""+ icons_path +"clean.png", QSize(), QIcon.Normal, QIcon.Off)
434
- self.button_clean.setIcon(icon12)
445
+ self.button_clean.setFont(font2)
446
+ icon13 = QIcon()
447
+ icon13.addFile(u""+ icons_path +"clean.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
448
+ self.button_clean.setIcon(icon13)
435
449
  self.button_clean.setIconSize(QSize(18, 18))
436
450
  self.button_clean.setCheckable(False)
437
451
 
@@ -443,6 +457,7 @@ class Ui_CalibrationTab(object):
443
457
  self.calTree = CalibrationTree(self.scrollAreaWidgetContents)
444
458
  self.calTree.setObjectName(u"calTree")
445
459
  self.calTree.setUniformRowHeights(True)
460
+ self.calTree.setColumnCount(2)
446
461
  self.calTree.header().setVisible(True)
447
462
 
448
463
  self.verticalLayout_10.addWidget(self.calTree)
@@ -459,6 +474,17 @@ class Ui_CalibrationTab(object):
459
474
  QWidget.setTabOrder(self.button_back, self.button_forward)
460
475
  QWidget.setTabOrder(self.button_forward, self.button_close_tab)
461
476
  QWidget.setTabOrder(self.button_close_tab, self.scrollArea)
477
+ QWidget.setTabOrder(self.scrollArea, self.button_info)
478
+ QWidget.setTabOrder(self.button_info, self.button_CalVi)
479
+ QWidget.setTabOrder(self.button_CalVi, self.spin_ncam)
480
+ QWidget.setTabOrder(self.spin_ncam, self.button_scan_list)
481
+ QWidget.setTabOrder(self.button_scan_list, self.button_import)
482
+ QWidget.setTabOrder(self.button_import, self.button_copy)
483
+ QWidget.setTabOrder(self.button_copy, self.button_cut)
484
+ QWidget.setTabOrder(self.button_cut, self.button_paste_below)
485
+ QWidget.setTabOrder(self.button_paste_below, self.button_paste_above)
486
+ QWidget.setTabOrder(self.button_paste_above, self.button_clean)
487
+ QWidget.setTabOrder(self.button_clean, self.calTree)
462
488
 
463
489
  self.retranslateUi(CalibrationTab)
464
490
 
@@ -470,6 +496,10 @@ class Ui_CalibrationTab(object):
470
496
  self.icon.setText("")
471
497
  self.name_tab.setText(QCoreApplication.translate("CalibrationTab", u" Calibration", None))
472
498
  self.label_done.setText("")
499
+ #if QT_CONFIG(tooltip)
500
+ self.button_info.setToolTip(QCoreApplication.translate("CalibrationTab", u"Download the latest version of PaIRS-UniNa", None))
501
+ #endif // QT_CONFIG(tooltip)
502
+ self.button_info.setText("")
473
503
  self.button_CalVi.setText("")
474
504
  self.label_number.setText(QCoreApplication.translate("CalibrationTab", u"1", None))
475
505
  #if QT_CONFIG(tooltip)
@@ -541,5 +571,8 @@ class Ui_CalibrationTab(object):
541
571
  #if QT_CONFIG(shortcut)
542
572
  self.button_clean.setShortcut(QCoreApplication.translate("CalibrationTab", u"Ctrl+O", None))
543
573
  #endif // QT_CONFIG(shortcut)
574
+ ___qtreewidgetitem = self.calTree.headerItem()
575
+ ___qtreewidgetitem.setText(1, QCoreApplication.translate("CalibrationTab", u"filename", None));
576
+ ___qtreewidgetitem.setText(0, QCoreApplication.translate("CalibrationTab", u"#", None));
544
577
  # retranslateUi
545
578
 
PaIRS_UniNa/ui_gPairs.py CHANGED
@@ -2,7 +2,7 @@ from .addwidgets_ps import icons_path
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
4
  ################################################################################
5
- ## Form generated from reading UI file 'gPairsgdPnui.ui'
5
+ ## Form generated from reading UI file 'gPairsBWkUdB.ui'
6
6
  ##
7
7
  ## Created by: Qt User Interface Compiler version 6.7.2
8
8
  ##
@@ -120,6 +120,11 @@ class Ui_gPairs(object):
120
120
  icon12 = QIcon()
121
121
  icon12.addFile(u""+ icons_path +"news.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
122
122
  self.actionChanges.setIcon(icon12)
123
+ self.actionDownload = QAction(gPairs)
124
+ self.actionDownload.setObjectName(u"actionDownload")
125
+ icon13 = QIcon()
126
+ icon13.addFile(u""+ icons_path +"flaticon_PaIRS_download.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
127
+ self.actionDownload.setIcon(icon13)
123
128
  self.centralwidget = QWidget(gPairs)
124
129
  self.centralwidget.setObjectName(u"centralwidget")
125
130
  self.centralwidget.setMinimumSize(QSize(0, 0))
@@ -181,8 +186,6 @@ class Ui_gPairs(object):
181
186
  font1.setPointSize(16)
182
187
  self.button_PaIRS_download.setFont(font1)
183
188
  self.button_PaIRS_download.setStyleSheet(u"QToolButton#button_PaIRS_download{border: none}")
184
- icon13 = QIcon()
185
- icon13.addFile(u""+ icons_path +"flaticon_PaIRS_download.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
186
189
  self.button_PaIRS_download.setIcon(icon13)
187
190
  self.button_PaIRS_download.setIconSize(QSize(24, 24))
188
191
  self.button_PaIRS_download.setCheckable(False)
@@ -736,6 +739,8 @@ class Ui_gPairs(object):
736
739
  self.menuHelp.addAction(self.actionChanges)
737
740
  self.menuHelp.addAction(self.actionGuide)
738
741
  self.menuHelp.addSeparator()
742
+ self.menuHelp.addAction(self.actionDownload)
743
+ self.menuHelp.addSeparator()
739
744
  self.menuHelp.addAction(self.actionAbout)
740
745
  self.menu.addAction(self.menuPaIRS.menuAction())
741
746
  self.menuPaIRS.addAction(self.actionPaIRS_Run)
@@ -774,6 +779,7 @@ class Ui_gPairs(object):
774
779
  self.actionCalVi_Clean_run.setText(QCoreApplication.translate("gPairs", u"Clean run", None))
775
780
  self.actionCalVi_Debug_run.setText(QCoreApplication.translate("gPairs", u"Debug run", None))
776
781
  self.actionChanges.setText(QCoreApplication.translate("gPairs", u"Changes", None))
782
+ self.actionDownload.setText(QCoreApplication.translate("gPairs", u"Download app", None))
777
783
  #if QT_CONFIG(tooltip)
778
784
  self.logo.setToolTip(QCoreApplication.translate("gPairs", u"PaIRS - Particle Image Reconstruction Software", None))
779
785
  #endif // QT_CONFIG(tooltip)
PaIRS_UniNa/whatsnew.txt CHANGED
@@ -1,6 +1,6 @@
1
- % Fixed critical bugs in launching PIV and stereoscopic PIV processes in special cases.<br><br>Fixed tooltip crash introduced by PySide 6.9.<br><br>Fixed minor bugs in process context menu and copy/link functionality.<br><br>Resolved display bugs in image selection tree and map visualization.<br>
2
- & PaIRS now checks the compatibility of installed Python packages — if mismatches are detected, the user is warned.<br><br>Disparity maps are now saved in the output folder, along with the constants of the laser sheet plane equation, and can also be visualized in Vis.<br><br>Vis now includes a view restriction tool, allowing the field of view to be limited to the size of the interrogation window.<br>
3
- * New worker execution logic improves control and robustness during processing.<br><br>Improved GUI responsiveness when defining steps and navigating the process tree.<br><br>Enhanced plotting: coordinate/value display under the cursor is now cleaner and more readable.<br>
4
- § Releases for Python 3.9 are no longer provided!<br><br>New Python 3.13 builds are now available!<br>
1
+ % Corrected an error in z-vorticity caused by improper unit conversion of velocity gradients.<br><br>Fixed misalignment issues between maps and vector fields in Vis.<br><br>Removed path relativization to avoid cross-platform inconsistencies.<br><br>
2
+ & Added new options in the batch folder-copy tool to automatically skip image pairs with missing files and/or re-scan destination folders.<br><br>Vis now loads and displays the saved log file when opening past results.<br><br>
3
+ * Improved naming of duplicated processes with consistent incremental suffixes.<br><br>Enhanced the Image Import Tool in the Input tab.<br><br>Refined path completers' behaviour.<br><br>Resizing and level-reset settings in Vis now apply per step instead of globally.<br><br>Added a dedicated calibration guidance dialog, providing users with the correct coordinate conventions for stereoscopic setups and illustrating proper and improper configurations.<br><br>
4
+ § PaIRS now ships with executables! Download them from the <a href="https://www.pairs.unina.it/#download">PaIRS website</a>.<br>
5
5
 
6
6
  # !=critical issue, %=bugfix, &=announcement, *=improvement, £=bold font without icon, §=python distribution
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PaIRS_UniNa
3
- Version: 0.2.5
3
+ Version: 0.2.9
4
4
  Summary: PaIRS - Particle Image Reconstruction Software
5
5
  Home-page: https://pairs.unina.it/
6
6
  Author: Gerardo Paolillo and Tommaso Astarita
@@ -20,6 +20,7 @@ Requires-Dist: numpy>=2.0.0
20
20
  Requires-Dist: pyside6>=6.7.0
21
21
  Requires-Dist: unidecode>=1.3.0
22
22
  Requires-Dist: psutil>=6.0.0
23
+ Requires-Dist: certifi>=2025.7.14
23
24
  Dynamic: author
24
25
  Dynamic: author-email
25
26
  Dynamic: classifier
@@ -45,32 +46,33 @@ CalVi is the calibration module of PaIRS-UniNa and allows accurate optical calib
45
46
 
46
47
  PaIRS-UniNa is supported by Python 3.10+ and is compatible with all the operating systems, however, the PaIRS-PIV library relies on OpemMP library, which must be installed on the macOS platform. On the other side, PaIRS requires, among other packages, `SciPy` and `matplotlib`.
47
48
 
48
- For further information, please visit [PaIRS website](https://www.pairs.unina.it/).
49
+ For further information, please visit the [PaIRS website](https://www.pairs.unina.it/).
49
50
 
50
- ## What's new in PaIRS-UniNa 0.2.5
51
+ ## What's new in PaIRS-UniNa 0.2.9
51
52
 
52
53
  ### Bug fixes:
53
- - fixed bugs in launching PIV and stereoscopic PIV processes in special cases;
54
- - fixed tooltip crash introduced by PySide 6.9;
55
- - corrected package import errors and context menu bugs;
56
- - resolved multiple visual glitches in image tree selection and map visualization.
54
+ - Corrected a bug in the vorticity computation caused by missing conversion of velocity gradients into correct physical units.
55
+ - Corrected misalignment issues affecting output-variable maps and vector fields in Vis.
56
+ - Fixed inconsistent path handling in the batch-folder copy and other modules by removing path relativization.
57
57
 
58
58
  ### New features:
59
- - implemented version control of required Python packages with automatic compatibility check and warning;
60
- - disparity maps are now automatically saved in the output folder and can be visualized in Vis;
61
- - added tools for restricting view in Vis based on interrogation window size and shifting the view window interactively.
59
+ - Sdded new options in the batch folder-copy tool to automatically skip image pairs with missing files and to re-scan destination folders, useful when image-set mismatches may be present.
60
+ - Vis now automatically loads and displays the saved log file when opening past results under the specified output path and name root.
62
61
 
63
62
  ### User-interface enhancements:
64
- - redesigned the execution logic of internal workers for improved control and robustness;
65
- - improved formatting and display of coordinates and variable values when moving the cursor during map visualization;
66
- - updated button labels and layout for clarity and consistency.
63
+ - Improved naming of duplicated processes with consistent incremental suffixes.
64
+ - Enhanced the Image Import Tool: minimum step is now 1 and the import button remains always active, showing a warning when no changes in the image list are detected.
65
+ - Improved stability and behavior of path completers in the Input tabs.
66
+ - In Vis, resizing and automatic level-reset settings are now applied individually per step rather than globally.
67
+ - Added a calibration guidance dialog outlining the correct coordinate conventions for stereoscopic PIV and illustrating proper and improper setups.
67
68
 
68
69
  ### Distribution:
69
- - Support for Python 3.9 has been discontinued;
70
- - Python 3.13 builds have been successfully created and tested.
70
+ - ready-to-use executables of PaIRS are now available!
71
71
 
72
+ ## Portable executable
73
+ Download the standalone PaIRS_UniNa executable from the [PaIRS website](https://www.pairs.unina.it/#download).
72
74
 
73
- ## Installation
75
+ ## Installation in Python
74
76
  All PaIRS-UniNa wheels are distributed under LGPLv3+ licences. The installation can be performed with:
75
77
  ```
76
78
  python -m pip install PaIRS-UniNa
@@ -83,7 +85,7 @@ sudo tar fvxz openmp-12.0.1-darwin20-Release.tar.gz -C /
83
85
  ```
84
86
 
85
87
  ## Run
86
- ### From command prompt
88
+ ### From command prompt (Python package)
87
89
  It is possible to run PaIRS directly from the command prompt with:
88
90
  ```
89
91
  python -m PaIRS_UniNa
@@ -100,6 +102,19 @@ After the above command, the user will be asked to enter a password. Interested
100
102
 
101
103
  On macOS and Linux ```python``` must be replaced by ```python3```.
102
104
 
105
+ ### From command prompt (executable version)
106
+ The same options are also available when using the portable/executable version of PaIRS. From the command prompt you can simply run:
107
+ ```
108
+ PaIRS -c (Windows)
109
+ ./PaIRS -c (MacOS/Linux)
110
+ ```
111
+ to perform a clean run, or:
112
+ ```
113
+ PaIRS -d (Windows)
114
+ ./PaIRS -d (MacOS/Linux)
115
+ ```
116
+ to start in debug mode (password required).
117
+
103
118
  ### In Python environment
104
119
  In a Python environment, to run PaIRS the following commands can be used :
105
120
  ```
@@ -1,48 +1,49 @@
1
- PaIRS_UniNa/Calibration_Tab.py,sha256=76K506LD4XskIcmp0YutfSDVcpNccDXGfLztV57D4bo,13133
2
- PaIRS_UniNa/Changes.txt,sha256=XKTAgkPF-RJG0G-62ufq_u89KLvjUSU_xLB1Nj--KHY,8711
1
+ PaIRS_UniNa/Calibration_Tab.py,sha256=QaZZeIfsMST5-j4Io_U3CmPK42SFeKkaQ99ooLZpwcg,13806
2
+ PaIRS_UniNa/Changes.txt,sha256=WniShRZWPoScRgfaNu9gF4klvF_eEGRlRwm6eYOa6dY,12900
3
3
  PaIRS_UniNa/Custom_Top.py,sha256=lBF8_GmJYauWSuhOUH0R-kllv7_gBLIcVZruarVe6kg,11943
4
- PaIRS_UniNa/Explorer.py,sha256=w0UzUrtHJwfzXTr0SfAzgQYEZyb6DiUxs3ETglXR83I,137078
5
- PaIRS_UniNa/FolderLoop.py,sha256=5NSzQQHc1ek3Jj_3nwAJ6dVaRGmE_BXCc7o8-6QGHXQ,16237
6
- PaIRS_UniNa/Input_Tab.py,sha256=vlHBLf8BQoiBP7F5tH7OFrbQibypt2z5uajdjQDXfjY,33205
7
- PaIRS_UniNa/Input_Tab_CalVi.py,sha256=IB0iZmf7zzOggLFNbamIR4nfhJWKj3IJO6SvugplekQ,34457
8
- PaIRS_UniNa/Input_Tab_tools.py,sha256=WArqOom2OCFo7TasHO9rbwGJ-jAf9blAu9ZPI407tfQ,123933
4
+ PaIRS_UniNa/Explorer.py,sha256=vdCiBniiGHxbrqVrRv1tkqhWlpdYI46lDDaeHlKwMrY,141744
5
+ PaIRS_UniNa/FolderLoop.py,sha256=V1OKKf_iscHtNFI3ilOsx7sLZ1oKlKaUa1Lcz-zYk3U,25244
6
+ PaIRS_UniNa/Input_Tab.py,sha256=AdUFLvwmoNROmqCvOSSOofhbkCjANSItX6UYM4wVy44,37956
7
+ PaIRS_UniNa/Input_Tab_CalVi.py,sha256=UaJzss-XBmx9yIu_sM4JzmdZWL_au9bhQ1nxEFb1vq0,34299
8
+ PaIRS_UniNa/Input_Tab_tools.py,sha256=tnifDbJ0_S3J-qoRq0v86rEMLvFEzR3IEC5U21eGxYQ,123917
9
9
  PaIRS_UniNa/Log_Tab.py,sha256=beiXlmPlIpt1VMl10ZxFGK6mTpWmm8Jy4d2ckNsQigs,3603
10
- PaIRS_UniNa/Output_Tab.py,sha256=WekNy-R6i1tLY-zHwyrsbN8dIt8ts_xRseO5nwMj1Zw,41093
10
+ PaIRS_UniNa/Output_Tab.py,sha256=oUwP0WhrOLcV_g3jKgKfGHdqPs5ydtQNknwgbYIZxR0,41024
11
11
  PaIRS_UniNa/PaIRS.py,sha256=paXrJMdEqwjH18suV1GREZi5VNo1x--Bam2JT1kpoBs,347
12
12
  PaIRS_UniNa/PaIRS_PIV.py,sha256=ROaCHUP7QWyy4CqHOH0mYWp-IiOCvuayn2mJGUQ0ewY,47077
13
- PaIRS_UniNa/PaIRS_pypacks.py,sha256=qD3AGxrZlwB6YRALYpQJPi9tFj4Fep5eNq-AFecM-5I,54146
14
- PaIRS_UniNa/Process_Tab.py,sha256=gys7pj1B-ikyKjCBcG59DfKqzAPqhKcvLTxky1hSZo4,77090
13
+ PaIRS_UniNa/PaIRS_pypacks.py,sha256=DK87VtZpK5xI3A1dC8gHU_N8aPPo76NN17KIUBm05aM,61714
14
+ PaIRS_UniNa/Process_Tab.py,sha256=qYL03F32Vi_k66XtkzmNXKMbjeWm_t5qE-iEmrrQFlg,77092
15
15
  PaIRS_UniNa/Process_Tab_CalVi.py,sha256=wpYzuI4a-mb5kowxDywA93k3AJHQAA4wZ6LwZsjArpo,12756
16
- PaIRS_UniNa/Process_Tab_Disp.py,sha256=WPm4OuCCBIlGswzVXa2uX4Y30LfiHaeZiO9Q8XbB-08,5929
16
+ PaIRS_UniNa/Process_Tab_Disp.py,sha256=D5L39ploEAgf7AI_eCGULp6nYVJmjRhW1E07_DRhsj8,5930
17
17
  PaIRS_UniNa/Process_Tab_Min.py,sha256=RCP11E7aKoP_wU6yhktUN6N9rD5SwYZhfCGGldq7tYs,4085
18
18
  PaIRS_UniNa/ResizePopup.py,sha256=XvS5VFDE_s3sNv6pcWIt4rodSk5I_oFl3S9tRK90evg,1804
19
- PaIRS_UniNa/Saving_tools.py,sha256=_KPz0SOwm7yy4d7brmLUn_gP28kjqcY5lkiSWVBsTU8,11102
20
- PaIRS_UniNa/TabTools.py,sha256=5keTQVBbBFK5XpNfOaBZeh3p5OConKFHiF4nngYRTEE,54322
21
- PaIRS_UniNa/Vis_Tab.py,sha256=-OM930TwtKIcVWalUI_zslRa_X_HNfUtllq1t_p5dF8,94053
19
+ PaIRS_UniNa/SPIVCalHelp.py,sha256=I_cU4bml5FeAmjRHdLJCrgxJ46u2arvmA8HUTfoSxHA,5950
20
+ PaIRS_UniNa/Saving_tools.py,sha256=_ku71sU7tTRiNahJjLumagw4mclqFVPJDsweluc34C0,11150
21
+ PaIRS_UniNa/TabTools.py,sha256=_geVIsK2yVy2BoxKGDmLCO55y6SoSsRvBAMLylaP4n8,54484
22
+ PaIRS_UniNa/Vis_Tab.py,sha256=oLQTC_4yo67JgMDU-G2FQhq14PrjCf1bJLpigO7X_30,97859
22
23
  PaIRS_UniNa/Vis_Tab_CalVi.py,sha256=w9eI_MfFiIp3puk74g3gyPw0vzI1wajKYH15IxwKFg8,42803
23
- PaIRS_UniNa/Whatsnew.py,sha256=tcQX2vPFHWy353cFB7ShFvZz1beVjVLM4oxVZHlY51I,5238
24
- PaIRS_UniNa/_PaIRS_PIV.pyd,sha256=Wo9NX9YDK1hCoeLTfya6X5zsRfvNF_307QD_dzIji70,3496960
25
- PaIRS_UniNa/__init__.py,sha256=uOISyfiR24IY728cjgJY-09keZ-tUwKaN6Ovlv8puK4,145
24
+ PaIRS_UniNa/Whatsnew.py,sha256=fqpSBLU0uFap-ZlYQyOtE6kOwWyuXJPJz8LUHA4Zi58,5816
25
+ PaIRS_UniNa/_PaIRS_PIV.pyd,sha256=vSM0d7IIFAxksWMSjRTpncUEtJWYPYl7ZsfmvuZ8dC8,3561984
26
+ PaIRS_UniNa/__init__.py,sha256=93iq5QYmOQcdjaGBqP9nAelmyzrj4mqo7T82r_wGwAM,143
26
27
  PaIRS_UniNa/__main__.py,sha256=639RU4DJEr8cAWbT8BOikjT_hd6Vxvo5xgWxyo54GAI,1369
27
- PaIRS_UniNa/addwidgets_ps.py,sha256=QHsyI9_f7QYheZktdbHub3KE5ObrxtaDHM8AGbifibw,42694
28
+ PaIRS_UniNa/addwidgets_ps.py,sha256=2KvIs_GkeN9w77vinEDLa67eVRrmqNGCIGMuUSvHhdE,43021
28
29
  PaIRS_UniNa/calib.py,sha256=njCPx4qMcOrpJBLQjQXVKneqo-svl4gjGWoNIAB2jgk,66036
29
- PaIRS_UniNa/calibView.py,sha256=eklj90Uuh8oUf9FJCygkq9gv1DASvzgPDctW32WePnk,33984
30
- PaIRS_UniNa/gPaIRS.py,sha256=MPwZvGb6X4GIBvrIiwLnOGZejMN2MJ99NBrrDu-Assk,178117
30
+ PaIRS_UniNa/calibView.py,sha256=jzOw-rHko87Cl11GnOH5zZzko3Ri86T9fIwgmU2JZig,34366
31
+ PaIRS_UniNa/gPaIRS.py,sha256=zfN7ik7rF6TmyYBSziik1TXSkr7VWOYNPh14RElThbs,185115
31
32
  PaIRS_UniNa/gPalette.py,sha256=UcGqKO1OlaunCNIrGjUAKQRbZkwJnUn1-lT-ojZMbdU,17390
32
33
  PaIRS_UniNa/listLib.py,sha256=eyWTLZiIG4B60L87tcTZtRfNwJOMTkd_3_d0gHvU20Q,12135
33
34
  PaIRS_UniNa/mtfPIV.py,sha256=z8MrMUIEG934TM7O0MX1IYcT7dnW35NumVkthm7YUlI,8051
34
35
  PaIRS_UniNa/parForMulti.py,sha256=5FFvo0pDYJLW-wAEB2ofGmWo_-ogq-0izjpd2S19l7k,18415
35
36
  PaIRS_UniNa/parForWorkers.py,sha256=W_4A5A4GtRQ0GLlPw5nkW5xs3hmgv9FH2LuU6HixhL0,28836
36
- PaIRS_UniNa/pivParFor.py,sha256=Fw_qQtZJTuFhZ2QKswkoCzQX8csj_Jer27v4cTjP1dk,11148
37
+ PaIRS_UniNa/pivParFor.py,sha256=oQX0Pz9EJh2Yf2KKGtM9RQ5wNpM452lWxkrilWJ6v4s,11153
37
38
  PaIRS_UniNa/plt_util.py,sha256=fqVCrAptE55qpFPPiKHUfFa3S4jUUETPRrB6w6CoWbs,3327
38
39
  PaIRS_UniNa/preProcParFor.py,sha256=XqigjWdcTWtYlEcdINx6YY_jE9BE3gw5ET_hITAMxJc,7474
39
- PaIRS_UniNa/procTools.py,sha256=IUh0Tac5nOklgoxShcHtCu7PmqpqOKMd17A94MP6EwU,65748
40
+ PaIRS_UniNa/procTools.py,sha256=qjamhgHfl8lLbuRAVBJW6zZ_dx8VkmnuzKxmnm5ae1g,67651
40
41
  PaIRS_UniNa/readcfg.py,sha256=RBbQNVNfChA8O-ZEWJliuu7T4xOS7PRxFE08TlJKekc,2122
41
- PaIRS_UniNa/rqrdpckgs.txt,sha256=dIwj6eQzKP2_VkPv_YqjbUIP0nIhb8gFzRVTdSkX9Es,189
42
- PaIRS_UniNa/stereoPivParFor.py,sha256=NeUdXnU1dgYZhIG9_0J1eJVRUxKMA59kW2D09wAcbGU,11243
42
+ PaIRS_UniNa/rqrdpckgs.txt,sha256=3m2BSs46Z_l4rDFF2xvSGfGTUMNn1m0Xgmc4UD9U8jE,219
43
+ PaIRS_UniNa/stereoPivParFor.py,sha256=_5_9_G2F52FLmYcX_UDLBj_CN-7r17vKUcZavAxB53c,11248
43
44
  PaIRS_UniNa/tAVarie.py,sha256=ijMLekwWY4SqLYKAqsPSQiGScdYonM4_MjikGvICEGk,9400
44
45
  PaIRS_UniNa/tabSplitter.py,sha256=MHN6QeIKJywmdEY69k5KzvPzFr8B1tS8sgzRjgmCoG8,26597
45
- PaIRS_UniNa/ui_Calibration_Tab.py,sha256=ycCuIYL0FI13u2eHYL0ZG8qGA5kW8WLRktpE36RTeis,25244
46
+ PaIRS_UniNa/ui_Calibration_Tab.py,sha256=avlghJO7Yu-5wSBAb7yPno9g-2yxsvcNHSi7ipy53eA,27359
46
47
  PaIRS_UniNa/ui_Custom_Top.py,sha256=eyJ39I2mVJCxkYUDZZNoGIzr5Ut19nB72F8ssllh2oo,13972
47
48
  PaIRS_UniNa/ui_Input_Tab.py,sha256=wsDgtCsqgYw2gL8JAgiYp7m2i0rMiKRmZzXfSETk5II,54767
48
49
  PaIRS_UniNa/ui_Input_Tab_CalVi.py,sha256=0VgKTX0NnFpla0U2TmsCCaZMjVhOHPvqChsshkVyWOI,63458
@@ -56,9 +57,9 @@ PaIRS_UniNa/ui_ResizePopup.py,sha256=QvHCYUn4gop6ad0FRQwk_Vwic-GDs352zgW4nOEwPOw
56
57
  PaIRS_UniNa/ui_Vis_Tab.py,sha256=zqMSxbiZZELXaGkCK5f7yz5A6tbygtayNdg9LqdppWI,83577
57
58
  PaIRS_UniNa/ui_Vis_Tab_CalVi.py,sha256=-YpyQgycMVP_AzLdreNshprk1n_lNDxCtoeVgwmBEL8,63205
58
59
  PaIRS_UniNa/ui_Whatsnew.py,sha256=mQkGMzgHQeQqAftF3icu7GvczazFDLMX8BCTem_27ss,5776
59
- PaIRS_UniNa/ui_gPairs.py,sha256=vNtSEHzCWUqGBfkzHP9YKbF4Gpdc3_ilAZCeeprhjwI,45682
60
+ PaIRS_UniNa/ui_gPairs.py,sha256=QKzIIp8Ogfb09pSAKH3gBq3F7Sfl75EBfsmFM6lVH2g,46026
60
61
  PaIRS_UniNa/ui_infoPaIRS.py,sha256=AhJ8YUfH9zj6OEIec351cSAUFhpkHdzLWPOG1V0yj4M,37835
61
- PaIRS_UniNa/whatsnew.txt,sha256=aN82hRQq08XsLtZF3De1cKdhgSlvUDhLGhjU4AF1QCE,1199
62
+ PaIRS_UniNa/whatsnew.txt,sha256=N6Dr2lZUNQS8WP5wHW0dKr4sNr3XGKhaHrDso-Q3WuM,1185
62
63
  PaIRS_UniNa/icons/abort.png,sha256=gdSz0VMk5BgZRPthvUgH_ZE5MmyOdOrE3jf2FG5qe2U,79115
63
64
  PaIRS_UniNa/icons/about.png,sha256=svhha0azUto_21uljl1BEdhtSfvm7AyOBcjGMvgms2o,15523
64
65
  PaIRS_UniNa/icons/align_all.png,sha256=rAzKfmsg6zI3CGmvAj8A5XhFsltsofdK5zYWLFezkDc,20200
@@ -121,9 +122,12 @@ PaIRS_UniNa/icons/find_plane.png,sha256=7h2t-JTAbEtJbosO35MSZFKbJLq83IFEYMI1tQgV
121
122
  PaIRS_UniNa/icons/flaticon_PaIRS.png,sha256=4RAgkTv6zROKMRpFFHgQjWxa8mzVo5LzhjzTMSMaJ4c,17087
122
123
  PaIRS_UniNa/icons/flaticon_PaIRS_beta.png,sha256=a2pUe_QoDKb_gQRxgDzsZZeAvLAixFb0mYYdup1f5YE,22870
123
124
  PaIRS_UniNa/icons/flaticon_PaIRS_download.png,sha256=s4XjqnttNF8zoqN_xpkwuVpcGcx5vk2sJkTTibBt7gA,18846
125
+ PaIRS_UniNa/icons/flaticon_PaIRS_download_warning.png,sha256=NKqoTqENrm07-83eoz-fnGGEbTKMRw00csSKTXbQ36o,27160
124
126
  PaIRS_UniNa/icons/flip_y_off.png,sha256=JLw8pxFv4qrOWaFNG0wO1t8P-tc_hhEqN9ygToWgQNU,8368
125
127
  PaIRS_UniNa/icons/flip_y_on.png,sha256=K6_pd63-qN6G_X7hkTg-QM9UV0Y743kbbst8YnK-sEs,9060
126
128
  PaIRS_UniNa/icons/focusErrr.png,sha256=8VAc6ZyNE3L76neaDZ3NfFIxmG7yo0lYGT0Zcj1kf74,5471
129
+ PaIRS_UniNa/icons/folder_loop_cleanup.png,sha256=D6ViSfqgj8oDweQa7FyMVH4z3H18SqYGQH4-VF4_NXo,131184
130
+ PaIRS_UniNa/icons/folder_loop_cleanup_off.png,sha256=pPt0RHYLxcOqsg8H-SY8L9CbF2jHsW5s47FayWfcsGE,75870
127
131
  PaIRS_UniNa/icons/gear.gif,sha256=m7sIA0rc7gKw9KQiZICbcLHil5O5Ikl5yd6h27k_L-I,397036
128
132
  PaIRS_UniNa/icons/gear.png,sha256=NFW8Lh0DFsh0YgfxdSsOzW5eGXaq1TMOAWKK92Cus90,18442
129
133
  PaIRS_UniNa/icons/ger.png,sha256=2K4ZK24TAioFC0ZDa2iS1RqSW65DZmW9ytDhKvMPbg0,59314
@@ -133,7 +137,8 @@ PaIRS_UniNa/icons/icon_CalVi.png,sha256=MBSK_59ezYrh8b_LNa5c-sXMDKr9xf5_DeoQV47o
133
137
  PaIRS_UniNa/icons/icon_PaIRS.png,sha256=JiBJ-KJT0F-hGReCn_jj7pZWv3QPJxxcBsnmV0dUV4Q,12735
134
138
  PaIRS_UniNa/icons/import.png,sha256=I3sf9OCf4809Rus0zazwxkIt_8htd0Rpvo5EaffFIyo,10255
135
139
  PaIRS_UniNa/icons/import_set.png,sha256=BuM3V6EDltqvSw34yHvQnO-z5tLQ-X_kmZr9tq-24zI,42674
136
- PaIRS_UniNa/icons/information.png,sha256=7UboDvVU06epXnkU_ycgOw5TSOMiIQI8D83nlzGuA2I,6077
140
+ PaIRS_UniNa/icons/information.png,sha256=Z9t9O9glTXtyxr6Gx-6eVkTj4jq6KT8yyZPhKpUqHvo,47956
141
+ PaIRS_UniNa/icons/information2.png,sha256=Y8X8sGHpoyNZmz1HREggBcswkhg9zjXb5U5Llt4qKPo,46340
137
142
  PaIRS_UniNa/icons/input_logo.png,sha256=Ky84VLrnccPbCmTQnaZjmNmTWiWTq5b9FshMVtt-zME,28341
138
143
  PaIRS_UniNa/icons/issue.png,sha256=Tld4fymZj8hnKBj7DPfyutRKYcwihbcmbesL9jsaG9M,20336
139
144
  PaIRS_UniNa/icons/laser_NTR.png,sha256=Y2ZjL9jjM7pWnARXGyamgYMLyLAF05QPsVt21SRuot4,95270
@@ -180,6 +185,7 @@ PaIRS_UniNa/icons/paste_above.png,sha256=s-FhQYbk3TcSLsjdE7yp0cexDoeT0GOs3_cAmRb
180
185
  PaIRS_UniNa/icons/paste_below.png,sha256=eQ_cVCNp3ieRQEzy5QgwVE7IAvvXpXpHfWvGATRVR84,5607
181
186
  PaIRS_UniNa/icons/pause.png,sha256=uMKwjZdeVkdlCxYtUwEIThxRpiDSMCYJc4sIIMt4j7U,20613
182
187
  PaIRS_UniNa/icons/paused.png,sha256=jg1xunTCQpgOdHj169K6zHetSnVn_KfnwB88C8pj9cw,17144
188
+ PaIRS_UniNa/icons/pencil_bw.png,sha256=WM90jrY4cknYeykjPFlrExYC23TAD-rNbQizTzv9VR4,13001
183
189
  PaIRS_UniNa/icons/piv_proc.png,sha256=a2HyNDMNKV42KZ8nFCTJL91IvZB5HIgYk0B3zVlb9qw,23218
184
190
  PaIRS_UniNa/icons/piv_proc_off.png,sha256=W4q9_yzbWEHDesBHoUM4CK6_DP3vNi2zKyVpvFGXm6c,23203
185
191
  PaIRS_UniNa/icons/piv_step.png,sha256=5Cz7fDlDba0mONNDr26-LRuK16AzgcBDQcY2mf4YKyE,1206210
@@ -221,6 +227,8 @@ PaIRS_UniNa/icons/scale_down.png,sha256=-WSKusP3wsPs_sueAn3A4UKmZfgFdeQdr0pbBsiM
221
227
  PaIRS_UniNa/icons/scale_up.png,sha256=RBhQSNP1ee8rZS7Rec4UpoZeNeHWiXcJcb6_IXyCahI,12425
222
228
  PaIRS_UniNa/icons/scan_list.png,sha256=5g4FKfk6krOPSkFpysUd_Ljk73TBTSwlCEJjSO5PqOw,52945
223
229
  PaIRS_UniNa/icons/scan_path.png,sha256=ZufiFQuUZjqvc-TkbjARecoE8E6unvgsnqu4gmBWL9Y,16428
230
+ PaIRS_UniNa/icons/scan_path_loop.png,sha256=EaHie73NuPXTIPSIIbcE0R8gUDJteunqAtSJs8OvZss,37143
231
+ PaIRS_UniNa/icons/scan_path_loop_off.png,sha256=Yv8hMQXRbaKns4EEvIHBnTeEIJ6vH-WmN4fn19Qbe30,64894
224
232
  PaIRS_UniNa/icons/search.png,sha256=LyiFYEGJe-UpzKKyFF0smqOTMg16PzlB0VEXL-ELZLw,25771
225
233
  PaIRS_UniNa/icons/showIW_off.png,sha256=Br3vtrt3I58zpg3iYAR5his5ZckDbDxK-2GWBGU2NnU,6787
226
234
  PaIRS_UniNa/icons/showIW_on.png,sha256=lVZVLJbnVlOKTb13P47ES04kZXOCQZ7c6ZAXVZ45HcM,7597
@@ -229,6 +237,8 @@ PaIRS_UniNa/icons/sort.png,sha256=7Xr-7PewlF3dhhajvg-yRAM1_i5v30Rt0mm4cg_EdX8,95
229
237
  PaIRS_UniNa/icons/sort_reversed.png,sha256=NMp03EKpB4iPv2GlanqlNe2VvCxVH1QoQ43pdmCBs2Y,9524
230
238
  PaIRS_UniNa/icons/spiv_proc.png,sha256=uEIn6J3jdCgmYMjfmp9kNt-RZrpuOHD_E8UVl_HV_Gc,72305
231
239
  PaIRS_UniNa/icons/spiv_proc_off.png,sha256=qsmWCSCnox0hhl3ts8KLbDfTHkGp7_08jfc6zbX59Jw,44651
240
+ PaIRS_UniNa/icons/spiv_setup_no.png,sha256=TKYh-SVqGxTbiJcCV9HkZnuB4Z7Gtu9kqeZWs3WNOxY,505785
241
+ PaIRS_UniNa/icons/spiv_setup_ok.png,sha256=tTayaSOKmp2Afkwtf1jCabn7OHbzbDZuMp-MixlEYtg,504226
232
242
  PaIRS_UniNa/icons/star.png,sha256=x4MMCbfs6x1SpxxBK2xMlwVvxMnZM79sgEcA2VE3Wgg,18352
233
243
  PaIRS_UniNa/icons/step_inheritance.png,sha256=h_ftfhyX9h0wM8Fra-VPvqEyc3cuuIcXBF48U4hXdko,2419
234
244
  PaIRS_UniNa/icons/subMIN_off.png,sha256=iaqOcEGzaERoVft5tWOG4UHhVWTyDrf6HNuy6nQKEHI,28055
@@ -317,7 +327,7 @@ PaIRS_UniNa/icons/colormaps/viridis.png,sha256=AYaCSf5zUaSiyfuC1aGnMxawTUTqVl-81
317
327
  PaIRS_UniNa/icons/colormaps/whiteVector.png,sha256=-TPqm1S9e4OQ4Ee-9piT3bFfXg6TWEw20lvrmeCrnKY,350
318
328
  PaIRS_UniNa/icons/colormaps/winter.png,sha256=ANqoViwtVfvAULokJaAp21xx8sjQJ1jEzYjAVo5WPtM,250
319
329
  PaIRS_UniNa/icons/colormaps/yellowVector.png,sha256=RQJhq_Ft9GxpiH5Mac0E0KXJlfGtPdP5M4kn0qsrFz4,353
320
- pairs_unina-0.2.5.dist-info/METADATA,sha256=uoEE4Tp3YLZhpU9mqc4wOZsnnLVDPuAcitbRjJN86hI,8430
321
- pairs_unina-0.2.5.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
322
- pairs_unina-0.2.5.dist-info/top_level.txt,sha256=zxMsZBZRcjIXsv4CLSJ6RV0GhzeX89lx-JMfCCMkkYE,23
323
- pairs_unina-0.2.5.dist-info/RECORD,,
330
+ pairs_unina-0.2.9.dist-info/METADATA,sha256=-9gfP6Sk56tmKXwHSNCP10N1rWQE7QyjKLPBIerO_gg,9342
331
+ pairs_unina-0.2.9.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
332
+ pairs_unina-0.2.9.dist-info/top_level.txt,sha256=zxMsZBZRcjIXsv4CLSJ6RV0GhzeX89lx-JMfCCMkkYE,23
333
+ pairs_unina-0.2.9.dist-info/RECORD,,