aait 2.2.0__tar.gz → 2.2.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.
Files changed (269) hide show
  1. {aait-2.2.0 → aait-2.2.2}/PKG-INFO +1 -1
  2. {aait-2.2.0 → aait-2.2.2}/aait.egg-info/PKG-INFO +1 -1
  3. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/windows_utils.py +14 -12
  4. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWFusionNM.py +15 -3
  5. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWGenerateWord.py +4 -16
  6. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWInputSelector.py +62 -20
  7. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +29 -6
  8. {aait-2.2.0 → aait-2.2.2}/setup.py +1 -1
  9. {aait-2.2.0 → aait-2.2.2}/License.txt +0 -0
  10. {aait-2.2.0 → aait-2.2.2}/aait.egg-info/SOURCES.txt +0 -0
  11. {aait-2.2.0 → aait-2.2.2}/aait.egg-info/dependency_links.txt +0 -0
  12. {aait-2.2.0 → aait-2.2.2}/aait.egg-info/entry_points.txt +0 -0
  13. {aait-2.2.0 → aait-2.2.2}/aait.egg-info/namespace_packages.txt +0 -0
  14. {aait-2.2.0 → aait-2.2.2}/aait.egg-info/requires.txt +0 -0
  15. {aait-2.2.0 → aait-2.2.2}/aait.egg-info/top_level.txt +0 -0
  16. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/__init__.py +0 -0
  17. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
  18. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
  19. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
  20. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
  21. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
  22. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
  23. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
  24. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
  25. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
  26. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
  27. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
  28. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
  29. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
  30. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
  31. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
  32. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
  33. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
  34. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
  35. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
  36. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
  37. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
  38. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
  39. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
  40. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
  41. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
  42. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
  43. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
  44. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
  45. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
  46. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
  47. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
  48. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
  49. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/__init__.py +0 -0
  50. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/answers.py +0 -0
  51. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/chunking.py +0 -0
  52. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/embeddings.py +0 -0
  53. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/finetuning.py +0 -0
  54. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
  55. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
  56. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/lemmes.py +0 -0
  57. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
  58. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
  59. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
  60. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/process_documents.py +0 -0
  61. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
  62. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/quickpy.py +0 -0
  63. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/test.py +0 -0
  64. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/test_functions.py +0 -0
  65. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/llm/translations.py +0 -0
  66. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
  67. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
  68. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
  69. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/MetManagement.py +0 -0
  70. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
  71. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/__init__.py +0 -0
  72. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
  73. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
  74. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
  75. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/import_uic.py +0 -0
  76. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
  77. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
  78. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
  79. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
  80. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
  81. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/thread_management.py +0 -0
  82. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
  83. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
  84. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
  85. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
  86. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
  87. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
  88. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWAddColumns.py +0 -0
  89. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
  90. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
  91. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
  92. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
  93. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
  94. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
  95. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -0
  96. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
  97. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWEmptySwitch.py +0 -0
  98. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
  99. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWExecuteScript.py +0 -0
  100. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
  101. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
  102. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWFileMetadata.py +0 -0
  103. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWFileSyncChecker.py +0 -0
  104. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
  105. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +0 -0
  106. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
  107. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
  108. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWKeywordsDetection.py +0 -0
  109. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
  110. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
  111. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
  112. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
  113. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
  114. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
  115. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
  116. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
  117. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
  118. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
  119. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
  120. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
  121. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
  122. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
  123. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
  124. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
  125. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
  126. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
  127. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
  128. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
  129. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
  130. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
  131. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
  132. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
  133. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
  134. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
  135. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +0 -0
  136. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWSelectColumnDynamique.py +0 -0
  137. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +0 -0
  138. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
  139. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
  140. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
  141. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
  142. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/OWUnzipFolder.py +0 -0
  143. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
  144. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/__init__.py +0 -0
  145. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
  146. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
  147. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owaddcolumns.ui +0 -0
  148. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
  149. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
  150. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
  151. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
  152. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
  153. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owemptyswitch.ui +0 -0
  154. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
  155. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
  156. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
  157. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
  158. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owfilemetadata.ui +0 -0
  159. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owfilesyncchecker.ui +0 -0
  160. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
  161. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +0 -0
  162. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owfusion_nm.ui +0 -0
  163. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owgenerate_word.ui +0 -0
  164. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
  165. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
  166. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
  167. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owkeywordsdetection.ui +0 -0
  168. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
  169. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
  170. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
  171. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
  172. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
  173. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
  174. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
  175. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
  176. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
  177. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
  178. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_2.5_32b.ui +0 -0
  179. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_1.5b_q6.ui +0 -0
  180. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_3b_q4.ui +0 -0
  181. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q4.ui +0 -0
  182. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen_instruct_7b_q6.ui +0 -0
  183. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwencoder_7b.ui +0 -0
  184. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
  185. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
  186. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
  187. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
  188. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
  189. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
  190. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
  191. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
  192. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owsavewithpath.ui +0 -0
  193. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owselect_column_dynamic.ui +0 -0
  194. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owselect_row_dynamic.ui +0 -0
  195. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
  196. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
  197. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
  198. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
  199. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +0 -0
  200. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
  201. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
  202. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
  203. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
  204. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
  205. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
  206. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
  207. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/document_generator.png +0 -0
  208. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
  209. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
  210. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
  211. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
  212. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
  213. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
  214. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
  215. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
  216. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
  217. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
  218. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
  219. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
  220. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
  221. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
  222. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
  223. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
  224. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
  225. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
  226. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
  227. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
  228. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
  229. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
  230. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
  231. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
  232. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owemptyswitch.svg +0 -0
  233. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owenvinfo.png +0 -0
  234. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
  235. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
  236. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owfilemetadata.svg +0 -0
  237. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +0 -0
  238. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owfilesyncchecker.svg +0 -0
  239. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
  240. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owfusion_nm.png +0 -0
  241. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
  242. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
  243. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owkeywordsdetection.png +0 -0
  244. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
  245. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
  246. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
  247. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
  248. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
  249. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
  250. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
  251. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
  252. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
  253. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
  254. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
  255. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
  256. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
  257. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owselectcolumndynamique.png +0 -0
  258. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
  259. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
  260. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
  261. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
  262. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
  263. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
  264. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
  265. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
  266. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
  267. {aait-2.2.0 → aait-2.2.2}/orangecontrib/AAIT/widgets/icons/zip.svg +0 -0
  268. {aait-2.2.0 → aait-2.2.2}/orangecontrib/__init__.py +0 -0
  269. {aait-2.2.0 → aait-2.2.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aait
3
- Version: 2.2.0
3
+ Version: 2.2.2
4
4
  Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
5
  Home-page:
6
6
  Author: Orange community
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aait
3
- Version: 2.2.0
3
+ Version: 2.2.2
4
4
  Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
5
  Home-page:
6
6
  Author: Orange community
@@ -54,7 +54,7 @@ if os.name=='nt':
54
54
 
55
55
  return not aborted
56
56
 
57
- def select_folder_ctypes():
57
+ def select_folder_ctypes(title="Select a directory"):
58
58
  """
59
59
  Opens a native Windows folder selection dialog with enforced modal-like behavior, without attaching to any parent window.
60
60
 
@@ -124,7 +124,7 @@ if os.name=='nt':
124
124
  browse_info.hwndOwner = 0
125
125
  browse_info.pidlRoot = None
126
126
  browse_info.pszDisplayName = ctypes.cast(display_name_buffer, ctypes.c_wchar_p)
127
- browse_info.lpszTitle = "Select a directory"
127
+ browse_info.lpszTitle = title
128
128
  browse_info.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE
129
129
  browse_info.lpfn = None
130
130
  browse_info.lParam = None
@@ -198,7 +198,7 @@ if os.name=='nt':
198
198
  import ctypes.wintypes
199
199
 
200
200
 
201
- def select_file_ctypes(multi_select=False, file_filter="All Files (*.*)"):
201
+ def select_file_ctypes(multi_select=False, file_filter="All Files (*.*)", dialog_title="Select File(s)"):
202
202
  """
203
203
  Opens a native Windows file selection dialog with enforced modal-like behavior.
204
204
 
@@ -262,7 +262,7 @@ if os.name=='nt':
262
262
  ofn.lpstrFilter = filter_combined
263
263
  ofn.lpstrFile = ctypes.cast(file_buffer, ctypes.c_wchar_p)
264
264
  ofn.nMaxFile = MAX_PATH
265
- ofn.lpstrTitle = "Select File(s)"
265
+ ofn.lpstrTitle = dialog_title
266
266
  ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST
267
267
  if multi_select:
268
268
  ofn.Flags |= OFN_ALLOWMULTISELECT
@@ -291,12 +291,13 @@ if os.name=='nt':
291
291
  new_hwnds = list(set(hwnd_list_after) - set(hwnd_list_before))
292
292
 
293
293
  selector_hwnd = None
294
+ target_phrase = (dialog_title or "Select").lower()
294
295
  for hwnd in new_hwnds:
295
296
  length = user32.GetWindowTextLengthW(hwnd)
296
297
  if length > 0:
297
- title = ctypes.create_unicode_buffer(length + 1)
298
- user32.GetWindowTextW(hwnd, title, length + 1)
299
- if "Select" in title.value:
298
+ window_title = ctypes.create_unicode_buffer(length + 1)
299
+ user32.GetWindowTextW(hwnd, window_title, length + 1)
300
+ if target_phrase in window_title.value.lower():
300
301
  selector_hwnd = hwnd
301
302
  break
302
303
 
@@ -335,7 +336,7 @@ if os.name=='nt':
335
336
 
336
337
 
337
338
 
338
- def select_new_file_ctypes(file_filter="All Files (*.*)"):
339
+ def select_new_file_ctypes(file_filter="All Files (*.*)", dialog_title="Create New File"):
339
340
  """
340
341
  Opens a native Windows file dialog for creating a new file.
341
342
 
@@ -401,7 +402,7 @@ def select_new_file_ctypes(file_filter="All Files (*.*)"):
401
402
  ofn.lpstrFilter = filter_combined
402
403
  ofn.lpstrFile = ctypes.cast(file_buffer, ctypes.c_wchar_p)
403
404
  ofn.nMaxFile = MAX_PATH
404
- ofn.lpstrTitle = "Create New File"
405
+ ofn.lpstrTitle = dialog_title
405
406
  ofn.Flags = OFN_EXPLORER
406
407
  ofn.lpstrDefExt = first_ext # <- extension ajoutée automatiquement si absente
407
408
 
@@ -427,12 +428,13 @@ def select_new_file_ctypes(file_filter="All Files (*.*)"):
427
428
  new_hwnds = list(set(hwnd_list_after) - set(hwnd_list_before))
428
429
 
429
430
  selector_hwnd = None
431
+ target_phrase = (dialog_title or "Save").lower()
430
432
  for hwnd in new_hwnds:
431
433
  length = user32.GetWindowTextLengthW(hwnd)
432
434
  if length > 0:
433
- title = ctypes.create_unicode_buffer(length + 1)
434
- user32.GetWindowTextW(hwnd, title, length + 1)
435
- if "Save" in title.value:
435
+ window_title = ctypes.create_unicode_buffer(length + 1)
436
+ user32.GetWindowTextW(hwnd, window_title, length + 1)
437
+ if target_phrase in window_title.value.lower():
436
438
  selector_hwnd = hwnd
437
439
  break
438
440
 
@@ -368,8 +368,19 @@ class OWFusionNN(widget.OWWidget):
368
368
  Y_out = np.full((n_rows,), np.nan)
369
369
  else:
370
370
  Y_out = np.full((n_rows, len(out_classes)), np.nan)
371
- M_out = np.empty((n_rows, len(out_metas)), dtype=object)
372
- M_out[:] = np.nan
371
+ M_out = np.full((n_rows, len(out_metas)), None, dtype=object)
372
+ def normalize_meta_value(value):
373
+ if value is None:
374
+ return None
375
+ if isinstance(value, (float, np.floating)):
376
+ if np.isnan(value):
377
+ return None
378
+ try:
379
+ if value != value:
380
+ return None
381
+ except Exception:
382
+ pass
383
+ return value
373
384
 
374
385
  # Helpers d'accès aux valeurs source
375
386
  def get_class_val(table: Orange.data.Table, row: int, idx: int):
@@ -405,7 +416,8 @@ class OWFusionNN(widget.OWWidget):
405
416
  if s != side:
406
417
  continue
407
418
  if src_table.metas.shape[1] > idx:
408
- M_out[out_row, pos] = src_table.metas[src_row, idx]
419
+ raw_value = src_table.metas[src_row, idx]
420
+ M_out[out_row, pos] = normalize_meta_value(raw_value)
409
421
 
410
422
  # Remplir lignes: appariées, puis A-only, puis B-only
411
423
  r = 0
@@ -139,13 +139,10 @@ class OWDocumentGenerator(widget.OWWidget):
139
139
  @Inputs.tables
140
140
  def set_table(self, index, data):
141
141
  """Tables à insérer - le nom de la connexion = balise cible"""
142
- print(index)
143
142
  if data is not None:
144
143
  # Essayer de récupérer le nom de la table depuis les métadonnées
145
144
  table_name = self.get_table_name(data, index)
146
145
  self.tables_dict[table_name] = data
147
- print(self.tables_dict)
148
- print(f"Table '{table_name}' connectée")
149
146
  self.check_and_run()
150
147
 
151
148
  @Inputs.tables.insert
@@ -155,8 +152,6 @@ class OWDocumentGenerator(widget.OWWidget):
155
152
  if data is not None:
156
153
  table_name = self.get_table_name(data, index)
157
154
  self.tables_dict[table_name] = data
158
- print(self.tables_dict)
159
- print(f"Table '{table_name}' ajoutée")
160
155
  self.check_and_run()
161
156
 
162
157
  @Inputs.tables.remove
@@ -164,7 +159,6 @@ class OWDocumentGenerator(widget.OWWidget):
164
159
  """Gère la suppression d'une table"""
165
160
  # Trouver et supprimer la table correspondante
166
161
  key=list(self.tables_dict.keys())
167
- print(" la table a supprimer:",self.tables_dict[key[index]])
168
162
  del self.tables_dict[key[index]]
169
163
  self.check_and_run()
170
164
 
@@ -198,7 +192,6 @@ class OWDocumentGenerator(widget.OWWidget):
198
192
  """Méthode principale de traitement"""
199
193
  self.error("")
200
194
  self.warning("")
201
- print("")
202
195
 
203
196
  try:
204
197
  # 1. Charger le template
@@ -208,7 +201,6 @@ class OWDocumentGenerator(widget.OWWidget):
208
201
  return
209
202
 
210
203
  self.doc = Document(template_path)
211
- print(f"Template chargé : {os.path.basename(template_path)}")
212
204
 
213
205
  # 2. Effectuer les remplacements de texte
214
206
  if self.replacements_table is not None:
@@ -224,7 +216,6 @@ class OWDocumentGenerator(widget.OWWidget):
224
216
  # 5. Envoyer le résultat
225
217
  self.send_result(output_path)
226
218
 
227
- print(f"✅ Document généré : {os.path.basename(output_path)}")
228
219
 
229
220
  except Exception as e:
230
221
  self.error(f"Erreur : {str(e)}")
@@ -322,7 +313,6 @@ class OWDocumentGenerator(widget.OWWidget):
322
313
  self.replace_text_in_doc(target, value)
323
314
  count += 1
324
315
 
325
- print(f"✓ {count} remplacements de texte effectués")
326
316
 
327
317
  def replace_text_in_doc(self, placeholder: str, value: str):
328
318
  """Remplace du texte dans tout le document"""
@@ -387,11 +377,8 @@ class OWDocumentGenerator(widget.OWWidget):
387
377
 
388
378
  if self.insert_table_in_doc(target, table_data):
389
379
  count += 1 # Compteur pour l'app
390
- print(f"✓ Table insérée à la position {target}")
391
380
 
392
- if count > 0:
393
- print("✓ ", count, "tableaux insérés")
394
- print(f"✓ {count} tableaux insérés")
381
+
395
382
 
396
383
  def insert_table_in_doc(self, tag: str, table_data: Table) -> bool:
397
384
  """Insère un tableau dans le document"""
@@ -534,6 +521,7 @@ class OWDocumentGenerator(widget.OWWidget):
534
521
  rFonts.set(qn('w:hAnsi'), self.default_font)
535
522
 
536
523
 
524
+
537
525
  def save_document(self) -> str:
538
526
  """Sauvegarde le document"""
539
527
  output_name = "output.docx"
@@ -544,12 +532,12 @@ class OWDocumentGenerator(widget.OWWidget):
544
532
 
545
533
  # Chercher Output_Name
546
534
  for attr in self.paths_table.domain.attributes:
547
- if attr.name == "Output_Name":
535
+ if attr.name == "Output_Path":
548
536
  output_name = str(row[attr])
549
537
  break
550
538
  else:
551
539
  for i, meta in enumerate(self.paths_table.domain.metas):
552
- if meta.name == "Output_Name":
540
+ if meta.name == "Output_Path":
553
541
  output_name = str(self.paths_table.metas[0, i])
554
542
  break
555
543
 
@@ -38,6 +38,7 @@ class OWInputSelector(OWWidget):
38
38
  new_file:str = Setting("False")
39
39
  combo_box_current_text: str=Setting("All (*.*)")
40
40
  line_edit_value:str=Setting("")
41
+ dialog_window_title: str = Setting("")
41
42
  def update_qt_view_from_settings(self):
42
43
  if str(self.select_folder_radio_button_checked) =="True":
43
44
  self.radioButton.setChecked(True)
@@ -45,6 +46,7 @@ class OWInputSelector(OWWidget):
45
46
  self.checkBox.hide()
46
47
  self.comboBox.hide()
47
48
  self.checkBox_new_file.hide()
49
+ self.update_dialog_title_placeholder()
48
50
  return
49
51
  self.radioButton.setChecked(False)
50
52
  self.radioButton2.setChecked(True)
@@ -70,6 +72,7 @@ class OWInputSelector(OWWidget):
70
72
  self.checkBox.show()
71
73
  self.comboBox.show()
72
74
  self.checkBox_new_file.show()
75
+ self.update_dialog_title_placeholder()
73
76
 
74
77
 
75
78
  def update_setting_from_qt_view(self):
@@ -107,7 +110,7 @@ class OWInputSelector(OWWidget):
107
110
 
108
111
 
109
112
  self.setFixedWidth(700)
110
- self.setFixedHeight(300)
113
+ self.setFixedHeight(400)
111
114
  uic.loadUi(self.gui, self)
112
115
  self.radioButton=self.findChild(QRadioButton, 'radioButton')
113
116
  self.radioButton2 = self.findChild(QRadioButton, 'radioButton_2')
@@ -117,6 +120,14 @@ class OWInputSelector(OWWidget):
117
120
  self.pushButton = self.findChild(QPushButton, 'pushButton')
118
121
  self.lineEdit=self.findChild(QLineEdit,'lineEdit')
119
122
  self.lineEdit.setText(self.line_edit_value)
123
+ self.windowTitleEdit = self.findChild(QLineEdit, 'lineEdit_window_title')
124
+ if self.windowTitleEdit is not None:
125
+ sanitized_title = (self.dialog_window_title or "").strip()
126
+ if sanitized_title != self.dialog_window_title:
127
+ self.dialog_window_title = sanitized_title
128
+ self.windowTitleEdit.setText(sanitized_title)
129
+ self.update_dialog_title_placeholder()
130
+ self.windowTitleEdit.editingFinished.connect(self.update_dialog_title_setting)
120
131
 
121
132
  # based on the string you can modify orders and add without problem
122
133
  file_types = [
@@ -264,6 +275,35 @@ class OWInputSelector(OWWidget):
264
275
  self.checkBox_new_file.setEnabled(False)
265
276
  self.comboBox.setEnabled(False)
266
277
 
278
+ def update_dialog_title_setting(self):
279
+ if getattr(self, 'windowTitleEdit', None) is None:
280
+ return
281
+ value = self.windowTitleEdit.text().strip()
282
+ if self.windowTitleEdit.text() != value:
283
+ self.windowTitleEdit.setText(value)
284
+ self.dialog_window_title = value
285
+ self.update_dialog_title_placeholder()
286
+
287
+ def get_default_dialog_title(self):
288
+ if str(self.select_folder_radio_button_checked) == "True":
289
+ return "Select a directory"
290
+ if str(self.new_file) == "True":
291
+ return "Create New File"
292
+ return "Select File(s)"
293
+
294
+ def get_effective_dialog_title(self):
295
+ default_title = self.get_default_dialog_title()
296
+ if self.dialog_window_title:
297
+ value = self.dialog_window_title.strip()
298
+ if value:
299
+ return value
300
+ return default_title
301
+
302
+ def update_dialog_title_placeholder(self):
303
+ if getattr(self, 'windowTitleEdit', None) is None:
304
+ return
305
+ self.windowTitleEdit.setPlaceholderText(self.get_default_dialog_title())
306
+
267
307
 
268
308
  @Inputs.input_table
269
309
  def input_table(self, data):
@@ -279,7 +319,7 @@ class OWInputSelector(OWWidget):
279
319
  self.commit_path()
280
320
  return
281
321
  if str(self.select_folder_radio_button_checked) =="True":
282
- self.selected_path=self.select_folder()
322
+ self.selected_path = self.select_folder(self.get_effective_dialog_title())
283
323
  if self.selected_path is None:
284
324
  self.selected_path=""
285
325
  if self.selected_path=="":
@@ -290,10 +330,11 @@ class OWInputSelector(OWWidget):
290
330
  if str(self.select_multiple_file_checked)!="False":
291
331
  multi_select=True
292
332
  file_filter=str(self.combo_box_current_text)
333
+ dialog_title = self.get_effective_dialog_title()
293
334
  if str(self.new_file)=="False":
294
- self.selected_path=self.select_file(multi_select,file_filter)
335
+ self.selected_path = self.select_file(multi_select, file_filter, dialog_title)
295
336
  else:
296
- self.selected_path = self.select_new_file(file_filter)
337
+ self.selected_path = self.select_new_file(file_filter, dialog_title)
297
338
  if self.selected_path is None:
298
339
  self.selected_path = ""
299
340
  if self.selected_path == "":
@@ -301,42 +342,43 @@ class OWInputSelector(OWWidget):
301
342
  self.commit_path()
302
343
  return
303
344
 
304
- def select_file(self,multi_select,file_filtter):
345
+ def select_file(self, multi_select, file_filter, dialog_title):
305
346
  if os.name == 'nt':
306
- return windows_utils.select_file_ctypes(multi_select=multi_select, file_filter=file_filtter)
347
+ return windows_utils.select_file_ctypes(
348
+ multi_select=multi_select,
349
+ file_filter=file_filter,
350
+ dialog_title=dialog_title
351
+ )
307
352
  print("a faire correctement sans qt sur mac (et linux")
308
353
  from AnyQt.QtWidgets import QFileDialog
309
354
  files, _ = QFileDialog.getOpenFileNames(
310
355
  self, # parent
311
- "Sélectionner des fichiers", # titre de la fenêtre
312
- "", # répertoire initial
313
- "Tous les fichiers (*.*)" # filtre
356
+ dialog_title, # window title
357
+ "", # initial directory
358
+ file_filter # filter
314
359
  )
315
360
  return files
316
361
 
317
- def select_new_file(self,file_filtter):
362
+ def select_new_file(self, file_filter, dialog_title):
318
363
  if os.name == 'nt':
319
- return windows_utils.select_new_file_ctypes(file_filter=file_filtter)
364
+ return windows_utils.select_new_file_ctypes(file_filter=file_filter, dialog_title=dialog_title)
320
365
  print("a faire correctement sans qt sur mac (et linux")
321
366
  from AnyQt.QtWidgets import QFileDialog
322
367
  files, _ = QFileDialog.getSaveFileName(
323
368
  self, # parent
324
- "Créer un fichier", # titre de la fenêtre
325
- "", # répertoire initial
326
- "Tous les fichiers (*.*)" # filtre
369
+ dialog_title, # window title
370
+ "", # initial directory
371
+ file_filter # filter
327
372
  )
328
373
  return str(files)
329
374
 
330
-
331
-
332
-
333
- def select_folder(self):
375
+ def select_folder(self, dialog_title):
334
376
  if os.name=='nt':
335
- return windows_utils.select_folder_ctypes()
377
+ return windows_utils.select_folder_ctypes(title=dialog_title)
336
378
  # a faire correctement sans qt sur mac
337
379
  print("a faire correctement sans qt sur mac (et linux")
338
380
  from AnyQt.QtWidgets import QFileDialog
339
- return QFileDialog.getExistingDirectory(self, "Sélectionner un dossier")
381
+ return QFileDialog.getExistingDirectory(self, dialog_title)
340
382
 
341
383
  def commit_path(self):
342
384
  self.error("")
@@ -6,8 +6,8 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>711</width>
10
- <height>324</height>
9
+ <width>717</width>
10
+ <height>382</height>
11
11
  </rect>
12
12
  </property>
13
13
  <property name="windowTitle">
@@ -17,7 +17,7 @@
17
17
  <property name="geometry">
18
18
  <rect>
19
19
  <x>180</x>
20
- <y>220</y>
20
+ <y>270</y>
21
21
  <width>501</width>
22
22
  <height>51</height>
23
23
  </rect>
@@ -30,7 +30,7 @@
30
30
  <property name="geometry">
31
31
  <rect>
32
32
  <x>30</x>
33
- <y>190</y>
33
+ <y>240</y>
34
34
  <width>651</width>
35
35
  <height>20</height>
36
36
  </rect>
@@ -40,7 +40,7 @@
40
40
  <property name="geometry">
41
41
  <rect>
42
42
  <x>20</x>
43
- <y>30</y>
43
+ <y>80</y>
44
44
  <width>671</width>
45
45
  <height>151</height>
46
46
  </rect>
@@ -114,6 +114,29 @@
114
114
  </property>
115
115
  </widget>
116
116
  </widget>
117
+ <widget class="QLabel" name="label_window_title">
118
+ <property name="geometry">
119
+ <rect>
120
+ <x>20</x>
121
+ <y>30</y>
122
+ <width>211</width>
123
+ <height>16</height>
124
+ </rect>
125
+ </property>
126
+ <property name="text">
127
+ <string>Windows dialog title (optional)</string>
128
+ </property>
129
+ </widget>
130
+ <widget class="QLineEdit" name="lineEdit_window_title">
131
+ <property name="geometry">
132
+ <rect>
133
+ <x>20</x>
134
+ <y>50</y>
135
+ <width>651</width>
136
+ <height>20</height>
137
+ </rect>
138
+ </property>
139
+ </widget>
117
140
  <widget class="QCheckBox" name="checkBox_3_send">
118
141
  <property name="enabled">
119
142
  <bool>false</bool>
@@ -121,7 +144,7 @@
121
144
  <property name="geometry">
122
145
  <rect>
123
146
  <x>20</x>
124
- <y>238</y>
147
+ <y>330</y>
125
148
  <width>201</width>
126
149
  <height>16</height>
127
150
  </rect>
@@ -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.2.0" # la version doit être supérieure à la précédente sinon la publication sera refusée
7
+ VERSION = "2.2.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