aait 2.0.2.1__tar.gz → 2.0.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 (256) hide show
  1. aait-2.0.2.2/PKG-INFO +9 -0
  2. aait-2.0.2.2/aait.egg-info/PKG-INFO +9 -0
  3. {aait-2.0.2.1 → aait-2.0.2.2}/aait.egg-info/SOURCES.txt +9 -10
  4. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/MetManagement.py +2 -2
  5. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/windows_utils.py +1 -1
  6. aait-2.0.2.2/orangecontrib/AAIT/widgets/OWFindFilesFromDir.py +125 -0
  7. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py +26 -30
  8. aait-2.0.2.2/orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py +144 -0
  9. aait-2.0.2.2/orangecontrib/AAIT/widgets/OWUnzipFolder.py +89 -0
  10. aait-2.0.2.2/orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui +42 -0
  11. aait-2.0.2.2/orangecontrib/AAIT/widgets/designer/owunzipfolder.ui +32 -0
  12. aait-2.0.2.2/orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg +22 -0
  13. aait-2.0.2.2/orangecontrib/AAIT/widgets/icons/select_dynamic_row.png +0 -0
  14. aait-2.0.2.2/orangecontrib/AAIT/widgets/icons/zip.svg +26 -0
  15. {aait-2.0.2.1 → aait-2.0.2.2}/setup.py +1 -1
  16. aait-2.0.2.1/PKG-INFO +0 -27
  17. aait-2.0.2.1/aait.egg-info/PKG-INFO +0 -27
  18. aait-2.0.2.1/tests/test_class_values_context_handler.py +0 -75
  19. aait-2.0.2.1/tests/test_credentials.py +0 -76
  20. aait-2.0.2.1/tests/test_domain_context_handler.py +0 -401
  21. aait-2.0.2.1/tests/test_gui.py +0 -140
  22. aait-2.0.2.1/tests/test_matplotlib_export.py +0 -43
  23. aait-2.0.2.1/tests/test_perfect_domain_context_handler.py +0 -148
  24. aait-2.0.2.1/tests/test_scatterplot_density.py +0 -59
  25. aait-2.0.2.1/tests/test_settings_handler.py +0 -27
  26. aait-2.0.2.1/tests/test_widgets_outputs.py +0 -29
  27. aait-2.0.2.1/tests/test_workflows.py +0 -80
  28. {aait-2.0.2.1 → aait-2.0.2.2}/License.txt +0 -0
  29. {aait-2.0.2.1 → aait-2.0.2.2}/aait.egg-info/dependency_links.txt +0 -0
  30. {aait-2.0.2.1 → aait-2.0.2.2}/aait.egg-info/entry_points.txt +0 -0
  31. {aait-2.0.2.1 → aait-2.0.2.2}/aait.egg-info/namespace_packages.txt +0 -0
  32. {aait-2.0.2.1 → aait-2.0.2.2}/aait.egg-info/requires.txt +0 -0
  33. {aait-2.0.2.1 → aait-2.0.2.2}/aait.egg-info/top_level.txt +0 -0
  34. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/__init__.py +0 -0
  35. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/SignalReceiver.py +0 -0
  36. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/__init__.py +0 -0
  37. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/audit_widget.py +0 -0
  38. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (2).TIF +0 -0
  39. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (3).TIF +0 -0
  40. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/dataTests/00079473A - Copie (4).TIF +0 -0
  41. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0001.csv +0 -0
  42. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0002.csv +0 -0
  43. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/dataTests/Tir 81mm_0003.csv +0 -0
  44. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/dynamic_results.py +0 -0
  45. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/test_all_widgets.py +0 -0
  46. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/test_server.py +0 -0
  47. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_4all.py +0 -0
  48. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_chunking.py +0 -0
  49. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_edit_table.py +0 -0
  50. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_mpnet_create_embeddings.py +0 -0
  51. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_optimisation.py +0 -0
  52. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_optimisationselection.py +0 -0
  53. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_powfactory.py +0 -0
  54. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_queryllm.py +0 -0
  55. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_spacy_md_fr_lemmatizer.py +0 -0
  56. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widget_traduction.py +0 -0
  57. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/audit_widget/widgets_model.py +0 -0
  58. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/encapsulation/__init__.py +0 -0
  59. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/fix_torch/fix_torch_dll_error.py +0 -0
  60. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/fix_torch/libomp140.x86_64.dll +0 -0
  61. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/GPT4ALL.py +0 -0
  62. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/GPT4ALL_killer.py +0 -0
  63. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/MergeBaseLora.py +0 -0
  64. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/SERV_kill_workflow.py +0 -0
  65. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/SERV_requests.py +0 -0
  66. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/SERV_start_workflow.py +0 -0
  67. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/Tutorial_Finetuning.py +0 -0
  68. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/Tutorial_TestFinetuning.py +0 -0
  69. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/__init__.py +0 -0
  70. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/answers.py +0 -0
  71. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/chunking.py +0 -0
  72. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/embeddings.py +0 -0
  73. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/finetuning.py +0 -0
  74. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/functions_DatasetGeneration.py +0 -0
  75. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/functions_Finetuning.py +0 -0
  76. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/lemmes.py +0 -0
  77. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/lmstudio.py +0 -0
  78. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/main_DatasetGeneration.py +0 -0
  79. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/main_Finetuning.py +0 -0
  80. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/process_documents.py +0 -0
  81. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/prompt_management.py +0 -0
  82. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/quickpy.py +0 -0
  83. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/test.py +0 -0
  84. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/test_functions.py +0 -0
  85. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/llm/translations.py +0 -0
  86. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/optimiser/__init__.py +0 -0
  87. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/optimiser/optuna_multi.py +0 -0
  88. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/CheckMetaData.py +0 -0
  89. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/SimpleDialogQt.py +0 -0
  90. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/__init__.py +0 -0
  91. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/aait_repo_file.py +0 -0
  92. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/check_data_in.py +0 -0
  93. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/delta_local_shared_fodler.py +0 -0
  94. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/import_uic.py +0 -0
  95. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/initialize_from_ini.py +0 -0
  96. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/mac_utils.py +0 -0
  97. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/shared_functions.py +0 -0
  98. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/shared_variables.py +0 -0
  99. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/subprocess_management.py +0 -0
  100. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/thread_management.py +0 -0
  101. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/tools/__init__.py +0 -0
  102. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/tools/change_owcorpus.py +0 -0
  103. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/tools/concat_splitted_pypi.py +0 -0
  104. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/tools/first_time_check.py +0 -0
  105. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/utils/tools/owcorpus_ok.txt +0 -0
  106. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWAAITResourcesManager.py +0 -0
  107. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWApplyRules.py +0 -0
  108. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWCN2rule_view.py +0 -0
  109. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWChunking.py +0 -0
  110. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWConcatRules.py +0 -0
  111. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWConverseLLM.py +0 -0
  112. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWCreateEmbeddings.py +0 -0
  113. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWDisplayMD.py +0 -0
  114. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWEditTable.py +0 -0
  115. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWEndLoop.py +0 -0
  116. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWExecuteScript.py +0 -0
  117. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWExtraChunks.py +0 -0
  118. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWExtractTokens.py +0 -0
  119. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWFileWithPath.py +0 -0
  120. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWGenerateQuestions.py +0 -0
  121. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWGenerateSynthesis.py +0 -0
  122. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWInputSelector.py +0 -0
  123. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWKeywords.py +0 -0
  124. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWLLM4ALL.py +0 -0
  125. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWLMStudio.py +0 -0
  126. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWLanguageDetection.py +0 -0
  127. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWLemmatizer.py +0 -0
  128. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_CE_MiniLML6.py +0 -0
  129. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_Falcon.py +0 -0
  130. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiEnFr.py +0 -0
  131. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_HelsinkiFrEn.py +0 -0
  132. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_MPNET.py +0 -0
  133. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_Mistral.py +0 -0
  134. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen.py +0 -0
  135. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen1B5_Q6.py +0 -0
  136. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen2_5_32B.py +0 -0
  137. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen3B_Q4.py +0 -0
  138. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q4.py +0 -0
  139. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_Qwen7B_Q6.py +0 -0
  140. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_Solar.py +0 -0
  141. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_SolarUncensored.py +0 -0
  142. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_EN.py +0 -0
  143. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWModel_SpacyMD_FR.py +0 -0
  144. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWOptimisation.py +0 -0
  145. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWOptimisationSelection.py +0 -0
  146. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWOptimisationSendScore.py +0 -0
  147. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWProcessDocumentsFromPath.py +0 -0
  148. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWQueryLLM.py +0 -0
  149. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWRandomData.py +0 -0
  150. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWReranking.py +0 -0
  151. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWStartLoop.py +0 -0
  152. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWTable2Corpus.py +0 -0
  153. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWTranslation.py +0 -0
  154. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/OWTrigger.py +0 -0
  155. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/POW_Wfactory.py +0 -0
  156. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/__init__.py +0 -0
  157. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owMarkdown.ui +0 -0
  158. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/ow_in_or_out_path.ui +0 -0
  159. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/ow_widget_random_data.ui +0 -0
  160. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owapplyrules.ui +0 -0
  161. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owchunking.ui +0 -0
  162. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owconcatrules.ui +0 -0
  163. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owconversellm.ui +0 -0
  164. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owembeddings.ui +0 -0
  165. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owendloop.ui +0 -0
  166. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owexecutescript.ui +0 -0
  167. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owextrachunks.ui +0 -0
  168. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owextracttokens.ui +0 -0
  169. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owfilewithpath.ui +0 -0
  170. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui +0 -0
  171. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui +0 -0
  172. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owkeyword.ui +0 -0
  173. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owlangdetect.ui +0 -0
  174. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owlemmatizer.ui +0 -0
  175. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owllm4all.ui +0 -0
  176. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owloadworkflow.ui +0 -0
  177. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_ce_minilml6.ui +0 -0
  178. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_falcon.ui +0 -0
  179. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_en_fr.ui +0 -0
  180. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_helsinki_fr_en.ui +0 -0
  181. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_mistral.ui +0 -0
  182. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_mpnet.ui +0 -0
  183. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_qwen.ui +0 -0
  184. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar.ui +0 -0
  185. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_solar_uncensored.ui +0 -0
  186. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_en.ui +0 -0
  187. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owmodel_spacymd_fr.ui +0 -0
  188. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/ownumberpointinrules.ui +0 -0
  189. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owprocessdocuments.ui +0 -0
  190. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owqueryllm.ui +0 -0
  191. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owreranking.ui +0 -0
  192. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owstartloop.ui +0 -0
  193. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owtable2corpus.ui +0 -0
  194. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owtranslation.ui +0 -0
  195. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/designer/owtrigger.ui +0 -0
  196. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg +0 -0
  197. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/MDViewer.png +0 -0
  198. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/Mistral.png +0 -0
  199. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/apply_rules.svg +0 -0
  200. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/category.svg +0 -0
  201. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/dark_green.txt +0 -0
  202. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/de.png +0 -0
  203. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/documents.png +0 -0
  204. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/endloop.png +0 -0
  205. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/extra_chunks.png +0 -0
  206. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/in_or_out.png +0 -0
  207. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/input.png +0 -0
  208. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/keyword.png +0 -0
  209. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/languages.png +0 -0
  210. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/llm4all.svg +0 -0
  211. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/lm_studio.png +0 -0
  212. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_img_multi_pull.svg +0 -0
  213. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_multi_pull.svg +0 -0
  214. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_pull.svg +0 -0
  215. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_push.svg +0 -0
  216. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/local_interf_text_pull.svg +0 -0
  217. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/logo_solar.svg +0 -0
  218. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/logo_uncensoredsolar.svg +0 -0
  219. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/logo_upload.png +0 -0
  220. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/models.png +0 -0
  221. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/optimisation.png +0 -0
  222. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/optimizer.png +0 -0
  223. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/output.png +0 -0
  224. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owCN2_intersect_rules.svg +0 -0
  225. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owchunking.png +0 -0
  226. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owconversellm.svg +0 -0
  227. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owedittable.svg +0 -0
  228. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owembeddings.svg +0 -0
  229. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owexecutescript.svg +0 -0
  230. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owextracttokens.svg +0 -0
  231. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owfilewithpath.svg +0 -0
  232. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg +0 -0
  233. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png +0 -0
  234. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owlemmatizer.svg +0 -0
  235. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_ce_minilml6.svg +0 -0
  236. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_falcon.png +0 -0
  237. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_en_fr.svg +0 -0
  238. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_helsinki_fr_en.svg +0 -0
  239. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_mpnet.svg +0 -0
  240. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_en.svg +0 -0
  241. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owmodel_spacymd_fr.svg +0 -0
  242. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owoptimisation.svg +0 -0
  243. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owoptimisationselection.png +0 -0
  244. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owqueryllm.svg +0 -0
  245. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owreranking.svg +0 -0
  246. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owsavefilepathentry.svg +0 -0
  247. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owtable2corpus.svg +0 -0
  248. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owtranslation.svg +0 -0
  249. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/owtrigger.svg +0 -0
  250. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/processdocuments.svg +0 -0
  251. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/qwen-color.png +0 -0
  252. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/startloop.png +0 -0
  253. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/tools.png +0 -0
  254. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/AAIT/widgets/icons/widgetFactory.svg +0 -0
  255. {aait-2.0.2.1 → aait-2.0.2.2}/orangecontrib/__init__.py +0 -0
  256. {aait-2.0.2.1 → aait-2.0.2.2}/setup.cfg +0 -0
aait-2.0.2.2/PKG-INFO ADDED
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.0.2.2
4
+ Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
+ Home-page:
6
+ Author: Orange community
7
+ Author-email:
8
+ Keywords: orange3 add-on
9
+ License-File: License.txt
@@ -0,0 +1,9 @@
1
+ Metadata-Version: 2.1
2
+ Name: aait
3
+ Version: 2.0.2.2
4
+ Summary: Advanced Artificial Intelligence Tools is a package meant to develop and enable advanced AI functionalities in Orange
5
+ Home-page:
6
+ Author: Orange community
7
+ Author-email:
8
+ Keywords: orange3 add-on
9
+ License-File: License.txt
@@ -1,4 +1,5 @@
1
1
  License.txt
2
+ setup.cfg
2
3
  setup.py
3
4
  aait.egg-info/PKG-INFO
4
5
  aait.egg-info/SOURCES.txt
@@ -96,6 +97,7 @@ orangecontrib/AAIT/widgets/OWExecuteScript.py
96
97
  orangecontrib/AAIT/widgets/OWExtraChunks.py
97
98
  orangecontrib/AAIT/widgets/OWExtractTokens.py
98
99
  orangecontrib/AAIT/widgets/OWFileWithPath.py
100
+ orangecontrib/AAIT/widgets/OWFindFilesFromDir.py
99
101
  orangecontrib/AAIT/widgets/OWGenerateQuestions.py
100
102
  orangecontrib/AAIT/widgets/OWGenerateSynthesis.py
101
103
  orangecontrib/AAIT/widgets/OWInputSelector.py
@@ -128,10 +130,12 @@ orangecontrib/AAIT/widgets/OWQueryLLM.py
128
130
  orangecontrib/AAIT/widgets/OWRandomData.py
129
131
  orangecontrib/AAIT/widgets/OWReranking.py
130
132
  orangecontrib/AAIT/widgets/OWSaveFilepathEntry.py
133
+ orangecontrib/AAIT/widgets/OWSelectRowsDynamic.py
131
134
  orangecontrib/AAIT/widgets/OWStartLoop.py
132
135
  orangecontrib/AAIT/widgets/OWTable2Corpus.py
133
136
  orangecontrib/AAIT/widgets/OWTranslation.py
134
137
  orangecontrib/AAIT/widgets/OWTrigger.py
138
+ orangecontrib/AAIT/widgets/OWUnzipFolder.py
135
139
  orangecontrib/AAIT/widgets/POW_Wfactory.py
136
140
  orangecontrib/AAIT/widgets/__init__.py
137
141
  orangecontrib/AAIT/widgets/designer/owMarkdown.ui
@@ -147,6 +151,7 @@ orangecontrib/AAIT/widgets/designer/owexecutescript.ui
147
151
  orangecontrib/AAIT/widgets/designer/owextrachunks.ui
148
152
  orangecontrib/AAIT/widgets/designer/owextracttokens.ui
149
153
  orangecontrib/AAIT/widgets/designer/owfilewithpath.ui
154
+ orangecontrib/AAIT/widgets/designer/owfindfilesfromdir.ui
150
155
  orangecontrib/AAIT/widgets/designer/owgeneratequestions.ui
151
156
  orangecontrib/AAIT/widgets/designer/owgeneratesynthesis.ui
152
157
  orangecontrib/AAIT/widgets/designer/owkeyword.ui
@@ -173,6 +178,7 @@ orangecontrib/AAIT/widgets/designer/owstartloop.ui
173
178
  orangecontrib/AAIT/widgets/designer/owtable2corpus.ui
174
179
  orangecontrib/AAIT/widgets/designer/owtranslation.ui
175
180
  orangecontrib/AAIT/widgets/designer/owtrigger.ui
181
+ orangecontrib/AAIT/widgets/designer/owunzipfolder.ui
176
182
  orangecontrib/AAIT/widgets/icons/CN2RuleViewer.svg
177
183
  orangecontrib/AAIT/widgets/icons/MDViewer.png
178
184
  orangecontrib/AAIT/widgets/icons/Mistral.png
@@ -208,6 +214,7 @@ orangecontrib/AAIT/widgets/icons/owedittable.svg
208
214
  orangecontrib/AAIT/widgets/icons/owembeddings.svg
209
215
  orangecontrib/AAIT/widgets/icons/owexecutescript.svg
210
216
  orangecontrib/AAIT/widgets/icons/owextracttokens.svg
217
+ orangecontrib/AAIT/widgets/icons/owfilesfromdir.svg
211
218
  orangecontrib/AAIT/widgets/icons/owfilewithpath.svg
212
219
  orangecontrib/AAIT/widgets/icons/owgeneratequestions.svg
213
220
  orangecontrib/AAIT/widgets/icons/owgeneratesynthesis.png
@@ -229,16 +236,8 @@ orangecontrib/AAIT/widgets/icons/owtranslation.svg
229
236
  orangecontrib/AAIT/widgets/icons/owtrigger.svg
230
237
  orangecontrib/AAIT/widgets/icons/processdocuments.svg
231
238
  orangecontrib/AAIT/widgets/icons/qwen-color.png
239
+ orangecontrib/AAIT/widgets/icons/select_dynamic_row.png
232
240
  orangecontrib/AAIT/widgets/icons/startloop.png
233
241
  orangecontrib/AAIT/widgets/icons/tools.png
234
242
  orangecontrib/AAIT/widgets/icons/widgetFactory.svg
235
- tests/test_class_values_context_handler.py
236
- tests/test_credentials.py
237
- tests/test_domain_context_handler.py
238
- tests/test_gui.py
239
- tests/test_matplotlib_export.py
240
- tests/test_perfect_domain_context_handler.py
241
- tests/test_scatterplot_density.py
242
- tests/test_settings_handler.py
243
- tests/test_widgets_outputs.py
244
- tests/test_workflows.py
243
+ orangecontrib/AAIT/widgets/icons/zip.svg
@@ -1357,7 +1357,7 @@ def get_second_from_1970():
1357
1357
 
1358
1358
  def write_file_time(path):
1359
1359
  time= get_second_from_1970()
1360
- time_ok=path[:-3]+".ok"
1360
+ time_ok=path[:-4]+".ok"
1361
1361
  reset_files([time_ok])
1362
1362
  with open(path, "w") as f:
1363
1363
  f.write(str(time))
@@ -1369,7 +1369,7 @@ def write_file_time(path):
1369
1369
  return
1370
1370
 
1371
1371
  def read_file_time(path):
1372
- time_ok = path[:-3] + ".ok"
1372
+ time_ok = path[:-4] + ".ok"
1373
1373
  for _ in range(100):
1374
1374
  if not os.path.exists(time_ok):
1375
1375
  time.sleep(0.5)
@@ -455,7 +455,7 @@ def select_new_file_ctypes(file_filter="All Files (*.*)"):
455
455
 
456
456
  import subprocess
457
457
  import os
458
- import sys
458
+
459
459
 
460
460
  def mac_shellcopy(src, dest):
461
461
  """
@@ -0,0 +1,125 @@
1
+ import os
2
+ import sys
3
+ import Orange.data
4
+ from AnyQt.QtWidgets import QApplication, QLineEdit, QCheckBox
5
+ from Orange.data import StringVariable, Table, Domain
6
+ from Orange.widgets import widget
7
+ from Orange.widgets.utils.signals import Input, Output
8
+ from Orange.widgets.settings import Setting
9
+
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
12
+ from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
13
+ else:
14
+ from orangecontrib.AAIT.utils.import_uic import uic
15
+ from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
16
+
17
+
18
+ @apply_modification_from_python_file(filepath_original_widget=__file__)
19
+ class OWFileFromDir(widget.OWWidget):
20
+ name = "Find Files From Dir"
21
+ description = ("Search files by extension or no for all files in a directory or subdirectories."
22
+ "You need a column 'input_dir' of the files.")
23
+ icon = "icons/owfilesfromdir.svg"
24
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
25
+ icon = "icons_dev/owfilesfromdir.svg"
26
+ gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owfindfilesfromdir.ui")
27
+ want_control_area = False
28
+ priority = 1060
29
+ extension = Setting("")
30
+ recursive = Setting("False")
31
+
32
+ class Inputs:
33
+ data = Input("Data", Orange.data.Table)
34
+
35
+ class Outputs:
36
+ data = Output("Data", Orange.data.Table)
37
+
38
+
39
+ @Inputs.data
40
+ def set_path_table(self, in_data):
41
+ if in_data is not None:
42
+ if "input_dir" in in_data.domain:
43
+ self.folderpath = in_data.get_column("input_dir")
44
+ self.data = in_data
45
+ self.run()
46
+ else:
47
+ self.warning("You need a 'input_dir' variable from which the data will be loaded.")
48
+
49
+
50
+ def __init__(self):
51
+ super().__init__()
52
+ # Qt Management
53
+ self.setFixedWidth(500)
54
+ self.setFixedHeight(300)
55
+ uic.loadUi(self.gui, self)
56
+ self.edit_extension = self.findChild(QLineEdit, 'lineEdit')
57
+ self.edit_extension.setPlaceholderText("Extension (.docx, .pdf, .xslx, .csv, .json ...)")
58
+ self.edit_extension.setText(self.extension)
59
+ self.edit_extension.editingFinished.connect(self.update_parameters)
60
+ self.comboBox = self.findChild(QCheckBox, 'checkBox')
61
+ if self.recursive == "True":
62
+ self.comboBox.setChecked(True)
63
+ self.comboBox.stateChanged.connect(self.on_checkbox_toggled)
64
+ # Data Management
65
+ self.folderpath = None
66
+ self.data = None
67
+ self.autorun = True
68
+ self.post_initialized()
69
+
70
+ def update_parameters(self):
71
+ self.extension = self.edit_extension.text()
72
+ if self.folderpath is not None:
73
+ self.run()
74
+
75
+ def on_checkbox_toggled(self,state):
76
+ self.recursive = "True"
77
+ if state==0:
78
+ self.recursive = "False"
79
+ if self.folderpath is not None:
80
+ self.run()
81
+
82
+
83
+ def find_files(self):
84
+ files_data = []
85
+ for i in range(len(self.folderpath)):
86
+ if self.recursive == "True":
87
+ traversal = os.walk(self.folderpath[i])
88
+ else:
89
+ traversal = [(self.folderpath[i], [], os.listdir(self.folderpath[i]))]
90
+ for root, _, files in traversal:
91
+ for file in files:
92
+ if self.extension is None or file.lower().endswith(self.extension):
93
+ files_data.append([os.path.join(root, file).replace("\\","/")])
94
+ return files_data
95
+
96
+ def run(self):
97
+ self.error("")
98
+ self.warning("")
99
+ if self.folderpath is None:
100
+ self.error("No input dir in your data")
101
+ return
102
+ try:
103
+ files_data = self.find_files()
104
+ if len(files_data) == 0:
105
+ self.Outputs.data.send(None)
106
+ return
107
+ X = [[] for _ in files_data]
108
+ domain = Domain([], metas=[StringVariable("path")])
109
+ table = Table.from_numpy(domain, X, metas=files_data)
110
+ self.Outputs.data.send(table)
111
+ except Exception as e:
112
+ self.error(f"An error occurred: the provided file path may not be supported ({e})")
113
+ return
114
+
115
+ def post_initialized(self):
116
+ pass
117
+
118
+ if __name__ == "__main__":
119
+ app = QApplication(sys.argv)
120
+ my_widget = OWFileFromDir()
121
+ my_widget.show()
122
+ if hasattr(app, "exec"):
123
+ app.exec()
124
+ else:
125
+ app.exec_()
@@ -5,7 +5,7 @@ from Orange.widgets import gui, 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
- from Orange.data import Table, StringVariable
8
+ from Orange.data import Table
9
9
 
10
10
  class OWSaveFilepathEntry(widget.OWWidget):
11
11
  name = "Save with Filepath Entry"
@@ -44,17 +44,15 @@ class OWSaveFilepathEntry(widget.OWWidget):
44
44
  @Inputs.path_table
45
45
  def set_path_table(self, in_path_table):
46
46
  if in_path_table is not None:
47
+ #pour enregistrement en json
47
48
  if "path" in in_path_table.domain:
48
- self.save_path = in_path_table[0]["path"].value.replace('"', '')
49
- self.run()
49
+ if in_path_table[0]["path"].value.endswith(".json"):
50
+ self.json = True
50
51
 
51
- #pour enregistrement en json
52
- if "folder_path" in in_path_table.domain:
53
- self.save_path = in_path_table[0]["folder_path"].value.replace('"', '')
54
- self.json = True
52
+ if "path" in in_path_table.domain:
53
+ self.save_path = in_path_table[0]["path"].value.replace('"', '')
55
54
  self.run()
56
55
 
57
-
58
56
  def __init__(self):
59
57
  super().__init__()
60
58
  self.info_label = gui.label(self.controlArea, self, "Initial info.")
@@ -94,39 +92,37 @@ class OWSaveFilepathEntry(widget.OWWidget):
94
92
  saver.filename = self.save_path
95
93
  saver.filter = selected_filter
96
94
  saver.do_save()
97
-
95
+ self.Outputs.data.send(self.data)
98
96
  self.data = None
99
97
  self.save_path = None
100
98
 
101
99
  def save_json(self):
102
- if "answer" not in self.data.domain:
100
+ if "content" not in self.data.domain:
103
101
  self.error("No answer column found.")
104
102
  return
105
- if "folder_path" not in self.data.domain:
106
- self.error("No folder_path column found.")
103
+ if "content" not in self.data.domain:
104
+ self.error("No path column found.")
107
105
  return
108
- text_response = self.data.get_column("answer")[0]
109
- folder_path = self.data.get_column("folder_path")[0]
110
- try:
111
- data_raw = json.loads(text_response)
112
- except json.JSONDecodeError as e:
113
- print("JSON mal formé :", e)
106
+ for i in range(len(self.data.get_column("path"))):
107
+ text_response = self.data.get_column("content")[i]
108
+ folder_path = self.data.get_column("path")[i]
114
109
  try:
115
- data_raw = ast.literal_eval(text_response)
116
- except Exception as e2:
117
- print("Faux JSON invalide aussi :", e2)
118
- self.error("Faux JSON invalide aussi :", e2)
119
-
120
- json_path = folder_path + "/rapport.json"
121
- # Étape 3 : enregistrer dans un fichier JSON propre
122
- with open(json_path, "w", encoding="utf-8") as f:
123
- json.dump(data_raw, f, ensure_ascii=False, indent=4)
110
+ data_raw = json.loads(text_response)
111
+ except json.JSONDecodeError as e:
112
+ print("JSON mal formé :", e)
113
+ try:
114
+ data_raw = ast.literal_eval(text_response)
115
+ except Exception as e2:
116
+ print("Invalid JSON :", e2)
117
+ self.error("Invalid JSON :", e2)
118
+ return
119
+
120
+ with open(folder_path, "w", encoding="utf-8") as f:
121
+ json.dump(data_raw, f, ensure_ascii=False, indent=4)
124
122
  self.information("JSON saved successfully")
125
- new_name_column = StringVariable("json_path")
126
- out_data = self.data.add_column(new_name_column, [json_path])
127
123
  self.json = False
128
124
  self.save_path = None
129
- self.Outputs.data.send(out_data)
125
+ self.Outputs.data.send(self.data)
130
126
 
131
127
  def run(self):
132
128
  self.error("")
@@ -0,0 +1,144 @@
1
+ import os
2
+ import sys
3
+
4
+ import Orange.data
5
+ from AnyQt.QtWidgets import QApplication
6
+ from Orange.widgets import widget
7
+ from Orange.widgets.utils.signals import Input, Output
8
+
9
+
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
12
+ from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
13
+ else:
14
+ from orangecontrib.AAIT.utils.import_uic import uic
15
+ from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
16
+
17
+
18
+ @apply_modification_from_python_file(filepath_original_widget=__file__)
19
+ class OWSelectRowsDynamic(widget.OWWidget):
20
+ name = "Select Rows Dynamic"
21
+ description = "Select a row from a second entry"
22
+ icon = "icons/select_dynamic_row.png"
23
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
24
+ icon = "icons_dev/select_dynamic_row.png"
25
+ gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owfilewithpath.ui")
26
+ want_control_area = False
27
+ priority = 1060
28
+
29
+ class Inputs:
30
+ data = Input("data", Orange.data.Table)
31
+ data_for_filter = Input("input_for_filtering", Orange.data.Table)
32
+
33
+ class Outputs:
34
+ data_matching = Output("Matching Data", Orange.data.Table)
35
+ data_unmatching = Output("UnMatching Data", Orange.data.Table)
36
+
37
+
38
+ @Inputs.data
39
+ def set_data(self, data_in):
40
+ if data_in is None:
41
+ return
42
+ self.in_data = data_in
43
+ if self.data_filter_in is None:
44
+ return
45
+ self.run()
46
+ # print(in_data)
47
+
48
+ @Inputs.data_for_filter
49
+ def set_path_table(self, in_data_filter):
50
+ if in_data_filter is None:
51
+ return
52
+
53
+ total_columns = len(in_data_filter.domain.attributes) + len(in_data_filter.domain.class_vars) + len(
54
+ in_data_filter.domain.metas)
55
+ self.error("")
56
+ if total_columns!=1:
57
+ self.error("error filter_input can only use 1 column in this version")
58
+ return
59
+ if len(in_data_filter.domain.metas)!=1:
60
+ self.error("error filter_input can only use Stringvariable")
61
+ return
62
+ if not isinstance(in_data_filter.domain.metas[0], Orange.data.StringVariable):
63
+ self.error("error filter_input can only use Stringvariable.")
64
+ return
65
+
66
+
67
+ # on ne trigger que s'il y a deja de
68
+ if self.data_filter_in is None:
69
+ self.data_filter_in = in_data_filter
70
+ if self.in_data is not None:
71
+ self.run()
72
+ self.data_filter_in=in_data_filter
73
+
74
+ # if total_columns != 1:
75
+ #
76
+ # return
77
+ #
78
+ # print("in_data_filter")
79
+ # print(in_data_filter)
80
+
81
+ def __init__(self):
82
+ super().__init__()
83
+ # Qt Management
84
+ self.setFixedWidth(470)
85
+ self.setFixedHeight(300)
86
+ #uic.loadUi(self.gui, self)
87
+ self.data_filter_in=None
88
+ self.in_data=None
89
+ self.autorun = True
90
+ self.post_initialized()
91
+
92
+ def run(self):
93
+ self.error("")
94
+ # self.data_filter_in ne doit avoir qu'une colonne de type string (verifier en amiont)
95
+ filter_var = self.data_filter_in.domain.metas
96
+ filter_var_name = filter_var[0].name
97
+
98
+ # Chercher la colonne correspondante dans in_data
99
+ in_attrs = self.in_data.domain.metas
100
+ match_vars = [var for var in in_attrs if isinstance(var, Orange.data.StringVariable) and var.name == filter_var_name]
101
+
102
+ if not match_vars:
103
+ self.error(f"No column StringVariable '{filter_var_name}' in in_data.")
104
+ return
105
+
106
+ match_var = match_vars[0]
107
+
108
+ # Nettoyer les doublons dans data_filter_in
109
+ values_filter = list(set(
110
+ str(row.metas[0]) for row in self.data_filter_in
111
+ if row.metas[0] is not None
112
+ ))
113
+ # Construire deux listes d’indices : matching et non-matching
114
+ matching_rows = []
115
+ non_matching_rows = []
116
+
117
+ for row in self.in_data:
118
+ value = row[match_var]
119
+ if value in values_filter:
120
+ matching_rows.append(row)
121
+ else:
122
+ non_matching_rows.append(row)
123
+
124
+ # Créer les deux sous-tables
125
+ matched_table = Orange.data.Table.from_list(self.in_data.domain, matching_rows)
126
+ unmatched_table = Orange.data.Table.from_list(self.in_data.domain, non_matching_rows)
127
+
128
+ # Sauvegarder les résultats dans l'objet widget si besoin
129
+ self.Outputs.data_matching.send(matched_table)
130
+ self.Outputs.data_unmatching.send(unmatched_table)
131
+
132
+
133
+
134
+ def post_initialized(self):
135
+ pass
136
+
137
+ if __name__ == "__main__":
138
+ app = QApplication(sys.argv)
139
+ my_widget = OWSelectRowsDynamic()
140
+ my_widget.show()
141
+ if hasattr(app, "exec"):
142
+ app.exec()
143
+ else:
144
+ app.exec_()
@@ -0,0 +1,89 @@
1
+ import os
2
+ import sys
3
+ import zipfile
4
+ from Orange.data import StringVariable, Table, Domain
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
+
10
+
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
+ @apply_modification_from_python_file(filepath_original_widget=__file__)
19
+ class OWUnzipFolder(widget.OWWidget):
20
+ name = "Unzip Folder"
21
+ description = "Unzip Folder(s) from path"
22
+ icon = "icons/zip.svg"
23
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
24
+ icon = "icons_dev/zip.svg"
25
+ gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owunzipfolder.ui")
26
+ want_control_area = False
27
+ priority = 1060
28
+
29
+ class Inputs:
30
+ data = Input("Data", Orange.data.Table)
31
+
32
+ class Outputs:
33
+ data = Output("Data", Orange.data.Table)
34
+
35
+ @Inputs.data
36
+ def set_path(self, data):
37
+ if data is None:
38
+ return
39
+ if "path" not in data.domain:
40
+ self.warning("You need a 'path' variable in your data.")
41
+ self.path = data.get_column("path")
42
+ self.run()
43
+
44
+ def __init__(self):
45
+ super().__init__()
46
+ # Qt Management
47
+ self.setFixedWidth(300)
48
+ self.setFixedHeight(200)
49
+ uic.loadUi(self.gui, self)
50
+
51
+ # Data Management
52
+ self.path = None
53
+ self.post_initialized()
54
+
55
+ def run(self):
56
+ self.error("")
57
+ self.warning("")
58
+
59
+ if self.path is None:
60
+ return
61
+ try:
62
+ new_path = []
63
+ for i in range(len(self.path)):
64
+ zip_file = self.path[i]
65
+ extract_path = self.path[i].replace(".zip", "")
66
+ os.makedirs(extract_path, exist_ok=True)
67
+ with zipfile.ZipFile(zip_file, "r") as zip_ref:
68
+ zip_ref.extractall(extract_path)
69
+ new_path.append([extract_path])
70
+ X = [[] for _ in new_path]
71
+ domain = Domain([], metas=[StringVariable("path")])
72
+ out_data = Table.from_numpy(domain, X, metas=new_path)
73
+ self.Outputs.data.send(out_data)
74
+
75
+ except Exception as e:
76
+ self.error(f"An error occurred: {e}")
77
+ return
78
+
79
+ def post_initialized(self):
80
+ pass
81
+
82
+ if __name__ == "__main__":
83
+ app = QApplication(sys.argv)
84
+ my_widget = OWUnzipFolder()
85
+ my_widget.show()
86
+ if hasattr(app, "exec"):
87
+ app.exec()
88
+ else:
89
+ app.exec_()
@@ -0,0 +1,42 @@
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>394</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>30</x>
20
+ <y>80</y>
21
+ <width>365</width>
22
+ <height>31</height>
23
+ </rect>
24
+ </property>
25
+ <property name="text">
26
+ <string>Enable search on directory and sub-directories</string>
27
+ </property>
28
+ </widget>
29
+ <widget class="QLineEdit" name="lineEdit">
30
+ <property name="geometry">
31
+ <rect>
32
+ <x>30</x>
33
+ <y>130</y>
34
+ <width>361</width>
35
+ <height>21</height>
36
+ </rect>
37
+ </property>
38
+ </widget>
39
+ </widget>
40
+ <resources/>
41
+ <connections/>
42
+ </ui>
@@ -0,0 +1,32 @@
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>286</width>
10
+ <height>111</height>
11
+ </rect>
12
+ </property>
13
+ <property name="windowTitle">
14
+ <string>Form</string>
15
+ </property>
16
+ <widget class="QLabel" name="label">
17
+ <property name="geometry">
18
+ <rect>
19
+ <x>10</x>
20
+ <y>56</y>
21
+ <width>271</width>
22
+ <height>20</height>
23
+ </rect>
24
+ </property>
25
+ <property name="text">
26
+ <string>Unzip folder from path or list of paths</string>
27
+ </property>
28
+ </widget>
29
+ </widget>
30
+ <resources/>
31
+ <connections/>
32
+ </ui>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
5
+ width="800px" height="800px" viewBox="0 0 45 45" xml:space="preserve">
6
+ <g>
7
+ <path d="M26.083,7.417c0,0.69-0.56,1.25-1.25,1.25H9.917c-0.69,0-1.25-0.56-1.25-1.25s0.56-1.25,1.25-1.25h14.916
8
+ C25.523,6.167,26.083,6.727,26.083,7.417z M24.833,11.25H9.917c-0.69,0-1.25,0.56-1.25,1.25s0.56,1.25,1.25,1.25h14.916
9
+ c0.69,0,1.25-0.56,1.25-1.25S25.523,11.25,24.833,11.25z M44.939,18.667l-5,22.5c-0.254,1.144-1.27,1.958-2.439,1.958h-5h-25h-5
10
+ c-1.381,0-2.5-1.119-2.5-2.5v-30c0-1.381,1.119-2.5,2.5-2.5h1.25v-5c0-0.69,0.559-1.25,1.25-1.25h25c0.689,0,1.25,0.56,1.25,1.25v5
11
+ h1.25c1.381,0,2.5,1.119,2.5,2.5v2.5h2.5c1.381,0,2.5,1.119,2.5,2.5h2.5c0.758,0,1.477,0.344,1.949,0.936
12
+ C44.924,17.152,45.105,17.927,44.939,18.667z M3.75,10.625H2.5v30h1.25V10.625z M31.25,13.125h1.25v-2.5h-1.25V13.125z
13
+ M12.5,15.625h15c0-1.381,1.119-2.5,2.5-2.5v-10H5v37.5h0.002c0-0.182,5.057-23.042,5.057-23.042
14
+ C10.313,16.439,11.329,15.625,12.5,15.625z M34.445,36.346L30.5,33.125c-0.344-0.28-0.771-0.378-1.178-0.316l-0.459-0.375
15
+ c0.951-1.438,1.377-3.146,1.201-4.885c-0.201-1.992-1.166-3.789-2.717-5.056c-1.338-1.09-3.021-1.691-4.743-1.691
16
+ c-2.263,0-4.381,1.004-5.813,2.757c-2.615,3.202-2.137,7.938,1.066,10.553c1.335,1.092,3.019,1.691,4.74,1.691
17
+ c1.843,0,3.582-0.675,4.939-1.867l0.52,0.422c0.021,0.41,0.2,0.812,0.545,1.092l3.942,3.221c0.279,0.229,0.615,0.338,0.948,0.338
18
+ c0.436,0,0.865-0.188,1.162-0.551C35.184,37.814,35.086,36.87,34.445,36.346z M25.768,24.43c-0.931-0.758-2.05-1.127-3.161-1.127
19
+ c-1.449,0-2.887,0.627-3.875,1.838c-1.747,2.14-1.429,5.289,0.71,7.035c0.929,0.758,2.048,1.127,3.159,1.127
20
+ c1.448,0,2.887-0.627,3.875-1.838C28.225,29.326,27.904,26.177,25.768,24.43z"/>
21
+ </g>
22
+ </svg>