PaIRS-UniNa 0.2.7__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 (44) hide show
  1. PaIRS_UniNa/Changes.txt +18 -0
  2. PaIRS_UniNa/Explorer.py +3126 -3076
  3. PaIRS_UniNa/FolderLoop.py +561 -371
  4. PaIRS_UniNa/Input_Tab.py +826 -717
  5. PaIRS_UniNa/Input_Tab_CalVi.py +10 -12
  6. PaIRS_UniNa/Input_Tab_tools.py +3019 -3018
  7. PaIRS_UniNa/Output_Tab.py +1 -3
  8. PaIRS_UniNa/PaIRS.py +17 -17
  9. PaIRS_UniNa/PaIRS_pypacks.py +45 -0
  10. PaIRS_UniNa/Saving_tools.py +277 -277
  11. PaIRS_UniNa/Vis_Tab.py +39 -18
  12. PaIRS_UniNa/Whatsnew.py +4 -3
  13. PaIRS_UniNa/_PaIRS_PIV.pyd +0 -0
  14. PaIRS_UniNa/__init__.py +2 -2
  15. PaIRS_UniNa/gPaIRS.py +3889 -3832
  16. PaIRS_UniNa/icons/folder_loop_cleanup.png +0 -0
  17. PaIRS_UniNa/icons/folder_loop_cleanup_off.png +0 -0
  18. PaIRS_UniNa/icons/scan_path_loop.png +0 -0
  19. PaIRS_UniNa/icons/scan_path_loop_off.png +0 -0
  20. PaIRS_UniNa/listLib.py +301 -301
  21. PaIRS_UniNa/parForMulti.py +433 -433
  22. PaIRS_UniNa/procTools.py +46 -1
  23. PaIRS_UniNa/tabSplitter.py +606 -606
  24. PaIRS_UniNa/ui_Calibration_Tab.py +542 -542
  25. PaIRS_UniNa/ui_Custom_Top.py +294 -294
  26. PaIRS_UniNa/ui_Input_Tab.py +1098 -1098
  27. PaIRS_UniNa/ui_Input_Tab_CalVi.py +1280 -1280
  28. PaIRS_UniNa/ui_Log_Tab.py +261 -261
  29. PaIRS_UniNa/ui_Output_Tab.py +2360 -2360
  30. PaIRS_UniNa/ui_Process_Tab.py +3808 -3808
  31. PaIRS_UniNa/ui_Process_Tab_CalVi.py +1547 -1547
  32. PaIRS_UniNa/ui_Process_Tab_Disp.py +1139 -1139
  33. PaIRS_UniNa/ui_Process_Tab_Min.py +435 -435
  34. PaIRS_UniNa/ui_ResizePopup.py +203 -203
  35. PaIRS_UniNa/ui_Vis_Tab.py +1626 -1626
  36. PaIRS_UniNa/ui_Vis_Tab_CalVi.py +1249 -1249
  37. PaIRS_UniNa/ui_Whatsnew.py +131 -131
  38. PaIRS_UniNa/ui_gPairs.py +873 -873
  39. PaIRS_UniNa/ui_infoPaIRS.py +550 -550
  40. PaIRS_UniNa/whatsnew.txt +3 -2
  41. {pairs_unina-0.2.7.dist-info → pairs_unina-0.2.8.dist-info}/METADATA +13 -8
  42. {pairs_unina-0.2.7.dist-info → pairs_unina-0.2.8.dist-info}/RECORD +44 -40
  43. {pairs_unina-0.2.7.dist-info → pairs_unina-0.2.8.dist-info}/WHEEL +0 -0
  44. {pairs_unina-0.2.7.dist-info → pairs_unina-0.2.8.dist-info}/top_level.txt +0 -0
PaIRS_UniNa/procTools.py CHANGED
@@ -355,9 +355,54 @@ class dataTreePar(TABpar):
355
355
  if len(args)>1: n=args[1]
356
356
  ln=len(nameSection)
357
357
  ns=int((n-ln)/2)
358
- 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
359
361
  return Log
360
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
+
361
406
  def createLogProc(self):
362
407
  splitAs='\n '#used to join the strings together tab or spaces may be use to indent the error
363
408
  numImgTot=len(self.list_pim) if self.Step!=StepTypes.min else (2*len(self.list_pim))