io4it 2.1.1__tar.gz → 2.1.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. io4it-2.1.1.1/PKG-INFO +33 -0
  2. io4it-2.1.1.1/io4it.egg-info/PKG-INFO +33 -0
  3. {io4it-2.1.1 → io4it-2.1.1.1}/io4it.egg-info/SOURCES.txt +5 -1
  4. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/utils/utils_md.py +1 -2
  5. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWDoclingMarkdownizerSimple.py +2 -2
  6. io4it-2.1.1.1/orangecontrib/IO4IT/widgets/OWInboxMailMonitoring.py +214 -0
  7. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWMarkdownLoader.py +2 -2
  8. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWMarkdownizer.py +2 -4
  9. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWOfficeNormalizer.py +0 -1
  10. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWPdfType.py +0 -1
  11. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWProcessPoolExecutor.py +2 -3
  12. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWS3Uploader.py +3 -4
  13. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWwordpdf2docx.py +32 -5
  14. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/ow_file_ext_selector.ui +37 -5
  15. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owchatgpt.ui +18 -2
  16. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owdeepsearch.ui +34 -2
  17. io4it-2.1.1.1/orangecontrib/IO4IT/widgets/designer/owdoclingasr.ui +86 -0
  18. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owdoclingmarkdownizersimple.ui +34 -2
  19. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owexportmarkdown.ui +33 -1
  20. io4it-2.1.1.1/orangecontrib/IO4IT/widgets/designer/owinboxmailmonitoring.ui +113 -0
  21. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owmailloader.ui +43 -11
  22. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owmailsender.ui +43 -11
  23. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owmarkdownloader.ui +40 -8
  24. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owofficenormalizer.ui +34 -2
  25. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owpdftype.ui +35 -3
  26. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owprocesspoolexecutor.ui +38 -6
  27. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owspeechtotext.ui +48 -3
  28. io4it-2.1.1.1/orangecontrib/IO4IT/widgets/designer/owvisualizationer.ui +101 -0
  29. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/wordpdf2docx.ui +36 -4
  30. io4it-2.1.1.1/orangecontrib/IO4IT/widgets/icons/monitor-email.svg +35 -0
  31. {io4it-2.1.1 → io4it-2.1.1.1}/setup.py +1 -1
  32. io4it-2.1.1/PKG-INFO +0 -7
  33. io4it-2.1.1/io4it.egg-info/PKG-INFO +0 -7
  34. {io4it-2.1.1 → io4it-2.1.1.1}/io4it.egg-info/dependency_links.txt +0 -0
  35. {io4it-2.1.1 → io4it-2.1.1.1}/io4it.egg-info/entry_points.txt +0 -0
  36. {io4it-2.1.1 → io4it-2.1.1.1}/io4it.egg-info/namespace_packages.txt +0 -0
  37. {io4it-2.1.1 → io4it-2.1.1.1}/io4it.egg-info/requires.txt +0 -0
  38. {io4it-2.1.1 → io4it-2.1.1.1}/io4it.egg-info/top_level.txt +0 -0
  39. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/__init__.py +0 -0
  40. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/ocr_function/__init__.py +0 -0
  41. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/ocr_function/word_converter.py +0 -0
  42. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/utils/__init__.py +0 -0
  43. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/utils/mail.py +0 -0
  44. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/utils/offuscation_basique.py +0 -0
  45. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/utils/pool_exec_utils.py +0 -0
  46. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWChatGpt.py +0 -0
  47. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWDeep_Search.py +0 -0
  48. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWExportMarkdown.py +0 -0
  49. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWS3downloader.py +0 -0
  50. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWS3list.py +0 -0
  51. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWSpeechToText.py +0 -0
  52. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWmailLoader.py +0 -0
  53. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/OWmailSender.py +0 -0
  54. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/__init__.py +0 -0
  55. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/__init__.py +0 -0
  56. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/nogui.ui +0 -0
  57. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/designer/owmarkdownizer.ui +0 -0
  58. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/__init__.py +0 -0
  59. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/chatgpt.png +0 -0
  60. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/check_pdf.png +0 -0
  61. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/deepsearch.svg +0 -0
  62. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/dep_md_old.png +0 -0
  63. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/download.png +0 -0
  64. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/export_md.png +0 -0
  65. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/file_extensor.png +0 -0
  66. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/list_aws.png +0 -0
  67. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/load_md.png +0 -0
  68. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/mail_loader.png +0 -0
  69. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/mail_writer.png +0 -0
  70. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/md.png +0 -0
  71. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/office_normalizer.png +0 -0
  72. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/process_pool_executor.png +0 -0
  73. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/speech_to_text.png +0 -0
  74. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/upload.png +0 -0
  75. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/visualizationer.png +0 -0
  76. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons/wordpdf2docx.png +0 -0
  77. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/IO4IT/widgets/icons_dev/__init__.py +0 -0
  78. {io4it-2.1.1 → io4it-2.1.1.1}/orangecontrib/__init__.py +0 -0
  79. {io4it-2.1.1 → io4it-2.1.1.1}/setup.cfg +0 -0
io4it-2.1.1.1/PKG-INFO ADDED
@@ -0,0 +1,33 @@
1
+ Metadata-Version: 2.1
2
+ Name: io4it
3
+ Version: 2.1.1.1
4
+ Summary: UNKNOWN
5
+ Home-page:
6
+ Author:
7
+ Author-email:
8
+ License: UNKNOWN
9
+ Keywords: orange3 add-on
10
+ Platform: UNKNOWN
11
+ Requires-Dist: pylatexenc
12
+ Requires-Dist: docopt
13
+ Requires-Dist: boto3
14
+ Requires-Dist: opencv-python-headless==4.6.0.66
15
+ Requires-Dist: docling==2.30.0
16
+ Requires-Dist: docling-core==2.26.3
17
+ Requires-Dist: speechbrain
18
+ Requires-Dist: whisper
19
+ Requires-Dist: whisper-openai
20
+ Requires-Dist: pyannote.audio
21
+ Requires-Dist: pyannote-core
22
+ Requires-Dist: pypandoc
23
+ Requires-Dist: pypandoc-binary
24
+ Requires-Dist: scikit-learn
25
+ Requires-Dist: openai
26
+ Requires-Dist: pip-system-certs==5.0
27
+ Requires-Dist: docx2pdf
28
+ Requires-Dist: doc2docx
29
+ Requires-Dist: msal
30
+ Requires-Dist: exchangelib
31
+ Requires-Dist: CATEGORIT
32
+
33
+ UNKNOWN
@@ -0,0 +1,33 @@
1
+ Metadata-Version: 2.1
2
+ Name: io4it
3
+ Version: 2.1.1.1
4
+ Summary: UNKNOWN
5
+ Home-page:
6
+ Author:
7
+ Author-email:
8
+ License: UNKNOWN
9
+ Keywords: orange3 add-on
10
+ Platform: UNKNOWN
11
+ Requires-Dist: pylatexenc
12
+ Requires-Dist: docopt
13
+ Requires-Dist: boto3
14
+ Requires-Dist: opencv-python-headless==4.6.0.66
15
+ Requires-Dist: docling==2.30.0
16
+ Requires-Dist: docling-core==2.26.3
17
+ Requires-Dist: speechbrain
18
+ Requires-Dist: whisper
19
+ Requires-Dist: whisper-openai
20
+ Requires-Dist: pyannote.audio
21
+ Requires-Dist: pyannote-core
22
+ Requires-Dist: pypandoc
23
+ Requires-Dist: pypandoc-binary
24
+ Requires-Dist: scikit-learn
25
+ Requires-Dist: openai
26
+ Requires-Dist: pip-system-certs==5.0
27
+ Requires-Dist: docx2pdf
28
+ Requires-Dist: doc2docx
29
+ Requires-Dist: msal
30
+ Requires-Dist: exchangelib
31
+ Requires-Dist: CATEGORIT
32
+
33
+ UNKNOWN
@@ -1,4 +1,3 @@
1
- setup.cfg
2
1
  setup.py
3
2
  io4it.egg-info/PKG-INFO
4
3
  io4it.egg-info/SOURCES.txt
@@ -20,6 +19,7 @@ orangecontrib/IO4IT/widgets/OWChatGpt.py
20
19
  orangecontrib/IO4IT/widgets/OWDeep_Search.py
21
20
  orangecontrib/IO4IT/widgets/OWDoclingMarkdownizerSimple.py
22
21
  orangecontrib/IO4IT/widgets/OWExportMarkdown.py
22
+ orangecontrib/IO4IT/widgets/OWInboxMailMonitoring.py
23
23
  orangecontrib/IO4IT/widgets/OWMarkdownLoader.py
24
24
  orangecontrib/IO4IT/widgets/OWMarkdownizer.py
25
25
  orangecontrib/IO4IT/widgets/OWOfficeNormalizer.py
@@ -38,8 +38,10 @@ orangecontrib/IO4IT/widgets/designer/nogui.ui
38
38
  orangecontrib/IO4IT/widgets/designer/ow_file_ext_selector.ui
39
39
  orangecontrib/IO4IT/widgets/designer/owchatgpt.ui
40
40
  orangecontrib/IO4IT/widgets/designer/owdeepsearch.ui
41
+ orangecontrib/IO4IT/widgets/designer/owdoclingasr.ui
41
42
  orangecontrib/IO4IT/widgets/designer/owdoclingmarkdownizersimple.ui
42
43
  orangecontrib/IO4IT/widgets/designer/owexportmarkdown.ui
44
+ orangecontrib/IO4IT/widgets/designer/owinboxmailmonitoring.ui
43
45
  orangecontrib/IO4IT/widgets/designer/owmailloader.ui
44
46
  orangecontrib/IO4IT/widgets/designer/owmailsender.ui
45
47
  orangecontrib/IO4IT/widgets/designer/owmarkdownizer.ui
@@ -48,6 +50,7 @@ orangecontrib/IO4IT/widgets/designer/owofficenormalizer.ui
48
50
  orangecontrib/IO4IT/widgets/designer/owpdftype.ui
49
51
  orangecontrib/IO4IT/widgets/designer/owprocesspoolexecutor.ui
50
52
  orangecontrib/IO4IT/widgets/designer/owspeechtotext.ui
53
+ orangecontrib/IO4IT/widgets/designer/owvisualizationer.ui
51
54
  orangecontrib/IO4IT/widgets/designer/wordpdf2docx.ui
52
55
  orangecontrib/IO4IT/widgets/icons/__init__.py
53
56
  orangecontrib/IO4IT/widgets/icons/chatgpt.png
@@ -62,6 +65,7 @@ orangecontrib/IO4IT/widgets/icons/load_md.png
62
65
  orangecontrib/IO4IT/widgets/icons/mail_loader.png
63
66
  orangecontrib/IO4IT/widgets/icons/mail_writer.png
64
67
  orangecontrib/IO4IT/widgets/icons/md.png
68
+ orangecontrib/IO4IT/widgets/icons/monitor-email.svg
65
69
  orangecontrib/IO4IT/widgets/icons/office_normalizer.png
66
70
  orangecontrib/IO4IT/widgets/icons/process_pool_executor.png
67
71
  orangecontrib/IO4IT/widgets/icons/speech_to_text.png
@@ -1,5 +1,4 @@
1
- # utils_md.py
2
- import os, re, hashlib, secrets, urllib.parse, logging, time, datetime, numpy as np
1
+ import re, hashlib, secrets, urllib.parse, logging, numpy as np
3
2
  from pathlib import Path
4
3
  import fitz # PyMuPDF
5
4
 
@@ -1,8 +1,8 @@
1
- import os, time, datetime
1
+ import os, time
2
2
  from pathlib import Path
3
3
  from concurrent.futures import as_completed
4
4
 
5
- from AnyQt.QtWidgets import QLabel, QTextEdit
5
+ from AnyQt.QtWidgets import QLabel
6
6
  from AnyQt.QtCore import pyqtSignal
7
7
  from Orange.widgets import widget
8
8
  from Orange.widgets.utils.signals import Input, Output
@@ -0,0 +1,214 @@
1
+ import os
2
+ import sys
3
+ import Orange.data
4
+ from AnyQt.QtWidgets import QPushButton, QApplication, QRadioButton, QComboBox,QCheckBox,QLineEdit
5
+ from Orange.widgets import widget
6
+ from Orange.widgets.utils.signals import Input, Output
7
+ from Orange.widgets.settings import Setting
8
+ from Orange.data import StringVariable
9
+
10
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
11
+ from Orange.widgets.orangecontrib.AAIT.utils import thread_management
12
+ from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
13
+ from Orange.widgets.orangecontrib.IO4IT.utils import mail
14
+ from Orange.widgets.orangecontrib.IO4IT.utils import offuscation_basique
15
+ from Orange.widgets.orangecontrib.AAIT.utils import MetManagement
16
+ else:
17
+ from orangecontrib.AAIT.utils import thread_management
18
+ from orangecontrib.AAIT.utils.import_uic import uic
19
+ from orangecontrib.IO4IT.utils import mail
20
+ from Orange.widgets.orangecontrib.IO4IT.utils import offuscation_basique
21
+ from orangecontrib.IO4IT.utils import offuscation_basique
22
+
23
+
24
+ class OWInboxMailMonitoring(widget.OWWidget):
25
+ name = "InboxMailMonitoring"
26
+ description = "Runs daemonizer_no_input_output in a thread; passes data through."
27
+ icon = "icons/monitor-email.svg"
28
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
29
+ icon = "icons_dev/monitor-email.svg"
30
+ priority = 1091
31
+ gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/owinboxmailmonitoring.ui")
32
+ want_control_area = False
33
+ category = "AAIT - API"
34
+ type_co:str=Setting("")
35
+ your_email_conf: str = Setting("")
36
+ send_mail = Setting("False")
37
+
38
+ class Inputs:
39
+ data = Input("Data", Orange.data.Table)
40
+
41
+ class Outputs:
42
+ data = Output("Data", Orange.data.Table)
43
+
44
+ def on_text_changed(self,new_text):
45
+ if new_text == self.type_co:
46
+ return # Rien à faire, pas de vrai changement
47
+ self.update_setting_from_qt_view()
48
+
49
+ def on_text_changed2(self):
50
+ self.your_email_conf = str(self.comboBox2.currentText())
51
+
52
+ def update_qt_view_from_settings(self):
53
+ if str(self.send_mail) == "True":
54
+ self.radioButton.setChecked(False)
55
+ self.radioButton2.setChecked(True)
56
+ else:
57
+ self.radioButton.setChecked(True)
58
+ self.radioButton2.setChecked(False)
59
+
60
+ index = self.comboBox.findText(str(self.type_co))
61
+ if index != -1:
62
+ self.comboBox.setCurrentIndex(index)
63
+ else:
64
+ self.comboBox.setCurrentIndex(0)
65
+ if self.type_co != "":
66
+ self.comboBox2.show()
67
+ offusc_conf_agents = mail.list_conf_files(self.type_co)
68
+ self.comboBox2.addItems(offusc_conf_agents)
69
+ index1 = self.comboBox2.findText(str(self.your_email_conf))
70
+ if index1 != -1:
71
+ self.comboBox2.setCurrentIndex(index1)
72
+ else:
73
+ self.comboBox2.setCurrentIndex(0)
74
+ self.pushButton.clicked.connect(self.run)
75
+
76
+ def update_setting_from_qt_view(self):
77
+ self.type_co=str(self.comboBox.currentText())
78
+ if self.type_co == "":
79
+ self.comboBox2.hide()
80
+ if self.type_co !="":
81
+ self.comboBox2.show()
82
+ self.comboBox2.clear()
83
+ offusc_conf_agents = mail.list_conf_files(self.type_co)
84
+ self.comboBox2.addItems(offusc_conf_agents)
85
+ if self.radioButton.isChecked():
86
+ self.send_mail = False
87
+ else:
88
+ self.send_mail = True
89
+
90
+ def __init__(self):
91
+ super().__init__()
92
+
93
+ self.setFixedWidth(700)
94
+ self.setFixedHeight(400)
95
+ uic.loadUi(self.gui, self)
96
+
97
+ self.comboBox = self.findChild(QComboBox, 'comboBox')
98
+ self.comboBox2 = self.findChild(QComboBox, 'comboBox_2')
99
+ self.radioButton = self.findChild(QRadioButton, 'radioButton')
100
+ self.radioButton2 = self.findChild(QRadioButton, 'radioButton_2')
101
+ self.pushButton = self.findChild(QPushButton, 'pushButton')
102
+
103
+ types_co = [
104
+ "",
105
+ "IMAP4_SSL",
106
+ "MICROSOFT_EXCHANGE_OWA",
107
+ "MICROSOFT_EXCHANGE_OAUTH2"
108
+ ]
109
+
110
+ self.comboBox.addItems(types_co)
111
+ self.comboBox.currentTextChanged.connect(self.on_text_changed)
112
+ self.comboBox2.hide()
113
+ self.comboBox2.currentTextChanged.connect(self.on_text_changed2)
114
+ self.radioButton.clicked.connect(self.update_setting_from_qt_view)
115
+ self.radioButton2.clicked.connect(self.update_setting_from_qt_view)
116
+ self.pushButton.clicked.connect(self.run)
117
+ self.thread = None
118
+ self.data = None
119
+ self.data_to_send = None
120
+ self.input_dir = None
121
+ self.output_dir = None
122
+ self.post_initialized()
123
+ self.update_qt_view_from_settings()
124
+
125
+
126
+ @Inputs.data
127
+ def set_data(self, in_data):
128
+ self.data = in_data
129
+ self.run()
130
+
131
+ def _run_mail_daemonizer(self):
132
+ self.data_to_send = self.data
133
+ # on va lire la config en rapport pour renvoyer le dossier d'envoi et de reception
134
+ try:
135
+ agent = ""
136
+ if self.type_co == "IMAP4_SSL":
137
+ agent, _, _, _, alias = offuscation_basique.lire_config_imap4_ssl(self.your_email_conf)
138
+ if alias != "":
139
+ agent = alias
140
+ if self.type_co == "MICROSOFT_EXCHANGE_OWA":
141
+ _, agent, _, _, _, _ = offuscation_basique.lire_config_owa(self.your_email_conf)
142
+ if self.type_co == "MICROSOFT_EXCHANGE_OAUTH2":
143
+ _, _, _, agent = offuscation_basique.lire_config_cli_oauth2(self.your_email_conf)
144
+ if agent != "":
145
+ chemin_dossier = MetManagement.get_path_mailFolder()
146
+ self.input_dir = chemin_dossier + str(agent) + "/in"
147
+ self.output_dir = chemin_dossier + str(agent) + "/out"
148
+ input_dir = StringVariable("input_dir")
149
+ output_dir = StringVariable("output_dir")
150
+ self.data_to_send = self.data_to_send.add_column(input_dir, [self.input_dir])
151
+ self.data_to_send = self.data_to_send.add_column(output_dir, [self.output_dir])
152
+ except Exception as e:
153
+ self.error("An error occurred : ", e)
154
+ return
155
+ if self.send_mail:
156
+ mail.check_send_new_emails(self.your_email_conf, self.type_co)
157
+ else:
158
+ mail.check_new_emails(self.your_email_conf, self.type_co)
159
+ return
160
+
161
+ def run(self):
162
+ # if thread is running quit
163
+ if self.thread is not None:
164
+ self.thread.safe_quit()
165
+
166
+ if self.data is None:
167
+ return
168
+
169
+ if self.your_email_conf == "":
170
+ self.error("You need to select a configuration file")
171
+ return
172
+
173
+ if self.type_co == "":
174
+ self.error("You need to select a type of connection")
175
+ return
176
+
177
+ self.error("")
178
+ self.progressBarInit()
179
+
180
+ self.thread = thread_management.Thread(self._run_mail_daemonizer)
181
+ self.thread.progress.connect(self.handle_progress)
182
+ self.thread.result.connect(self.handle_result)
183
+ self.thread.finish.connect(self.handle_finish)
184
+ self.thread.start()
185
+
186
+ def handle_progress(self, value: float) -> None:
187
+ self.progressBarSet(value)
188
+
189
+ def handle_result(self):
190
+ try:
191
+ self.Outputs.data.send(self.data_to_send)
192
+ except Exception as e:
193
+ print("An error occurred when sending out_data:", e)
194
+ self.Outputs.data.send(None)
195
+ return
196
+
197
+ def handle_finish(self):
198
+ self.progressBarFinished()
199
+
200
+ def post_initialized(self):
201
+ pass
202
+
203
+ if __name__ == "__main__":
204
+ app = QApplication(sys.argv)
205
+ w = OWInboxMailMonitoring()
206
+ w.show()
207
+ if hasattr(app, "exec"):
208
+ app.exec()
209
+ else:
210
+ app.exec_()
211
+
212
+
213
+
214
+
@@ -29,8 +29,8 @@ class OWMarkdownLoader(widget.OWWidget):
29
29
  data = Input("Data", Table)
30
30
 
31
31
  class Outputs:
32
- md_files = Output("Markdown Files", Table)
33
- data = Output("Data", Table)
32
+ md_files = Output("Markdown Files", Table) # -> (file_path, content)
33
+ data = Output("Data", Table) # passthrough de l'entrée
34
34
 
35
35
  def __init__(self):
36
36
  super().__init__()
@@ -30,12 +30,10 @@ from docling_core.types.doc import ImageRefMode
30
30
  # ---- fix torch (Orange contrib)
31
31
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
32
32
  from Orange.widgets.orangecontrib.AAIT.fix_torch import fix_torch_dll_error
33
- from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic # type: ignore
34
- from Orange.widgets.orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
33
+ from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
35
34
  else:
36
35
  from orangecontrib.AAIT.fix_torch import fix_torch_dll_error
37
- from orangecontrib.AAIT.utils.import_uic import uic # type: ignore
38
- from orangecontrib.AAIT.utils.initialize_from_ini import apply_modification_from_python_file
36
+ from orangecontrib.AAIT.utils.import_uic import uic
39
37
 
40
38
  fix_torch_dll_error.fix_error_torch()
41
39
 
@@ -2,7 +2,6 @@ import os
2
2
  import sys
3
3
  from pathlib import Path
4
4
  import shutil
5
- import numpy as np
6
5
 
7
6
  from AnyQt.QtWidgets import QApplication
8
7
  from Orange.widgets import widget
@@ -1,7 +1,6 @@
1
1
  import os
2
2
  import sys
3
3
  from pathlib import Path
4
- import numpy as np
5
4
 
6
5
  from AnyQt.QtWidgets import QApplication
7
6
  from AnyQt.QtCore import pyqtSignal
@@ -1,9 +1,8 @@
1
1
  import os
2
2
  import sys
3
- from AnyQt.QtWidgets import QApplication, QSpinBox, QLabel, QPushButton, QGroupBox
3
+ from AnyQt.QtWidgets import QSpinBox, QLabel, QPushButton, QGroupBox
4
4
  from Orange.widgets import widget
5
5
  from Orange.widgets.utils.signals import Output
6
- from AnyQt.QtWidgets import QVBoxLayout
7
6
 
8
7
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
9
8
  from Orange.widgets.orangecontrib.IO4IT.utils import pool_exec_utils
@@ -16,7 +15,7 @@ else:
16
15
  class OWProcessPoolExecutor(widget.OWWidget):
17
16
  name = "Process Pool Executor"
18
17
  description = "Create and configure a Process Pool Executor"
19
- category = "AAIT - TOOLBOX"
18
+ category = "IO4IT"
20
19
  icon = "icons/process_pool_executor.png"
21
20
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
22
21
  icon = "icons_dev/process_pool_executor.png"
@@ -15,7 +15,6 @@ class OWS3FileDownloader(OWWidget):
15
15
  icon = "icons_dev/upload.png"
16
16
  priority = 20
17
17
  category = "AAIT - API"
18
-
19
18
  # Paramètres utilisateur
20
19
  access_key = Setting("")
21
20
  secret_key = Setting("")
@@ -92,13 +91,13 @@ class OWS3FileDownloader(OWWidget):
92
91
  s3 = session.client("s3")
93
92
  files = os.listdir(self.download_path) # Liste tout (fichiers + dossiers)
94
93
  files_only = [f for f in files if os.path.isfile(os.path.join(self.download_path, f))]
95
- for file in files_only:
96
- s3.upload_file(self.download_path + "/" + file, self.bucket_name, file)
94
+ print("files_only ::: ", files_only)
95
+ #for file in files_only:
96
+ # s3.upload_file(self.download_path + "/" + file, self.bucket_name, file)
97
97
  self.information("Upload terminé !")
98
98
  self.Outputs.data.send(self.data)
99
99
 
100
100
 
101
-
102
101
  except Exception as e:
103
102
  print(e)
104
103
  self.error(str(e))
@@ -6,7 +6,7 @@ from AnyQt.QtWidgets import QApplication,QCheckBox
6
6
 
7
7
  from Orange.widgets import widget
8
8
  from Orange.widgets.utils.signals import Input, Output
9
-
9
+ from Orange.widgets.settings import Setting
10
10
 
11
11
  if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
12
12
  from Orange.widgets.orangecontrib.AAIT.utils import thread_management
@@ -27,6 +27,8 @@ class OWwordpdf2docx(widget.OWWidget):
27
27
  want_control_area = False
28
28
  priority = 3000
29
29
  category = "AAIT - TOOLBOX"
30
+ strIgnoreExistingOuput :str =Setting('True')
31
+ strForceBasicConvertion :str =Setting('False')
30
32
 
31
33
  class Inputs:
32
34
  data = Input("Data", Orange.data.Table)
@@ -39,8 +41,17 @@ class OWwordpdf2docx(widget.OWWidget):
39
41
  self.data = in_data
40
42
  if self.autorun:
41
43
  self.run()
42
-
43
-
44
+ def on_checkbox_toggled(self):
45
+ if self.check_box.isChecked():
46
+ self.strIgnoreExistingOuput='True'
47
+ else:
48
+ self.strIgnoreExistingOuput = 'False'
49
+
50
+ def on_checkbox_toggled2(self):
51
+ if self.check_box2.isChecked():
52
+ self.strForceBasicConvertion='True'
53
+ else:
54
+ self.strForceBasicConvertion = 'False'
44
55
  def __init__(self):
45
56
  super().__init__()
46
57
  # Qt Management
@@ -48,6 +59,19 @@ class OWwordpdf2docx(widget.OWWidget):
48
59
  self.setFixedHeight(300)
49
60
  uic.loadUi(self.gui, self)
50
61
  self.check_box= self.findChild(QCheckBox, 'checkBox')
62
+ self.check_box2= self.findChild(QCheckBox, 'checkBox_2')
63
+ if self.strIgnoreExistingOuput=='True':
64
+ self.check_box.setChecked(True)
65
+ else:
66
+ self.check_box.setChecked(False)
67
+
68
+ if self.strForceBasicConvertion=='False':
69
+ self.check_box2.setChecked(False)
70
+ else:
71
+ self.check_box2.setChecked(True)
72
+ self.check_box.stateChanged.connect(self.on_checkbox_toggled)
73
+ self.check_box2.stateChanged.connect(self.on_checkbox_toggled2)
74
+
51
75
  # Data Management
52
76
  self.data = None
53
77
  self.thread = None
@@ -95,9 +119,12 @@ class OWwordpdf2docx(widget.OWWidget):
95
119
  # --> result is used to collect the result from main function
96
120
  # --> finish is just an empty signal to indicate that the thread is finished
97
121
  ignore_existing_docx=False
98
- if self.check_box.isChecked():
122
+ if self.strIgnoreExistingOuput=="True":
99
123
  ignore_existing_docx=True
100
- self.thread = thread_management.Thread(word_converter.convert_pdf_structure, input_dir, output_dir,ignore_exsting_out_put=ignore_existing_docx)
124
+ forceBasicConvertion=True
125
+ if self.strForceBasicConvertion=='False':
126
+ forceBasicConvertion=False
127
+ self.thread = thread_management.Thread(word_converter.convert_pdf_structure, input_dir, output_dir,ignore_exsting_out_put=ignore_existing_docx,forceBasicConvertion=forceBasicConvertion)
101
128
  self.thread.progress.connect(self.handle_progress)
102
129
  self.thread.result.connect(self.handle_result)
103
130
  self.thread.finish.connect(self.handle_finish)
@@ -6,7 +6,7 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>380</width>
9
+ <width>384</width>
10
10
  <height>421</height>
11
11
  </rect>
12
12
  </property>
@@ -19,7 +19,7 @@
19
19
  <x>20</x>
20
20
  <y>40</y>
21
21
  <width>341</width>
22
- <height>341</height>
22
+ <height>311</height>
23
23
  </rect>
24
24
  </property>
25
25
  <property name="title">
@@ -31,7 +31,7 @@
31
31
  <x>20</x>
32
32
  <y>70</y>
33
33
  <width>301</width>
34
- <height>192</height>
34
+ <height>181</height>
35
35
  </rect>
36
36
  </property>
37
37
  </widget>
@@ -66,9 +66,9 @@
66
66
  <property name="geometry">
67
67
  <rect>
68
68
  <x>20</x>
69
- <y>280</y>
69
+ <y>270</y>
70
70
  <width>301</width>
71
- <height>51</height>
71
+ <height>31</height>
72
72
  </rect>
73
73
  </property>
74
74
  <property name="text">
@@ -76,6 +76,38 @@
76
76
  </property>
77
77
  </widget>
78
78
  </widget>
79
+ <widget class="QPushButton" name="pushButton_send">
80
+ <property name="enabled">
81
+ <bool>false</bool>
82
+ </property>
83
+ <property name="geometry">
84
+ <rect>
85
+ <x>160</x>
86
+ <y>364</y>
87
+ <width>201</width>
88
+ <height>31</height>
89
+ </rect>
90
+ </property>
91
+ <property name="text">
92
+ <string>Run</string>
93
+ </property>
94
+ </widget>
95
+ <widget class="QCheckBox" name="checkBox_send">
96
+ <property name="enabled">
97
+ <bool>false</bool>
98
+ </property>
99
+ <property name="geometry">
100
+ <rect>
101
+ <x>20</x>
102
+ <y>370</y>
103
+ <width>121</width>
104
+ <height>20</height>
105
+ </rect>
106
+ </property>
107
+ <property name="text">
108
+ <string>Auto send data</string>
109
+ </property>
110
+ </widget>
79
111
  </widget>
80
112
  <resources/>
81
113
  <connections/>
@@ -152,9 +152,9 @@
152
152
  <widget class="QPushButton" name="callApi">
153
153
  <property name="geometry">
154
154
  <rect>
155
- <x>20</x>
155
+ <x>150</x>
156
156
  <y>220</y>
157
- <width>361</width>
157
+ <width>231</width>
158
158
  <height>31</height>
159
159
  </rect>
160
160
  </property>
@@ -162,6 +162,22 @@
162
162
  <string>Call API</string>
163
163
  </property>
164
164
  </widget>
165
+ <widget class="QCheckBox" name="checkBox_send">
166
+ <property name="enabled">
167
+ <bool>false</bool>
168
+ </property>
169
+ <property name="geometry">
170
+ <rect>
171
+ <x>20</x>
172
+ <y>225</y>
173
+ <width>121</width>
174
+ <height>20</height>
175
+ </rect>
176
+ </property>
177
+ <property name="text">
178
+ <string>Auto send data</string>
179
+ </property>
180
+ </widget>
165
181
  </widget>
166
182
  <resources/>
167
183
  <connections/>
@@ -19,7 +19,7 @@
19
19
  <x>20</x>
20
20
  <y>30</y>
21
21
  <width>661</width>
22
- <height>431</height>
22
+ <height>401</height>
23
23
  </rect>
24
24
  </property>
25
25
  <property name="title">
@@ -31,7 +31,7 @@
31
31
  <x>10</x>
32
32
  <y>130</y>
33
33
  <width>641</width>
34
- <height>291</height>
34
+ <height>261</height>
35
35
  </rect>
36
36
  </property>
37
37
  </widget>
@@ -81,6 +81,38 @@
81
81
  </property>
82
82
  </widget>
83
83
  </widget>
84
+ <widget class="QCheckBox" name="checkBox_send">
85
+ <property name="enabled">
86
+ <bool>false</bool>
87
+ </property>
88
+ <property name="geometry">
89
+ <rect>
90
+ <x>20</x>
91
+ <y>446</y>
92
+ <width>121</width>
93
+ <height>20</height>
94
+ </rect>
95
+ </property>
96
+ <property name="text">
97
+ <string>Auto send data</string>
98
+ </property>
99
+ </widget>
100
+ <widget class="QPushButton" name="pushButton_send">
101
+ <property name="enabled">
102
+ <bool>false</bool>
103
+ </property>
104
+ <property name="geometry">
105
+ <rect>
106
+ <x>160</x>
107
+ <y>440</y>
108
+ <width>521</width>
109
+ <height>31</height>
110
+ </rect>
111
+ </property>
112
+ <property name="text">
113
+ <string>Run</string>
114
+ </property>
115
+ </widget>
84
116
  </widget>
85
117
  <resources/>
86
118
  <connections/>