aait 2.1.0__tar.gz → 2.1.2__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.1.0 → aait-2.1.2}/PKG-INFO +1 -1
- {aait-2.1.0 → aait-2.1.2}/aait.egg-info/PKG-INFO +1 -1
- {aait-2.1.0 → aait-2.1.2}/aait.egg-info/SOURCES.txt +1 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWAddColumns.py +6 -2
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWEndLoop.py +17 -0
- aait-2.1.2/orangecontrib/AAIT/widgets/OWFileWithPath.py +165 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +64 -33
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +2 -2
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWStartLoop.py +26 -1
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +16 -3
- aait-2.1.2/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +45 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +13 -0
- {aait-2.1.0 → aait-2.1.2}/setup.py +1 -1
- aait-2.1.0/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -94
- {aait-2.1.0 → aait-2.1.2}/aait.egg-info/dependency_links.txt +0 -0
- {aait-2.1.0 → aait-2.1.2}/aait.egg-info/entry_points.txt +0 -0
- {aait-2.1.0 → aait-2.1.2}/aait.egg-info/namespace_packages.txt +0 -0
- {aait-2.1.0 → aait-2.1.2}/aait.egg-info/requires.txt +0 -0
- {aait-2.1.0 → aait-2.1.2}/aait.egg-info/top_level.txt +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/__init__.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/GPT4ALL.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/GPT4ALL_killer.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/__init__.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/answers.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/chunking.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/embeddings.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/finetuning.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/lemmes.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/process_documents.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/quickpy.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/test.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/test_functions.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/llm/translations.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/MetManagement.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/__init__.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/import_uic.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/thread_management.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/utils/windows_utils.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWExecuteScript.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWInputSelector.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWKeywords.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWLLM4ALL.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/__init__.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owllm4all.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/keyword.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/llm4all.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
- {aait-2.1.0 → aait-2.1.2}/orangecontrib/__init__.py +0 -0
- {aait-2.1.0 → aait-2.1.2}/setup.cfg +0 -0
|
@@ -174,6 +174,7 @@ orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui
|
|
|
174
174
|
orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui
|
|
175
175
|
orangecontrib/AAIT/widgets/designer/owqueryllm.ui
|
|
176
176
|
orangecontrib/AAIT/widgets/designer/owreranking.ui
|
|
177
|
+
orangecontrib/AAIT/widgets/designer/owsavewithpath.ui
|
|
177
178
|
orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui
|
|
178
179
|
orangecontrib/AAIT/widgets/designer/owstartloop.ui
|
|
179
180
|
orangecontrib/AAIT/widgets/designer/owtable2corpus.ui
|
|
@@ -133,7 +133,7 @@ class OWAddColumns(widget.OWWidget):
|
|
|
133
133
|
keys = [
|
|
134
134
|
"OS", "Machine", "Processor",
|
|
135
135
|
"Python Version", "Python Executable", "Orange3",
|
|
136
|
-
"Time"
|
|
136
|
+
"Current Time", "Row number"
|
|
137
137
|
]
|
|
138
138
|
vals = [
|
|
139
139
|
platform.platform(),
|
|
@@ -217,7 +217,11 @@ class OWAddColumns(widget.OWWidget):
|
|
|
217
217
|
left = data.metas if (data.metas is not None and data.metas.size) else np.empty((n, len(existing_meta_vars)), dtype=object)
|
|
218
218
|
right = np.empty((n, len(new_meta_vars)), dtype=object)
|
|
219
219
|
for j, k in enumerate(selected_keys):
|
|
220
|
-
|
|
220
|
+
if k == "Row number":
|
|
221
|
+
# Numérotation humaine 1..N (met en 0..N-1 si tu préfères)
|
|
222
|
+
right[:, j] = np.arange(1, n + 1).astype(object)
|
|
223
|
+
else:
|
|
224
|
+
right[:, j] = kv.get(k, "")
|
|
221
225
|
|
|
222
226
|
metas = np.hstack([left, right]) if left.size else right
|
|
223
227
|
|
|
@@ -40,6 +40,16 @@ class EndLoopWidget(OWWidget):
|
|
|
40
40
|
|
|
41
41
|
self.data = data
|
|
42
42
|
|
|
43
|
+
# cas ou on boucle temps que le nombre de ligne augmente
|
|
44
|
+
if "True"==self.get_is_allow_to_change_line_number_from_start():
|
|
45
|
+
print("autorise a changer de ligne")
|
|
46
|
+
if self.get_nb_line() == self.get_nb_line_from_start():
|
|
47
|
+
# on s'arrete
|
|
48
|
+
self.Outputs.out_data.send(self.data)
|
|
49
|
+
return
|
|
50
|
+
# on boucle
|
|
51
|
+
ctypes.cast(int(self.in_pointer), ctypes.py_object).value.set_data(self.data)
|
|
52
|
+
return
|
|
43
53
|
|
|
44
54
|
# Check if the number of lines has changed
|
|
45
55
|
if self.get_nb_line() != self.get_nb_line_from_start():
|
|
@@ -127,6 +137,13 @@ class EndLoopWidget(OWWidget):
|
|
|
127
137
|
result = ctypes.cast(int(self.in_pointer), ctypes.py_object).value.get_nb_line()
|
|
128
138
|
return result
|
|
129
139
|
|
|
140
|
+
def get_is_allow_to_change_line_number_from_start(self):
|
|
141
|
+
result = "False"
|
|
142
|
+
if self.in_pointer is not None:
|
|
143
|
+
result = ctypes.cast(int(self.in_pointer), ctypes.py_object).value.is_allow_to_change_line_number()
|
|
144
|
+
return result
|
|
145
|
+
|
|
146
|
+
|
|
130
147
|
def get_nb_line(self):
|
|
131
148
|
# Return the number of lines to compare with another widget
|
|
132
149
|
if self.data is None:
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
import math
|
|
4
|
+
|
|
5
|
+
import Orange.data
|
|
6
|
+
from AnyQt.QtWidgets import QApplication
|
|
7
|
+
from Orange.widgets import widget
|
|
8
|
+
from Orange.widgets.utils.signals import Input, Output
|
|
9
|
+
from AnyQt.QtWidgets import QCheckBox
|
|
10
|
+
from Orange.widgets.settings import Setting
|
|
11
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
12
|
+
from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
|
|
13
|
+
from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
|
|
14
|
+
else:
|
|
15
|
+
from orangecontrib.AAIT.utils.import_uic import uic
|
|
16
|
+
from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@apply_modification_from_python_file(filepath_original_widget=__file__)
|
|
20
|
+
class OWFileWithPath(widget.OWWidget):
|
|
21
|
+
name = "File with Path"
|
|
22
|
+
category = "AAIT - TOOLBOX"
|
|
23
|
+
description = "Load some tabular data specified with a filepath ('.../data/example.xlsx')."
|
|
24
|
+
icon = "icons/owfilewithpath.svg"
|
|
25
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
26
|
+
icon = "icons_dev/owfilewithpath.svg"
|
|
27
|
+
gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owfilewithpath.ui")
|
|
28
|
+
want_control_area = False
|
|
29
|
+
priority = 1060
|
|
30
|
+
|
|
31
|
+
class Inputs:
|
|
32
|
+
filepath = Input("Path", str, auto_summary=False)
|
|
33
|
+
path_table = Input("Path Table", Orange.data.Table)
|
|
34
|
+
|
|
35
|
+
class Outputs:
|
|
36
|
+
data = Output("Data", Orange.data.Table)
|
|
37
|
+
|
|
38
|
+
strloadAsString: str = Setting('False')
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@Inputs.filepath
|
|
42
|
+
def set_filepath(self, in_filepath):
|
|
43
|
+
if in_filepath is not None:
|
|
44
|
+
self.filepath = in_filepath
|
|
45
|
+
self.run()
|
|
46
|
+
|
|
47
|
+
@Inputs.path_table
|
|
48
|
+
def set_path_table(self, in_path_table):
|
|
49
|
+
if in_path_table is not None:
|
|
50
|
+
if "path" in in_path_table.domain:
|
|
51
|
+
self.filepath = in_path_table[0]["path"].value
|
|
52
|
+
self.run()
|
|
53
|
+
else:
|
|
54
|
+
self.warning("You need a 'path' variable from which the data will be loaded.")
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def __init__(self):
|
|
58
|
+
super().__init__()
|
|
59
|
+
# Qt Management
|
|
60
|
+
self.setFixedWidth(470)
|
|
61
|
+
self.setFixedHeight(300)
|
|
62
|
+
uic.loadUi(self.gui, self)
|
|
63
|
+
self.checkbox_interface = self.findChild(QCheckBox, 'checkBox')
|
|
64
|
+
if self.strloadAsString=="False":
|
|
65
|
+
self.checkbox_interface.setChecked(False)
|
|
66
|
+
else:
|
|
67
|
+
self.checkbox_interface.setChecked(True)
|
|
68
|
+
self.checkbox_interface.stateChanged.connect(self.on_checkbox_toggled)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
# Data Management
|
|
73
|
+
self.filepath = None
|
|
74
|
+
self.data = None
|
|
75
|
+
self.autorun = True
|
|
76
|
+
self.post_initialized()
|
|
77
|
+
def on_checkbox_toggled(self):
|
|
78
|
+
if self.checkbox_interface.isChecked():
|
|
79
|
+
self.strloadAsString="True"
|
|
80
|
+
else:
|
|
81
|
+
self.strloadAsString="False"
|
|
82
|
+
|
|
83
|
+
def safe_repr_val(self,var, val, missing_as_empty=False):
|
|
84
|
+
"""
|
|
85
|
+
Version robuste de var.repr_val(val) :
|
|
86
|
+
- gère les valeurs NaN/Inf
|
|
87
|
+
- gère les erreurs de datetime.fromtimestamp (OSError invalid argument)
|
|
88
|
+
"""
|
|
89
|
+
try:
|
|
90
|
+
if var.is_string:
|
|
91
|
+
s = var.str_val(val) # pas de guillemets
|
|
92
|
+
else:
|
|
93
|
+
s = var.repr_val(val)
|
|
94
|
+
if missing_as_empty and s == "?":
|
|
95
|
+
return ""
|
|
96
|
+
return s
|
|
97
|
+
except (ValueError, OverflowError, OSError):
|
|
98
|
+
# cas des TimeVariable avec timestamp invalide
|
|
99
|
+
return "" if missing_as_empty else "?"
|
|
100
|
+
|
|
101
|
+
def load_table_as_strings(self,filepath: str) -> Orange.data.Table:
|
|
102
|
+
"""
|
|
103
|
+
Charge un fichier Orange et renvoie un Table où toutes les colonnes
|
|
104
|
+
(features, class, metas) sont converties en StringVariable et placées en metas.
|
|
105
|
+
"""
|
|
106
|
+
missing_as_empty=False # si on passe a True on met "" à la place de ?
|
|
107
|
+
t = Orange.data.Table.from_file(filepath)
|
|
108
|
+
dom = t.domain
|
|
109
|
+
|
|
110
|
+
# 2) Toutes les variables d'origine
|
|
111
|
+
all_vars = list(dom.attributes) + list(dom.class_vars) + list(dom.metas)
|
|
112
|
+
|
|
113
|
+
# 3) Créer des StringVariable correspondantes
|
|
114
|
+
new_metas = tuple(Orange.data.StringVariable(v.name) for v in all_vars)
|
|
115
|
+
|
|
116
|
+
# 4) Domaine final : que des metas
|
|
117
|
+
new_domain = Orange.data.Domain([], None, new_metas)
|
|
118
|
+
|
|
119
|
+
# 5) Créer table vide
|
|
120
|
+
t_str = Orange.data.Table.from_domain(new_domain, len(t))
|
|
121
|
+
|
|
122
|
+
# 6) Remplissage sécurisé
|
|
123
|
+
for j, src_var in enumerate(all_vars):
|
|
124
|
+
col_data = t.get_column(src_var)
|
|
125
|
+
text_vals = [self.safe_repr_val(src_var, v, missing_as_empty) for v in col_data]
|
|
126
|
+
t_str.metas[:, j] = text_vals
|
|
127
|
+
|
|
128
|
+
# 7) Métadonnées
|
|
129
|
+
t_str.name = t.name
|
|
130
|
+
t_str.ids = t.ids
|
|
131
|
+
t_str.attributes = dict(getattr(t, "attributes", {}))
|
|
132
|
+
|
|
133
|
+
return t_str
|
|
134
|
+
def run(self):
|
|
135
|
+
self.error("")
|
|
136
|
+
self.warning("")
|
|
137
|
+
|
|
138
|
+
if self.filepath is None:
|
|
139
|
+
return
|
|
140
|
+
|
|
141
|
+
#try:
|
|
142
|
+
self.filepath = self.filepath.strip('"')
|
|
143
|
+
|
|
144
|
+
if self.strloadAsString!="False":
|
|
145
|
+
out_data = self.load_table_as_strings(self.filepath)
|
|
146
|
+
else:
|
|
147
|
+
out_data = Orange.data.Table.from_file(self.filepath)
|
|
148
|
+
out_data.name = self.filepath
|
|
149
|
+
#except Exception as e:
|
|
150
|
+
# self.error(f"An error occurred: the provided file path may not be supported ({e})")
|
|
151
|
+
# return
|
|
152
|
+
|
|
153
|
+
self.Outputs.data.send(out_data)
|
|
154
|
+
|
|
155
|
+
def post_initialized(self):
|
|
156
|
+
pass
|
|
157
|
+
|
|
158
|
+
if __name__ == "__main__":
|
|
159
|
+
app = QApplication(sys.argv)
|
|
160
|
+
my_widget = OWFileWithPath()
|
|
161
|
+
my_widget.show()
|
|
162
|
+
if hasattr(app, "exec"):
|
|
163
|
+
app.exec()
|
|
164
|
+
else:
|
|
165
|
+
app.exec_()
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import json
|
|
3
3
|
import ast
|
|
4
|
-
from Orange.widgets import
|
|
4
|
+
from Orange.widgets import widget
|
|
5
5
|
from Orange.widgets.settings import Setting
|
|
6
6
|
from Orange.widgets.utils.widgetpreview import WidgetPreview
|
|
7
7
|
from Orange.widgets.widget import Input, Output
|
|
8
8
|
from Orange.data import Table
|
|
9
|
+
from AnyQt.QtWidgets import QCheckBox
|
|
10
|
+
import copy
|
|
11
|
+
|
|
12
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
13
|
+
from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
|
|
14
|
+
else:
|
|
15
|
+
from orangecontrib.AAIT.utils.import_uic import uic
|
|
9
16
|
|
|
10
17
|
class OWSaveFilepathEntry(widget.OWWidget):
|
|
11
18
|
name = "Save with Filepath Entry"
|
|
@@ -14,16 +21,19 @@ class OWSaveFilepathEntry(widget.OWWidget):
|
|
|
14
21
|
icon = "icons/owsavefilepathentry.svg"
|
|
15
22
|
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
16
23
|
icon = "icons_dev/owsavefilepathentry.svg"
|
|
24
|
+
gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owsavewithpath.ui")
|
|
17
25
|
priority = 1220
|
|
18
|
-
|
|
19
|
-
resizing_enabled = False
|
|
26
|
+
want_control_area = False
|
|
20
27
|
|
|
21
28
|
# Persistent settings for fileId and CSV delimiter
|
|
22
|
-
filename: str = Setting("embeddings.pkl")
|
|
29
|
+
filename: str = Setting("embeddings.pkl")
|
|
30
|
+
annotations: bool = Setting(True)
|
|
31
|
+
purge_widget: bool = Setting(False)
|
|
32
|
+
|
|
23
33
|
|
|
24
34
|
class Inputs:
|
|
25
35
|
data = Input("Data", Table)
|
|
26
|
-
save_path = Input("Path", str)
|
|
36
|
+
save_path = Input("Path", str, auto_summary=False)
|
|
27
37
|
path_table = Input("Path Table", Table)
|
|
28
38
|
|
|
29
39
|
class Outputs:
|
|
@@ -32,44 +42,59 @@ class OWSaveFilepathEntry(widget.OWWidget):
|
|
|
32
42
|
@Inputs.data
|
|
33
43
|
def dataset(self, data):
|
|
34
44
|
"""Handle new data input."""
|
|
45
|
+
if data is None:
|
|
46
|
+
self.data=None
|
|
47
|
+
return
|
|
35
48
|
self.data = data
|
|
36
|
-
|
|
37
|
-
|
|
49
|
+
self.run()
|
|
50
|
+
|
|
38
51
|
|
|
39
52
|
@Inputs.save_path
|
|
40
53
|
def set_save_path(self, in_save_path):
|
|
41
|
-
if in_save_path is
|
|
42
|
-
self.save_path
|
|
43
|
-
|
|
54
|
+
if in_save_path is None:
|
|
55
|
+
self.save_path=None
|
|
56
|
+
return
|
|
57
|
+
self.save_path = in_save_path.replace('"', '')
|
|
58
|
+
self.json = False
|
|
59
|
+
if self.save_path.endswith(".json"):
|
|
60
|
+
self.json = True
|
|
61
|
+
self.run()
|
|
44
62
|
|
|
45
63
|
@Inputs.path_table
|
|
46
64
|
def set_path_table(self, in_path_table):
|
|
47
|
-
if in_path_table is
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
65
|
+
if in_path_table is None:
|
|
66
|
+
self.save_path=None
|
|
67
|
+
return
|
|
68
|
+
self.json = False
|
|
69
|
+
if "path" in in_path_table.domain:
|
|
70
|
+
if in_path_table[0]["path"].value.endswith(".json"):
|
|
71
|
+
self.json = True
|
|
72
|
+
self.save_path = in_path_table[0]["path"].value.replace('"', '')
|
|
73
|
+
self.run()
|
|
52
74
|
|
|
53
|
-
if "path" in in_path_table.domain:
|
|
54
|
-
self.save_path = in_path_table[0]["path"].value.replace('"', '')
|
|
55
|
-
self.run()
|
|
56
75
|
|
|
57
76
|
def __init__(self):
|
|
58
77
|
super().__init__()
|
|
59
|
-
|
|
60
|
-
|
|
78
|
+
# Qt Management
|
|
79
|
+
self.setFixedWidth(470)
|
|
80
|
+
self.setFixedHeight(300)
|
|
81
|
+
uic.loadUi(self.gui, self)
|
|
82
|
+
self.checkbox_annotations = self.findChild(QCheckBox, 'checkBox')
|
|
83
|
+
self.checkBox_2 = self.findChild(QCheckBox,'checkBox_2')
|
|
84
|
+
|
|
85
|
+
self.checkbox_annotations.setChecked(self.annotations)
|
|
86
|
+
self.checkBox_2.setChecked(self.purge_widget)
|
|
87
|
+
self.checkbox_annotations.stateChanged.connect(self.update_parameters)
|
|
88
|
+
self.checkBox_2.stateChanged.connect(self.update_parameters)
|
|
61
89
|
# Data Management
|
|
62
90
|
self.save_path = None
|
|
63
91
|
self.data = None
|
|
64
92
|
self.json = False
|
|
65
|
-
self.setup_ui()
|
|
66
93
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
self.setFixedWidth(470)
|
|
72
|
-
self.setFixedHeight(300)
|
|
94
|
+
def update_parameters(self):
|
|
95
|
+
self.annotations = self.checkbox_annotations.isChecked()
|
|
96
|
+
self.purge_widget=self.checkBox_2.isChecked()
|
|
97
|
+
self.run()
|
|
73
98
|
|
|
74
99
|
def save_file(self):
|
|
75
100
|
self.error("")
|
|
@@ -79,6 +104,7 @@ class OWSaveFilepathEntry(widget.OWWidget):
|
|
|
79
104
|
|
|
80
105
|
import Orange.widgets.data.owsave as save_py
|
|
81
106
|
saver = save_py.OWSave()
|
|
107
|
+
saver.add_type_annotations = self.annotations
|
|
82
108
|
filters = saver.valid_filters()
|
|
83
109
|
extension = os.path.splitext(self.save_path)[1]
|
|
84
110
|
selected_filter = ""
|
|
@@ -94,8 +120,7 @@ class OWSaveFilepathEntry(widget.OWWidget):
|
|
|
94
120
|
saver.filter = selected_filter
|
|
95
121
|
saver.do_save()
|
|
96
122
|
self.Outputs.data.send(self.data)
|
|
97
|
-
|
|
98
|
-
self.save_path = None
|
|
123
|
+
|
|
99
124
|
|
|
100
125
|
def save_json(self):
|
|
101
126
|
if "content" not in self.data.domain:
|
|
@@ -121,8 +146,6 @@ class OWSaveFilepathEntry(widget.OWWidget):
|
|
|
121
146
|
with open(folder_path, "w", encoding="utf-8") as f:
|
|
122
147
|
json.dump(data_raw, f, ensure_ascii=False, indent=4)
|
|
123
148
|
self.information("JSON saved successfully")
|
|
124
|
-
self.json = False
|
|
125
|
-
self.save_path = None
|
|
126
149
|
self.Outputs.data.send(self.data)
|
|
127
150
|
|
|
128
151
|
def run(self):
|
|
@@ -130,16 +153,24 @@ class OWSaveFilepathEntry(widget.OWWidget):
|
|
|
130
153
|
self.information("")
|
|
131
154
|
"""Save data to a file."""
|
|
132
155
|
if self.data is None:
|
|
156
|
+
self.error("need data")
|
|
133
157
|
return
|
|
134
|
-
|
|
135
158
|
if self.save_path is None:
|
|
159
|
+
self.error("need path")
|
|
136
160
|
return
|
|
137
|
-
|
|
138
161
|
if self.json:
|
|
139
162
|
self.save_json()
|
|
140
163
|
else:
|
|
141
164
|
self.save_file()
|
|
142
165
|
|
|
166
|
+
if self.purge_widget:
|
|
167
|
+
self.save_path = None
|
|
168
|
+
to_send=copy.deepcopy(self.data)
|
|
169
|
+
if self.purge_widget:
|
|
170
|
+
self.data = None
|
|
171
|
+
|
|
172
|
+
self.Outputs.data.send(to_send)
|
|
173
|
+
|
|
143
174
|
|
|
144
175
|
|
|
145
176
|
|
|
@@ -8,10 +8,10 @@ from Orange.widgets.utils.signals import Input, Output
|
|
|
8
8
|
|
|
9
9
|
|
|
10
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
|
|
11
|
+
# from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
|
|
12
12
|
from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
|
|
13
13
|
else:
|
|
14
|
-
from orangecontrib.AAIT.utils.import_uic import uic
|
|
14
|
+
# from orangecontrib.AAIT.utils.import_uic import uic
|
|
15
15
|
from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
|
|
16
16
|
|
|
17
17
|
|
|
@@ -5,6 +5,9 @@ from Orange.data import Domain, Table, ContinuousVariable
|
|
|
5
5
|
from Orange.widgets.utils.signals import Input
|
|
6
6
|
from Orange.widgets.widget import Output, OWWidget
|
|
7
7
|
import numpy as np
|
|
8
|
+
from Orange.widgets.settings import Setting
|
|
9
|
+
from AnyQt.QtWidgets import QCheckBox
|
|
10
|
+
|
|
8
11
|
|
|
9
12
|
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
10
13
|
from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
|
|
@@ -22,7 +25,7 @@ class LoopStartWidget(OWWidget):
|
|
|
22
25
|
gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owstartloop.ui")
|
|
23
26
|
want_control_area = False
|
|
24
27
|
priority = 1010
|
|
25
|
-
|
|
28
|
+
str_iterate_still_nb_line_dont_change: str = Setting("False")
|
|
26
29
|
class Inputs:
|
|
27
30
|
data_in = Input("Data In", Orange.data.Table)
|
|
28
31
|
# in_pointer = Input("End of the Loop Do-While", str, auto_summary=False)
|
|
@@ -37,10 +40,25 @@ class LoopStartWidget(OWWidget):
|
|
|
37
40
|
self.setFixedWidth(470)
|
|
38
41
|
self.setFixedHeight(300)
|
|
39
42
|
uic.loadUi(self.gui, self)
|
|
43
|
+
self.checkBox_iteration_until_number_of_line_dont_change = self.findChild(QCheckBox, 'checkBox')
|
|
44
|
+
if self.str_iterate_still_nb_line_dont_change !="False":
|
|
45
|
+
self.checkBox_iteration_until_number_of_line_dont_change.setChecked(True)
|
|
46
|
+
else:
|
|
47
|
+
self.checkBox_iteration_until_number_of_line_dont_change.setChecked(False)
|
|
48
|
+
self.checkBox_iteration_until_number_of_line_dont_change.stateChanged.connect(self.update_checkBox_iteration_until_number_of_line_dont_change)
|
|
49
|
+
|
|
50
|
+
|
|
40
51
|
self.data = None
|
|
41
52
|
self.send_pointer()
|
|
42
53
|
|
|
43
54
|
|
|
55
|
+
def update_checkBox_iteration_until_number_of_line_dont_change(self):
|
|
56
|
+
if self.checkBox_iteration_until_number_of_line_dont_change.isChecked():
|
|
57
|
+
self.str_iterate_still_nb_line_dont_change="True"
|
|
58
|
+
else:
|
|
59
|
+
self.str_iterate_still_nb_line_dont_change = "False"
|
|
60
|
+
|
|
61
|
+
|
|
44
62
|
@Inputs.data_in
|
|
45
63
|
def set_data(self, dataset):
|
|
46
64
|
if dataset is None:
|
|
@@ -48,6 +66,10 @@ class LoopStartWidget(OWWidget):
|
|
|
48
66
|
return
|
|
49
67
|
self.error("")
|
|
50
68
|
self.data=None
|
|
69
|
+
if self.str_iterate_still_nb_line_dont_change =="True":
|
|
70
|
+
self.data=dataset
|
|
71
|
+
self.process_data()
|
|
72
|
+
return
|
|
51
73
|
error_code_check_iter_column=self.check_iter_column(dataset)
|
|
52
74
|
if error_code_check_iter_column==1:
|
|
53
75
|
print("add iter column")
|
|
@@ -93,6 +115,9 @@ class LoopStartWidget(OWWidget):
|
|
|
93
115
|
def get_nb_line(self):
|
|
94
116
|
"""Return the number of lines to be called from another widget."""
|
|
95
117
|
return 0 if self.data is None else len(self.data)
|
|
118
|
+
def is_allow_to_change_line_number(self):
|
|
119
|
+
"""Return if we are allowed to change the number of line to be called from another widget."""
|
|
120
|
+
return self.str_iterate_still_nb_line_dont_change
|
|
96
121
|
|
|
97
122
|
def get_column_name_and_type(self):
|
|
98
123
|
"""Return the name and type of 'data_in' to be called from another widget."""
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
<property name="geometry">
|
|
18
18
|
<rect>
|
|
19
19
|
<x>20</x>
|
|
20
|
-
<y>
|
|
20
|
+
<y>10</y>
|
|
21
21
|
<width>431</width>
|
|
22
|
-
<height>
|
|
22
|
+
<height>91</height>
|
|
23
23
|
</rect>
|
|
24
24
|
</property>
|
|
25
25
|
<property name="text">
|
|
26
|
-
<string>This widget loads some tabular data specified with a filepath (such as
|
|
26
|
+
<string>This widget loads some tabular data specified with a filepath (such as ".../data/example.xlsx").</string>
|
|
27
27
|
</property>
|
|
28
28
|
<property name="textFormat">
|
|
29
29
|
<enum>Qt::AutoText</enum>
|
|
@@ -35,6 +35,19 @@
|
|
|
35
35
|
<bool>true</bool>
|
|
36
36
|
</property>
|
|
37
37
|
</widget>
|
|
38
|
+
<widget class="QCheckBox" name="checkBox">
|
|
39
|
+
<property name="geometry">
|
|
40
|
+
<rect>
|
|
41
|
+
<x>30</x>
|
|
42
|
+
<y>110</y>
|
|
43
|
+
<width>221</width>
|
|
44
|
+
<height>16</height>
|
|
45
|
+
</rect>
|
|
46
|
+
</property>
|
|
47
|
+
<property name="text">
|
|
48
|
+
<string>Load content as StringVariable</string>
|
|
49
|
+
</property>
|
|
50
|
+
</widget>
|
|
38
51
|
</widget>
|
|
39
52
|
<resources/>
|
|
40
53
|
<connections/>
|
|
@@ -0,0 +1,45 @@
|
|
|
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>404</width>
|
|
10
|
+
<height>238</height>
|
|
11
|
+
</rect>
|
|
12
|
+
</property>
|
|
13
|
+
<property name="windowTitle">
|
|
14
|
+
<string>Form</string>
|
|
15
|
+
</property>
|
|
16
|
+
<widget class="QCheckBox" name="checkBox">
|
|
17
|
+
<property name="geometry">
|
|
18
|
+
<rect>
|
|
19
|
+
<x>24</x>
|
|
20
|
+
<y>80</y>
|
|
21
|
+
<width>371</width>
|
|
22
|
+
<height>31</height>
|
|
23
|
+
</rect>
|
|
24
|
+
</property>
|
|
25
|
+
<property name="text">
|
|
26
|
+
<string>Add type annotations</string>
|
|
27
|
+
</property>
|
|
28
|
+
</widget>
|
|
29
|
+
<widget class="QCheckBox" name="checkBox_2">
|
|
30
|
+
<property name="geometry">
|
|
31
|
+
<rect>
|
|
32
|
+
<x>20</x>
|
|
33
|
+
<y>120</y>
|
|
34
|
+
<width>221</width>
|
|
35
|
+
<height>31</height>
|
|
36
|
+
</rect>
|
|
37
|
+
</property>
|
|
38
|
+
<property name="text">
|
|
39
|
+
<string>purge widget entries after writing the file</string>
|
|
40
|
+
</property>
|
|
41
|
+
</widget>
|
|
42
|
+
</widget>
|
|
43
|
+
<resources/>
|
|
44
|
+
<connections/>
|
|
45
|
+
</ui>
|
|
@@ -35,6 +35,19 @@
|
|
|
35
35
|
<bool>true</bool>
|
|
36
36
|
</property>
|
|
37
37
|
</widget>
|
|
38
|
+
<widget class="QCheckBox" name="checkBox">
|
|
39
|
+
<property name="geometry">
|
|
40
|
+
<rect>
|
|
41
|
+
<x>20</x>
|
|
42
|
+
<y>210</y>
|
|
43
|
+
<width>431</width>
|
|
44
|
+
<height>16</height>
|
|
45
|
+
</rect>
|
|
46
|
+
</property>
|
|
47
|
+
<property name="text">
|
|
48
|
+
<string>Loop over the number of lines until it stops changing</string>
|
|
49
|
+
</property>
|
|
50
|
+
</widget>
|
|
38
51
|
</widget>
|
|
39
52
|
<resources/>
|
|
40
53
|
<connections/>
|
|
@@ -4,7 +4,7 @@ from setuptools import setup, find_packages
|
|
|
4
4
|
NAME = "aait"
|
|
5
5
|
|
|
6
6
|
# Version du package PyPI
|
|
7
|
-
VERSION = "2.1.
|
|
7
|
+
VERSION = "2.1.2" # la version doit être supérieure à la précédente sinon la publication sera refusée
|
|
8
8
|
|
|
9
9
|
# Facultatif / Adaptable à souhait
|
|
10
10
|
AUTHOR = "Orange community"
|