aait 1.0.4.2__tar.gz → 1.0.5__tar.gz
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.
- {aait-1.0.4.2 → aait-1.0.5}/PKG-INFO +1 -2
- {aait-1.0.4.2 → aait-1.0.5}/aait.egg-info/PKG-INFO +1 -2
- {aait-1.0.4.2 → aait-1.0.5}/aait.egg-info/SOURCES.txt +15 -28
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/MetManagement.py +10 -2
- aait-1.0.5/orangecontrib/AAIT/utils/mac_utils.py +110 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/windows_utils.py +166 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +10 -2
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWApplyRules.py +32 -22
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWConcatRules.py +19 -8
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWInputSelector.py +79 -3
- aait-1.0.5/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +63 -0
- aait-1.0.5/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +64 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_Solar.py +1 -1
- aait-1.0.5/orangecontrib/AAIT/widgets/OWReranking.py +199 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +2 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +13 -0
- aait-1.0.5/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +41 -0
- aait-1.0.5/orangecontrib/AAIT/widgets/designer/owreranking.ui +41 -0
- aait-1.0.5/orangecontrib/AAIT/widgets/icons/input.png +0 -0
- aait-1.0.5/orangecontrib/AAIT/widgets/icons/models.png +0 -0
- aait-1.0.5/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
- aait-1.0.5/orangecontrib/AAIT/widgets/icons/output.png +0 -0
- aait-1.0.5/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +27 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +27 -27
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +27 -27
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +27 -27
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +27 -27
- aait-1.0.5/orangecontrib/AAIT/widgets/icons/owreranking.svg +16 -0
- aait-1.0.5/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/setup.py +1 -1
- aait-1.0.4.2/License.txt +0 -6
- aait-1.0.4.2/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -79
- aait-1.0.4.2/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -17
- aait-1.0.4.2/orangecontrib/AAIT/llm/SERV_requests.py +0 -73
- aait-1.0.4.2/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -17
- aait-1.0.4.2/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -170
- aait-1.0.4.2/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -53
- aait-1.0.4.2/orangecontrib/AAIT/llm/finetuning.py +0 -250
- aait-1.0.4.2/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -334
- aait-1.0.4.2/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -124
- aait-1.0.4.2/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -68
- aait-1.0.4.2/orangecontrib/AAIT/llm/main_Finetuning.py +0 -96
- aait-1.0.4.2/orangecontrib/AAIT/llm/quickpy.py +0 -99
- aait-1.0.4.2/orangecontrib/AAIT/llm/test.py +0 -18
- aait-1.0.4.2/orangecontrib/AAIT/llm/test_functions.py +0 -0
- aait-1.0.4.2/orangecontrib/IMG4IT/__init__.py +0 -0
- aait-1.0.4.2/orangecontrib/IMG4IT/utils/__init__.py +0 -0
- aait-1.0.4.2/tests/test_class_values_context_handler.py +0 -75
- aait-1.0.4.2/tests/test_credentials.py +0 -76
- aait-1.0.4.2/tests/test_domain_context_handler.py +0 -401
- aait-1.0.4.2/tests/test_gui.py +0 -140
- aait-1.0.4.2/tests/test_matplotlib_export.py +0 -43
- aait-1.0.4.2/tests/test_perfect_domain_context_handler.py +0 -148
- aait-1.0.4.2/tests/test_scatterplot_density.py +0 -59
- aait-1.0.4.2/tests/test_settings_handler.py +0 -27
- aait-1.0.4.2/tests/test_widgets_outputs.py +0 -29
- aait-1.0.4.2/tests/test_workflows.py +0 -80
- {aait-1.0.4.2 → aait-1.0.5}/aait.egg-info/dependency_links.txt +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/aait.egg-info/entry_points.txt +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/aait.egg-info/namespace_packages.txt +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/aait.egg-info/requires.txt +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/aait.egg-info/top_level.txt +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/__init__.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/GPT4ALL.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/GPT4ALL_killer.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/__init__.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/answers.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/chunking.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/embeddings.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/lemmes.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/process_documents.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/llm/translations.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/__init__.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/import_uic.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/thread_management.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWExecuteScript.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWKeywords.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWLLM4ALL.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWPaddleOCR.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/__init__.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owllm4all.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owpaddleocr.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/keyword.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/llm4all.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/paddleocr.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/orangecontrib/__init__.py +0 -0
- {aait-1.0.4.2 → aait-1.0.5}/setup.cfg +0 -0
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: aait
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.5
|
|
4
4
|
Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
|
|
5
5
|
Home-page:
|
|
6
6
|
Author: Orange community
|
|
7
7
|
Author-email:
|
|
8
8
|
Keywords: orange3 add-on
|
|
9
|
-
License-File: License.txt
|
|
10
9
|
Requires-Dist: torch==2.6.0; sys_platform != "darwin"
|
|
11
10
|
Requires-Dist: torch==2.2.2; sys_platform == "darwin"
|
|
12
11
|
Requires-Dist: sentence-transformers==3.3.1
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: aait
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.5
|
|
4
4
|
Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
|
|
5
5
|
Home-page:
|
|
6
6
|
Author: Orange community
|
|
7
7
|
Author-email:
|
|
8
8
|
Keywords: orange3 add-on
|
|
9
|
-
License-File: License.txt
|
|
10
9
|
Requires-Dist: torch==2.6.0; sys_platform != "darwin"
|
|
11
10
|
Requires-Dist: torch==2.2.2; sys_platform == "darwin"
|
|
12
11
|
Requires-Dist: sentence-transformers==3.3.1
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
setup.cfg
|
|
2
2
|
setup.py
|
|
3
3
|
aait.egg-info/PKG-INFO
|
|
4
4
|
aait.egg-info/SOURCES.txt
|
|
@@ -37,28 +37,14 @@ orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py
|
|
|
37
37
|
orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll
|
|
38
38
|
orangecontrib/AAIT/llm/GPT4ALL.py
|
|
39
39
|
orangecontrib/AAIT/llm/GPT4ALL_killer.py
|
|
40
|
-
orangecontrib/AAIT/llm/MergeBaseLora.py
|
|
41
|
-
orangecontrib/AAIT/llm/SERV_kill_workflow.py
|
|
42
|
-
orangecontrib/AAIT/llm/SERV_requests.py
|
|
43
|
-
orangecontrib/AAIT/llm/SERV_start_workflow.py
|
|
44
|
-
orangecontrib/AAIT/llm/Tutorial_Finetuning.py
|
|
45
|
-
orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py
|
|
46
40
|
orangecontrib/AAIT/llm/__init__.py
|
|
47
41
|
orangecontrib/AAIT/llm/answers.py
|
|
48
42
|
orangecontrib/AAIT/llm/chunking.py
|
|
49
43
|
orangecontrib/AAIT/llm/embeddings.py
|
|
50
|
-
orangecontrib/AAIT/llm/finetuning.py
|
|
51
|
-
orangecontrib/AAIT/llm/functions_DatasetGeneration.py
|
|
52
|
-
orangecontrib/AAIT/llm/functions_Finetuning.py
|
|
53
44
|
orangecontrib/AAIT/llm/lemmes.py
|
|
54
45
|
orangecontrib/AAIT/llm/lmstudio.py
|
|
55
|
-
orangecontrib/AAIT/llm/main_DatasetGeneration.py
|
|
56
|
-
orangecontrib/AAIT/llm/main_Finetuning.py
|
|
57
46
|
orangecontrib/AAIT/llm/process_documents.py
|
|
58
47
|
orangecontrib/AAIT/llm/prompt_management.py
|
|
59
|
-
orangecontrib/AAIT/llm/quickpy.py
|
|
60
|
-
orangecontrib/AAIT/llm/test.py
|
|
61
|
-
orangecontrib/AAIT/llm/test_functions.py
|
|
62
48
|
orangecontrib/AAIT/llm/translations.py
|
|
63
49
|
orangecontrib/AAIT/optimiser/__init__.py
|
|
64
50
|
orangecontrib/AAIT/optimiser/optuna_multi.py
|
|
@@ -71,6 +57,7 @@ orangecontrib/AAIT/utils/check_data_in.py
|
|
|
71
57
|
orangecontrib/AAIT/utils/delta_local_shared_fodler.py
|
|
72
58
|
orangecontrib/AAIT/utils/import_uic.py
|
|
73
59
|
orangecontrib/AAIT/utils/initialize_from_ini.py
|
|
60
|
+
orangecontrib/AAIT/utils/mac_utils.py
|
|
74
61
|
orangecontrib/AAIT/utils/shared_functions.py
|
|
75
62
|
orangecontrib/AAIT/utils/shared_variables.py
|
|
76
63
|
orangecontrib/AAIT/utils/subprocess_management.py
|
|
@@ -102,6 +89,7 @@ orangecontrib/AAIT/widgets/OWLLM4ALL.py
|
|
|
102
89
|
orangecontrib/AAIT/widgets/OWLMStudio.py
|
|
103
90
|
orangecontrib/AAIT/widgets/OWLanguageDetection.py
|
|
104
91
|
orangecontrib/AAIT/widgets/OWLemmatizer.py
|
|
92
|
+
orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py
|
|
105
93
|
orangecontrib/AAIT/widgets/OWModel_Falcon.py
|
|
106
94
|
orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py
|
|
107
95
|
orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py
|
|
@@ -109,6 +97,7 @@ orangecontrib/AAIT/widgets/OWModel_MPNET.py
|
|
|
109
97
|
orangecontrib/AAIT/widgets/OWModel_Mistral.py
|
|
110
98
|
orangecontrib/AAIT/widgets/OWModel_Qwen.py
|
|
111
99
|
orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py
|
|
100
|
+
orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py
|
|
112
101
|
orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py
|
|
113
102
|
orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py
|
|
114
103
|
orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py
|
|
@@ -123,6 +112,7 @@ orangecontrib/AAIT/widgets/OWPaddleOCR.py
|
|
|
123
112
|
orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py
|
|
124
113
|
orangecontrib/AAIT/widgets/OWQueryLLM.py
|
|
125
114
|
orangecontrib/AAIT/widgets/OWRandomData.py
|
|
115
|
+
orangecontrib/AAIT/widgets/OWReranking.py
|
|
126
116
|
orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py
|
|
127
117
|
orangecontrib/AAIT/widgets/OWStartLoop.py
|
|
128
118
|
orangecontrib/AAIT/widgets/OWTable2Corpus.py
|
|
@@ -149,6 +139,7 @@ orangecontrib/AAIT/widgets/designer/owlangdetect.ui
|
|
|
149
139
|
orangecontrib/AAIT/widgets/designer/owlemmatizer.ui
|
|
150
140
|
orangecontrib/AAIT/widgets/designer/owllm4all.ui
|
|
151
141
|
orangecontrib/AAIT/widgets/designer/owloadworkflow.ui
|
|
142
|
+
orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui
|
|
152
143
|
orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui
|
|
153
144
|
orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui
|
|
154
145
|
orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui
|
|
@@ -163,6 +154,7 @@ orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui
|
|
|
163
154
|
orangecontrib/AAIT/widgets/designer/owpaddleocr.ui
|
|
164
155
|
orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui
|
|
165
156
|
orangecontrib/AAIT/widgets/designer/owqueryllm.ui
|
|
157
|
+
orangecontrib/AAIT/widgets/designer/owreranking.ui
|
|
166
158
|
orangecontrib/AAIT/widgets/designer/owstartloop.ui
|
|
167
159
|
orangecontrib/AAIT/widgets/designer/owtable2corpus.ui
|
|
168
160
|
orangecontrib/AAIT/widgets/designer/owtranslation.ui
|
|
@@ -178,6 +170,7 @@ orangecontrib/AAIT/widgets/icons/documents.png
|
|
|
178
170
|
orangecontrib/AAIT/widgets/icons/endloop.png
|
|
179
171
|
orangecontrib/AAIT/widgets/icons/extra_chunks.png
|
|
180
172
|
orangecontrib/AAIT/widgets/icons/in_or_out.png
|
|
173
|
+
orangecontrib/AAIT/widgets/icons/input.png
|
|
181
174
|
orangecontrib/AAIT/widgets/icons/keyword.png
|
|
182
175
|
orangecontrib/AAIT/widgets/icons/languages.png
|
|
183
176
|
orangecontrib/AAIT/widgets/icons/llm4all.svg
|
|
@@ -190,7 +183,10 @@ orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg
|
|
|
190
183
|
orangecontrib/AAIT/widgets/icons/logo_solar.svg
|
|
191
184
|
orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg
|
|
192
185
|
orangecontrib/AAIT/widgets/icons/logo_upload.png
|
|
186
|
+
orangecontrib/AAIT/widgets/icons/models.png
|
|
193
187
|
orangecontrib/AAIT/widgets/icons/optimisation.png
|
|
188
|
+
orangecontrib/AAIT/widgets/icons/optimizer.png
|
|
189
|
+
orangecontrib/AAIT/widgets/icons/output.png
|
|
194
190
|
orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg
|
|
195
191
|
orangecontrib/AAIT/widgets/icons/owchunking.png
|
|
196
192
|
orangecontrib/AAIT/widgets/icons/owconversellm.svg
|
|
@@ -201,6 +197,7 @@ orangecontrib/AAIT/widgets/icons/owfilewithpath.svg
|
|
|
201
197
|
orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg
|
|
202
198
|
orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png
|
|
203
199
|
orangecontrib/AAIT/widgets/icons/owlemmatizer.svg
|
|
200
|
+
orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg
|
|
204
201
|
orangecontrib/AAIT/widgets/icons/owmodel_falcon.png
|
|
205
202
|
orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg
|
|
206
203
|
orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg
|
|
@@ -210,6 +207,7 @@ orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg
|
|
|
210
207
|
orangecontrib/AAIT/widgets/icons/owoptimisation.svg
|
|
211
208
|
orangecontrib/AAIT/widgets/icons/owoptimisationselection.png
|
|
212
209
|
orangecontrib/AAIT/widgets/icons/owqueryllm.svg
|
|
210
|
+
orangecontrib/AAIT/widgets/icons/owreranking.svg
|
|
213
211
|
orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg
|
|
214
212
|
orangecontrib/AAIT/widgets/icons/owtable2corpus.svg
|
|
215
213
|
orangecontrib/AAIT/widgets/icons/owtranslation.svg
|
|
@@ -218,16 +216,5 @@ orangecontrib/AAIT/widgets/icons/paddleocr.svg
|
|
|
218
216
|
orangecontrib/AAIT/widgets/icons/processdocuments.svg
|
|
219
217
|
orangecontrib/AAIT/widgets/icons/qwen-color.png
|
|
220
218
|
orangecontrib/AAIT/widgets/icons/startloop.png
|
|
221
|
-
orangecontrib/AAIT/widgets/icons/
|
|
222
|
-
orangecontrib/
|
|
223
|
-
orangecontrib/IMG4IT/utils/__init__.py
|
|
224
|
-
tests/test_class_values_context_handler.py
|
|
225
|
-
tests/test_credentials.py
|
|
226
|
-
tests/test_domain_context_handler.py
|
|
227
|
-
tests/test_gui.py
|
|
228
|
-
tests/test_matplotlib_export.py
|
|
229
|
-
tests/test_perfect_domain_context_handler.py
|
|
230
|
-
tests/test_scatterplot_density.py
|
|
231
|
-
tests/test_settings_handler.py
|
|
232
|
-
tests/test_widgets_outputs.py
|
|
233
|
-
tests/test_workflows.py
|
|
219
|
+
orangecontrib/AAIT/widgets/icons/tools.png
|
|
220
|
+
orangecontrib/AAIT/widgets/icons/widgetFactory.svg
|
|
@@ -528,7 +528,8 @@ def set_aait_store_remote_ressources_path(ressource_path):
|
|
|
528
528
|
print("current remote version", version)
|
|
529
529
|
except:
|
|
530
530
|
SimpleDialogQt.BoxError(ressource_path+ " is not a valid remote ressource path")
|
|
531
|
-
|
|
531
|
+
print(ressource_path+ " is not a valid remote ressource path")
|
|
532
|
+
return
|
|
532
533
|
store_ia_path = get_local_store_path()
|
|
533
534
|
# writinf local file with directory path
|
|
534
535
|
try:
|
|
@@ -856,6 +857,10 @@ def download_aait_store_file_or_directory(server_path: str = "", target: str = "
|
|
|
856
857
|
output=str(Path(output).resolve().parent).replace('\\','/')+"/"
|
|
857
858
|
windows_utils.win32_shellcopy(source, output)
|
|
858
859
|
else:
|
|
860
|
+
#try:
|
|
861
|
+
# windows_utils.mac_shellcopy(source, output)
|
|
862
|
+
#except Exception as e:
|
|
863
|
+
#print(e)
|
|
859
864
|
try:
|
|
860
865
|
dialog_progress = SimpleDialogQt.ProgressDialog(
|
|
861
866
|
title="Synchronsation please wait",
|
|
@@ -1335,7 +1340,10 @@ def get_path_linkHTMLWorkflow():
|
|
|
1335
1340
|
|
|
1336
1341
|
def get_path_mailFolder():
|
|
1337
1342
|
aait_path = get_local_store_path()
|
|
1338
|
-
|
|
1343
|
+
the_path= aait_path + "exchangeMail/"
|
|
1344
|
+
if not os.path.exists(the_path):
|
|
1345
|
+
os.makedirs(the_path)
|
|
1346
|
+
return the_path
|
|
1339
1347
|
|
|
1340
1348
|
def get_secret_content_dir():
|
|
1341
1349
|
aait_path = get_local_store_path()
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import subprocess
|
|
2
|
+
import os
|
|
3
|
+
import sys
|
|
4
|
+
|
|
5
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\","/"):
|
|
6
|
+
from Orange.widgets.orangecontrib.AAIT.utils import SimpleDialogQt
|
|
7
|
+
else:
|
|
8
|
+
from orangecontrib.AAIT.utils import SimpleDialogQt
|
|
9
|
+
|
|
10
|
+
def mac_shellcopy(src, dest):
|
|
11
|
+
"""
|
|
12
|
+
Copie des fichiers sur macOS avec gestion des timeouts pour Google Drive.
|
|
13
|
+
|
|
14
|
+
:param src: Chemin source (str ou liste de str)
|
|
15
|
+
:param dest: Chemin de destination (str)
|
|
16
|
+
:returns: True si succès, False sinon
|
|
17
|
+
"""
|
|
18
|
+
import io
|
|
19
|
+
from tqdm import tqdm
|
|
20
|
+
|
|
21
|
+
BUFFER_SIZE = 10 * 1024 * 1024 # 10MB buffer
|
|
22
|
+
|
|
23
|
+
if isinstance(src, str):
|
|
24
|
+
src = [src]
|
|
25
|
+
|
|
26
|
+
src = [os.path.abspath(s) for s in src]
|
|
27
|
+
dest = os.path.abspath(dest)
|
|
28
|
+
|
|
29
|
+
def copy_file_with_retries(source_path, dest_path, max_retries=3):
|
|
30
|
+
if not os.path.exists(source_path):
|
|
31
|
+
print(f"Erreur : fichier source introuvable : {source_path}")
|
|
32
|
+
return False
|
|
33
|
+
|
|
34
|
+
# Créer le dossier de destination
|
|
35
|
+
os.makedirs(os.path.dirname(dest_path), exist_ok=True)
|
|
36
|
+
|
|
37
|
+
# Obtenir la taille du fichier
|
|
38
|
+
try:
|
|
39
|
+
file_size = os.path.getsize(source_path)
|
|
40
|
+
except OSError:
|
|
41
|
+
print(f"Impossible d'obtenir la taille du fichier : {source_path}")
|
|
42
|
+
return False
|
|
43
|
+
|
|
44
|
+
for attempt in range(max_retries):
|
|
45
|
+
try:
|
|
46
|
+
with open(source_path, 'rb') as source, \
|
|
47
|
+
open(dest_path, 'wb') as target, \
|
|
48
|
+
tqdm(total=file_size, unit='B', unit_scale=True,
|
|
49
|
+
desc=f"Copie de {os.path.basename(source_path)}") as pbar:
|
|
50
|
+
|
|
51
|
+
while True:
|
|
52
|
+
buf = source.read(BUFFER_SIZE)
|
|
53
|
+
if not buf:
|
|
54
|
+
break
|
|
55
|
+
target.write(buf)
|
|
56
|
+
pbar.update(len(buf))
|
|
57
|
+
|
|
58
|
+
# Vérifier que la copie est complète
|
|
59
|
+
if os.path.getsize(dest_path) == file_size:
|
|
60
|
+
return True
|
|
61
|
+
else:
|
|
62
|
+
print(
|
|
63
|
+
f"Erreur : taille du fichier incorrecte après la copie, tentative {attempt + 1}/{max_retries}")
|
|
64
|
+
continue
|
|
65
|
+
|
|
66
|
+
except IOError as e:
|
|
67
|
+
if e.errno == 60: # Operation timed out
|
|
68
|
+
print(f"Timeout lors de la copie, tentative {attempt + 1}/{max_retries}")
|
|
69
|
+
# Supprimer le fichier partiellement copié
|
|
70
|
+
try:
|
|
71
|
+
if os.path.exists(dest_path):
|
|
72
|
+
os.remove(dest_path)
|
|
73
|
+
except:
|
|
74
|
+
pass
|
|
75
|
+
if attempt < max_retries - 1:
|
|
76
|
+
continue
|
|
77
|
+
print(f"Erreur lors de la copie : {e}")
|
|
78
|
+
return False
|
|
79
|
+
except Exception as e:
|
|
80
|
+
print(f"Erreur inattendue : {e}")
|
|
81
|
+
return False
|
|
82
|
+
|
|
83
|
+
return False
|
|
84
|
+
|
|
85
|
+
try:
|
|
86
|
+
for s in src:
|
|
87
|
+
filename = os.path.basename(s)
|
|
88
|
+
destination_path = os.path.join(dest, filename)
|
|
89
|
+
|
|
90
|
+
# Notification de début
|
|
91
|
+
os.system(
|
|
92
|
+
f'''osascript -e 'display notification "Début de la copie de {filename}" with title "Copie de fichier"' ''')
|
|
93
|
+
|
|
94
|
+
success = copy_file_with_retries(s, destination_path)
|
|
95
|
+
|
|
96
|
+
if not success:
|
|
97
|
+
# Notification d'échec
|
|
98
|
+
os.system(
|
|
99
|
+
f'''osascript -e 'display notification "Échec de la copie de {filename}" with title "Erreur de copie"' ''')
|
|
100
|
+
return False
|
|
101
|
+
|
|
102
|
+
# Notification de succès
|
|
103
|
+
os.system(
|
|
104
|
+
f'''osascript -e 'display notification "Copie terminée de {filename}" with title "Copie réussie"' ''')
|
|
105
|
+
|
|
106
|
+
return True
|
|
107
|
+
|
|
108
|
+
except Exception as e:
|
|
109
|
+
print(f"Erreur globale : {e}")
|
|
110
|
+
return False
|
|
@@ -331,3 +331,169 @@ if os.name=='nt':
|
|
|
331
331
|
return ""
|
|
332
332
|
else:
|
|
333
333
|
return parts[0] if parts else ""
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
def select_new_file_ctypes(file_filter="All Files (*.*)"):
|
|
339
|
+
"""
|
|
340
|
+
Opens a native Windows file dialog for creating a new file.
|
|
341
|
+
|
|
342
|
+
Args:
|
|
343
|
+
file_filter (str): File type filters, e.g., "Text Files (*.txt)" or "All Files (*.*)".
|
|
344
|
+
|
|
345
|
+
Returns:
|
|
346
|
+
str: Selected file path as a string, or an empty string if cancelled.
|
|
347
|
+
"""
|
|
348
|
+
OFN_EXPLORER = 0x00080000
|
|
349
|
+
MAX_PATH = 65536 # Large buffer for filename
|
|
350
|
+
|
|
351
|
+
class OPENFILENAME(ctypes.Structure):
|
|
352
|
+
_fields_ = [
|
|
353
|
+
("lStructSize", ctypes.wintypes.DWORD),
|
|
354
|
+
("hwndOwner", ctypes.wintypes.HWND),
|
|
355
|
+
("hInstance", ctypes.wintypes.HINSTANCE),
|
|
356
|
+
("lpstrFilter", ctypes.c_wchar_p),
|
|
357
|
+
("lpstrCustomFilter", ctypes.c_wchar_p),
|
|
358
|
+
("nMaxCustFilter", ctypes.wintypes.DWORD),
|
|
359
|
+
("nFilterIndex", ctypes.wintypes.DWORD),
|
|
360
|
+
("lpstrFile", ctypes.c_wchar_p),
|
|
361
|
+
("nMaxFile", ctypes.wintypes.DWORD),
|
|
362
|
+
("lpstrFileTitle", ctypes.c_wchar_p),
|
|
363
|
+
("nMaxFileTitle", ctypes.wintypes.DWORD),
|
|
364
|
+
("lpstrInitialDir", ctypes.c_wchar_p),
|
|
365
|
+
("lpstrTitle", ctypes.c_wchar_p),
|
|
366
|
+
("Flags", ctypes.wintypes.DWORD),
|
|
367
|
+
("nFileOffset", ctypes.wintypes.WORD),
|
|
368
|
+
("nFileExtension", ctypes.wintypes.WORD),
|
|
369
|
+
("lpstrDefExt", ctypes.c_wchar_p),
|
|
370
|
+
("lCustData", ctypes.wintypes.LPARAM),
|
|
371
|
+
("lpfnHook", ctypes.c_void_p),
|
|
372
|
+
("lpTemplateName", ctypes.c_wchar_p),
|
|
373
|
+
("pvReserved", ctypes.c_void_p),
|
|
374
|
+
("dwReserved", ctypes.wintypes.DWORD),
|
|
375
|
+
("FlagsEx", ctypes.wintypes.DWORD),
|
|
376
|
+
]
|
|
377
|
+
|
|
378
|
+
user32 = ctypes.windll.user32
|
|
379
|
+
comdlg32 = ctypes.windll.comdlg32
|
|
380
|
+
|
|
381
|
+
# Convert file_filter into Windows format: "Description\0Pattern\0..."
|
|
382
|
+
if "(" in file_filter and ")" in file_filter:
|
|
383
|
+
description = file_filter.split("(")[0].strip()
|
|
384
|
+
pattern = file_filter[file_filter.find("(")+1:file_filter.find(")")]
|
|
385
|
+
else:
|
|
386
|
+
description = "All Files"
|
|
387
|
+
pattern = "*.*"
|
|
388
|
+
|
|
389
|
+
# Extract first extension for default
|
|
390
|
+
first_ext = pattern.split(";")[0].strip().lstrip("*.")
|
|
391
|
+
if not first_ext:
|
|
392
|
+
first_ext = "txt"
|
|
393
|
+
|
|
394
|
+
filter_combined = f"{description}\0{pattern}\0All Files\0*.*\0\0"
|
|
395
|
+
|
|
396
|
+
file_buffer = ctypes.create_unicode_buffer(MAX_PATH)
|
|
397
|
+
|
|
398
|
+
ofn = OPENFILENAME()
|
|
399
|
+
ofn.lStructSize = ctypes.sizeof(OPENFILENAME)
|
|
400
|
+
ofn.hwndOwner = 0
|
|
401
|
+
ofn.lpstrFilter = filter_combined
|
|
402
|
+
ofn.lpstrFile = ctypes.cast(file_buffer, ctypes.c_wchar_p)
|
|
403
|
+
ofn.nMaxFile = MAX_PATH
|
|
404
|
+
ofn.lpstrTitle = "Create New File"
|
|
405
|
+
ofn.Flags = OFN_EXPLORER
|
|
406
|
+
ofn.lpstrDefExt = first_ext # <- extension ajoutée automatiquement si absente
|
|
407
|
+
|
|
408
|
+
# Mémoriser les fenêtres existantes
|
|
409
|
+
hwnd_list_before = []
|
|
410
|
+
def enum_windows_proc(hwnd, lParam):
|
|
411
|
+
hwnd_list_before.append(hwnd)
|
|
412
|
+
return True
|
|
413
|
+
|
|
414
|
+
EnumWindows = user32.EnumWindows
|
|
415
|
+
EnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.wintypes.BOOL, ctypes.wintypes.HWND, ctypes.wintypes.LPARAM)
|
|
416
|
+
EnumWindows(EnumWindowsProc(enum_windows_proc), 0)
|
|
417
|
+
|
|
418
|
+
# Ouvre la boîte de dialogue
|
|
419
|
+
if not comdlg32.GetSaveFileNameW(ctypes.byref(ofn)):
|
|
420
|
+
return ""
|
|
421
|
+
|
|
422
|
+
time.sleep(0.1)
|
|
423
|
+
|
|
424
|
+
# Fenêtres après
|
|
425
|
+
hwnd_list_after = []
|
|
426
|
+
EnumWindows(EnumWindowsProc(lambda hwnd, lParam: hwnd_list_after.append(hwnd) or True), 0)
|
|
427
|
+
new_hwnds = list(set(hwnd_list_after) - set(hwnd_list_before))
|
|
428
|
+
|
|
429
|
+
selector_hwnd = None
|
|
430
|
+
for hwnd in new_hwnds:
|
|
431
|
+
length = user32.GetWindowTextLengthW(hwnd)
|
|
432
|
+
if length > 0:
|
|
433
|
+
title = ctypes.create_unicode_buffer(length + 1)
|
|
434
|
+
user32.GetWindowTextW(hwnd, title, length + 1)
|
|
435
|
+
if "Save" in title.value:
|
|
436
|
+
selector_hwnd = hwnd
|
|
437
|
+
break
|
|
438
|
+
|
|
439
|
+
def enforce_modal(hwnd):
|
|
440
|
+
if not hwnd:
|
|
441
|
+
return
|
|
442
|
+
while user32.IsWindow(hwnd):
|
|
443
|
+
user32.SetForegroundWindow(hwnd)
|
|
444
|
+
user32.SetWindowPos(hwnd, -1, 0, 0, 0, 0,
|
|
445
|
+
0x0002 | 0x0001 | 0x0040) # SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW
|
|
446
|
+
time.sleep(0.2)
|
|
447
|
+
|
|
448
|
+
if selector_hwnd:
|
|
449
|
+
threading.Thread(target=enforce_modal, args=(selector_hwnd,), daemon=True).start()
|
|
450
|
+
|
|
451
|
+
result = ctypes.wstring_at(ctypes.addressof(file_buffer), file_buffer._length_)
|
|
452
|
+
return result.split('\0', 1)[0].replace("\\", "/")
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
import subprocess
|
|
457
|
+
import os
|
|
458
|
+
import sys
|
|
459
|
+
|
|
460
|
+
def mac_shellcopy(src, dest):
|
|
461
|
+
"""
|
|
462
|
+
Copy files or directories on macOS using AppleScript to show a native progress dialog.
|
|
463
|
+
:param src: Path to source file or directory (str or list of str)
|
|
464
|
+
:param dest: Path to destination directory (str)
|
|
465
|
+
:returns: True if successful, False otherwise
|
|
466
|
+
"""
|
|
467
|
+
if isinstance(src, str):
|
|
468
|
+
src = [src]
|
|
469
|
+
src = [os.path.abspath(s) for s in src]
|
|
470
|
+
dest = os.path.abspath(dest)
|
|
471
|
+
|
|
472
|
+
# AppleScript for copying with progress dialog
|
|
473
|
+
script = f'''
|
|
474
|
+
set srcList to {{{", ".join([f'POSIX file "{s}"' for s in src])}}}
|
|
475
|
+
set destFolder to POSIX file "{dest}"
|
|
476
|
+
tell application "Finder"
|
|
477
|
+
repeat with aSrc in srcList
|
|
478
|
+
duplicate aSrc to destFolder with replacing
|
|
479
|
+
end repeat
|
|
480
|
+
end tell
|
|
481
|
+
'''
|
|
482
|
+
|
|
483
|
+
try:
|
|
484
|
+
result = subprocess.run(
|
|
485
|
+
['osascript', '-e', script],
|
|
486
|
+
capture_output=True,
|
|
487
|
+
text=True
|
|
488
|
+
)
|
|
489
|
+
if result.returncode == 0:
|
|
490
|
+
return True
|
|
491
|
+
else:
|
|
492
|
+
print("AppleScript error:", result.stderr)
|
|
493
|
+
return False
|
|
494
|
+
except Exception as e:
|
|
495
|
+
print("Error:", e)
|
|
496
|
+
return False
|
|
497
|
+
|
|
498
|
+
# Usage:
|
|
499
|
+
# mac_shellcopy("/path/to/source", "/path/to/destination")
|
|
@@ -349,13 +349,20 @@ class OWAAITResourcesManager(widget.OWWidget):
|
|
|
349
349
|
descriptions[name] = element["description"][0]
|
|
350
350
|
|
|
351
351
|
self.descriptions = descriptions
|
|
352
|
+
print(self.descriptions)
|
|
352
353
|
self.comboBox.addItems(workflows)
|
|
353
354
|
|
|
355
|
+
if workflows:
|
|
356
|
+
self.handleComboBoxChange(0)
|
|
357
|
+
|
|
354
358
|
def handleComboBoxChange(self, index):
|
|
355
359
|
selected_file = self.comboBox.itemText(index)
|
|
356
|
-
if selected_file=="":
|
|
360
|
+
if selected_file == "":
|
|
361
|
+
self.label_info.setText("")
|
|
357
362
|
return
|
|
358
|
-
|
|
363
|
+
# Set the label to the description
|
|
364
|
+
description = self.descriptions.get(selected_file, "")
|
|
365
|
+
self.label_info.setText(description)
|
|
359
366
|
|
|
360
367
|
def read_description(self, file_name):
|
|
361
368
|
# Chemin du fichier texte contenant la description
|
|
@@ -367,6 +374,7 @@ class OWAAITResourcesManager(widget.OWWidget):
|
|
|
367
374
|
description = file.read()
|
|
368
375
|
else:
|
|
369
376
|
description = ""
|
|
377
|
+
print("alllloooo: ", description)
|
|
370
378
|
return description
|
|
371
379
|
|
|
372
380
|
def saveFile(self):
|
|
@@ -4,9 +4,10 @@ import re
|
|
|
4
4
|
import Orange.data
|
|
5
5
|
from Orange.widgets import widget
|
|
6
6
|
from Orange.widgets.widget import Input, Output
|
|
7
|
-
from Orange.data import Table, Domain,
|
|
7
|
+
from Orange.data import Table, Domain, DiscreteVariable
|
|
8
8
|
from AnyQt.QtWidgets import QPushButton, QCheckBox
|
|
9
9
|
from Orange.widgets.settings import Setting
|
|
10
|
+
|
|
10
11
|
# from fontTools.varLib.mutator import curr
|
|
11
12
|
|
|
12
13
|
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
@@ -16,6 +17,7 @@ else:
|
|
|
16
17
|
from orangecontrib.AAIT.utils.import_uic import uic
|
|
17
18
|
from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
|
|
18
19
|
|
|
20
|
+
|
|
19
21
|
@apply_modification_from_python_file(filepath_original_widget=__file__)
|
|
20
22
|
class OWApplyRules(widget.OWWidget):
|
|
21
23
|
name = "Apply Rules to data"
|
|
@@ -27,6 +29,7 @@ class OWApplyRules(widget.OWWidget):
|
|
|
27
29
|
keywords = "Apply Rules to data"
|
|
28
30
|
gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owapplyrules.ui")
|
|
29
31
|
want_control_area = False
|
|
32
|
+
|
|
30
33
|
class Inputs:
|
|
31
34
|
rules = Input("Rules", Orange.data.Table)
|
|
32
35
|
data = Input("Data", Orange.data.Table)
|
|
@@ -36,7 +39,6 @@ class OWApplyRules(widget.OWWidget):
|
|
|
36
39
|
|
|
37
40
|
strauto: str = Setting('False')
|
|
38
41
|
|
|
39
|
-
|
|
40
42
|
@Inputs.rules
|
|
41
43
|
def set_rules(self, data):
|
|
42
44
|
self.rules_data = data
|
|
@@ -70,7 +72,6 @@ class OWApplyRules(widget.OWWidget):
|
|
|
70
72
|
self.btn_run = self.findChild(QPushButton, "pushButton")
|
|
71
73
|
self.btn_run.clicked.connect(self.run)
|
|
72
74
|
|
|
73
|
-
|
|
74
75
|
self.checkbox_interface = self.findChild(QCheckBox, 'checkBox')
|
|
75
76
|
if self.strauto == 'Middle':
|
|
76
77
|
self.strauto = 'False'
|
|
@@ -95,7 +96,14 @@ class OWApplyRules(widget.OWWidget):
|
|
|
95
96
|
text_to_edit = text_to_edit[:-1]
|
|
96
97
|
return text_to_edit
|
|
97
98
|
|
|
99
|
+
def normalize_rule(self, unit_rule):
|
|
100
|
+
unit_rule = re.sub(r'(?<!>)>(?!=)', '>=', unit_rule)
|
|
101
|
+
unit_rule = re.sub(r'(?<!<)<(?!=)', '<=', unit_rule)
|
|
102
|
+
return unit_rule
|
|
98
103
|
|
|
104
|
+
def needs_normalization(self, unit_rule):
|
|
105
|
+
# Vérifie s'il y a un > non suivi de =, ou un < non suivi de =
|
|
106
|
+
return bool(re.search(r'(?<!>)>(?!=)|(?<!<)<(?!=)', unit_rule))
|
|
99
107
|
|
|
100
108
|
def run(self):
|
|
101
109
|
self.error("")
|
|
@@ -104,8 +112,6 @@ class OWApplyRules(widget.OWWidget):
|
|
|
104
112
|
self.error("You must have rules and data")
|
|
105
113
|
return
|
|
106
114
|
|
|
107
|
-
|
|
108
|
-
|
|
109
115
|
data_regle = self.rules_data
|
|
110
116
|
data_value = self.data
|
|
111
117
|
num_col_regle = data_regle.domain.index("regle")
|
|
@@ -120,34 +126,36 @@ class OWApplyRules(widget.OWWidget):
|
|
|
120
126
|
|
|
121
127
|
## cette partie permet de gérer le cas ou dans une règle une variable n'est pas présente dans les données d'entrées et de pas avoir une erreur
|
|
122
128
|
regl_list = str(current_regle).split(" and ")
|
|
123
|
-
compteur=0
|
|
129
|
+
compteur = 0
|
|
124
130
|
for unit_rule in regl_list:
|
|
125
|
-
compteur=compteur+1
|
|
131
|
+
compteur = compteur + 1
|
|
132
|
+
if self.needs_normalization(unit_rule) and "->" not in unit_rule:
|
|
133
|
+
unit_rule = self.normalize_rule(unit_rule)
|
|
126
134
|
current_var, current_symb, current_value = re.split(r'(<=|>=)', unit_rule)
|
|
127
135
|
current_var = self.del_space_debut_fin(current_var)
|
|
128
136
|
if current_var not in data_value.domain:
|
|
129
137
|
var_not_in_domain.append(current_var)
|
|
130
|
-
if compteur!=1:
|
|
131
|
-
current_var="and "+ current_var
|
|
132
|
-
value_in_rule_not_in_domain.append(current_var +" "+ current_symb + current_value)
|
|
138
|
+
if compteur != 1:
|
|
139
|
+
current_var = "and " + current_var
|
|
140
|
+
value_in_rule_not_in_domain.append(current_var + " " + current_symb + current_value)
|
|
133
141
|
if len(var_not_in_domain) > 0:
|
|
134
142
|
self.warning("Warning " + ",".join(var_not_in_domain) + " not in possible variable")
|
|
135
143
|
|
|
136
|
-
for j,element in enumerate(value_in_rule_not_in_domain):
|
|
144
|
+
for j, element in enumerate(value_in_rule_not_in_domain):
|
|
137
145
|
current_regle = str(current_regle).replace(element, "")
|
|
138
146
|
|
|
139
147
|
# if current rules start with " and " we need to remove the begin of the rule
|
|
140
|
-
test_current_regle=str(current_regle)
|
|
148
|
+
test_current_regle = str(current_regle)
|
|
141
149
|
# print("#####")
|
|
142
150
|
# print(test_current_regle)
|
|
143
151
|
# print(type(test_current_regle))
|
|
144
152
|
# print("##########################")
|
|
145
|
-
while(test_current_regle[0]==" "):
|
|
146
|
-
test_current_regle=test_current_regle[1:]
|
|
147
|
-
if len(test_current_regle)>=4:
|
|
148
|
-
if test_current_regle[:4]=="and ":
|
|
149
|
-
test_current_regle=test_current_regle[4:]
|
|
150
|
-
current_regle=test_current_regle
|
|
153
|
+
while (test_current_regle[0] == " "):
|
|
154
|
+
test_current_regle = test_current_regle[1:]
|
|
155
|
+
if len(test_current_regle) >= 4:
|
|
156
|
+
if test_current_regle[:4] == "and ":
|
|
157
|
+
test_current_regle = test_current_regle[4:]
|
|
158
|
+
current_regle = test_current_regle
|
|
151
159
|
print(current_regle)
|
|
152
160
|
for i in range(len(data_value)):
|
|
153
161
|
new_regle = str(current_regle)
|
|
@@ -196,15 +204,17 @@ class OWApplyRules(widget.OWWidget):
|
|
|
196
204
|
|
|
197
205
|
def on_checkbox_toggled(self, state):
|
|
198
206
|
if state == 2: # Qt.Checked (valeur 2 pour "coché")
|
|
199
|
-
self.strauto='True'
|
|
207
|
+
self.strauto = 'True'
|
|
200
208
|
elif state == 0: # Qt.Unchecked (valeur 0 pour "décoché")
|
|
201
|
-
self.strauto='False'
|
|
202
|
-
elif state==1:
|
|
209
|
+
self.strauto = 'False'
|
|
210
|
+
elif state == 1:
|
|
203
211
|
self.strauto = 'Middle'
|
|
204
212
|
|
|
213
|
+
|
|
205
214
|
if __name__ == "__main__":
|
|
206
215
|
from AnyQt.QtWidgets import QApplication
|
|
216
|
+
|
|
207
217
|
app = QApplication(sys.argv)
|
|
208
218
|
my_widget = OWApplyRules()
|
|
209
219
|
my_widget.show()
|
|
210
|
-
app.exec_()
|
|
220
|
+
app.exec_()
|