PaIRS-UniNa 0.2.3__cp312-cp312-macosx_10_9_universal2.whl → 0.2.5__cp312-cp312-macosx_10_9_universal2.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 PaIRS-UniNa might be problematic. Click here for more details.

Files changed (53) hide show
  1. PaIRS_UniNa/Changes.txt +50 -6
  2. PaIRS_UniNa/Custom_Top.py +1 -1
  3. PaIRS_UniNa/Explorer.py +70 -42
  4. PaIRS_UniNa/Input_Tab.py +17 -5
  5. PaIRS_UniNa/Input_Tab_CalVi.py +1 -0
  6. PaIRS_UniNa/Input_Tab_tools.py +85 -40
  7. PaIRS_UniNa/Output_Tab.py +110 -17
  8. PaIRS_UniNa/PaIRS_PIV.py +56 -1
  9. PaIRS_UniNa/PaIRS_pypacks.py +148 -9
  10. PaIRS_UniNa/Process_Tab.py +6 -11
  11. PaIRS_UniNa/Process_Tab_Disp.py +11 -4
  12. PaIRS_UniNa/TabTools.py +121 -42
  13. PaIRS_UniNa/Vis_Tab.py +423 -126
  14. PaIRS_UniNa/Vis_Tab_CalVi.py +23 -5
  15. PaIRS_UniNa/Whatsnew.py +15 -6
  16. PaIRS_UniNa/_PaIRS_PIV.so +0 -0
  17. PaIRS_UniNa/__init__.py +2 -2
  18. PaIRS_UniNa/addwidgets_ps.py +50 -39
  19. PaIRS_UniNa/gPaIRS.py +500 -148
  20. PaIRS_UniNa/icons/bugfix.png +0 -0
  21. PaIRS_UniNa/icons/pylog.png +0 -0
  22. PaIRS_UniNa/icons/python_warning.png +0 -0
  23. PaIRS_UniNa/icons/queue.png +0 -0
  24. PaIRS_UniNa/icons/save_and_stop.png +0 -0
  25. PaIRS_UniNa/icons/star.png +0 -0
  26. PaIRS_UniNa/icons/step_inheritance.png +0 -0
  27. PaIRS_UniNa/icons/uninitialized.png +0 -0
  28. PaIRS_UniNa/icons/window.png +0 -0
  29. PaIRS_UniNa/parForMulti.py +7 -5
  30. PaIRS_UniNa/parForWorkers.py +101 -124
  31. PaIRS_UniNa/pivParFor.py +2 -2
  32. PaIRS_UniNa/preProcParFor.py +4 -4
  33. PaIRS_UniNa/procTools.py +25 -13
  34. PaIRS_UniNa/rqrdpckgs.txt +8 -0
  35. PaIRS_UniNa/stereoPivParFor.py +2 -2
  36. PaIRS_UniNa/tabSplitter.py +4 -2
  37. PaIRS_UniNa/ui_Log_Tab.py +8 -6
  38. PaIRS_UniNa/ui_Output_Tab.py +6 -3
  39. PaIRS_UniNa/ui_Process_Tab.py +19 -19
  40. PaIRS_UniNa/ui_Process_Tab_Disp.py +173 -2
  41. PaIRS_UniNa/ui_Vis_Tab.py +331 -195
  42. PaIRS_UniNa/ui_gPairs.py +81 -39
  43. PaIRS_UniNa/ui_infoPaIRS.py +128 -6
  44. PaIRS_UniNa/whatsnew.txt +6 -7
  45. {PaIRS_UniNa-0.2.3.dist-info → pairs_unina-0.2.5.dist-info}/METADATA +39 -23
  46. {PaIRS_UniNa-0.2.3.dist-info → pairs_unina-0.2.5.dist-info}/RECORD +48 -44
  47. {PaIRS_UniNa-0.2.3.dist-info → pairs_unina-0.2.5.dist-info}/WHEEL +1 -1
  48. PaIRS_UniNa/icons/order.png +0 -0
  49. PaIRS_UniNa/icons/order_reverse.png +0 -0
  50. PaIRS_UniNa/icons/pencil_bw.png +0 -0
  51. PaIRS_UniNa/icons/run_piv.png +0 -0
  52. PaIRS_UniNa-0.2.3.dist-info/LICENSE +0 -19
  53. {PaIRS_UniNa-0.2.3.dist-info → pairs_unina-0.2.5.dist-info}/top_level.txt +0 -0
@@ -108,7 +108,10 @@ class Vis_Tab_CalVi(gPaIRS_Tab):
108
108
  super().showEvent(event)
109
109
  if not self.FlagInitVIS:
110
110
  self.FlagInitVIS=True
111
- self.button_zoom_equal_action()
111
+ S=self.scrollArea.size()
112
+ s=self.calibView.pixmap().size()
113
+ self.VISpar.scaleFactor = self.calibView.scaleFactor =min([S.width()/s.width() if s.width() else S.width(), S.height()/s.height() if s.height() else S.height()])
114
+ self.calibView.resize(self.VISpar.scaleFactor * self.calibView.pixmap().size())
112
115
  return
113
116
 
114
117
  def closeEvent(self,event):
@@ -220,6 +223,7 @@ class Vis_Tab_CalVi(gPaIRS_Tab):
220
223
  def stopCalVi(self):
221
224
  self.calibView.executeCalibTask(CalibTasks.stop)
222
225
  self.setTaskButtonsText()
226
+ self.gui.ui.button_Run_CalVi.setVisible(True)
223
227
  self.setTABlayout()
224
228
  self.FlagBridge=True
225
229
  self.adjustTABparInd()
@@ -399,8 +403,11 @@ class Vis_Tab_CalVi(gPaIRS_Tab):
399
403
  FlagNoImage=True
400
404
  if self.VISpar.cam>0 and self.VISpar.plane>0:
401
405
  if self.VISpar.nCam==len(self.VISpar.imEx):
402
- if self.VISpar.nPlane==len(self.VISpar.imEx[0]):
403
- if self.VISpar.imEx[self.VISpar.cam-1][self.VISpar.plane-1]:
406
+ TargetType=self.gui.w_Process_CalVi.PROpar.TargetType
407
+ nPlane=self.VISpar.nPlane/(1+TargetType)
408
+ if nPlane==len(self.VISpar.imEx[0]):
409
+ plane=int( (self.VISpar.plane+TargetType)/(1+TargetType) )
410
+ if self.VISpar.imEx[self.VISpar.cam-1][plane-1]:
404
411
  FlagNoImage=False
405
412
  if FlagNoImage:
406
413
  self.ui.status_R.setText('')
@@ -618,6 +625,7 @@ class Vis_Tab_CalVi(gPaIRS_Tab):
618
625
  b.setEnabled(flagEnab)
619
626
  for b in self.buttonsToDisableNotCalibrated:
620
627
  b.setEnabled(self.calibView.calib.cal.flagCalibrated)
628
+ self.setRunCalViButtonLayout()
621
629
  #for b in self.functionButtons: b.setEnabled(flagEnab)
622
630
  #pri.Callback.green('-----abcde----- TaskButtonsText -----abcde-----')
623
631
 
@@ -736,7 +744,7 @@ class Vis_Tab_CalVi(gPaIRS_Tab):
736
744
  #-------------------------------------- %
737
745
  # Not in cfg %
738
746
  # --------------------------------------%
739
-
747
+
740
748
  data=calib.cal.data
741
749
  calVect=calib.cal.vect
742
750
  data.PercErrMax = 0.1 # 0.10 Percentuale massima per errore in posizioneTom da modificare
@@ -747,7 +755,7 @@ class Vis_Tab_CalVi(gPaIRS_Tab):
747
755
  # --------------------------------------%
748
756
  data.percorso = INP.path #percorso file di input
749
757
  data.EstensioneIn = INP.ext #estensione in (b16 o tif)
750
- data.FlagCam=0 if not INP.FlagCam else 1
758
+ data.FlagCam=0 if INP.FlagCam else 1
751
759
  data.percorsoOut = INP.path_out # percorso file di output
752
760
  data.NomeFileOut = INP.root_out # nome file di output
753
761
 
@@ -952,6 +960,16 @@ class Vis_Tab_CalVi(gPaIRS_Tab):
952
960
  self.FlagInitData=True
953
961
  return
954
962
 
963
+ def setRunCalViButtonLayout(self):
964
+ if self.gui:
965
+ FlagVisible=True
966
+ calib=self.calibView.calib
967
+ calVect=calib.cal.vect
968
+ FlagVisible=all([not bool(p) for p in calVect.flagPlane[:-1]])
969
+ self.gui.ui.button_Run_CalVi.setVisible(FlagVisible)
970
+
971
+
972
+
955
973
 
956
974
  if __name__ == "__main__":
957
975
  import sys
PaIRS_UniNa/Whatsnew.py CHANGED
@@ -1,6 +1,7 @@
1
1
  from .PaIRS_pypacks import*
2
2
  from .ui_Whatsnew import Ui_Whatsnew
3
3
  from .__init__ import __version__
4
+ import unicodedata
4
5
 
5
6
  #from TabTools import setupWid,setFontPixelSize,setFontSizeText
6
7
  class Whatsnew(QMainWindow):
@@ -32,9 +33,9 @@ class Whatsnew(QMainWindow):
32
33
  if hasattr(c,'setFont'):
33
34
  c.setFont(font)
34
35
 
35
- self.show()
36
+
36
37
  self.resize(QSize(w,self.gui.maximumGeometry.height()))
37
- self.update()
38
+ self.show()
38
39
  hinfo=self.ui.info.height()
39
40
  h=hinfo+self.ui.w_Ok.height()+self.ui.mainLay.verticalSpacing()+self.ui.mainLay.contentsMargins().bottom()*2+self.ui.mainLay.contentsMargins().top()*2
40
41
  self.setFixedSize(QSize(w,h))
@@ -74,10 +75,17 @@ def whatsNew(self):
74
75
  splitted_news=content.splitlines()
75
76
  for k, text in enumerate(splitted_news):
76
77
  if not text: continue
77
- if text[0]=='*':
78
- splitted_news[k]=formatBullet(icons_path+"announcement.png",text[1:])
79
- elif text[0]=='$':
78
+ if text[0]=='#': splitted_news[k]=''
79
+ elif text[0]=='!':
80
80
  splitted_news[k]=formatBullet(icons_path+"warning.png",text[1:])
81
+ elif text[0]=='%':
82
+ splitted_news[k]=formatBullet(icons_path+"bugfix.png",text[1:])
83
+ elif text[0]=='&':
84
+ splitted_news[k]=formatBullet(icons_path+"announcement.png",text[1:])
85
+ elif text[0]=='*':
86
+ splitted_news[k]=formatBullet(icons_path+"star.png",text[1:])
87
+ elif text[0]=='§':
88
+ splitted_news[k]=formatBullet(icons_path+"pylog.png",text[1:])
81
89
  elif text[0]=='£':
82
90
  splitted_news[k]= f'<br/><span style="font-weight: 600; font-size: {fontPixelSize}px;">{text[1:]}</span><br/>'
83
91
  news="".join(splitted_news)
@@ -106,4 +114,5 @@ def formatBullet(icon_path,text):
106
114
  </tr>
107
115
  </table>
108
116
  """ if text else ""
109
- return html_text
117
+ return html_text
118
+
PaIRS_UniNa/_PaIRS_PIV.so CHANGED
Binary file
PaIRS_UniNa/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
- __version__="0.2.3"
1
+ __version__="0.2.5"
2
2
  __subversion__="0"
3
3
  __year__='2024'
4
- __date__='2024.11.06'
4
+ __date__='2025.07.18'
5
5
  __mail__='etfd@unina.it'
6
6
  __website__='https://pairs.unina.it'
@@ -338,7 +338,9 @@ class CollapsibleBox(QtWidgets.QWidget):
338
338
  self.dpix=5
339
339
  self.toolMinimumWidth=400
340
340
  self.toolHeight=20
341
+ self.content_area:QGroupBox=None
341
342
  self.toggle_button:QPushButton=None
343
+ self.push_button:MyToolButton=None
342
344
 
343
345
  def setup(self,*args):
344
346
  if not self.initFlag:
@@ -350,15 +352,20 @@ class CollapsibleBox(QtWidgets.QWidget):
350
352
  self.stretch=0
351
353
  self.initFlag=True
352
354
 
355
+ if self.content_area is None:
356
+ self.content_area=self.findChild(QtWidgets.QGroupBox)
357
+ self.content_area.setStyleSheet("QGroupBox{border: 1px solid gray; border-radius: 6px;}")
358
+
353
359
  if self.toggle_button is None:
354
360
  self.toggle_button=self.findChild(QtWidgets.QToolButton)
355
- self.content_area=self.findChild(QtWidgets.QGroupBox)
356
- self.push_button=self.findChild(MyToolButton)
357
-
358
361
  self.toggle_button.setChecked(InitCheck)
359
362
  self.toggle_button.clicked.connect(self.on_click)
363
+ self.toggle_button.setCursor(QtCore.Qt.CursorShape.PointingHandCursor)
364
+ self.toggle_button.setMinimumWidth(self.toolMinimumWidth)
365
+
366
+ if self.push_button is None:
367
+ self.push_button=self.findChild(MyToolButton)
360
368
 
361
- self.content_area.setStyleSheet("QGroupBox{border: 1px solid gray; border-radius: 6px;}")
362
369
  self.OpenStyle=\
363
370
  "QToolButton { border: none; }\n"+\
364
371
  "QToolButton::hover{color: rgba(0,0,255,200);}"+\
@@ -368,8 +375,6 @@ class CollapsibleBox(QtWidgets.QWidget):
368
375
  "QToolButton { border: 1px solid lightgray; border-radius: 6px }\n"+\
369
376
  "QToolButton::hover{ border: 1px solid rgba(0,0,255,200); border-radius: 6px; color: rgba(0,0,255,200);}"+\
370
377
  "QToolButton::focus{ border: 1px solid rgba(0,0,255,200); border-radius: 6px; color: rgba(0,0,255,200);}" #background-color: rgba(0, 0,128,32); }"
371
- self.toggle_button.setCursor(QtCore.Qt.CursorShape.PointingHandCursor)
372
- self.toggle_button.setMinimumWidth(self.toolMinimumWidth)
373
378
 
374
379
  self.heightToogle=self.toggle_button.minimumHeight()
375
380
  self.heightOpened=self.minimumHeight()
@@ -669,13 +674,14 @@ class ClickableLabel(QLabel):
669
674
  def __init__(self, *args):
670
675
  super().__init__(*args)
671
676
 
672
-
673
677
  self.default_stylesheet = self.styleSheet()
674
678
  self.highlight_stylesheet = "background-color: #dcdcdc; border-radius: 3px;"
675
679
 
676
680
  self.timer = QTimer(self)
677
681
  self.timer.timeout.connect(self.resetHighlight)
678
682
  self.timer.setSingleShot(True)
683
+
684
+ self.moviePixmap=None
679
685
 
680
686
  def mousePressEvent(self, event):
681
687
  if event.button() == Qt.LeftButton and self.toolTip():
@@ -684,7 +690,9 @@ class ClickableLabel(QLabel):
684
690
  self.resetHighlight()
685
691
 
686
692
  def showMessageBox(self):
687
- warningDialog(self.window(),Message=self.toolTip(),pixmap=self.pixmap(),title='Info')
693
+ if self.moviePixmap: pixmap=self.moviePixmap
694
+ else: pixmap=self.pixmap()
695
+ warningDialog(self.window(),Message=self.toolTip(),pixmap=pixmap,title='Info')
688
696
 
689
697
  def highlight(self):
690
698
  self.setStyleSheet(self.highlight_stylesheet)
@@ -921,7 +929,7 @@ class MplCanvas(FigureCanvasQTAgg):
921
929
  fig2.scaleFactor=min([fig2.scaleFactor,1.5])
922
930
  fig2.scaleFactor=max([fig2.scaleFactor,0.5])
923
931
  fig2.setFixedSize(s0*fig2.scaleFactor)
924
- lbl.setPixmap(pixmap.scaled(pixmap.size()*fig2.scaleFactor))
932
+ lbl.setPixmap(pixmap.scaled(pixmap.size()*fig2.scaleFactor,mode=Qt.TransformationMode.SmoothTransformation))
925
933
  return
926
934
  fig2.resizeFig2=resizeFig2
927
935
 
@@ -1082,33 +1090,36 @@ def setAppGuiPalette(self:QWidget,palette:QPalette=None):
1082
1090
  else:
1083
1091
  applic.setPalette(palette)
1084
1092
 
1085
- if self.focusWidget():
1086
- self.focusWidget().clearFocus()
1087
- widgets=[self]
1088
- if hasattr(self,'FloatingTabs'): widgets+=self.FloatingTabs
1089
- if hasattr(self,'FloatingWindows'): widgets+=self.FloatingWindows
1090
- if hasattr(self,'aboutDialog'): widgets.append(self.aboutDialog)
1091
- if hasattr(self,'logChanges'): widgets.append(self.logChanges)
1092
- widgets+=self.findChildren(QDialog)
1093
- for f in widgets:
1094
- if f:
1095
- f.setPalette(palette)
1096
- for c in f.findChildren(QObject):
1097
- if hasattr(c,'setPalette') and not type(c) in (MplCanvas, mplFigure, QStatusBar):
1098
- c.setPalette(palette)
1099
- if hasattr(c,'initialStyle'):
1100
- c.setStyleSheet(c.initialStyle)
1101
- for c in f.findChildren(QObject):
1102
- c:MyQLineEdit
1103
- if hasattr(c,'setup'):
1104
- c.initFlag=False
1105
- c.styleFlag=False
1106
- c.setup()
1107
- for c in f.findChildren(QObject):
1108
- if hasattr(c,'setup2'):
1109
- c.initFlag2=False
1110
- c.setup2()
1111
- if hasattr(self,'ResizePopup'):
1112
- if self.ResizePopup is not None:
1113
- self.ResizePopup=type(self.ResizePopup)(self.buttonSizeCallbacks) #non riesco a farlo come gli altri
1114
- if hasattr(self,'w_Vis'): self.w_Vis.addPlotToolBar()
1093
+ try:
1094
+ if self.focusWidget():
1095
+ self.focusWidget().clearFocus()
1096
+ widgets=[self]
1097
+ if hasattr(self,'FloatingTabs'): widgets+=self.FloatingTabs
1098
+ if hasattr(self,'FloatingWindows'): widgets+=self.FloatingWindows
1099
+ if hasattr(self,'aboutDialog'): widgets.append(self.aboutDialog)
1100
+ if hasattr(self,'logChanges'): widgets.append(self.logChanges)
1101
+ widgets+=self.findChildren(QDialog)
1102
+ for f in widgets:
1103
+ if f and isinstance(f, QWidget):
1104
+ f.setPalette(palette)
1105
+ for c in f.findChildren(QObject):
1106
+ if hasattr(c,'setPalette') and not isinstance(c, (MplCanvas, mplFigure, QStatusBar)):
1107
+ c.setPalette(palette)
1108
+ if hasattr(c,'initialStyle') and hasattr(c, 'setStyleSheet'):
1109
+ c.setStyleSheet(c.initialStyle)
1110
+ for c in f.findChildren(QObject):
1111
+ c:MyQLineEdit
1112
+ if isinstance(c, MyQLineEdit) and hasattr(c, 'setup'):
1113
+ c.initFlag=False
1114
+ c.styleFlag=False
1115
+ c.setup()
1116
+ for c in f.findChildren(QObject):
1117
+ if hasattr(c,'setup2'):
1118
+ c.initFlag2=False
1119
+ c.setup2()
1120
+ if hasattr(self,'ResizePopup'):
1121
+ if self.ResizePopup is not None:
1122
+ self.ResizePopup=type(self.ResizePopup)(self.buttonSizeCallbacks) #non riesco a farlo come gli altri
1123
+ if hasattr(self,'w_Vis'): self.w_Vis.addPlotToolBar()
1124
+ except:
1125
+ pri.Error.red("***** Error while setting the application palette! *****")