PaIRS-UniNa 0.2.5__cp312-cp312-win_amd64.whl → 0.2.8__cp312-cp312-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 (54) hide show
  1. PaIRS_UniNa/Changes.txt +45 -2
  2. PaIRS_UniNa/Explorer.py +3126 -3059
  3. PaIRS_UniNa/FolderLoop.py +561 -371
  4. PaIRS_UniNa/Input_Tab.py +826 -714
  5. PaIRS_UniNa/Input_Tab_CalVi.py +15 -17
  6. PaIRS_UniNa/Input_Tab_tools.py +3019 -3017
  7. PaIRS_UniNa/Output_Tab.py +2 -4
  8. PaIRS_UniNa/PaIRS.py +17 -17
  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/Saving_tools.py +277 -277
  13. PaIRS_UniNa/TabTools.py +7 -4
  14. PaIRS_UniNa/Vis_Tab.py +129 -60
  15. PaIRS_UniNa/Whatsnew.py +15 -3
  16. PaIRS_UniNa/_PaIRS_PIV.pyd +0 -0
  17. PaIRS_UniNa/__init__.py +4 -4
  18. PaIRS_UniNa/addwidgets_ps.py +28 -20
  19. PaIRS_UniNa/calibView.py +7 -0
  20. PaIRS_UniNa/gPaIRS.py +3889 -3745
  21. PaIRS_UniNa/icons/flaticon_PaIRS_download_warning.png +0 -0
  22. PaIRS_UniNa/icons/folder_loop_cleanup.png +0 -0
  23. PaIRS_UniNa/icons/folder_loop_cleanup_off.png +0 -0
  24. PaIRS_UniNa/icons/pencil_bw.png +0 -0
  25. PaIRS_UniNa/icons/scan_path_loop.png +0 -0
  26. PaIRS_UniNa/icons/scan_path_loop_off.png +0 -0
  27. PaIRS_UniNa/listLib.py +301 -301
  28. PaIRS_UniNa/parForMulti.py +433 -433
  29. PaIRS_UniNa/pivParFor.py +1 -1
  30. PaIRS_UniNa/procTools.py +51 -3
  31. PaIRS_UniNa/rqrdpckgs.txt +6 -5
  32. PaIRS_UniNa/stereoPivParFor.py +1 -1
  33. PaIRS_UniNa/tabSplitter.py +606 -606
  34. PaIRS_UniNa/ui_Calibration_Tab.py +542 -542
  35. PaIRS_UniNa/ui_Custom_Top.py +294 -294
  36. PaIRS_UniNa/ui_Input_Tab.py +1098 -1098
  37. PaIRS_UniNa/ui_Input_Tab_CalVi.py +1280 -1280
  38. PaIRS_UniNa/ui_Log_Tab.py +261 -261
  39. PaIRS_UniNa/ui_Output_Tab.py +2360 -2360
  40. PaIRS_UniNa/ui_Process_Tab.py +3808 -3808
  41. PaIRS_UniNa/ui_Process_Tab_CalVi.py +1547 -1547
  42. PaIRS_UniNa/ui_Process_Tab_Disp.py +1139 -1139
  43. PaIRS_UniNa/ui_Process_Tab_Min.py +435 -435
  44. PaIRS_UniNa/ui_ResizePopup.py +203 -203
  45. PaIRS_UniNa/ui_Vis_Tab.py +1626 -1626
  46. PaIRS_UniNa/ui_Vis_Tab_CalVi.py +1249 -1249
  47. PaIRS_UniNa/ui_Whatsnew.py +131 -131
  48. PaIRS_UniNa/ui_gPairs.py +873 -867
  49. PaIRS_UniNa/ui_infoPaIRS.py +550 -550
  50. PaIRS_UniNa/whatsnew.txt +4 -4
  51. {pairs_unina-0.2.5.dist-info → pairs_unina-0.2.8.dist-info}/METADATA +31 -17
  52. {pairs_unina-0.2.5.dist-info → pairs_unina-0.2.8.dist-info}/RECORD +54 -48
  53. {pairs_unina-0.2.5.dist-info → pairs_unina-0.2.8.dist-info}/WHEEL +0 -0
  54. {pairs_unina-0.2.5.dist-info → pairs_unina-0.2.8.dist-info}/top_level.txt +0 -0
PaIRS_UniNa/pivParFor.py CHANGED
@@ -78,7 +78,7 @@ def procPIV(i,procId ,PIV,data:dataTreePar,numUsedProcs,*args,**kwargs):
78
78
  where FLAG_FINALIZED_OR_ERR = [ p|e for (p,e) in zip(FLAG_FINALIZED,FLAG_READ_ERR)]
79
79
  numProcOrErrTot=sum(1 if (f&FLAG_FINALIZED_OR_ERR[0])or(not f&FLAG_PROC[0]) else 0 for f in flagOut)
80
80
  to delete images
81
- pa='C:\desk\dl\apairs\jetcross\'
81
+ pa='C:\\desk\\dl\\apairs\\jetcross\\'
82
82
  no='zR2jet0_0004a'
83
83
  I =imread([pa no '.png']);
84
84
  I=I*0+1;
PaIRS_UniNa/procTools.py CHANGED
@@ -328,7 +328,7 @@ class dataTreePar(TABpar):
328
328
 
329
329
  def setCompleteLog(self):
330
330
  warn1=self.headerSection('WARNINGS',self.warnings[1],'!')
331
- if self.flagRun:
331
+ if self.flagRun not in (0,-10):
332
332
  warn0=''
333
333
  self.createLogProc()
334
334
  LogProc = self.headerSection('OUTPUT',self.procLog[0])
@@ -338,7 +338,10 @@ class dataTreePar(TABpar):
338
338
  if self.warnings[0]: warn0='*Further information:\n'+self.warnings[0]+'\n'
339
339
  self.Log=self.createLogHeader()+procLog+warn0+warn1
340
340
  else:
341
- self.Log=self.createLogHeader()+warn1
341
+ if self.flagRun:
342
+ self.Log=self.createLogHeader()
343
+ else:
344
+ self.Log=self.createLogHeader()+warn1
342
345
 
343
346
  def createWarningLog(self,warning):
344
347
  warn1=self.headerSection('WARNINGS',warning,'!')
@@ -352,9 +355,54 @@ class dataTreePar(TABpar):
352
355
  if len(args)>1: n=args[1]
353
356
  ln=len(nameSection)
354
357
  ns=int((n-ln)/2)
355
- Log=f'{f"{c}"*n}\n{" "*ns}{nameSection}{" "*ns}\n{f"{c}"*n}\n'+Log+'\n'
358
+ header=f'{f"{c}"*n}\n{" "*ns}{nameSection}{" "*ns}\n{f"{c}"*n}\n'
359
+ if Log!=' ': Log=header+Log+'\n'
360
+ else: Log=header
356
361
  return Log
357
362
 
363
+ def eyeHeaderSection(self, text:str, width:int=54, height:int=11, border:str='o', pad:int=0)->str:
364
+ """
365
+ Draw an eye-shaped frame with the given text centered on the middle row.
366
+ Works in monospace consoles or QTextEdit. Uses a smooth parametric eye curve.
367
+ """
368
+ width=max(width, len(text)+2*pad+2)
369
+ height=max(5, height|(1)) # make it odd
370
+ mid=height//2
371
+ # eye boundary: y = a*(1 - |x|^p)^b, mirrored top/bottom
372
+ import math
373
+ p,b=1.6,1.0 # shape controls (p: pointiness, b: roundness)
374
+ ax=width/2-1
375
+ ay=mid-1 # vertical semi-size (controls thickness of eye)
376
+ eps=0.6 # border thickness in "cells"
377
+
378
+ rows=[]
379
+ for r in range(height):
380
+ y=(r-mid)/ay # -1..1
381
+ line=[]
382
+ for c in range(width):
383
+ x=(c- (width-1)/2)/ax # -1..1
384
+ # target boundary (top curve positive y, bottom negative)
385
+ yb = (1 - abs(x)**p)
386
+ yb = (yb if yb>0 else 0)**b # clamp
387
+ # distance to boundary (abs because top/bottom)
388
+ d=abs(abs(y)-yb)
389
+ ch=' '
390
+ if yb<=0 and abs(y)<eps/ay: # very ends -> leave blank
391
+ ch=' '
392
+ elif d*ay<=eps and yb>0: # on border
393
+ ch=border
394
+ line.append(ch)
395
+ rows.append(''.join(line))
396
+
397
+ # write text on middle row
398
+ body=list(rows[mid])
399
+ s=f' {text} '
400
+ start=(width-len(s))//2
401
+ body[start:start+len(s)]=list(s)
402
+ rows[mid]=''.join(body)
403
+
404
+ return '\n'.join(rows)
405
+
358
406
  def createLogProc(self):
359
407
  splitAs='\n '#used to join the strings together tab or spaces may be use to indent the error
360
408
  numImgTot=len(self.list_pim) if self.Step!=StepTypes.min else (2*len(self.list_pim))
PaIRS_UniNa/rqrdpckgs.txt CHANGED
@@ -1,8 +1,9 @@
1
- scipy 1.14.0 1.16.0 0
2
- matplotlib 3.9.0 3.10.3 0
1
+ scipy 1.14.0 1.16.1 0
2
+ matplotlib 3.9.0 3.10.6 0
3
3
  pillow 10.4.0 11.3.0 0
4
- numpy 2.0.0 2.3.1 0
5
- pyside6 6.7.0 6.9.1 0
4
+ numpy 2.0.0 2.3.2 0
5
+ pyside6 6.7.0 6.9.2 0
6
6
  unidecode 1.3.0 1.4.0 0
7
7
  psutil 6.0.0 7.0.0 0
8
- debugpy 1.6.6 1.8.14 0
8
+ debugpy 1.6.6 1.8.16 0
9
+ certifi 2025.7.14 2025.8.3 0
@@ -67,7 +67,7 @@ def procStereoPIV(i,procId ,StereoPIV,data:dataTreePar,numUsedProcs,*args,**kwar
67
67
  where FLAG_FINALIZED_OR_ERR = [ p|e for (p,e) in zip(FLAG_FINALIZED,FLAG_READ_ERR)]
68
68
  numProcOrErrTot=sum(1 if (f&FLAG_FINALIZED_OR_ERR[0])or(not f&FLAG_PROC[0]) else 0 for f in flagOut)
69
69
  to delete images
70
- pa='C:\desk\dl\apairs\jetcross\'
70
+ pa='C:\\desk\\dl\\apairs\\jetcross\\'
71
71
  no='zR2jet0_0004a'
72
72
  I =imread([pa no '.png']);
73
73
  I=I*0+1;