aait 2.3.13__tar.gz → 2.3.14.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.3.13 → aait-2.3.14.1}/PKG-INFO +1 -1
- {aait-2.3.13 → aait-2.3.14.1}/aait.egg-info/PKG-INFO +1 -1
- {aait-2.3.13 → aait-2.3.14.1}/aait.egg-info/SOURCES.txt +2 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/subprocess_management.py +8 -3
- aait-2.3.14.1/orangecontrib/AAIT/widgets/OWSplitExcelSheets.py +216 -0
- aait-2.3.14.1/orangecontrib/AAIT/widgets/designer/owsplitexcelsheets.ui +141 -0
- {aait-2.3.13 → aait-2.3.14.1}/setup.py +1 -1
- {aait-2.3.13 → aait-2.3.14.1}/License.txt +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/aait.egg-info/dependency_links.txt +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/aait.egg-info/entry_points.txt +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/aait.egg-info/namespace_packages.txt +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/aait.egg-info/requires.txt +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/aait.egg-info/top_level.txt +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/__init__.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/__init__.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/answers.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/answers_llama.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/chunking.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/embeddings.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/lemmes.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/process_documents.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/llm/translations.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/MetManagement.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/OperationSystem.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/__init__.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/aait_table_viewer.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/base_widget.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/import_uic.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/thread_management.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/unlink_table_domain.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/widget_positioning.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/utils/windows_utils.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWAccumulator.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWAddColumns.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWAutoShowCreateInstance.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWAutoShowTable.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWEmptySwitch.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWExecuteScript.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWFileMetadata.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWFileSyncChecker.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWFusionNM.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWGenerateWord.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWGetPages.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWInputSelector.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWKeywords.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWKeywordsDetection.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWLLMEngine.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWLargeLanguageModel.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWLoadDocuments.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Embeddings.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWOperationSystem.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWQuadrantclicker.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWSortAndSelect.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/__init__.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/ow_OperationSystem.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owaccumulator.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owedgellm.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owemptyswitch.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owexecutescript_TEST.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owfilemetadata.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owfilesyncchecker.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owfusion_nm.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owgenerate_word.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owgetpages.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owlargelanguagemodel.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owllm4all.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owloaddocuments.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_2.5_32b.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_1.5b_q6.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_3b_q4.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q4.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q6.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_qwencoder_7b.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owquadrant_clicker.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owsortandselect.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/CreateInstance.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/Table.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/blue_down_arrow.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/book.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/document_generator.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/edge_llm.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/green_check.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/operationSystem.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owaccumulator.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owemptyswitch.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owfilemetadata.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owfilesyncchecker.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owfusion_nm.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owkeywords.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owlargelanguagemodel.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owloaddocuments.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owmodel_embeddings.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owsortandselect.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/quadrantclicker.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/orangecontrib/__init__.py +0 -0
- {aait-2.3.13 → aait-2.3.14.1}/setup.cfg +0 -0
|
@@ -112,6 +112,7 @@ orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py
|
|
|
112
112
|
orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py
|
|
113
113
|
orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py
|
|
114
114
|
orangecontrib/AAIT/widgets/OWSortAndSelect.py
|
|
115
|
+
orangecontrib/AAIT/widgets/OWSplitExcelSheets.py
|
|
115
116
|
orangecontrib/AAIT/widgets/OWStartLoop.py
|
|
116
117
|
orangecontrib/AAIT/widgets/OWTable2Corpus.py
|
|
117
118
|
orangecontrib/AAIT/widgets/OWTranslation.py
|
|
@@ -180,6 +181,7 @@ orangecontrib/AAIT/widgets/designer/owsavewithpath.ui
|
|
|
180
181
|
orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui
|
|
181
182
|
orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui
|
|
182
183
|
orangecontrib/AAIT/widgets/designer/owsortandselect.ui
|
|
184
|
+
orangecontrib/AAIT/widgets/designer/owsplitexcelsheets.ui
|
|
183
185
|
orangecontrib/AAIT/widgets/designer/owstartloop.ui
|
|
184
186
|
orangecontrib/AAIT/widgets/designer/owtable2corpus.ui
|
|
185
187
|
orangecontrib/AAIT/widgets/designer/owtranslation.ui
|
|
@@ -130,9 +130,14 @@ def open_terminal(command, with_qt=True, env=None):
|
|
|
130
130
|
# command.insert(0,"/k")
|
|
131
131
|
# command.insert(0, "cmd.exe")
|
|
132
132
|
# process = subprocess.Popen(command, env=env,creationflags=subprocess.CREATE_NEW_CONSOLE)
|
|
133
|
-
process = subprocess.Popen(
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
process = subprocess.Popen(
|
|
134
|
+
command,
|
|
135
|
+
env=env,
|
|
136
|
+
creationflags=(
|
|
137
|
+
subprocess.CREATE_NEW_CONSOLE |
|
|
138
|
+
subprocess.CREATE_NEW_PROCESS_GROUP
|
|
139
|
+
)
|
|
140
|
+
)
|
|
136
141
|
|
|
137
142
|
if process:
|
|
138
143
|
return process.pid
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
import openpyxl
|
|
4
|
+
from openpyxl import Workbook
|
|
5
|
+
|
|
6
|
+
import Orange.data
|
|
7
|
+
from Orange.data import Table, Domain, StringVariable
|
|
8
|
+
from Orange.widgets.utils.signals import Input, Output
|
|
9
|
+
from Orange.widgets.settings import Setting
|
|
10
|
+
from AnyQt.QtWidgets import QApplication, QCheckBox, QPushButton
|
|
11
|
+
|
|
12
|
+
if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
|
|
13
|
+
from Orange.widgets.orangecontrib.AAIT.utils import base_widget, thread_management
|
|
14
|
+
from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
|
|
15
|
+
else:
|
|
16
|
+
from orangecontrib.AAIT.utils import base_widget, thread_management
|
|
17
|
+
from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@apply_modification_from_python_file(filepath_original_widget=__file__)
|
|
21
|
+
class OWSplitExcelSheets(base_widget.BaseListWidget):
|
|
22
|
+
|
|
23
|
+
name = "Split Excel Sheets"
|
|
24
|
+
description = "Split Excel files into one file per sheet."
|
|
25
|
+
category = "AAIT - TOOLBOX"
|
|
26
|
+
icon = "icons/splitexcelsheets.png"
|
|
27
|
+
priority = 1070
|
|
28
|
+
want_control_area = False
|
|
29
|
+
|
|
30
|
+
gui = os.path.join(
|
|
31
|
+
os.path.dirname(os.path.abspath(__file__)),
|
|
32
|
+
"designer/owsplitexcelsheets.ui"
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
recursive = Setting("True")
|
|
36
|
+
|
|
37
|
+
class Inputs:
|
|
38
|
+
data = Input("Data", Orange.data.Table)
|
|
39
|
+
|
|
40
|
+
class Outputs:
|
|
41
|
+
data = Output("Generated files", Orange.data.Table)
|
|
42
|
+
|
|
43
|
+
@Inputs.data
|
|
44
|
+
def set_data(self, in_data):
|
|
45
|
+
self.data = in_data
|
|
46
|
+
if in_data is None:
|
|
47
|
+
self.Outputs.data.send(None)
|
|
48
|
+
|
|
49
|
+
def __init__(self):
|
|
50
|
+
super().__init__()
|
|
51
|
+
|
|
52
|
+
self.setFixedWidth(480)
|
|
53
|
+
self.setFixedHeight(360)
|
|
54
|
+
|
|
55
|
+
self.data = None
|
|
56
|
+
self.thread = None
|
|
57
|
+
|
|
58
|
+
self.checkBox_recursive = self.findChild(QCheckBox, "checkBox_recursive")
|
|
59
|
+
self.pushButton_run = self.findChild(QPushButton, "pushButton_run")
|
|
60
|
+
|
|
61
|
+
self.checkBox_recursive.setChecked(self.recursive == "True")
|
|
62
|
+
self.checkBox_recursive.stateChanged.connect(self.on_recursive_changed)
|
|
63
|
+
self.pushButton_run.clicked.connect(self.run)
|
|
64
|
+
|
|
65
|
+
self.post_initialized()
|
|
66
|
+
|
|
67
|
+
def on_recursive_changed(self, state):
|
|
68
|
+
self.recursive = "True" if state else "False"
|
|
69
|
+
|
|
70
|
+
def run(self):
|
|
71
|
+
self.error("")
|
|
72
|
+
self.warning("")
|
|
73
|
+
|
|
74
|
+
if self.thread is not None:
|
|
75
|
+
self.thread.safe_quit()
|
|
76
|
+
|
|
77
|
+
if self.data is None or len(self.data) == 0:
|
|
78
|
+
self.Outputs.data.send(None)
|
|
79
|
+
return
|
|
80
|
+
|
|
81
|
+
self.progressBarInit()
|
|
82
|
+
|
|
83
|
+
self.thread = thread_management.Thread(
|
|
84
|
+
self.split_excel_worker
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
self.thread.progress.connect(self.handle_progress)
|
|
88
|
+
self.thread.result.connect(self.handle_result)
|
|
89
|
+
self.thread.finish.connect(self.handle_finish)
|
|
90
|
+
self.thread.start()
|
|
91
|
+
|
|
92
|
+
def handle_progress(self, value: float):
|
|
93
|
+
self.progressBarSet(value)
|
|
94
|
+
|
|
95
|
+
def handle_result(self, result):
|
|
96
|
+
try:
|
|
97
|
+
if not result:
|
|
98
|
+
self.Outputs.data.send(None)
|
|
99
|
+
return
|
|
100
|
+
|
|
101
|
+
domain = Domain([], metas=[StringVariable("path")])
|
|
102
|
+
table = Table.from_numpy(
|
|
103
|
+
domain,
|
|
104
|
+
X=[[] for _ in result],
|
|
105
|
+
metas=result
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
self.Outputs.data.send(table)
|
|
109
|
+
|
|
110
|
+
except Exception as e:
|
|
111
|
+
self.error(f"Processing error: {e}")
|
|
112
|
+
self.Outputs.data.send(None)
|
|
113
|
+
|
|
114
|
+
def handle_finish(self):
|
|
115
|
+
self.progressBarFinished()
|
|
116
|
+
|
|
117
|
+
def post_initialized(self):
|
|
118
|
+
pass
|
|
119
|
+
|
|
120
|
+
@staticmethod
|
|
121
|
+
def is_excel_already_processed(filepath):
|
|
122
|
+
name_no_ext = os.path.splitext(os.path.basename(filepath))[0]
|
|
123
|
+
parent = os.path.dirname(filepath)
|
|
124
|
+
target_dir = os.path.join(parent, f"{name_no_ext}_sheets")
|
|
125
|
+
|
|
126
|
+
if not os.path.isdir(target_dir):
|
|
127
|
+
return False
|
|
128
|
+
|
|
129
|
+
return any(f.lower().endswith(".xlsx") for f in os.listdir(target_dir))
|
|
130
|
+
|
|
131
|
+
def split_excel_worker(self, progress_callback):
|
|
132
|
+
excel_ext = (".xlsx", ".xlsm", ".xls", ".xlsb")
|
|
133
|
+
all_files = []
|
|
134
|
+
|
|
135
|
+
# Récupération directe des chemins depuis les metas
|
|
136
|
+
bases = [
|
|
137
|
+
str(row[0])
|
|
138
|
+
for row in self.data.metas
|
|
139
|
+
if row and os.path.isdir(row[0])
|
|
140
|
+
]
|
|
141
|
+
|
|
142
|
+
excel_files = []
|
|
143
|
+
|
|
144
|
+
for base in bases:
|
|
145
|
+
walker = os.walk(base) if self.recursive == "True" else [(base, [], os.listdir(base))]
|
|
146
|
+
|
|
147
|
+
for root, _, files in walker:
|
|
148
|
+
for f in files:
|
|
149
|
+
if not f.lower().endswith(excel_ext):
|
|
150
|
+
continue
|
|
151
|
+
if f.startswith("~$"):
|
|
152
|
+
continue
|
|
153
|
+
|
|
154
|
+
full_path = os.path.join(root, f)
|
|
155
|
+
|
|
156
|
+
if self.is_excel_already_processed(full_path):
|
|
157
|
+
continue
|
|
158
|
+
|
|
159
|
+
excel_files.append(full_path)
|
|
160
|
+
|
|
161
|
+
total = len(excel_files)
|
|
162
|
+
if total == 0:
|
|
163
|
+
return []
|
|
164
|
+
|
|
165
|
+
for idx, filepath in enumerate(excel_files, start=1):
|
|
166
|
+
name_no_ext = os.path.splitext(os.path.basename(filepath))[0]
|
|
167
|
+
parent = os.path.dirname(filepath)
|
|
168
|
+
target_dir = os.path.join(parent, f"{name_no_ext}_sheets")
|
|
169
|
+
|
|
170
|
+
os.makedirs(target_dir, exist_ok=True)
|
|
171
|
+
|
|
172
|
+
try:
|
|
173
|
+
# Mode read_only=True pour économiser la RAM sur les gros fichiers
|
|
174
|
+
# data_only=True pour extraire les valeurs et non les formules
|
|
175
|
+
wb_source = openpyxl.load_workbook(filepath, read_only=True, data_only=True)
|
|
176
|
+
|
|
177
|
+
for sheet_name in wb_source.sheetnames:
|
|
178
|
+
safe_name = "".join(c if c.isalnum() else "_" for c in sheet_name)
|
|
179
|
+
out_path = os.path.join(target_dir, f"{safe_name}.xlsx")
|
|
180
|
+
|
|
181
|
+
# Création du nouveau classeur pour la feuille individuelle
|
|
182
|
+
wb_dest = Workbook()
|
|
183
|
+
ws_dest = wb_dest.active
|
|
184
|
+
ws_dest.title = sheet_name
|
|
185
|
+
|
|
186
|
+
ws_source = wb_source[sheet_name]
|
|
187
|
+
|
|
188
|
+
has_data = False
|
|
189
|
+
# On itère sur les lignes de la source
|
|
190
|
+
for row in ws_source.rows:
|
|
191
|
+
row_values = [cell.value for cell in row]
|
|
192
|
+
# On vérifie si la ligne contient au moins une donnée
|
|
193
|
+
if any(v is not None for v in row_values):
|
|
194
|
+
ws_dest.append(row_values)
|
|
195
|
+
has_data = True
|
|
196
|
+
|
|
197
|
+
if has_data:
|
|
198
|
+
wb_dest.save(out_path)
|
|
199
|
+
all_files.append([out_path.replace("\\", "/")])
|
|
200
|
+
|
|
201
|
+
wb_source.close()
|
|
202
|
+
|
|
203
|
+
except Exception as e:
|
|
204
|
+
print(f"Skipping {filepath} due to error: {e}")
|
|
205
|
+
continue
|
|
206
|
+
|
|
207
|
+
progress_callback(idx / total * 100)
|
|
208
|
+
|
|
209
|
+
return all_files
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
if __name__ == "__main__":
|
|
213
|
+
app = QApplication(sys.argv)
|
|
214
|
+
w = OWSplitExcelSheets()
|
|
215
|
+
w.show()
|
|
216
|
+
app.exec()
|
|
@@ -0,0 +1,141 @@
|
|
|
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>480</width>
|
|
10
|
+
<height>360</height>
|
|
11
|
+
</rect>
|
|
12
|
+
</property>
|
|
13
|
+
<property name="windowTitle">
|
|
14
|
+
<string>Split Excel Sheets</string>
|
|
15
|
+
</property>
|
|
16
|
+
|
|
17
|
+
<widget class="QGroupBox" name="groupBox">
|
|
18
|
+
<property name="geometry">
|
|
19
|
+
<rect>
|
|
20
|
+
<x>20</x>
|
|
21
|
+
<y>20</y>
|
|
22
|
+
<width>440</width>
|
|
23
|
+
<height>120</height>
|
|
24
|
+
</rect>
|
|
25
|
+
</property>
|
|
26
|
+
<property name="title">
|
|
27
|
+
<string>Parameters</string>
|
|
28
|
+
</property>
|
|
29
|
+
|
|
30
|
+
<widget class="QCheckBox" name="checkBox_recursive">
|
|
31
|
+
<property name="geometry">
|
|
32
|
+
<rect>
|
|
33
|
+
<x>20</x>
|
|
34
|
+
<y>40</y>
|
|
35
|
+
<width>380</width>
|
|
36
|
+
<height>22</height>
|
|
37
|
+
</rect>
|
|
38
|
+
</property>
|
|
39
|
+
<property name="text">
|
|
40
|
+
<string>Process sub-directories recursively</string>
|
|
41
|
+
</property>
|
|
42
|
+
<property name="checked">
|
|
43
|
+
<bool>true</bool>
|
|
44
|
+
</property>
|
|
45
|
+
</widget>
|
|
46
|
+
|
|
47
|
+
<widget class="QLabel" name="label">
|
|
48
|
+
<property name="geometry">
|
|
49
|
+
<rect>
|
|
50
|
+
<x>20</x>
|
|
51
|
+
<y>75</y>
|
|
52
|
+
<width>390</width>
|
|
53
|
+
<height>30</height>
|
|
54
|
+
</rect>
|
|
55
|
+
</property>
|
|
56
|
+
<property name="text">
|
|
57
|
+
<string>Each Excel file is split into one file per sheet.</string>
|
|
58
|
+
</property>
|
|
59
|
+
<property name="wordWrap">
|
|
60
|
+
<bool>true</bool>
|
|
61
|
+
</property>
|
|
62
|
+
</widget>
|
|
63
|
+
</widget>
|
|
64
|
+
|
|
65
|
+
<widget class="QGroupBox" name="groupBox_3">
|
|
66
|
+
<property name="geometry">
|
|
67
|
+
<rect>
|
|
68
|
+
<x>20</x>
|
|
69
|
+
<y>150</y>
|
|
70
|
+
<width>440</width>
|
|
71
|
+
<height>120</height>
|
|
72
|
+
</rect>
|
|
73
|
+
</property>
|
|
74
|
+
<property name="title">
|
|
75
|
+
<string>Column selection</string>
|
|
76
|
+
</property>
|
|
77
|
+
|
|
78
|
+
<widget class="QLabel" name="Description_4">
|
|
79
|
+
<property name="geometry">
|
|
80
|
+
<rect>
|
|
81
|
+
<x>10</x>
|
|
82
|
+
<y>25</y>
|
|
83
|
+
<width>420</width>
|
|
84
|
+
<height>40</height>
|
|
85
|
+
</rect>
|
|
86
|
+
</property>
|
|
87
|
+
<property name="text">
|
|
88
|
+
<string>Select the column containing input directories.</string>
|
|
89
|
+
</property>
|
|
90
|
+
<property name="wordWrap">
|
|
91
|
+
<bool>true</bool>
|
|
92
|
+
</property>
|
|
93
|
+
</widget>
|
|
94
|
+
|
|
95
|
+
<widget class="QWidget" name="placeholder" native="true">
|
|
96
|
+
<property name="geometry">
|
|
97
|
+
<rect>
|
|
98
|
+
<x>0</x>
|
|
99
|
+
<y>65</y>
|
|
100
|
+
<width>440</width>
|
|
101
|
+
<height>55</height>
|
|
102
|
+
</rect>
|
|
103
|
+
</property>
|
|
104
|
+
</widget>
|
|
105
|
+
</widget>
|
|
106
|
+
|
|
107
|
+
<widget class="QPushButton" name="pushButton_run">
|
|
108
|
+
<property name="geometry">
|
|
109
|
+
<rect>
|
|
110
|
+
<x>160</x>
|
|
111
|
+
<y>300</y>
|
|
112
|
+
<width>300</width>
|
|
113
|
+
<height>30</height>
|
|
114
|
+
</rect>
|
|
115
|
+
</property>
|
|
116
|
+
<property name="text">
|
|
117
|
+
<string>Run</string>
|
|
118
|
+
</property>
|
|
119
|
+
</widget>
|
|
120
|
+
|
|
121
|
+
<widget class="QCheckBox" name="checkBox_send">
|
|
122
|
+
<property name="enabled">
|
|
123
|
+
<bool>true</bool>
|
|
124
|
+
</property>
|
|
125
|
+
<property name="geometry">
|
|
126
|
+
<rect>
|
|
127
|
+
<x>20</x>
|
|
128
|
+
<y>308</y>
|
|
129
|
+
<width>130</width>
|
|
130
|
+
<height>18</height>
|
|
131
|
+
</rect>
|
|
132
|
+
</property>
|
|
133
|
+
<property name="text">
|
|
134
|
+
<string>Auto send data</string>
|
|
135
|
+
</property>
|
|
136
|
+
</widget>
|
|
137
|
+
|
|
138
|
+
</widget>
|
|
139
|
+
<resources/>
|
|
140
|
+
<connections/>
|
|
141
|
+
</ui>
|
|
@@ -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.
|
|
7
|
+
VERSION = "2.3.14.1" # 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
|