PaIRS-UniNa 0.2.7__cp311-cp311-win_amd64.whl → 0.2.11__cp311-cp311-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 (50) hide show
  1. PaIRS_UniNa/Calibration_Tab.py +40 -24
  2. PaIRS_UniNa/Changes.txt +50 -0
  3. PaIRS_UniNa/Explorer.py +257 -77
  4. PaIRS_UniNa/FolderLoop.py +196 -6
  5. PaIRS_UniNa/Input_Tab.py +160 -53
  6. PaIRS_UniNa/Input_Tab_CalVi.py +11 -12
  7. PaIRS_UniNa/Input_Tab_tools.py +30 -28
  8. PaIRS_UniNa/Output_Tab.py +1 -3
  9. PaIRS_UniNa/PaIRS_pypacks.py +171 -67
  10. PaIRS_UniNa/Process_Tab.py +19 -15
  11. PaIRS_UniNa/Process_Tab_Disp.py +8 -1
  12. PaIRS_UniNa/SPIVCalHelp.py +155 -0
  13. PaIRS_UniNa/Saving_tools.py +3 -0
  14. PaIRS_UniNa/TabTools.py +201 -9
  15. PaIRS_UniNa/Vis_Tab.py +221 -65
  16. PaIRS_UniNa/Vis_Tab_CalVi.py +139 -12
  17. PaIRS_UniNa/Whatsnew.py +4 -3
  18. PaIRS_UniNa/_PaIRS_PIV.pyd +0 -0
  19. PaIRS_UniNa/__init__.py +3 -3
  20. PaIRS_UniNa/addwidgets_ps.py +773 -97
  21. PaIRS_UniNa/calibView.py +5 -2
  22. PaIRS_UniNa/gPaIRS.py +307 -48
  23. PaIRS_UniNa/icons/closeAllFloat.png +0 -0
  24. PaIRS_UniNa/icons/defaultWinSize.png +0 -0
  25. PaIRS_UniNa/icons/dockVis.png +0 -0
  26. PaIRS_UniNa/icons/dockVis_disable.png +0 -0
  27. PaIRS_UniNa/icons/floatingVisSize.png +0 -0
  28. PaIRS_UniNa/icons/folder_loop_cleanup.png +0 -0
  29. PaIRS_UniNa/icons/folder_loop_cleanup_off.png +0 -0
  30. PaIRS_UniNa/icons/fullWinsize.png +0 -0
  31. PaIRS_UniNa/icons/icon_PaIRS.ico +0 -0
  32. PaIRS_UniNa/icons/information.png +0 -0
  33. PaIRS_UniNa/icons/information2.png +0 -0
  34. PaIRS_UniNa/icons/scan_path_loop.png +0 -0
  35. PaIRS_UniNa/icons/scan_path_loop_off.png +0 -0
  36. PaIRS_UniNa/icons/smallWinSize.png +0 -0
  37. PaIRS_UniNa/icons/spiv_setup_no.png +0 -0
  38. PaIRS_UniNa/icons/spiv_setup_ok.png +0 -0
  39. PaIRS_UniNa/icons/undockVis.png +0 -0
  40. PaIRS_UniNa/procTools.py +46 -1
  41. PaIRS_UniNa/rqrdpckgs.txt +7 -7
  42. PaIRS_UniNa/tabSplitter.py +6 -1
  43. PaIRS_UniNa/ui_Calibration_Tab.py +92 -59
  44. PaIRS_UniNa/ui_gPairs.py +92 -50
  45. PaIRS_UniNa/ui_infoPaIRS.py +8 -8
  46. PaIRS_UniNa/whatsnew.txt +2 -3
  47. {pairs_unina-0.2.7.dist-info → pairs_unina-0.2.11.dist-info}/METADATA +6 -8
  48. {pairs_unina-0.2.7.dist-info → pairs_unina-0.2.11.dist-info}/RECORD +50 -33
  49. {pairs_unina-0.2.7.dist-info → pairs_unina-0.2.11.dist-info}/WHEEL +1 -1
  50. {pairs_unina-0.2.7.dist-info → pairs_unina-0.2.11.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,7 @@
1
1
  from .ui_Calibration_Tab import*
2
2
  from .TabTools import*
3
3
  from .listLib import*
4
+ from .SPIVCalHelp import showSPIVCalHelp
4
5
 
5
6
  spin_tips={
6
7
  'ncam' : 'Number of cameras',
@@ -21,6 +22,7 @@ button_tips={
21
22
  combo_tips={}
22
23
 
23
24
  class CALpar(TABpar):
25
+ FlagSPIVCal = True
24
26
  def __init__(self,Process=ProcessTypes.null,Step=StepTypes.null):
25
27
  self.setup(Process,Step)
26
28
  super().__init__('CALpar','Calibration')
@@ -61,6 +63,8 @@ class Calibration_Tab(gPaIRS_Tab):
61
63
  self.app=app
62
64
  setAppGuiPalette(self)
63
65
 
66
+ self.ui.button_info.setStyleSheet("border: none;")
67
+ self.ui.calTree.contextMenuEvent=lambda ev: calTreeContextMenuEvent(self.ui.calTree,self,ev)
64
68
  #------------------------------------- Declaration of parameters
65
69
  self.CALpar_base=CALpar()
66
70
  self.CALpar:CALpar=self.TABpar
@@ -133,6 +137,7 @@ class Calibration_Tab(gPaIRS_Tab):
133
137
  self.ui.button_paste_below.setEnabled(FlagNCal and FlagCuttedItems)
134
138
  self.ui.button_paste_above.setEnabled(FlagNCal and FlagCuttedItems)
135
139
  self.ui.button_clean.setEnabled(FlagFiles)
140
+ self.ui.button_info.setVisible(self.CALpar.Process==ProcessTypes.spiv)
136
141
 
137
142
  self.ui.button_CalVi.setVisible(self.CALpar.flagRun==0)
138
143
 
@@ -166,13 +171,23 @@ class Calibration_Tab(gPaIRS_Tab):
166
171
  #*************************************************** Buttons
167
172
  #******************** Actions
168
173
  def button_CalVi_action(self):
174
+ if CALpar.FlagSPIVCal and self.ui.button_info.isVisible() and self.ui.button_CalVi.isChecked():
175
+ showSPIVCalHelp(self,self.dontShowAgainSPIVCalHelp)
169
176
  self.CALpar.FlagCalVi=self.ui.button_CalVi.isChecked()
170
177
 
178
+ def dontShowAgainSPIVCalHelp(self):
179
+ CALpar.FlagSPIVCal = False
180
+
181
+ def button_info_action(self):
182
+ showSPIVCalHelp(self)
183
+
171
184
  def button_scan_list_action(self):
172
185
  self.ui.calTree.setLists()
173
186
  self.CALpar.calEx=deep_duplicate(self.ui.calTree.calEx)
174
187
 
175
188
  def button_import_action(self):
189
+ if CALpar.FlagSPIVCal and self.ui.button_info.isVisible():
190
+ showSPIVCalHelp(self,self.dontShowAgainSPIVCalHelp)
176
191
  filenames, _ = QFileDialog.getOpenFileNames(self,\
177
192
  "Select calibration files from the current directory", filter='*.cal',\
178
193
  options=optionNativeDialog)
@@ -294,30 +309,31 @@ class Calibration_Tab(gPaIRS_Tab):
294
309
  self.ui.calTree.topLevelItem(self.CALpar.row).setSelected(True)
295
310
 
296
311
  #*************************************************** Context Menu
297
- def contextMenuEvent(self, event):
298
- menu=QMenu(self)
299
- name=[]
300
- act=[]
301
- fun=[]
302
- for nb in self.calibrationTreeButtons:
303
- if '-' not in nb and '|' not in nb:
304
- b:QPushButton=getattr(self.ui,'button_'+nb)
305
- if b.isVisible() and b.isEnabled():
306
- if hasattr(self,'button_'+nb+'_callback'):
307
- name.append(nb)
308
- act.append(QAction(b.icon(),toPlainText(b.toolTip().split('.')[0]),self))
309
- menu.addAction(act[-1])
310
- callback=getattr(self,'button_'+nb+'_callback')
311
- fun.append(callback)
312
- elif '|' in nb:
313
- if len(act): menu.addSeparator()
314
-
315
- if len(act):
316
- action = menu.exec(self.mapToGlobal(event.pos()))
317
- for nb,a,f in zip(name,act,fun):
318
- if a==action:
319
- TABpar.FlagSettingPar=False
320
- f()
312
+ def calTreeContextMenuEvent(obj, self, event):
313
+ menu=QMenu(obj)
314
+ menu.setStyleSheet(gPaIRS_QMenu_style)
315
+ name=[]
316
+ act=[]
317
+ fun=[]
318
+ for nb in self.calibrationTreeButtons:
319
+ if '-' not in nb and '|' not in nb:
320
+ b:QPushButton=getattr(self.ui,'button_'+nb)
321
+ if b.isVisible() and b.isEnabled():
322
+ if hasattr(self,'button_'+nb+'_callback'):
323
+ name.append(nb)
324
+ act.append(QAction(b.icon(),toPlainText(b.toolTip().split('.')[0]),self))
325
+ menu.addAction(act[-1])
326
+ callback=getattr(self,'button_'+nb+'_callback')
327
+ fun.append(callback)
328
+ elif '|' in nb:
329
+ if len(act): menu.addSeparator()
330
+
331
+ if len(act):
332
+ action = menu.exec(obj.mapToGlobal(event.pos()))
333
+ for nb,a,f in zip(name,act,fun):
334
+ if a==action:
335
+ TABpar.FlagSettingPar=False
336
+ f()
321
337
 
322
338
  if __name__ == "__main__":
323
339
  import sys
PaIRS_UniNa/Changes.txt CHANGED
@@ -1,3 +1,53 @@
1
+ ********* Changes in version 0.2.11 (2026.02.02) **********
2
+ Bug fixes:
3
+ - fixed an issue preventing correct restoration of reshape/resize settings in the Output tab at startup of the interface.
4
+
5
+ User-interface enhancements:
6
+ - minor UI restyling aimed at improving visual feedback, with clearer highlighting of widgets involved in user interactions;
7
+ - introduced the functionality to detach the Vis plot area from the main window, enabling users to visualize images and results more comfortably and effectively in a separate floating window;
8
+ - added a dedicated Window menu, allowing users to quickly apply convenient interface layouts and better manage detached windows.
9
+
10
+
11
+
12
+ ********* Changes in version 0.2.10 (2026.01.05) **********
13
+ Bug fixes:
14
+ - fixed a bug affecting the "Edit list" functionality of the image-tree in the Input tab; the feature is now fully operational and behaves as expected;
15
+ - fixed a minor issue that could affect the correct assessment of the PIV process stability.
16
+
17
+ User-interface enhancements:
18
+ - minor UI restyling aimed at improving visual feedback, with clearer highlighting of widgets involved in user interactions;
19
+ - improved the visualization of contextual help messages, providing clearer and more consistent tooltip-like feedback within the interface;
20
+ - enhanced the management and restoration of global tab settings to ensure better consistency when loading previously saved workspaces.
21
+
22
+
23
+
24
+ ********* Changes in version 0.2.9 (2025.12.12) **********
25
+ Bug fixes:
26
+ - fixed a bug in the batch folder-copy tool enabling automatic removal of incomplete image pairs and a full re-scan of destination folders to detect and resolve any image-set mismatches.
27
+
28
+ New features:
29
+ - a new help dialog has been introduced to assist users during the stereoscopic PIV calibration process. The dialog provides a detailed explanation of the required coordinate convention (plate defining the x–y plane, z-axis normal to the plate and x-axis aligned with the stereoscopic baseline) and displays example images illustrating correct and incorrect configurations.
30
+
31
+
32
+
33
+ ********* Changes in version 0.2.8 (2025.11.14) **********
34
+ Bug fixes:
35
+ - corrected a bug in the z-vorticity computation: velocity gradients were not properly converted to physical units, causing an error in the magnitude scales though not in the qualitative distributions;
36
+ - corrected the display of maps of output variables and vector fields in Vis to ensure proper alignment across option changes;
37
+ - fixed issues related to path handling in the batch-folder copy and other modules: paths are no longer relativized, avoiding inconsistent behavior across different operating systems or different.
38
+
39
+ New features:
40
+ - added new options in the batch folder-copy tool to automatically remove image pairs where one or more files are missing in the destination folders and to fully re-scan the destination folders for cases in which mismatches in the image sets may occur;
41
+ - extended the existing functionality in Vis for loading and visualizing past results located under the specified output path and name root: when available, the corresponding saved log file is now automatically loaded and displayed in the Log tab.
42
+
43
+ User-interface enhancements:
44
+ - improved the naming logic for duplicated processes: copied processes are now assigned consistent incremental suffixes;
45
+ - improved the example-image tree and the behavior of the step spin box in the Image Import Tool (minimum step is now 1);
46
+ - refined the behavior of the import button: it is now always enabled, and when no changes in the image list are detected upon importing, the user simply receives a warning message;
47
+ - improved the behaviour of the list of path completers in the Input tabs;
48
+ - in Vis, resizing settings and automatic level-reset options are no longer global but apply individually per each step.
49
+
50
+
1
51
  ********* Changes in version 0.2.7 (2025.10.13) **********
2
52
  Bug fixes:
3
53
  - resolved an issue related to visulazion of streamlines when the image is shown in pixel units and a custom resolution is specified (in previous versions, streamlines were always represented in physical units);