PaIRS-UniNa 0.2.10__cp313-cp313-macosx_11_0_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.
- PaIRS_UniNa/Calibration_Tab.py +347 -0
- PaIRS_UniNa/Changes.txt +174 -0
- PaIRS_UniNa/Custom_Top.py +303 -0
- PaIRS_UniNa/Explorer.py +3322 -0
- PaIRS_UniNa/FolderLoop.py +562 -0
- PaIRS_UniNa/Input_Tab.py +829 -0
- PaIRS_UniNa/Input_Tab_CalVi.py +787 -0
- PaIRS_UniNa/Input_Tab_tools.py +3026 -0
- PaIRS_UniNa/Log_Tab.py +110 -0
- PaIRS_UniNa/Output_Tab.py +922 -0
- PaIRS_UniNa/PaIRS.py +18 -0
- PaIRS_UniNa/PaIRS_PIV.py +873 -0
- PaIRS_UniNa/PaIRS_pypacks.py +1374 -0
- PaIRS_UniNa/Process_Tab.py +1761 -0
- PaIRS_UniNa/Process_Tab_CalVi.py +313 -0
- PaIRS_UniNa/Process_Tab_Disp.py +170 -0
- PaIRS_UniNa/Process_Tab_Min.py +120 -0
- PaIRS_UniNa/ResizePopup.py +55 -0
- PaIRS_UniNa/SPIVCalHelp.py +155 -0
- PaIRS_UniNa/Saving_tools.py +298 -0
- PaIRS_UniNa/TabTools.py +1413 -0
- PaIRS_UniNa/Vis_Tab.py +2176 -0
- PaIRS_UniNa/Vis_Tab_CalVi.py +982 -0
- PaIRS_UniNa/Whatsnew.py +130 -0
- PaIRS_UniNa/_PaIRS_PIV.so +0 -0
- PaIRS_UniNa/__init__.py +6 -0
- PaIRS_UniNa/__main__.py +45 -0
- PaIRS_UniNa/addwidgets_ps.py +1633 -0
- PaIRS_UniNa/calib.py +1488 -0
- PaIRS_UniNa/calibView.py +833 -0
- PaIRS_UniNa/gPaIRS.py +3957 -0
- PaIRS_UniNa/gPalette.py +189 -0
- PaIRS_UniNa/icons/abort.png +0 -0
- PaIRS_UniNa/icons/about.png +0 -0
- PaIRS_UniNa/icons/align_all.png +0 -0
- PaIRS_UniNa/icons/announcement.png +0 -0
- PaIRS_UniNa/icons/automatic_levels_off.png +0 -0
- PaIRS_UniNa/icons/automatic_levels_on.png +0 -0
- PaIRS_UniNa/icons/automatic_off.png +0 -0
- PaIRS_UniNa/icons/automatic_on.png +0 -0
- PaIRS_UniNa/icons/automatic_size_off.png +0 -0
- PaIRS_UniNa/icons/automatic_size_on.png +0 -0
- PaIRS_UniNa/icons/axes.png +0 -0
- PaIRS_UniNa/icons/background.png +0 -0
- PaIRS_UniNa/icons/background_vectors.png +0 -0
- PaIRS_UniNa/icons/bin_off.png +0 -0
- PaIRS_UniNa/icons/bin_on.png +0 -0
- PaIRS_UniNa/icons/browse_file_c.png +0 -0
- PaIRS_UniNa/icons/browse_folder_c.png +0 -0
- PaIRS_UniNa/icons/brush_cursor.png +0 -0
- PaIRS_UniNa/icons/bugfix.png +0 -0
- PaIRS_UniNa/icons/cal_proc.png +0 -0
- PaIRS_UniNa/icons/cal_proc_off.png +0 -0
- PaIRS_UniNa/icons/cal_step.png +0 -0
- PaIRS_UniNa/icons/cal_step_off.png +0 -0
- PaIRS_UniNa/icons/calibrate.png +0 -0
- PaIRS_UniNa/icons/calibration_logo.png +0 -0
- PaIRS_UniNa/icons/change_folder.png +0 -0
- PaIRS_UniNa/icons/change_folder_off.png +0 -0
- PaIRS_UniNa/icons/checklist.png +0 -0
- PaIRS_UniNa/icons/clean.png +0 -0
- PaIRS_UniNa/icons/clean_run.png +0 -0
- PaIRS_UniNa/icons/close.png +0 -0
- PaIRS_UniNa/icons/close_all.png +0 -0
- PaIRS_UniNa/icons/close_project.png +0 -0
- PaIRS_UniNa/icons/close_workspace.png +0 -0
- PaIRS_UniNa/icons/colormap.png +0 -0
- PaIRS_UniNa/icons/colormaps/Accent.png +0 -0
- PaIRS_UniNa/icons/colormaps/BrBG.png +0 -0
- PaIRS_UniNa/icons/colormaps/Dark2.png +0 -0
- PaIRS_UniNa/icons/colormaps/PRGn.png +0 -0
- PaIRS_UniNa/icons/colormaps/Paired.png +0 -0
- PaIRS_UniNa/icons/colormaps/Pastel1.png +0 -0
- PaIRS_UniNa/icons/colormaps/Pastel2.png +0 -0
- PaIRS_UniNa/icons/colormaps/PiYG.png +0 -0
- PaIRS_UniNa/icons/colormaps/PuOr.png +0 -0
- PaIRS_UniNa/icons/colormaps/RdBu.png +0 -0
- PaIRS_UniNa/icons/colormaps/RdGy.png +0 -0
- PaIRS_UniNa/icons/colormaps/RdYlBu.png +0 -0
- PaIRS_UniNa/icons/colormaps/RdYlGn.png +0 -0
- PaIRS_UniNa/icons/colormaps/Set1.png +0 -0
- PaIRS_UniNa/icons/colormaps/Set2.png +0 -0
- PaIRS_UniNa/icons/colormaps/Set3.png +0 -0
- PaIRS_UniNa/icons/colormaps/Spectral.png +0 -0
- PaIRS_UniNa/icons/colormaps/Wistia.png +0 -0
- PaIRS_UniNa/icons/colormaps/afmhot.png +0 -0
- PaIRS_UniNa/icons/colormaps/autumn.png +0 -0
- PaIRS_UniNa/icons/colormaps/binary.png +0 -0
- PaIRS_UniNa/icons/colormaps/blackVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/blueVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/bone.png +0 -0
- PaIRS_UniNa/icons/colormaps/brg.png +0 -0
- PaIRS_UniNa/icons/colormaps/bwr.png +0 -0
- PaIRS_UniNa/icons/colormaps/cividis.png +0 -0
- PaIRS_UniNa/icons/colormaps/cool.png +0 -0
- PaIRS_UniNa/icons/colormaps/coolwarm.png +0 -0
- PaIRS_UniNa/icons/colormaps/copper.png +0 -0
- PaIRS_UniNa/icons/colormaps/cubehelix.png +0 -0
- PaIRS_UniNa/icons/colormaps/cyanVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/flag.png +0 -0
- PaIRS_UniNa/icons/colormaps/gist_heat.png +0 -0
- PaIRS_UniNa/icons/colormaps/gray.png +0 -0
- PaIRS_UniNa/icons/colormaps/greenVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/hot.png +0 -0
- PaIRS_UniNa/icons/colormaps/hsv.png +0 -0
- PaIRS_UniNa/icons/colormaps/inferno.png +0 -0
- PaIRS_UniNa/icons/colormaps/jet.png +0 -0
- PaIRS_UniNa/icons/colormaps/magentaVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/magma.png +0 -0
- PaIRS_UniNa/icons/colormaps/ocean.png +0 -0
- PaIRS_UniNa/icons/colormaps/pink.png +0 -0
- PaIRS_UniNa/icons/colormaps/plasma.png +0 -0
- PaIRS_UniNa/icons/colormaps/prism.png +0 -0
- PaIRS_UniNa/icons/colormaps/rainbow.png +0 -0
- PaIRS_UniNa/icons/colormaps/redVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/seismic.png +0 -0
- PaIRS_UniNa/icons/colormaps/spring.png +0 -0
- PaIRS_UniNa/icons/colormaps/summer.png +0 -0
- PaIRS_UniNa/icons/colormaps/tab10.png +0 -0
- PaIRS_UniNa/icons/colormaps/tab20.png +0 -0
- PaIRS_UniNa/icons/colormaps/tab20b.png +0 -0
- PaIRS_UniNa/icons/colormaps/tab20c.png +0 -0
- PaIRS_UniNa/icons/colormaps/terrain.png +0 -0
- PaIRS_UniNa/icons/colormaps/twilight.png +0 -0
- PaIRS_UniNa/icons/colormaps/viridis.png +0 -0
- PaIRS_UniNa/icons/colormaps/whiteVector.png +0 -0
- PaIRS_UniNa/icons/colormaps/winter.png +0 -0
- PaIRS_UniNa/icons/colormaps/yellowVector.png +0 -0
- PaIRS_UniNa/icons/common_region.png +0 -0
- PaIRS_UniNa/icons/common_region_off.png +0 -0
- PaIRS_UniNa/icons/completed.png +0 -0
- PaIRS_UniNa/icons/contourf_off.png +0 -0
- PaIRS_UniNa/icons/contourf_on.png +0 -0
- PaIRS_UniNa/icons/copy.png +0 -0
- PaIRS_UniNa/icons/copy_process.png +0 -0
- PaIRS_UniNa/icons/copy_process_off.png +0 -0
- PaIRS_UniNa/icons/copygrid.png +0 -0
- PaIRS_UniNa/icons/cursor_lamp.png +0 -0
- PaIRS_UniNa/icons/cut.png +0 -0
- PaIRS_UniNa/icons/cut_warnings.png +0 -0
- PaIRS_UniNa/icons/darkmode.png +0 -0
- PaIRS_UniNa/icons/debug_run.png +0 -0
- PaIRS_UniNa/icons/delete.png +0 -0
- PaIRS_UniNa/icons/deleteErr.png +0 -0
- PaIRS_UniNa/icons/disp_step.png +0 -0
- PaIRS_UniNa/icons/disp_step_off.png +0 -0
- PaIRS_UniNa/icons/down.png +0 -0
- PaIRS_UniNa/icons/edit_list.png +0 -0
- PaIRS_UniNa/icons/editing.png +0 -0
- PaIRS_UniNa/icons/example_list.png +0 -0
- PaIRS_UniNa/icons/find_all_planes.png +0 -0
- PaIRS_UniNa/icons/find_plane.png +0 -0
- PaIRS_UniNa/icons/flaticon_PaIRS.png +0 -0
- PaIRS_UniNa/icons/flaticon_PaIRS_beta.png +0 -0
- PaIRS_UniNa/icons/flaticon_PaIRS_download.png +0 -0
- PaIRS_UniNa/icons/flaticon_PaIRS_download_warning.png +0 -0
- PaIRS_UniNa/icons/flip_y_off.png +0 -0
- PaIRS_UniNa/icons/flip_y_on.png +0 -0
- PaIRS_UniNa/icons/focusErrr.png +0 -0
- PaIRS_UniNa/icons/folder_loop_cleanup.png +0 -0
- PaIRS_UniNa/icons/folder_loop_cleanup_off.png +0 -0
- PaIRS_UniNa/icons/gear.gif +0 -0
- PaIRS_UniNa/icons/gear.png +0 -0
- PaIRS_UniNa/icons/ger.png +0 -0
- PaIRS_UniNa/icons/greenv.png +0 -0
- PaIRS_UniNa/icons/guide.png +0 -0
- PaIRS_UniNa/icons/icon_CalVi.png +0 -0
- PaIRS_UniNa/icons/icon_PaIRS.png +0 -0
- PaIRS_UniNa/icons/import.png +0 -0
- PaIRS_UniNa/icons/import_set.png +0 -0
- PaIRS_UniNa/icons/information.png +0 -0
- PaIRS_UniNa/icons/information2.png +0 -0
- PaIRS_UniNa/icons/input_logo.png +0 -0
- PaIRS_UniNa/icons/issue.png +0 -0
- PaIRS_UniNa/icons/laser_NTR.png +0 -0
- PaIRS_UniNa/icons/laser_TR_double.png +0 -0
- PaIRS_UniNa/icons/laser_TR_single.png +0 -0
- PaIRS_UniNa/icons/link.png +0 -0
- PaIRS_UniNa/icons/linked.png +0 -0
- PaIRS_UniNa/icons/loaded.png +0 -0
- PaIRS_UniNa/icons/loading_2.gif +0 -0
- PaIRS_UniNa/icons/log_logo.png +0 -0
- PaIRS_UniNa/icons/logo_CalVi.png +0 -0
- PaIRS_UniNa/icons/logo_CalVi_completo.png +0 -0
- PaIRS_UniNa/icons/logo_CalVi_party.png +0 -0
- PaIRS_UniNa/icons/logo_PaIRS.png +0 -0
- PaIRS_UniNa/icons/logo_PaIRS_completo.png +0 -0
- PaIRS_UniNa/icons/logo_PaIRS_download.png +0 -0
- PaIRS_UniNa/icons/logo_PaIRS_party_rect.png +0 -0
- PaIRS_UniNa/icons/logo_PaIRS_rect.png +0 -0
- PaIRS_UniNa/icons/logo_opaco.png +0 -0
- PaIRS_UniNa/icons/mask.png +0 -0
- PaIRS_UniNa/icons/measure.png +0 -0
- PaIRS_UniNa/icons/measure_off.png +0 -0
- PaIRS_UniNa/icons/min_proc.png +0 -0
- PaIRS_UniNa/icons/min_proc_off.png +0 -0
- PaIRS_UniNa/icons/min_step.png +0 -0
- PaIRS_UniNa/icons/min_step_off.png +0 -0
- PaIRS_UniNa/icons/minus.png +0 -0
- PaIRS_UniNa/icons/mirror_u.png +0 -0
- PaIRS_UniNa/icons/mirror_v.png +0 -0
- PaIRS_UniNa/icons/mirror_x.png +0 -0
- PaIRS_UniNa/icons/mirror_y.png +0 -0
- PaIRS_UniNa/icons/mtplt.png +0 -0
- PaIRS_UniNa/icons/new.png +0 -0
- PaIRS_UniNa/icons/new_workspace.png +0 -0
- PaIRS_UniNa/icons/news.png +0 -0
- PaIRS_UniNa/icons/normal_run.png +0 -0
- PaIRS_UniNa/icons/open.png +0 -0
- PaIRS_UniNa/icons/open_image.png +0 -0
- PaIRS_UniNa/icons/open_new_window.png +0 -0
- PaIRS_UniNa/icons/open_result.png +0 -0
- PaIRS_UniNa/icons/open_workspace.png +0 -0
- PaIRS_UniNa/icons/output_logo.png +0 -0
- PaIRS_UniNa/icons/paste_above.png +0 -0
- PaIRS_UniNa/icons/paste_below.png +0 -0
- PaIRS_UniNa/icons/pause.png +0 -0
- PaIRS_UniNa/icons/paused.png +0 -0
- PaIRS_UniNa/icons/pencil_bw.png +0 -0
- PaIRS_UniNa/icons/piv_proc.png +0 -0
- PaIRS_UniNa/icons/piv_proc_off.png +0 -0
- PaIRS_UniNa/icons/piv_step.png +0 -0
- PaIRS_UniNa/icons/piv_step_off.png +0 -0
- PaIRS_UniNa/icons/plane.png +0 -0
- PaIRS_UniNa/icons/play.png +0 -0
- PaIRS_UniNa/icons/plus.png +0 -0
- PaIRS_UniNa/icons/process_logo.png +0 -0
- PaIRS_UniNa/icons/process_loop.png +0 -0
- PaIRS_UniNa/icons/project.png +0 -0
- PaIRS_UniNa/icons/pylog.png +0 -0
- PaIRS_UniNa/icons/python_warning.png +0 -0
- PaIRS_UniNa/icons/queue.png +0 -0
- PaIRS_UniNa/icons/quit.png +0 -0
- PaIRS_UniNa/icons/read.png +0 -0
- PaIRS_UniNa/icons/read_list.png +0 -0
- PaIRS_UniNa/icons/redo.png +0 -0
- PaIRS_UniNa/icons/redx.png +0 -0
- PaIRS_UniNa/icons/reset.png +0 -0
- PaIRS_UniNa/icons/reset_levels.png +0 -0
- PaIRS_UniNa/icons/resize_icon.png +0 -0
- PaIRS_UniNa/icons/restore.png +0 -0
- PaIRS_UniNa/icons/restore_undo.png +0 -0
- PaIRS_UniNa/icons/rotate_clock.png +0 -0
- PaIRS_UniNa/icons/rotate_counter.png +0 -0
- PaIRS_UniNa/icons/rotate_v_clock.png +0 -0
- PaIRS_UniNa/icons/rotate_v_counter.png +0 -0
- PaIRS_UniNa/icons/running.gif +0 -0
- PaIRS_UniNa/icons/running.png +0 -0
- PaIRS_UniNa/icons/running_warn.png +0 -0
- PaIRS_UniNa/icons/sandglass.png +0 -0
- PaIRS_UniNa/icons/save.png +0 -0
- PaIRS_UniNa/icons/save_and_stop.png +0 -0
- PaIRS_UniNa/icons/save_cfg.png +0 -0
- PaIRS_UniNa/icons/saveas.png +0 -0
- PaIRS_UniNa/icons/saveas_workspace.png +0 -0
- PaIRS_UniNa/icons/scale_all.png +0 -0
- PaIRS_UniNa/icons/scale_down.png +0 -0
- PaIRS_UniNa/icons/scale_up.png +0 -0
- PaIRS_UniNa/icons/scan_list.png +0 -0
- PaIRS_UniNa/icons/scan_path.png +0 -0
- PaIRS_UniNa/icons/scan_path_loop.png +0 -0
- PaIRS_UniNa/icons/scan_path_loop_off.png +0 -0
- PaIRS_UniNa/icons/search.png +0 -0
- PaIRS_UniNa/icons/showIW_off.png +0 -0
- PaIRS_UniNa/icons/showIW_on.png +0 -0
- PaIRS_UniNa/icons/show_all.png +0 -0
- PaIRS_UniNa/icons/sort.png +0 -0
- PaIRS_UniNa/icons/sort_reversed.png +0 -0
- PaIRS_UniNa/icons/spiv_proc.png +0 -0
- PaIRS_UniNa/icons/spiv_proc_off.png +0 -0
- PaIRS_UniNa/icons/spiv_setup_no.png +0 -0
- PaIRS_UniNa/icons/spiv_setup_ok.png +0 -0
- PaIRS_UniNa/icons/star.png +0 -0
- PaIRS_UniNa/icons/step_inheritance.png +0 -0
- PaIRS_UniNa/icons/subMIN_off.png +0 -0
- PaIRS_UniNa/icons/subMIN_on.png +0 -0
- PaIRS_UniNa/icons/tom.png +0 -0
- PaIRS_UniNa/icons/trash.png +0 -0
- PaIRS_UniNa/icons/undo.png +0 -0
- PaIRS_UniNa/icons/unedited.png +0 -0
- PaIRS_UniNa/icons/unina_dii.png +0 -0
- PaIRS_UniNa/icons/uninitialized.png +0 -0
- PaIRS_UniNa/icons/unlink.png +0 -0
- PaIRS_UniNa/icons/unwrap_items.png +0 -0
- PaIRS_UniNa/icons/up.png +0 -0
- PaIRS_UniNa/icons/updating_import.gif +0 -0
- PaIRS_UniNa/icons/updating_pairs.gif +0 -0
- PaIRS_UniNa/icons/vectorColor.png +0 -0
- PaIRS_UniNa/icons/vettore.png +0 -0
- PaIRS_UniNa/icons/view.png +0 -0
- PaIRS_UniNa/icons/view_off.png +0 -0
- PaIRS_UniNa/icons/vis_logo.png +0 -0
- PaIRS_UniNa/icons/waiting_circle.png +0 -0
- PaIRS_UniNa/icons/warning.png +0 -0
- PaIRS_UniNa/icons/warning_circle.png +0 -0
- PaIRS_UniNa/icons/window.png +0 -0
- PaIRS_UniNa/icons/workspace.png +0 -0
- PaIRS_UniNa/icons/wrap_items.png +0 -0
- PaIRS_UniNa/icons/write_list.png +0 -0
- PaIRS_UniNa/listLib.py +303 -0
- PaIRS_UniNa/mtfPIV.py +256 -0
- PaIRS_UniNa/parForMulti.py +435 -0
- PaIRS_UniNa/parForWorkers.py +593 -0
- PaIRS_UniNa/pivParFor.py +235 -0
- PaIRS_UniNa/plt_util.py +141 -0
- PaIRS_UniNa/preProcParFor.py +155 -0
- PaIRS_UniNa/procTools.py +1439 -0
- PaIRS_UniNa/readcfg.py +52 -0
- PaIRS_UniNa/rqrdpckgs.txt +9 -0
- PaIRS_UniNa/stereoPivParFor.py +227 -0
- PaIRS_UniNa/tAVarie.py +215 -0
- PaIRS_UniNa/tabSplitter.py +612 -0
- PaIRS_UniNa/ui_Calibration_Tab.py +578 -0
- PaIRS_UniNa/ui_Custom_Top.py +296 -0
- PaIRS_UniNa/ui_Input_Tab.py +1101 -0
- PaIRS_UniNa/ui_Input_Tab_CalVi.py +1283 -0
- PaIRS_UniNa/ui_Log_Tab.py +263 -0
- PaIRS_UniNa/ui_Output_Tab.py +2362 -0
- PaIRS_UniNa/ui_Process_Tab.py +3810 -0
- PaIRS_UniNa/ui_Process_Tab_CalVi.py +1549 -0
- PaIRS_UniNa/ui_Process_Tab_Disp.py +1141 -0
- PaIRS_UniNa/ui_Process_Tab_Min.py +437 -0
- PaIRS_UniNa/ui_ResizePopup.py +204 -0
- PaIRS_UniNa/ui_Vis_Tab.py +1628 -0
- PaIRS_UniNa/ui_Vis_Tab_CalVi.py +1251 -0
- PaIRS_UniNa/ui_Whatsnew.py +132 -0
- PaIRS_UniNa/ui_gPairs.py +877 -0
- PaIRS_UniNa/ui_infoPaIRS.py +551 -0
- PaIRS_UniNa/whatsnew.txt +4 -0
- pairs_unina-0.2.10.dist-info/METADATA +159 -0
- pairs_unina-0.2.10.dist-info/RECORD +333 -0
- pairs_unina-0.2.10.dist-info/WHEEL +5 -0
- pairs_unina-0.2.10.dist-info/top_level.txt +2 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
PaIRS_UniNa/icons/up.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
PaIRS_UniNa/listLib.py
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
from .PaIRS_pypacks import pri
|
|
2
|
+
import copy
|
|
3
|
+
|
|
4
|
+
def list_item_at(lst,ind):
|
|
5
|
+
if ind[0]<len(lst):
|
|
6
|
+
p=lst[ind[0]]
|
|
7
|
+
else:
|
|
8
|
+
p=None
|
|
9
|
+
if p:
|
|
10
|
+
for i in range(1,len(ind)):
|
|
11
|
+
if ind[i]<len(p):
|
|
12
|
+
p=p[ind[i]]
|
|
13
|
+
else:
|
|
14
|
+
p=None
|
|
15
|
+
break
|
|
16
|
+
return p
|
|
17
|
+
|
|
18
|
+
def deep_duplicate(lst):
|
|
19
|
+
|
|
20
|
+
# Recursive function to copy the list
|
|
21
|
+
def recursive_duplicate(sub_lst):
|
|
22
|
+
if isinstance(sub_lst, list):
|
|
23
|
+
copied_sub_lst = []
|
|
24
|
+
for item in sub_lst:
|
|
25
|
+
if isinstance(item, list):
|
|
26
|
+
# If the item is a list, call recursively on it
|
|
27
|
+
copied_sub_lst.append(recursive_duplicate(item))
|
|
28
|
+
else:
|
|
29
|
+
# Check if the item has a 'duplicate' attribute and if it is callable
|
|
30
|
+
if hasattr(item, 'duplicate') and callable(item.duplicate):
|
|
31
|
+
copied_sub_lst.append(item.duplicate())
|
|
32
|
+
else:
|
|
33
|
+
copied_sub_lst.append(item)
|
|
34
|
+
return copied_sub_lst
|
|
35
|
+
else:
|
|
36
|
+
item=sub_lst
|
|
37
|
+
if hasattr(item, 'duplicate') and callable(item.duplicate):
|
|
38
|
+
return item.duplicate()
|
|
39
|
+
else: return item
|
|
40
|
+
|
|
41
|
+
# Call the recursive function on the original input
|
|
42
|
+
return recursive_duplicate(lst)
|
|
43
|
+
|
|
44
|
+
def copy_at_depth(lst, depth, indexes):
|
|
45
|
+
"""Recursively copy elements at the specified depth using given indexes."""
|
|
46
|
+
global error_printed
|
|
47
|
+
error_printed = False
|
|
48
|
+
if not isinstance(indexes,list): indexes=list([indexes])
|
|
49
|
+
|
|
50
|
+
def recursive_copy(lst, depth, indexes, current_depth=0):
|
|
51
|
+
global error_printed
|
|
52
|
+
if depth < 0:
|
|
53
|
+
if not error_printed:
|
|
54
|
+
pri.Coding.red(f"Error [copy_at_depth]: Depth cannot be negative.")
|
|
55
|
+
error_printed = True
|
|
56
|
+
return None
|
|
57
|
+
elif depth == current_depth:
|
|
58
|
+
copied_elements = []
|
|
59
|
+
error_printed_for=False
|
|
60
|
+
for index in indexes:
|
|
61
|
+
if index < len(lst):
|
|
62
|
+
copied_elements.append(deep_duplicate(lst[index]))
|
|
63
|
+
else:
|
|
64
|
+
if not error_printed: pri.Coding.yellow(f"Warning [copy_at_depth]: Index {index} out of range for list at depth {current_depth}.")
|
|
65
|
+
error_printed_for=True
|
|
66
|
+
error_printed=error_printed_for
|
|
67
|
+
return copied_elements
|
|
68
|
+
elif not any(isinstance(sublist, list) for sublist in lst):
|
|
69
|
+
if not error_printed:
|
|
70
|
+
pri.Coding.red(f"Error [copy_at_depth]: Cannot go deeper into list structure at depth {current_depth}.")
|
|
71
|
+
error_printed = True
|
|
72
|
+
return None
|
|
73
|
+
return [recursive_copy(sublist, depth, indexes, current_depth + 1) for sublist in lst]
|
|
74
|
+
|
|
75
|
+
return recursive_copy(lst, depth, indexes)
|
|
76
|
+
|
|
77
|
+
def pop_at_depth(lst, depth, indexes):
|
|
78
|
+
"""Recursively pop elements at the specified depth using given indexes."""
|
|
79
|
+
global error_printed
|
|
80
|
+
error_printed = False
|
|
81
|
+
|
|
82
|
+
def recursive_pop(lst, depth, indexes, current_depth=0):
|
|
83
|
+
global error_printed
|
|
84
|
+
if depth < 0:
|
|
85
|
+
if not error_printed:
|
|
86
|
+
pri.Coding.red(f"Error [pop_at_depth]: Depth cannot be negative.")
|
|
87
|
+
error_printed = True
|
|
88
|
+
return None
|
|
89
|
+
elif depth == current_depth:
|
|
90
|
+
popped_elements = []
|
|
91
|
+
error_printed_for=False
|
|
92
|
+
for index in sorted(indexes, reverse=True):
|
|
93
|
+
if index < len(lst):
|
|
94
|
+
popped_elements.append(lst.pop(index))
|
|
95
|
+
else:
|
|
96
|
+
if not error_printed:
|
|
97
|
+
pri.Coding.yellow(f"Warning [pop_at_depth]: Index {index} out of range for list at depth {current_depth}.")
|
|
98
|
+
error_printed_for = True
|
|
99
|
+
error_printed=error_printed_for
|
|
100
|
+
return popped_elements[::-1] # Reverse to restore original order
|
|
101
|
+
elif not any(isinstance(sublist, list) for sublist in lst):
|
|
102
|
+
if not error_printed:
|
|
103
|
+
pri.Coding.red(f"Error [pop_at_depth]: Cannot go deeper into list structure at depth {current_depth}.")
|
|
104
|
+
error_printed = True
|
|
105
|
+
return None
|
|
106
|
+
return [recursive_pop(sublist, depth, indexes, current_depth + 1) for sublist in lst]
|
|
107
|
+
|
|
108
|
+
return recursive_pop(lst, depth, indexes)
|
|
109
|
+
|
|
110
|
+
def insert_at_depth(lst, depth, indexes, values):
|
|
111
|
+
"""Recursively insert a value at the specified depth using given indexes."""
|
|
112
|
+
global error_printed, gllst
|
|
113
|
+
error_printed = False
|
|
114
|
+
gllst=lst
|
|
115
|
+
|
|
116
|
+
def recursive_insert(lst, depth, indexes, values, current_depth=0):
|
|
117
|
+
global error_printed, gllst
|
|
118
|
+
if depth < 0:
|
|
119
|
+
if not error_printed:
|
|
120
|
+
pri.Coding.red(f"Error [insert_at_depth]: Depth cannot be negative.")
|
|
121
|
+
error_printed = True
|
|
122
|
+
return None
|
|
123
|
+
elif depth == current_depth:
|
|
124
|
+
if isinstance(indexes, list):
|
|
125
|
+
error_printed_for=False
|
|
126
|
+
sorted_data = sorted(zip(indexes, values), key=lambda x: x[0], reverse=True)
|
|
127
|
+
for idx, val in sorted_data:
|
|
128
|
+
if idx <= len(lst):
|
|
129
|
+
lst.insert(idx, val)
|
|
130
|
+
else:
|
|
131
|
+
lst.append(val)
|
|
132
|
+
if not error_printed: pri.Coding.yellow(f"Warning [insert_at_depth]: Index {idx} out of range for list at depth {current_depth}.")
|
|
133
|
+
error_printed_for = True
|
|
134
|
+
error_printed=error_printed_for
|
|
135
|
+
elif isinstance(indexes, int):
|
|
136
|
+
error_printed_for=False
|
|
137
|
+
for val in values:
|
|
138
|
+
if indexes <= len(lst):
|
|
139
|
+
lst.insert(indexes, val)
|
|
140
|
+
indexes += 1
|
|
141
|
+
else:
|
|
142
|
+
lst.append(val)
|
|
143
|
+
if not error_printed: pri.Coding.yellow(f"Warning [insert_at_depth]: Index {indexes} out of range for list at depth {current_depth}.")
|
|
144
|
+
error_printed_for = True
|
|
145
|
+
error_printed=error_printed_for
|
|
146
|
+
elif not any(isinstance(sublist, list) for sublist in lst):
|
|
147
|
+
if not error_printed:
|
|
148
|
+
pri.Coding.red(f"Error [insert_at_depth]: Cannot go deeper into list structure at depth {current_depth}.")
|
|
149
|
+
error_printed = True
|
|
150
|
+
return None
|
|
151
|
+
else:
|
|
152
|
+
for sublist, val in zip(lst, values):
|
|
153
|
+
recursive_insert(sublist, depth, indexes, val, current_depth + 1)
|
|
154
|
+
|
|
155
|
+
recursive_insert(lst, depth, indexes, values)
|
|
156
|
+
|
|
157
|
+
def delete_at_depth(lst, depth, indexes):
|
|
158
|
+
"""Recursively delete elements at the specified depth using given indexes."""
|
|
159
|
+
global error_printed
|
|
160
|
+
error_printed = False
|
|
161
|
+
|
|
162
|
+
def recursive_delete(lst, depth, indexes, current_depth=0):
|
|
163
|
+
global error_printed
|
|
164
|
+
if depth < 0:
|
|
165
|
+
if not error_printed:
|
|
166
|
+
pri.Coding.red(f"Error [delete_at_depth]: Depth cannot be negative.")
|
|
167
|
+
error_printed = True
|
|
168
|
+
return None
|
|
169
|
+
elif depth == current_depth:
|
|
170
|
+
error_printed_for=False
|
|
171
|
+
for index in sorted(indexes, reverse=True):
|
|
172
|
+
if index < len(lst):
|
|
173
|
+
del lst[index]
|
|
174
|
+
else:
|
|
175
|
+
if not error_printed: pri.Coding.yellow(f"Warning [delete_at_depth]: Index {index} out of range for list at depth {current_depth}.")
|
|
176
|
+
error_printed_for = True
|
|
177
|
+
error_printed=error_printed_for
|
|
178
|
+
elif not any(isinstance(sublist, list) for sublist in lst):
|
|
179
|
+
if not error_printed:
|
|
180
|
+
pri.Coding.red(f"Error [delete_at_depth]: Cannot go deeper into list structure at depth {current_depth}.")
|
|
181
|
+
error_printed = True
|
|
182
|
+
return None
|
|
183
|
+
else:
|
|
184
|
+
for sublist in lst:
|
|
185
|
+
recursive_delete(sublist, depth, indexes, current_depth + 1)
|
|
186
|
+
|
|
187
|
+
recursive_delete(lst, depth, indexes)
|
|
188
|
+
|
|
189
|
+
def expand_level(lst, level=0, target_length=0):
|
|
190
|
+
"""Recursively expand the specified level of depth to the target length."""
|
|
191
|
+
current_depth = get_list_dimension(lst)
|
|
192
|
+
if level >= current_depth:
|
|
193
|
+
pri.Coding.yellow("Warning [expand_level]: Target level exceeds current depth of the list.")
|
|
194
|
+
return
|
|
195
|
+
|
|
196
|
+
global error_printed
|
|
197
|
+
error_printed = False
|
|
198
|
+
|
|
199
|
+
def recursive_expand(lst, level, target_length):
|
|
200
|
+
global error_printed
|
|
201
|
+
if level == 0:
|
|
202
|
+
error_printed=expand_to_length(lst, level, target_length, error_printed)
|
|
203
|
+
else:
|
|
204
|
+
for sublist in lst:
|
|
205
|
+
if isinstance(sublist, list):
|
|
206
|
+
recursive_expand(sublist, level - 1, target_length)
|
|
207
|
+
return
|
|
208
|
+
recursive_expand(lst, level, target_length)
|
|
209
|
+
return
|
|
210
|
+
|
|
211
|
+
def expand_to_length(lst:list, level, target_length, error_printed):
|
|
212
|
+
"""Expand the length of a list to the target length."""
|
|
213
|
+
|
|
214
|
+
current_length = len(lst)
|
|
215
|
+
if current_length >= target_length:
|
|
216
|
+
if not error_printed:
|
|
217
|
+
pri.Coding.yellow(f"Warning [expand_to_length]: Target length ({target_length}) is lower than or equal to current length ({current_length}) of the list at the target level ({level}).")
|
|
218
|
+
error_printed=True
|
|
219
|
+
else:
|
|
220
|
+
last_element = lst[-1]
|
|
221
|
+
for _ in range(target_length-current_length):
|
|
222
|
+
lst.append(copy.deepcopy(last_element))
|
|
223
|
+
return error_printed
|
|
224
|
+
|
|
225
|
+
def create_empty_list_of_dimension(dimension):
|
|
226
|
+
"""Create an empty list with the specified depth."""
|
|
227
|
+
if dimension < 1:
|
|
228
|
+
pri.Coding.red("Error [create_empty_list]: Dimension cannot be zero or negative.")
|
|
229
|
+
return None
|
|
230
|
+
|
|
231
|
+
if dimension == 1:
|
|
232
|
+
return []
|
|
233
|
+
|
|
234
|
+
return [create_empty_list_of_dimension(dimension - 1)]
|
|
235
|
+
|
|
236
|
+
def get_list_dimension(lst):
|
|
237
|
+
"""Recursively determine the depth of a list."""
|
|
238
|
+
if not isinstance(lst, list):
|
|
239
|
+
return 0
|
|
240
|
+
|
|
241
|
+
if not lst:
|
|
242
|
+
return 1
|
|
243
|
+
|
|
244
|
+
return 1+max(get_list_dimension(sublist) for sublist in lst)
|
|
245
|
+
|
|
246
|
+
def measure_depth_length(lst, depth):
|
|
247
|
+
"""Measure the length of a list at a certain depth."""
|
|
248
|
+
if depth == 0:
|
|
249
|
+
return len(lst)
|
|
250
|
+
|
|
251
|
+
length = 0
|
|
252
|
+
for sublist in lst:
|
|
253
|
+
if isinstance(sublist, list):
|
|
254
|
+
length = max(length,measure_depth_length(sublist, depth - 1))
|
|
255
|
+
return length
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
if __name__ == "__main__":
|
|
259
|
+
pri.Time.blue('Start')
|
|
260
|
+
# Esempio di utilizzo
|
|
261
|
+
lst = [
|
|
262
|
+
[['a', 'b', 'c'], ['d', 'e', 'f'], ['1','2','3']],
|
|
263
|
+
[['g', 'h', 'i'], ['j', 'k', 'l'], ['4','5','6']]
|
|
264
|
+
]
|
|
265
|
+
depth = 2
|
|
266
|
+
|
|
267
|
+
dimension = get_list_dimension(lst)
|
|
268
|
+
print("Dimension of the list:", dimension)
|
|
269
|
+
|
|
270
|
+
# Copia
|
|
271
|
+
indexes = [0, 2, 10]
|
|
272
|
+
copied_sublist = copy_at_depth(lst, depth, indexes)
|
|
273
|
+
print("Copied Sublist:", copied_sublist)
|
|
274
|
+
|
|
275
|
+
# Pop
|
|
276
|
+
indexes = [1, 2, 11]
|
|
277
|
+
popped_elements = pop_at_depth(lst, depth, indexes)
|
|
278
|
+
print("Popped Elements:", popped_elements)
|
|
279
|
+
print("List after Pop:", lst)
|
|
280
|
+
|
|
281
|
+
# Insert
|
|
282
|
+
indexes = [0, 12]
|
|
283
|
+
insert_at_depth(lst, depth, indexes, ['x','y'])
|
|
284
|
+
print("List after Insert:", lst)
|
|
285
|
+
|
|
286
|
+
empty_list = create_empty_list_of_dimension(dimension)
|
|
287
|
+
print("Empty List:", empty_list)
|
|
288
|
+
print("Dimension of the list:", get_list_dimension(empty_list))
|
|
289
|
+
insert_at_depth(empty_list, depth, indexes, copied_sublist)
|
|
290
|
+
print("List after Insert:", empty_list)
|
|
291
|
+
|
|
292
|
+
# Delete
|
|
293
|
+
indexes = [1, 2, 20]
|
|
294
|
+
delete_at_depth(lst, depth, indexes)
|
|
295
|
+
print("List after Delete:", lst)
|
|
296
|
+
|
|
297
|
+
#Expand
|
|
298
|
+
expand_level(lst,level=2,target_length=5)
|
|
299
|
+
print("List after Expand:", lst)
|
|
300
|
+
|
|
301
|
+
print("List after Expand: lenght of level 1:", measure_depth_length(lst,1))
|
|
302
|
+
print("List after Expand: lenght of level 2:", measure_depth_length(lst,2))
|
|
303
|
+
pri.Time.blue('End')
|