aait 2.3.9__tar.gz → 2.3.9.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.3.9 → aait-2.3.9.2}/PKG-INFO +1 -1
- {aait-2.3.9 → aait-2.3.9.2}/aait.egg-info/PKG-INFO +1 -1
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/__init__.py +42 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/mac_utils.py +10 -5
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/windows_utils.py +1 -2
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWDisplayMD.py +50 -59
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWInputSelector.py +74 -6
- {aait-2.3.9 → aait-2.3.9.2}/setup.py +1 -1
- {aait-2.3.9 → aait-2.3.9.2}/License.txt +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/aait.egg-info/SOURCES.txt +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/aait.egg-info/dependency_links.txt +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/aait.egg-info/entry_points.txt +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/aait.egg-info/namespace_packages.txt +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/aait.egg-info/requires.txt +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/aait.egg-info/top_level.txt +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/__init__.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/answers.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/answers_llama.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/chunking.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/embeddings.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/lemmes.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/process_documents.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/llm/translations.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/MetManagement.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/OperationSystem.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/__init__.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/aait_table_viewer.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/base_widget.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/import_uic.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/thread_management.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/utils/unlink_table_domain.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWAccumulator.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWAddColumns.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWEmptySwitch.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWExecuteScript.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWFileMetadata.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWFileSyncChecker.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWFusionNM.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWGenerateWord.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWKeywords.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWKeywordsDetection.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWLLMEngine.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWLargeLanguageModel.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWLoadDocuments.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWOperationSystem.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWSortAndSelect.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/__init__.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/ow_OperationSystem.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owaccumulator.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owedgellm.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owemptyswitch.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owexecutescript_TEST.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owfilemetadata.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owfilesyncchecker.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owfusion_nm.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owgenerate_word.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owlargelanguagemodel.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owllm4all.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owloaddocuments.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_2.5_32b.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_1.5b_q6.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_3b_q4.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q4.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q6.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwencoder_7b.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owsortandselect.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/blue_down_arrow.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/document_generator.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/edge_llm.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/green_check.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/operationSystem.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owaccumulator.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owemptyswitch.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owfilemetadata.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owfilesyncchecker.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owfusion_nm.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owkeywords.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owlargelanguagemodel.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owloaddocuments.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owsortandselect.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/orangecontrib/__init__.py +0 -0
- {aait-2.3.9 → aait-2.3.9.2}/setup.cfg +0 -0
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
import Orange
|
|
2
2
|
from packaging import version
|
|
3
|
+
|
|
4
|
+
import sys
|
|
5
|
+
import re
|
|
6
|
+
import os
|
|
7
|
+
def check_executable_path():
|
|
8
|
+
exe = sys.executable
|
|
9
|
+
|
|
10
|
+
# caractères spéciaux interdits (tu peux en ajouter)
|
|
11
|
+
forbidden = r'[^A-Za-z0-9_\-./:\\]' # tout ce qui n'est PAS ce set
|
|
12
|
+
pattern = re.compile(forbidden)
|
|
13
|
+
|
|
14
|
+
if " " in exe or pattern.search(exe):
|
|
15
|
+
return False
|
|
16
|
+
return True
|
|
17
|
+
|
|
18
|
+
if not check_executable_path():
|
|
19
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
20
|
+
from orangecontrib.AAIT.utils import SimpleDialogQt
|
|
21
|
+
else:
|
|
22
|
+
from orangecontrib.AAIT.utils import SimpleDialogQt
|
|
23
|
+
SimpleDialogQt.BoxError("You must install this program in a path that does not contain spaces or special characters.")
|
|
24
|
+
exit(0)
|
|
25
|
+
|
|
26
|
+
def check_executable_length(max_length=260):
|
|
27
|
+
exe = sys.executable
|
|
28
|
+
length = len(exe)
|
|
29
|
+
|
|
30
|
+
if length > max_length:
|
|
31
|
+
print(f"ERROR: The installation path is too long ({length} characters). "
|
|
32
|
+
f"Maximum allowed is {max_length}.")
|
|
33
|
+
return False
|
|
34
|
+
return True
|
|
35
|
+
|
|
36
|
+
if not check_executable_length():
|
|
37
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
38
|
+
from orangecontrib.AAIT.utils import SimpleDialogQt
|
|
39
|
+
else:
|
|
40
|
+
from orangecontrib.AAIT.utils import SimpleDialogQt
|
|
41
|
+
SimpleDialogQt.BoxError("The installation path is too long. Please choose a shorter path..")
|
|
42
|
+
exit(0)
|
|
43
|
+
|
|
44
|
+
|
|
3
45
|
target_version = version.parse("3.37")
|
|
4
46
|
current_version = version.parse(Orange.version.version)
|
|
5
47
|
if current_version < target_version: # Skip the file
|
|
@@ -359,20 +359,24 @@ if platform.system() == "Darwin":
|
|
|
359
359
|
repeat with _f in _fs
|
|
360
360
|
set end of _list to POSIX path of _f
|
|
361
361
|
end repeat
|
|
362
|
-
|
|
362
|
+
|
|
363
|
+
-- On change temporairement le séparateur texte d'AppleScript
|
|
364
|
+
set oldDelims to AppleScript's text item delimiters
|
|
365
|
+
set AppleScript's text item delimiters to "//////"
|
|
366
|
+
set _joined to _list as text
|
|
367
|
+
set AppleScript's text item delimiters to oldDelims
|
|
368
|
+
|
|
369
|
+
return _joined
|
|
363
370
|
on error number -128
|
|
364
371
|
return ""
|
|
365
372
|
end try
|
|
366
373
|
end timeout
|
|
367
374
|
'''
|
|
368
|
-
# On exécute puis on convertit la liste AppleScript (qui reviendra "p1, p2, p3") en ';' côté Python
|
|
369
375
|
cp = _run_osascript(script)
|
|
370
376
|
raw = cp.stdout.strip()
|
|
371
377
|
if not raw:
|
|
372
378
|
return ""
|
|
373
|
-
#
|
|
374
|
-
parts = [p.strip() for p in raw.split(",") if p.strip()]
|
|
375
|
-
return str(";".join(parts))
|
|
379
|
+
return raw # le string avec les chemins séparés par //////
|
|
376
380
|
else:
|
|
377
381
|
script = f'''
|
|
378
382
|
with timeout of 3600 seconds
|
|
@@ -389,6 +393,7 @@ if platform.system() == "Darwin":
|
|
|
389
393
|
cp = _run_osascript(script)
|
|
390
394
|
return cp.stdout.strip()
|
|
391
395
|
|
|
396
|
+
|
|
392
397
|
# ----------------------------
|
|
393
398
|
# 3) Enregistrer sous (nouveau fichier)
|
|
394
399
|
# ----------------------------
|
|
@@ -276,13 +276,12 @@ if os.name=='nt':
|
|
|
276
276
|
# Split sur \0
|
|
277
277
|
parts = buffer_content.split('\0')
|
|
278
278
|
parts = [p.replace("\\", "/") for p in parts if p]
|
|
279
|
-
|
|
280
279
|
if multi_select:
|
|
281
280
|
if len(parts) >= 2:
|
|
282
281
|
folder = parts[0]
|
|
283
282
|
files = parts[1:]
|
|
284
283
|
full_paths = [f"{folder}/{file}" for file in files]
|
|
285
|
-
return '
|
|
284
|
+
return '//////'.join(full_paths)
|
|
286
285
|
elif len(parts) == 1:
|
|
287
286
|
return parts[0]
|
|
288
287
|
else:
|
|
@@ -498,50 +498,6 @@ class OWCorpusViewer(OWWidget, ConcurrentWidgetMixin):
|
|
|
498
498
|
self.show_docs()
|
|
499
499
|
self.commit.deferred()
|
|
500
500
|
|
|
501
|
-
def show_docs(self):
|
|
502
|
-
"""Show the selected documents in the right area"""
|
|
503
|
-
if self.corpus is None:
|
|
504
|
-
return
|
|
505
|
-
|
|
506
|
-
self.Warning.no_feats_display.clear()
|
|
507
|
-
if len(self.display_features) == 0:
|
|
508
|
-
self.Warning.no_feats_display()
|
|
509
|
-
|
|
510
|
-
if self.show_tokens:
|
|
511
|
-
tokens = list(self.corpus.ngrams_iterator(include_postags=True))
|
|
512
|
-
|
|
513
|
-
parts = []
|
|
514
|
-
for doc_count, c_index in enumerate(sorted(self.selected_documents)):
|
|
515
|
-
text = ""
|
|
516
|
-
for feature in self.display_features:
|
|
517
|
-
value = str(self.corpus[c_index, feature.name])
|
|
518
|
-
if feature in self.search_features:
|
|
519
|
-
value = self.__mark_text(value)
|
|
520
|
-
value = value.replace("\n", "<br/>")
|
|
521
|
-
is_image = feature.attributes.get("type", "") == "image"
|
|
522
|
-
if is_image and value != "?":
|
|
523
|
-
value = os.path.join(feature.attributes.get("origin", ""), value)
|
|
524
|
-
value = '<img src="{}"></img>'.format(value)
|
|
525
|
-
text += (
|
|
526
|
-
f'<tr><td class="variables"><strong>{feature.name}:</strong></td>'
|
|
527
|
-
f'<td class="content">{value}</td></tr>'
|
|
528
|
-
)
|
|
529
|
-
|
|
530
|
-
if self.show_tokens:
|
|
531
|
-
tokens_ = "".join(
|
|
532
|
-
f'<span class="token">{token}</span>' for token in tokens[c_index]
|
|
533
|
-
)
|
|
534
|
-
text += (
|
|
535
|
-
f'<tr><td class="variables"><strong>Tokens & Tags:</strong></td>'
|
|
536
|
-
f"<td>{tokens_}</td></tr>"
|
|
537
|
-
)
|
|
538
|
-
parts.append(text)
|
|
539
|
-
|
|
540
|
-
joined = SEPARATOR.join(parts)
|
|
541
|
-
html = f"<table>{joined}</table>"
|
|
542
|
-
base = QUrl.fromLocalFile(__file__)
|
|
543
|
-
if self.doc_webview is not None:
|
|
544
|
-
self.doc_webview.setHtml(HTML.format(html), base)
|
|
545
501
|
|
|
546
502
|
def __mark_text(self, text):
|
|
547
503
|
search_keyword = self.regexp_filter.strip("|")
|
|
@@ -691,22 +647,12 @@ class OWCorpusViewer(OWWidget, ConcurrentWidgetMixin):
|
|
|
691
647
|
def convert_markdown_with_syntax_highlighting(self, markdown_text, base_path=""):
|
|
692
648
|
"""
|
|
693
649
|
Convertit le texte Markdown avec syntaxe de code colorée en HTML.
|
|
694
|
-
|
|
695
|
-
Utilise la bibliothèque 'markdown' pour convertir le texte Markdown
|
|
696
|
-
en HTML, en incluant les extensions 'fenced_code' et 'codehilite'
|
|
697
|
-
pour la syntaxe de code colorée.
|
|
698
|
-
|
|
699
|
-
Les options de configuration sont définies pour que la bibliothèque
|
|
700
|
-
'codehilite' utilise les classes CSS pour la coloration syntaxique,
|
|
701
|
-
et pour qu'elle ne tente pas de deviner le langage du code.
|
|
702
|
-
|
|
703
|
-
Args :
|
|
704
|
-
markdown_text (str) : Le texte Markdown à convertir.
|
|
705
|
-
|
|
706
|
-
Returns :
|
|
707
|
-
str : Le texte HTML converti.
|
|
708
650
|
"""
|
|
709
651
|
|
|
652
|
+
# --- Patch : normaliser les listes pour que les puces après un "1." restent des sous-listes ---
|
|
653
|
+
markdown_text = self._normalize_lists_for_markdown(markdown_text)
|
|
654
|
+
# ---------------------------------------------------------------------
|
|
655
|
+
|
|
710
656
|
# Convertir le Markdown en HTML avec extensions pour le code
|
|
711
657
|
html_content = markdown.markdown(
|
|
712
658
|
markdown_text,
|
|
@@ -720,7 +666,6 @@ class OWCorpusViewer(OWWidget, ConcurrentWidgetMixin):
|
|
|
720
666
|
}
|
|
721
667
|
)
|
|
722
668
|
|
|
723
|
-
|
|
724
669
|
# Ajouter le CSS pour Pygments
|
|
725
670
|
css = HtmlFormatter().get_style_defs('.codehilite')
|
|
726
671
|
html_content = f"<style>{css}</style>{html_content}"
|
|
@@ -729,6 +674,52 @@ class OWCorpusViewer(OWWidget, ConcurrentWidgetMixin):
|
|
|
729
674
|
html_content = self.adjust_image_paths(html_content, base_path)
|
|
730
675
|
return html_content
|
|
731
676
|
|
|
677
|
+
def _normalize_lists_for_markdown(self, text: str) -> str:
|
|
678
|
+
"""
|
|
679
|
+
Transforme les puces qui suivent immédiatement un item numéroté
|
|
680
|
+
en sous-liste (en les indentant), pour éviter une renumérotation 1,2,3,4,5.
|
|
681
|
+
|
|
682
|
+
Exemple :
|
|
683
|
+
1. Titre
|
|
684
|
+
2. Autre titre
|
|
685
|
+
- sous-étape
|
|
686
|
+
- sous-étape
|
|
687
|
+
|
|
688
|
+
devient :
|
|
689
|
+
1. Titre
|
|
690
|
+
2. Autre titre
|
|
691
|
+
- sous-étape
|
|
692
|
+
- sous-étape
|
|
693
|
+
"""
|
|
694
|
+
lines = text.splitlines()
|
|
695
|
+
out = []
|
|
696
|
+
in_ordered_list = False
|
|
697
|
+
|
|
698
|
+
for line in lines:
|
|
699
|
+
stripped = line.lstrip()
|
|
700
|
+
|
|
701
|
+
# Ligne d'une liste numérotée : "1. xxx"
|
|
702
|
+
if re.match(r'^\d+\.\s+', stripped):
|
|
703
|
+
in_ordered_list = True
|
|
704
|
+
# On normalise en supprimant l'indentation superflue éventuelle
|
|
705
|
+
out.append(stripped)
|
|
706
|
+
continue
|
|
707
|
+
|
|
708
|
+
# Ligne d'une puce qui suit une liste numérotée
|
|
709
|
+
if in_ordered_list and re.match(r'^[-*+]\s+', stripped):
|
|
710
|
+
# Si elle n'est pas déjà indentée, on l'indente comme sous-liste
|
|
711
|
+
if not line.startswith(' '):
|
|
712
|
+
out.append(' ' + stripped)
|
|
713
|
+
else:
|
|
714
|
+
out.append(line)
|
|
715
|
+
continue
|
|
716
|
+
|
|
717
|
+
# Autre contenu : on sort du contexte "liste numérotée"
|
|
718
|
+
in_ordered_list = False
|
|
719
|
+
out.append(line)
|
|
720
|
+
|
|
721
|
+
return "\n".join(out)
|
|
722
|
+
|
|
732
723
|
def adjust_image_paths(self, html_content, base_path):
|
|
733
724
|
"""
|
|
734
725
|
Corrige les chemins d'images pour qu'ils soient valides même pour des chemins relatifs.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from AnyQt.QtWidgets import QPushButton, QApplication, QRadioButton, QComboBox,QCheckBox,QLineEdit
|
|
3
3
|
import sys
|
|
4
|
-
|
|
4
|
+
import numpy as np
|
|
5
5
|
from Orange.widgets.settings import Setting
|
|
6
6
|
from Orange.widgets.widget import OWWidget, Output, Input
|
|
7
7
|
from Orange.data import Table, Domain, StringVariable
|
|
@@ -404,7 +404,7 @@ class OWInputSelector(OWWidget):
|
|
|
404
404
|
file_filter=file_filter,
|
|
405
405
|
dialog_title=dialog_title
|
|
406
406
|
)
|
|
407
|
-
if sys.platform.startswith("Darwin"):
|
|
407
|
+
if sys.platform.startswith("Darwin") or sys.platform.startswith("darwin") :
|
|
408
408
|
return mac_utils.select_file_macos(
|
|
409
409
|
multi_select=multi_select,
|
|
410
410
|
file_filter=file_filter,
|
|
@@ -417,16 +417,15 @@ class OWInputSelector(OWWidget):
|
|
|
417
417
|
"", # initial directory
|
|
418
418
|
file_filter # filter
|
|
419
419
|
)
|
|
420
|
+
files=files[0]
|
|
420
421
|
return files
|
|
421
422
|
|
|
422
423
|
def select_new_file(self, file_filter, dialog_title):
|
|
423
424
|
if os.name == 'nt':
|
|
424
425
|
return windows_utils.select_new_file_ctypes(file_filter=file_filter, dialog_title=dialog_title)
|
|
425
|
-
if sys.platform.startswith("Darwin"):
|
|
426
|
+
if sys.platform.startswith("Darwin") or sys.platform.startswith("darwin"):
|
|
426
427
|
return mac_utils.select_new_file_macos(file_filter=file_filter, dialog_title=dialog_title)
|
|
427
428
|
|
|
428
|
-
|
|
429
|
-
print("a faire correctement sans qt sur mac (et linux")
|
|
430
429
|
from AnyQt.QtWidgets import QFileDialog
|
|
431
430
|
files, _ = QFileDialog.getSaveFileName(
|
|
432
431
|
self, # parent
|
|
@@ -439,7 +438,7 @@ class OWInputSelector(OWWidget):
|
|
|
439
438
|
def select_folder(self, dialog_title):
|
|
440
439
|
if os.name=='nt':
|
|
441
440
|
return windows_utils.select_folder_ctypes(title=dialog_title)
|
|
442
|
-
if sys.platform.startswith("Darwin"):
|
|
441
|
+
if sys.platform.startswith("Darwin") or sys.platform.startswith("darwin"):
|
|
443
442
|
return mac_utils.select_folder_macos(title=dialog_title)
|
|
444
443
|
|
|
445
444
|
# a faire correctement sans qt sur mac
|
|
@@ -458,7 +457,76 @@ class OWInputSelector(OWWidget):
|
|
|
458
457
|
return
|
|
459
458
|
|
|
460
459
|
var = StringVariable("path")
|
|
460
|
+
separator = "//////"
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
if separator in self.selected_path:
|
|
464
|
+
# plusieurs fichiers
|
|
465
|
+
|
|
466
|
+
paths = self.selected_path.split(separator)
|
|
467
|
+
n_paths = len(paths)
|
|
468
|
+
|
|
469
|
+
if self.in_data is not None:
|
|
470
|
+
base = self.in_data
|
|
471
|
+
old_dom = base.domain
|
|
472
|
+
|
|
473
|
+
# Domaine = attributs + classes existants + nouvelle méta "path"
|
|
474
|
+
domain = Domain(
|
|
475
|
+
old_dom.attributes,
|
|
476
|
+
old_dom.class_vars,
|
|
477
|
+
list(old_dom.metas) + [var]
|
|
478
|
+
)
|
|
479
|
+
|
|
480
|
+
m_in = len(base)
|
|
481
|
+
n_rows = max(m_in, n_paths) # on peut devoir ajouter des lignes
|
|
482
|
+
n_attr = len(domain.attributes)
|
|
483
|
+
n_cls = len(domain.class_vars)
|
|
484
|
+
n_meta = len(domain.metas)
|
|
485
|
+
|
|
486
|
+
# Prépare des tableaux de la bonne taille
|
|
487
|
+
X_new = np.full((n_rows, n_attr), np.nan) if n_attr else np.empty((n_rows, 0))
|
|
488
|
+
# Y doit être 2D si des class_vars existent, sinon None
|
|
489
|
+
Y_new = (np.full((n_rows, n_cls), np.nan) if n_cls else None)
|
|
490
|
+
|
|
491
|
+
metas_new = np.empty((n_rows, n_meta), dtype=object)
|
|
492
|
+
# Initialiser chaque colonne de méta avec sa valeur "Unknown" Orange
|
|
493
|
+
for j, meta_var in enumerate(domain.metas):
|
|
494
|
+
unknown = getattr(meta_var, "Unknown", None)
|
|
495
|
+
metas_new[:, j] = unknown
|
|
496
|
+
|
|
497
|
+
# Copie des données existantes dans la partie haute
|
|
498
|
+
if m_in:
|
|
499
|
+
if n_attr:
|
|
500
|
+
X_new[:m_in, :] = base.X
|
|
501
|
+
if n_cls:
|
|
502
|
+
# Base.Y peut être 1D si une seule classe : on normalise en 2D
|
|
503
|
+
if base.Y is not None:
|
|
504
|
+
if np.ndim(base.Y) == 1 and n_cls == 1:
|
|
505
|
+
Y_new[:m_in, 0] = base.Y
|
|
506
|
+
else:
|
|
507
|
+
Y_new[:m_in, :] = base.Y
|
|
508
|
+
if len(old_dom.metas):
|
|
509
|
+
metas_new[:m_in, :n_meta - 1] = base.metas # on laisse la dernière col vide (path)
|
|
510
|
+
|
|
511
|
+
# Remplit la nouvelle colonne "path" pour les N premières lignes
|
|
512
|
+
metas_new[:n_paths, -1] = paths
|
|
513
|
+
|
|
514
|
+
new_table = Table.from_numpy(domain, X_new, Y_new, metas_new)
|
|
461
515
|
|
|
516
|
+
else:
|
|
517
|
+
# Pas de table en entrée : on crée une table uniquement avec la méta "path"
|
|
518
|
+
n_rows = max(n_paths, 1) # au moins 1 ligne
|
|
519
|
+
domain = Domain([], metas=[var])
|
|
520
|
+
|
|
521
|
+
metas_new = np.empty((n_rows, 1), dtype=object)
|
|
522
|
+
metas_new[:, 0] = "" # vide par défaut
|
|
523
|
+
metas_new[:n_paths, 0] = paths
|
|
524
|
+
|
|
525
|
+
X_dummy = np.empty((n_rows, 0))
|
|
526
|
+
new_table = Table.from_numpy(domain, X_dummy, None, metas_new)
|
|
527
|
+
self.Outputs.path.send(new_table)
|
|
528
|
+
self.Outputs.path_string.send(str(paths))
|
|
529
|
+
return
|
|
462
530
|
if self.in_data is not None:
|
|
463
531
|
domain = Domain(
|
|
464
532
|
self.in_data.domain.attributes,
|
|
@@ -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.3.9" # la version doit être supérieure à la précédente sinon la publication sera refusée
|
|
7
|
+
VERSION = "2.3.9.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"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|