aait 2.0.0__tar.gz → 2.0.0.1__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-2.0.0 → aait-2.0.0.1}/PKG-INFO +1 -1
- {aait-2.0.0 → aait-2.0.0.1}/aait.egg-info/PKG-INFO +1 -1
- {aait-2.0.0 → aait-2.0.0.1}/aait.egg-info/SOURCES.txt +32 -2
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/process_documents.py +4 -4
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/MetManagement.py +1 -1
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWExecuteScript.py +3 -1
- aait-2.0.0.1/orangecontrib/AAIT/widgets/OWExtractTokens.py +139 -0
- aait-2.0.0.1/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +41 -0
- aait-2.0.0.1/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +4 -0
- aait-2.0.0.1/orangecontrib/ALGORITHM/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/ALGORITHM/widgets/__init__.py +19 -0
- aait-2.0.0.1/orangecontrib/API/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/API/widgets/__init__.py +19 -0
- aait-2.0.0.1/orangecontrib/IMG4IT/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/IMG4IT/utils/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/IMG4IT/widgets/OWConvertImages.py +131 -0
- aait-2.0.0.1/orangecontrib/IMG4IT/widgets/OWPaddleOCR.py +213 -0
- aait-2.0.0.1/orangecontrib/IMG4IT/widgets/__init__.py +18 -0
- aait-2.0.0.1/orangecontrib/IMG4IT/widgets/designer/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/IMG4IT/widgets/icons/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/IMG4IT/widgets/icons_dev/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/LLM_INTEGRATION/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/LLM_INTEGRATION/widgets/__init__.py +19 -0
- aait-2.0.0.1/orangecontrib/LLM_MODELS/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/LLM_MODELS/widgets/__init__.py +19 -0
- aait-2.0.0.1/orangecontrib/TOOLBOX/__init__.py +0 -0
- aait-2.0.0.1/orangecontrib/TOOLBOX/widgets/__init__.py +19 -0
- {aait-2.0.0 → aait-2.0.0.1}/setup.py +1 -1
- aait-2.0.0.1/tests/test_class_values_context_handler.py +75 -0
- aait-2.0.0.1/tests/test_credentials.py +76 -0
- aait-2.0.0.1/tests/test_domain_context_handler.py +401 -0
- aait-2.0.0.1/tests/test_gui.py +140 -0
- aait-2.0.0.1/tests/test_matplotlib_export.py +43 -0
- aait-2.0.0.1/tests/test_perfect_domain_context_handler.py +148 -0
- aait-2.0.0.1/tests/test_scatterplot_density.py +59 -0
- aait-2.0.0.1/tests/test_settings_handler.py +27 -0
- aait-2.0.0.1/tests/test_widgets_outputs.py +29 -0
- aait-2.0.0.1/tests/test_workflows.py +80 -0
- {aait-2.0.0 → aait-2.0.0.1}/License.txt +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/aait.egg-info/dependency_links.txt +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/aait.egg-info/entry_points.txt +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/aait.egg-info/namespace_packages.txt +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/aait.egg-info/requires.txt +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/aait.egg-info/top_level.txt +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/__init__.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/GPT4ALL.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/GPT4ALL_killer.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/__init__.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/answers.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/chunking.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/embeddings.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/finetuning.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/lemmes.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/quickpy.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/test.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/test_functions.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/llm/translations.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/__init__.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/import_uic.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/thread_management.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/utils/windows_utils.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWInputSelector.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWKeywords.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWLLM4ALL.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/__init__.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owllm4all.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/keyword.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/llm4all.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/orangecontrib/__init__.py +0 -0
- {aait-2.0.0 → aait-2.0.0.1}/setup.cfg +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
License.txt
|
|
2
|
-
setup.cfg
|
|
3
2
|
setup.py
|
|
4
3
|
aait.egg-info/PKG-INFO
|
|
5
4
|
aait.egg-info/SOURCES.txt
|
|
@@ -95,6 +94,7 @@ orangecontrib/AAIT/widgets/OWEditTable.py
|
|
|
95
94
|
orangecontrib/AAIT/widgets/OWEndLoop.py
|
|
96
95
|
orangecontrib/AAIT/widgets/OWExecuteScript.py
|
|
97
96
|
orangecontrib/AAIT/widgets/OWExtraChunks.py
|
|
97
|
+
orangecontrib/AAIT/widgets/OWExtractTokens.py
|
|
98
98
|
orangecontrib/AAIT/widgets/OWFileWithPath.py
|
|
99
99
|
orangecontrib/AAIT/widgets/OWGenerateQuestions.py
|
|
100
100
|
orangecontrib/AAIT/widgets/OWGenerateSynthesis.py
|
|
@@ -145,6 +145,7 @@ orangecontrib/AAIT/widgets/designer/owembeddings.ui
|
|
|
145
145
|
orangecontrib/AAIT/widgets/designer/owendloop.ui
|
|
146
146
|
orangecontrib/AAIT/widgets/designer/owexecutescript.ui
|
|
147
147
|
orangecontrib/AAIT/widgets/designer/owextrachunks.ui
|
|
148
|
+
orangecontrib/AAIT/widgets/designer/owextracttokens.ui
|
|
148
149
|
orangecontrib/AAIT/widgets/designer/owfilewithpath.ui
|
|
149
150
|
orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui
|
|
150
151
|
orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui
|
|
@@ -206,6 +207,7 @@ orangecontrib/AAIT/widgets/icons/owconversellm.svg
|
|
|
206
207
|
orangecontrib/AAIT/widgets/icons/owedittable.svg
|
|
207
208
|
orangecontrib/AAIT/widgets/icons/owembeddings.svg
|
|
208
209
|
orangecontrib/AAIT/widgets/icons/owexecutescript.svg
|
|
210
|
+
orangecontrib/AAIT/widgets/icons/owextracttokens.svg
|
|
209
211
|
orangecontrib/AAIT/widgets/icons/owfilewithpath.svg
|
|
210
212
|
orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg
|
|
211
213
|
orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png
|
|
@@ -229,4 +231,32 @@ orangecontrib/AAIT/widgets/icons/processdocuments.svg
|
|
|
229
231
|
orangecontrib/AAIT/widgets/icons/qwen-color.png
|
|
230
232
|
orangecontrib/AAIT/widgets/icons/startloop.png
|
|
231
233
|
orangecontrib/AAIT/widgets/icons/tools.png
|
|
232
|
-
orangecontrib/AAIT/widgets/icons/widgetFactory.svg
|
|
234
|
+
orangecontrib/AAIT/widgets/icons/widgetFactory.svg
|
|
235
|
+
orangecontrib/ALGORITHM/__init__.py
|
|
236
|
+
orangecontrib/ALGORITHM/widgets/__init__.py
|
|
237
|
+
orangecontrib/API/__init__.py
|
|
238
|
+
orangecontrib/API/widgets/__init__.py
|
|
239
|
+
orangecontrib/IMG4IT/__init__.py
|
|
240
|
+
orangecontrib/IMG4IT/utils/__init__.py
|
|
241
|
+
orangecontrib/IMG4IT/widgets/OWConvertImages.py
|
|
242
|
+
orangecontrib/IMG4IT/widgets/OWPaddleOCR.py
|
|
243
|
+
orangecontrib/IMG4IT/widgets/__init__.py
|
|
244
|
+
orangecontrib/IMG4IT/widgets/designer/__init__.py
|
|
245
|
+
orangecontrib/IMG4IT/widgets/icons/__init__.py
|
|
246
|
+
orangecontrib/IMG4IT/widgets/icons_dev/__init__.py
|
|
247
|
+
orangecontrib/LLM_INTEGRATION/__init__.py
|
|
248
|
+
orangecontrib/LLM_INTEGRATION/widgets/__init__.py
|
|
249
|
+
orangecontrib/LLM_MODELS/__init__.py
|
|
250
|
+
orangecontrib/LLM_MODELS/widgets/__init__.py
|
|
251
|
+
orangecontrib/TOOLBOX/__init__.py
|
|
252
|
+
orangecontrib/TOOLBOX/widgets/__init__.py
|
|
253
|
+
tests/test_class_values_context_handler.py
|
|
254
|
+
tests/test_credentials.py
|
|
255
|
+
tests/test_domain_context_handler.py
|
|
256
|
+
tests/test_gui.py
|
|
257
|
+
tests/test_matplotlib_export.py
|
|
258
|
+
tests/test_perfect_domain_context_handler.py
|
|
259
|
+
tests/test_scatterplot_density.py
|
|
260
|
+
tests/test_settings_handler.py
|
|
261
|
+
tests/test_widgets_outputs.py
|
|
262
|
+
tests/test_workflows.py
|
|
@@ -15,13 +15,13 @@ def process_documents(dirpath):
|
|
|
15
15
|
|
|
16
16
|
# get path from user selection
|
|
17
17
|
embeddings = check_for_embeddings(dirpath)
|
|
18
|
-
dirpath = dirpath.replace("
|
|
18
|
+
dirpath = dirpath.replace("\\","/")
|
|
19
19
|
|
|
20
20
|
# Set selected path in the saved embeddings
|
|
21
21
|
if embeddings is not None:
|
|
22
|
-
common_path = find_common_root(embeddings).replace("
|
|
22
|
+
common_path = find_common_root(embeddings).replace("\\","/")
|
|
23
23
|
for row in embeddings:
|
|
24
|
-
row["path"] = row["path"].value.replace("
|
|
24
|
+
row["path"] = row["path"].value.replace("\\","/").replace(common_path, dirpath)
|
|
25
25
|
|
|
26
26
|
# Verify which files are already processed
|
|
27
27
|
files_to_process = get_files_to_process(dirpath, embeddings)
|
|
@@ -87,7 +87,7 @@ def get_files_to_process(folder_path, table=None):
|
|
|
87
87
|
# Check if the file has a supported extension
|
|
88
88
|
if os.path.splitext(file)[1].lower() in supported_extensions:
|
|
89
89
|
# Add the file if it is not already in the table
|
|
90
|
-
filepath = os.path.join(root, file).replace("
|
|
90
|
+
filepath = os.path.join(root, file).replace("\\","/")
|
|
91
91
|
if filepath not in existing_paths:
|
|
92
92
|
new_files.append(filepath)
|
|
93
93
|
sizes[filepath] = os.path.getsize(filepath)
|
|
@@ -1325,7 +1325,7 @@ def get_api_local_folder(workflow_id=""):
|
|
|
1325
1325
|
if len(workflow_id)>4:
|
|
1326
1326
|
if workflow_id[-4:]==".ows":
|
|
1327
1327
|
workflow_id=workflow_id[:-4]
|
|
1328
|
-
|
|
1328
|
+
result+=workflow_id+"/"
|
|
1329
1329
|
return result
|
|
1330
1330
|
|
|
1331
1331
|
def get_api_local_folder_admin():
|
|
@@ -58,6 +58,7 @@ class OWExecuteScript(widget.OWWidget):
|
|
|
58
58
|
|
|
59
59
|
def run(self):
|
|
60
60
|
self.warning("")
|
|
61
|
+
self.error("")
|
|
61
62
|
|
|
62
63
|
# If Thread is already running, interrupt it
|
|
63
64
|
if self.thread is not None:
|
|
@@ -68,7 +69,8 @@ class OWExecuteScript(widget.OWWidget):
|
|
|
68
69
|
return
|
|
69
70
|
|
|
70
71
|
if not "Script" in self.data.domain:
|
|
71
|
-
self.
|
|
72
|
+
self.error("You do not have a 'Script' column, nothing happened.")
|
|
73
|
+
return
|
|
72
74
|
|
|
73
75
|
self.thread = thread_management.Thread(self.execute_scripts_in_table, self.data)
|
|
74
76
|
self.thread.progress.connect(self.handle_progress)
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
from Orange.data import Table, Domain, StringVariable
|
|
5
|
+
from AnyQt.QtWidgets import QApplication
|
|
6
|
+
from Orange.widgets import widget
|
|
7
|
+
from Orange.widgets.utils.signals import Input, Output
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
11
|
+
from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
|
|
12
|
+
from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
|
|
13
|
+
else:
|
|
14
|
+
from orangecontrib.AAIT.utils.import_uic import uic
|
|
15
|
+
from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@apply_modification_from_python_file(filepath_original_widget=__file__)
|
|
19
|
+
class OWExtractTokens(widget.OWWidget):
|
|
20
|
+
name = "Extract Tokens"
|
|
21
|
+
description = "This widget extracts the tokens from your input data."
|
|
22
|
+
icon = "icons/owextracttokens.svg"
|
|
23
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
24
|
+
icon = "icons_dev/owextracttokens.svg"
|
|
25
|
+
gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owextracttokens.ui")
|
|
26
|
+
want_control_area = False
|
|
27
|
+
priority = 1060
|
|
28
|
+
|
|
29
|
+
class Inputs:
|
|
30
|
+
data = Input("Data", Table)
|
|
31
|
+
|
|
32
|
+
class Outputs:
|
|
33
|
+
data_row = Output("Tokens to row", Table)
|
|
34
|
+
data_column = Output("Tokens to column", Table)
|
|
35
|
+
|
|
36
|
+
@Inputs.data
|
|
37
|
+
def set_data(self, in_data):
|
|
38
|
+
self.data = in_data
|
|
39
|
+
if self.autorun:
|
|
40
|
+
self.run()
|
|
41
|
+
|
|
42
|
+
def __init__(self):
|
|
43
|
+
super().__init__()
|
|
44
|
+
# Qt Management
|
|
45
|
+
self.setFixedWidth(470)
|
|
46
|
+
self.setFixedHeight(300)
|
|
47
|
+
uic.loadUi(self.gui, self)
|
|
48
|
+
|
|
49
|
+
# Data Management
|
|
50
|
+
self.data = None
|
|
51
|
+
self.autorun = True
|
|
52
|
+
self.post_initialized()
|
|
53
|
+
|
|
54
|
+
def run(self):
|
|
55
|
+
self.warning("")
|
|
56
|
+
self.error("")
|
|
57
|
+
|
|
58
|
+
if self.data is None:
|
|
59
|
+
self.Outputs.data_row.send(None)
|
|
60
|
+
self.Outputs.data_column.send(None)
|
|
61
|
+
return
|
|
62
|
+
|
|
63
|
+
if not hasattr(self.data, "tokens"):
|
|
64
|
+
self.Outputs.data_row.send(self.data)
|
|
65
|
+
self.Outputs.data_column.send(self.data)
|
|
66
|
+
self.warning("There is no tokens in the input table.")
|
|
67
|
+
return
|
|
68
|
+
|
|
69
|
+
out_data_row = tokens_to_row(self.data)
|
|
70
|
+
out_data_column = tokens_to_column(self.data)
|
|
71
|
+
|
|
72
|
+
self.Outputs.data_row.send(out_data_row)
|
|
73
|
+
self.Outputs.data_column.send(out_data_column)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def post_initialized(self):
|
|
77
|
+
pass
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def tokens_to_row(table):
|
|
81
|
+
# Get original domain
|
|
82
|
+
domain = table.domain
|
|
83
|
+
|
|
84
|
+
# Create new domain: same attributes + one new StringVariable for the token
|
|
85
|
+
token_var = StringVariable("Tokens_1")
|
|
86
|
+
new_domain = Domain(domain.attributes, domain.class_vars, metas=list(domain.metas) + [token_var])
|
|
87
|
+
|
|
88
|
+
new_data_rows = []
|
|
89
|
+
for i, row in enumerate(table):
|
|
90
|
+
tokens = table.tokens[i] # list of tokens for this row
|
|
91
|
+
for token in tokens:
|
|
92
|
+
# Duplicate the row's values
|
|
93
|
+
attrs = list(row) # attribute values
|
|
94
|
+
class_vars = list(row.get_class()) if domain.class_vars else []
|
|
95
|
+
metas = list(row.metas) + [token] # append token as a new meta
|
|
96
|
+
|
|
97
|
+
new_data_rows.append(attrs + class_vars + metas)
|
|
98
|
+
|
|
99
|
+
# Build and return the new Table
|
|
100
|
+
return Table.from_list(new_domain, new_data_rows)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def tokens_to_column(table):
|
|
104
|
+
# Step 1: Get max number of tokens across all rows
|
|
105
|
+
max_tokens = max(len(tokens) for tokens in table.tokens)
|
|
106
|
+
|
|
107
|
+
# Step 2: Create new domain
|
|
108
|
+
token_vars = [StringVariable(f"Tokens_{i+1}") for i in range(max_tokens)]
|
|
109
|
+
new_domain = Domain(
|
|
110
|
+
table.domain.attributes,
|
|
111
|
+
table.domain.class_vars,
|
|
112
|
+
list(table.domain.metas) + token_vars # add token vars as metas
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
new_data_rows = []
|
|
116
|
+
for i, row in enumerate(table):
|
|
117
|
+
tokens = table.tokens[i]
|
|
118
|
+
|
|
119
|
+
# Pad token list to max_tokens with empty strings
|
|
120
|
+
padded_tokens = tokens + [''] * (max_tokens - len(tokens))
|
|
121
|
+
|
|
122
|
+
# Build row: attributes + class_vars + metas + tokens
|
|
123
|
+
attrs = list(row)
|
|
124
|
+
class_vars = list(row.get_class()) if table.domain.class_vars else []
|
|
125
|
+
metas = list(row.metas) + padded_tokens
|
|
126
|
+
|
|
127
|
+
new_data_rows.append(attrs + class_vars + metas)
|
|
128
|
+
|
|
129
|
+
return Table.from_list(new_domain, new_data_rows)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
if __name__ == "__main__":
|
|
133
|
+
app = QApplication(sys.argv)
|
|
134
|
+
my_widget = OWExtractTokens()
|
|
135
|
+
my_widget.show()
|
|
136
|
+
if hasattr(app, "exec"):
|
|
137
|
+
app.exec()
|
|
138
|
+
else:
|
|
139
|
+
app.exec_()
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<ui version="4.0">
|
|
3
|
+
<class>Form</class>
|
|
4
|
+
<widget class="QWidget" name="Form">
|
|
5
|
+
<property name="geometry">
|
|
6
|
+
<rect>
|
|
7
|
+
<x>0</x>
|
|
8
|
+
<y>0</y>
|
|
9
|
+
<width>470</width>
|
|
10
|
+
<height>300</height>
|
|
11
|
+
</rect>
|
|
12
|
+
</property>
|
|
13
|
+
<property name="windowTitle">
|
|
14
|
+
<string>Form</string>
|
|
15
|
+
</property>
|
|
16
|
+
<widget class="QLabel" name="Description">
|
|
17
|
+
<property name="geometry">
|
|
18
|
+
<rect>
|
|
19
|
+
<x>20</x>
|
|
20
|
+
<y>20</y>
|
|
21
|
+
<width>431</width>
|
|
22
|
+
<height>261</height>
|
|
23
|
+
</rect>
|
|
24
|
+
</property>
|
|
25
|
+
<property name="text">
|
|
26
|
+
<string>This widget extracts the tokens from your input data.</string>
|
|
27
|
+
</property>
|
|
28
|
+
<property name="textFormat">
|
|
29
|
+
<enum>Qt::AutoText</enum>
|
|
30
|
+
</property>
|
|
31
|
+
<property name="alignment">
|
|
32
|
+
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
|
33
|
+
</property>
|
|
34
|
+
<property name="wordWrap">
|
|
35
|
+
<bool>true</bool>
|
|
36
|
+
</property>
|
|
37
|
+
</widget>
|
|
38
|
+
</widget>
|
|
39
|
+
<resources/>
|
|
40
|
+
<connections/>
|
|
41
|
+
</ui>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
+
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M5 7H3M5 11H3M20 15H3M15 19H3M21 7H19M21 11H19M10.6 11H13.4C13.9601 11 14.2401 11 14.454 10.891C14.6422 10.7951 14.7951 10.6422 14.891 10.454C15 10.2401 15 9.96005 15 9.4V6.6C15 6.03995 15 5.75992 14.891 5.54601C14.7951 5.35785 14.6422 5.20487 14.454 5.10899C14.2401 5 13.9601 5 13.4 5H10.6C10.0399 5 9.75992 5 9.54601 5.10899C9.35785 5.20487 9.20487 5.35785 9.10899 5.54601C9 5.75992 9 6.03995 9 6.6V9.4C9 9.96005 9 10.2401 9.10899 10.454C9.20487 10.6422 9.35785 10.7951 9.54601 10.891C9.75992 11 10.0399 11 10.6 11Z" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
</svg>
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Widgets from Development workflow category
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
# ID = "orangecontrib.AAIT"
|
|
6
|
+
|
|
7
|
+
NAME = "AAIT - Algorithm"
|
|
8
|
+
|
|
9
|
+
# Category icon show in the menu
|
|
10
|
+
ICON = "icons/algorithm.png"
|
|
11
|
+
|
|
12
|
+
BACKGROUND = "light-blue"
|
|
13
|
+
|
|
14
|
+
DESCRIPTION = ("AAIT - Algorithm is a package meant to develop and enable advanced AI "
|
|
15
|
+
"functionalities in Orange Data Mining.")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# PRIORITY = 6
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Widgets from Development workflow category
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
# ID = "orangecontrib.AAIT"
|
|
6
|
+
|
|
7
|
+
NAME = "AAIT - API"
|
|
8
|
+
|
|
9
|
+
# Category icon show in the menu
|
|
10
|
+
ICON = "icons/api.png"
|
|
11
|
+
|
|
12
|
+
BACKGROUND = "light-pink"
|
|
13
|
+
|
|
14
|
+
DESCRIPTION = ("AAIT - Algorithm is a package meant to develop and enable advanced AI "
|
|
15
|
+
"functionalities in Orange Data Mining.")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# PRIORITY = 6
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import os
|
|
3
|
+
import zipfile
|
|
4
|
+
from PIL import Image
|
|
5
|
+
import pillow_heif
|
|
6
|
+
import Orange
|
|
7
|
+
from Orange.data import Table, Domain, StringVariable
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from Orange.widgets.widget import OWWidget, Input, Output
|
|
10
|
+
from AnyQt.QtWidgets import QApplication
|
|
11
|
+
|
|
12
|
+
class OWConvertImages(OWWidget):
|
|
13
|
+
name = "Convert Images"
|
|
14
|
+
description = "Takes one or more folders as input. In these folders, if a .zip file is found, extract the images it contains, convert them to JPG, and reduce their resolution to decrease the image file size."
|
|
15
|
+
icon = "icons/resize-picture.svg"
|
|
16
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
17
|
+
icon = "icons_dev/resize-picture.svg"
|
|
18
|
+
priority = 3000
|
|
19
|
+
|
|
20
|
+
class Inputs:
|
|
21
|
+
data = Input("Data", Orange.data.Table)
|
|
22
|
+
|
|
23
|
+
@Inputs.data
|
|
24
|
+
def set_data(self, in_data):
|
|
25
|
+
self.data = in_data
|
|
26
|
+
if self.data is None:
|
|
27
|
+
return
|
|
28
|
+
if "folders_path" in in_data.domain:
|
|
29
|
+
self.folders_path = in_data.get_column("folders_path")
|
|
30
|
+
elif "folder_path" in in_data.domain:
|
|
31
|
+
self.folders_path = in_data.get_column("folder_path")
|
|
32
|
+
if "file_path" in in_data.domain:
|
|
33
|
+
self.path_file = in_data.get_column("file_path")
|
|
34
|
+
else:
|
|
35
|
+
if self.folders_path is None:
|
|
36
|
+
self.error("No folder provided.")
|
|
37
|
+
return
|
|
38
|
+
path = Path(str(self.folders_path[0]))
|
|
39
|
+
self.path_file = path.parent
|
|
40
|
+
self.run()
|
|
41
|
+
|
|
42
|
+
class Outputs:
|
|
43
|
+
data = Output("Data", Orange.data.Table)
|
|
44
|
+
|
|
45
|
+
def __init__(self):
|
|
46
|
+
super().__init__()
|
|
47
|
+
self.data = None
|
|
48
|
+
self.folders_path = None
|
|
49
|
+
self.path_file = None
|
|
50
|
+
self.MAX_SIZE = (1000, 1000)
|
|
51
|
+
self.run()
|
|
52
|
+
|
|
53
|
+
def trouver_fichiers_zip(self,dossier):
|
|
54
|
+
chemin_complet = None
|
|
55
|
+
for racine, dossiers, fichiers in os.walk(dossier):
|
|
56
|
+
for fichier in fichiers:
|
|
57
|
+
if fichier.lower().endswith('.zip'):
|
|
58
|
+
chemin_complet = os.path.join(racine, fichier)
|
|
59
|
+
return chemin_complet
|
|
60
|
+
|
|
61
|
+
def run(self):
|
|
62
|
+
self.error("")
|
|
63
|
+
self.warning("")
|
|
64
|
+
|
|
65
|
+
if self.data is None:
|
|
66
|
+
return
|
|
67
|
+
|
|
68
|
+
if self.folders_path is None or self.path_file is None:
|
|
69
|
+
self.error("No folder provided.")
|
|
70
|
+
return
|
|
71
|
+
|
|
72
|
+
# Fonctionnel pour confideo
|
|
73
|
+
# a modifier cette fonction encore la fonction de dezip à l'intérieur
|
|
74
|
+
# il faudrait modifier pour enlever le début et ne laisser que la partie convertion d'image
|
|
75
|
+
image_paths = []
|
|
76
|
+
pillow_heif.register_heif_opener()
|
|
77
|
+
# Extraction et collecte des images
|
|
78
|
+
for file_path in self.folders_path:
|
|
79
|
+
img = []
|
|
80
|
+
path = self.trouver_fichiers_zip(file_path)
|
|
81
|
+
if path == None:
|
|
82
|
+
pass
|
|
83
|
+
extract_path = file_path + "/" + "temp_images"
|
|
84
|
+
os.makedirs(extract_path, exist_ok=True)
|
|
85
|
+
ext = os.path.splitext(str(path))[1].lower()
|
|
86
|
+
if ext == ".zip":
|
|
87
|
+
with zipfile.ZipFile(path, "r") as zip_ref:
|
|
88
|
+
zip_ref.extractall(extract_path)
|
|
89
|
+
for root, dirs, files in os.walk(extract_path):
|
|
90
|
+
for fname in files:
|
|
91
|
+
if fname.lower().endswith((".png", ".jpg", ".jpeg", ".tiff", ".tif", ".heif", ".heic")):
|
|
92
|
+
img.append(os.path.join(root, fname))
|
|
93
|
+
elif ext in [".png", ".jpg", ".jpeg", ".tiff", ".tif", ".heif", ".heic"]:
|
|
94
|
+
image_paths.append(path)
|
|
95
|
+
image_paths.append(img)
|
|
96
|
+
|
|
97
|
+
converted_path = str(self.path_file) + "/temp_images/converted"
|
|
98
|
+
os.makedirs(converted_path, exist_ok=True)
|
|
99
|
+
new_image_paths = []
|
|
100
|
+
|
|
101
|
+
for image_path in image_paths:
|
|
102
|
+
for img_path in image_path:
|
|
103
|
+
ext = os.path.splitext(img_path)[1].lower()
|
|
104
|
+
if ext in [".png", ".jpg", ".jpeg", ".tiff", ".tif", ".heif", ".heic"]:
|
|
105
|
+
try:
|
|
106
|
+
image = Image.open(img_path)
|
|
107
|
+
if image.mode != 'RGB':
|
|
108
|
+
image = image.convert('RGB')
|
|
109
|
+
image.thumbnail(self.MAX_SIZE)
|
|
110
|
+
new_filename = os.path.splitext(os.path.basename(img_path))[0] + ".jpg"
|
|
111
|
+
new_path = os.path.join(converted_path, new_filename)
|
|
112
|
+
image.save(new_path, format="JPEG", quality=70)
|
|
113
|
+
new_image_paths.append(new_path)
|
|
114
|
+
# Supprimer l'original (facultatif)
|
|
115
|
+
# os.remove(img_path)
|
|
116
|
+
except Exception as e:
|
|
117
|
+
print(f"Erreur de conversion {img_path} : {e}")
|
|
118
|
+
data_metas = [[str(self.path_file), str(new_image_paths)]]
|
|
119
|
+
domain = Domain([], metas=[StringVariable("folder_path"), StringVariable("image_paths")])
|
|
120
|
+
table = Table.from_numpy(domain, np.empty((len(data_metas), 0)), metas=data_metas)
|
|
121
|
+
self.Outputs.data.send(table)
|
|
122
|
+
|
|
123
|
+
if __name__ == "__main__":
|
|
124
|
+
import sys
|
|
125
|
+
app = QApplication(sys.argv)
|
|
126
|
+
my_widget = OWConvertImages()
|
|
127
|
+
my_widget.show()
|
|
128
|
+
if hasattr(app, "exec"):
|
|
129
|
+
sys.exit(app.exec())
|
|
130
|
+
else:
|
|
131
|
+
sys.exit(app.exec_())
|