aait 2.1.0__tar.gz → 2.1.2__tar.gz

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