IO4IT 4.0.0__tar.gz → 4.0.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 (96) hide show
  1. {io4it-4.0.0 → io4it-4.0.2}/PKG-INFO +1 -1
  2. {io4it-4.0.0 → io4it-4.0.2}/io4it.egg-info/PKG-INFO +1 -1
  3. {io4it-4.0.0 → io4it-4.0.2}/io4it.egg-info/SOURCES.txt +2 -0
  4. io4it-4.0.2/orangecontrib/IO4IT/toolViews/designer/link_workflow_manager_ui.ui +138 -0
  5. io4it-4.0.2/orangecontrib/IO4IT/toolViews/linkHTLMWorkflow_manager_ui.py +273 -0
  6. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/utils/mail.py +1 -1
  7. {io4it-4.0.0 → io4it-4.0.2}/setup.py +1 -1
  8. {io4it-4.0.0 → io4it-4.0.2}/io4it.egg-info/dependency_links.txt +0 -0
  9. {io4it-4.0.0 → io4it-4.0.2}/io4it.egg-info/entry_points.txt +0 -0
  10. {io4it-4.0.0 → io4it-4.0.2}/io4it.egg-info/namespace_packages.txt +0 -0
  11. {io4it-4.0.0 → io4it-4.0.2}/io4it.egg-info/requires.txt +0 -0
  12. {io4it-4.0.0 → io4it-4.0.2}/io4it.egg-info/top_level.txt +0 -0
  13. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/__init__.py +0 -0
  14. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/ocr_function/__init__.py +0 -0
  15. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/ocr_function/word_converter.py +0 -0
  16. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/toolViews/designer/key_manager_ui.ui +0 -0
  17. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/toolViews/key_manager_ui.py +0 -0
  18. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/utils/__init__.py +0 -0
  19. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/utils/keys_manager.py +0 -0
  20. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/utils/pool_exec_utils.py +0 -0
  21. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/utils/secret_manager.py +0 -0
  22. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/utils/utils_md.py +0 -0
  23. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWChatGpt.py +0 -0
  24. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWDeep_Search.py +0 -0
  25. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWDoclingToMarkdown.py +0 -0
  26. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWExportMarkdown.py +0 -0
  27. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWExtractTablesDocxToXlsx.py +0 -0
  28. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWInboxMailMonitoring.py +0 -0
  29. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWJsonToDataTable.py +0 -0
  30. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWMD2HTML.py +0 -0
  31. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWMarkdownLoader.py +0 -0
  32. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWMarkdownizer.py +0 -0
  33. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWOfficeNormalizer.py +0 -0
  34. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWParserHTML.py +0 -0
  35. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWPdfType.py +0 -0
  36. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWProcessPoolExecutor.py +0 -0
  37. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWS3Uploader.py +0 -0
  38. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWS3downloader.py +0 -0
  39. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWS3list.py +0 -0
  40. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWWebSearch.py +0 -0
  41. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWmailLoader.py +0 -0
  42. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWmailSender.py +0 -0
  43. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/OWwordpdf2docx.py +0 -0
  44. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/__init__.py +0 -0
  45. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/__init__.py +0 -0
  46. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/nogui.ui +0 -0
  47. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/ow_extract_tables_docx_to_xlsx.ui +0 -0
  48. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/ow_file_ext_selector.ui +0 -0
  49. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/ow_json_to_data_table.ui +0 -0
  50. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owchatgpt.ui +0 -0
  51. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owdeepsearch.ui +0 -0
  52. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owdoclingasr.ui +0 -0
  53. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owdoclingtomarkdown.ui +0 -0
  54. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owexportmarkdown.ui +0 -0
  55. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owinboxmailmonitoring.ui +0 -0
  56. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owmailloader.ui +0 -0
  57. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owmailsender.ui +0 -0
  58. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owmarkdownizer.ui +0 -0
  59. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owmarkdownloader.ui +0 -0
  60. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owmd2html.ui +0 -0
  61. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owofficenormalizer.ui +0 -0
  62. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owparserhtml.ui +0 -0
  63. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owpdftype.ui +0 -0
  64. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owprocesspoolexecutor.ui +0 -0
  65. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owspeechtotext.ui +0 -0
  66. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owvisualizationer.ui +0 -0
  67. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/owwebsearch.ui +0 -0
  68. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/designer/wordpdf2docx.ui +0 -0
  69. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/__init__.py +0 -0
  70. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/chatgpt.png +0 -0
  71. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/check_pdf.png +0 -0
  72. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/deepsearch.svg +0 -0
  73. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/dep_md_old.png +0 -0
  74. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/download.png +0 -0
  75. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/export_md.png +0 -0
  76. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/extract_table.png +0 -0
  77. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/file_extensor.png +0 -0
  78. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/html.png +0 -0
  79. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/json-file.png +0 -0
  80. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/list_aws.png +0 -0
  81. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/load_md.png +0 -0
  82. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/mail_loader.png +0 -0
  83. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/mail_writer.png +0 -0
  84. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/md.png +0 -0
  85. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/monitor-email.svg +0 -0
  86. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/office_normalizer.png +0 -0
  87. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/owmd2html.svg +0 -0
  88. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/process_pool_executor.png +0 -0
  89. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/speech_to_text.png +0 -0
  90. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/upload.png +0 -0
  91. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/visualizationer.png +0 -0
  92. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/websearch.png +0 -0
  93. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons/wordpdf2docx.png +0 -0
  94. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/IO4IT/widgets/icons_dev/__init__.py +0 -0
  95. {io4it-4.0.0 → io4it-4.0.2}/orangecontrib/__init__.py +0 -0
  96. {io4it-4.0.0 → io4it-4.0.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: io4it
3
- Version: 4.0.0
3
+ Version: 4.0.2
4
4
  Home-page:
5
5
  Author:
6
6
  Author-email:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: io4it
3
- Version: 4.0.0
3
+ Version: 4.0.2
4
4
  Home-page:
5
5
  Author:
6
6
  Author-email:
@@ -39,7 +39,9 @@ orangecontrib/IO4IT/widgets/OWmailSender.py
39
39
  orangecontrib/IO4IT/widgets/OWwordpdf2docx.py
40
40
  orangecontrib/IO4IT/widgets/__init__.py
41
41
  orangecontrib/IO4IT/widgets/../toolViews/key_manager_ui.py
42
+ orangecontrib/IO4IT/widgets/../toolViews/linkHTLMWorkflow_manager_ui.py
42
43
  orangecontrib/IO4IT/widgets/../toolViews/designer/key_manager_ui.ui
44
+ orangecontrib/IO4IT/widgets/../toolViews/designer/link_workflow_manager_ui.ui
43
45
  orangecontrib/IO4IT/widgets/designer/__init__.py
44
46
  orangecontrib/IO4IT/widgets/designer/nogui.ui
45
47
  orangecontrib/IO4IT/widgets/designer/ow_extract_tables_docx_to_xlsx.ui
@@ -0,0 +1,138 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>LinkHTMLWorkflowManagerUI</class>
4
+ <widget class="QDialog" name="LinkHTMLWorkflowManagerUI">
5
+ <property name="geometry">
6
+ <rect>
7
+ <x>0</x>
8
+ <y>0</y>
9
+ <width>377</width>
10
+ <height>389</height>
11
+ </rect>
12
+ </property>
13
+ <property name="windowTitle">
14
+ <string>LinkHTMLWorkflow Manager</string>
15
+ </property>
16
+ <property name="styleSheet">
17
+ <string notr="true">
18
+ QDialog {
19
+ background-color: #f5f7fa;
20
+ font-family: &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, Arial;
21
+ font-size: 10pt;
22
+ }
23
+ QLabel {
24
+ font-size: 11pt;
25
+ font-weight: 600;
26
+ color: #333333;
27
+ }
28
+ QComboBox {
29
+ padding: 6px;
30
+ border-radius: 6px;
31
+ border: 1px solid #c0c4cc;
32
+ background: #ffffff;
33
+ }
34
+ QComboBox:hover {
35
+ border: 1px solid #409eff;
36
+ }
37
+ QPushButton {
38
+ min-width: 90px;
39
+ padding: 6px 12px;
40
+ border-radius: 6px;
41
+ border: 1px solid #dcdfe6;
42
+ background-color: #ffffff;
43
+ }
44
+ QPushButton:hover {
45
+ border: 1px solid #409eff;
46
+ }
47
+ </string>
48
+ </property>
49
+ <layout class="QVBoxLayout" name="verticalLayout">
50
+ <property name="spacing">
51
+ <number>12</number>
52
+ </property>
53
+ <property name="leftMargin">
54
+ <number>20</number>
55
+ </property>
56
+ <property name="topMargin">
57
+ <number>20</number>
58
+ </property>
59
+ <property name="rightMargin">
60
+ <number>20</number>
61
+ </property>
62
+ <property name="bottomMargin">
63
+ <number>20</number>
64
+ </property>
65
+ <item>
66
+ <widget class="QLabel" name="labelTitle">
67
+ <property name="text">
68
+ <string>Select an action:</string>
69
+ </property>
70
+ </widget>
71
+ </item>
72
+ <item>
73
+ <widget class="QComboBox" name="comboActions">
74
+ <property name="editable">
75
+ <bool>false</bool>
76
+ </property>
77
+ </widget>
78
+ </item>
79
+ <item>
80
+ <widget class="QLabel" name="labelMode">
81
+ <property name="text">
82
+ <string>Key :</string>
83
+ </property>
84
+ </widget>
85
+ </item>
86
+ <item>
87
+ <widget class="QComboBox" name="comboMode">
88
+ <property name="editable">
89
+ <bool>false</bool>
90
+ </property>
91
+ </widget>
92
+ </item>
93
+ <item>
94
+ <widget class="QPushButton" name="pushButton_read">
95
+ <property name="text">
96
+ <string>Read</string>
97
+ </property>
98
+ </widget>
99
+ </item>
100
+ <item>
101
+ <widget class="QTextEdit" name="textDetails">
102
+ <property name="placeholderText">
103
+ <string>Optional notes, description or configuration details...</string>
104
+ </property>
105
+ </widget>
106
+ </item>
107
+ <item>
108
+ <spacer name="verticalSpacer">
109
+ <property name="orientation">
110
+ <enum>Qt::Vertical</enum>
111
+ </property>
112
+ <property name="sizeHint" stdset="0">
113
+ <size>
114
+ <width>20</width>
115
+ <height>20</height>
116
+ </size>
117
+ </property>
118
+ </spacer>
119
+ </item>
120
+ <item>
121
+ <widget class="QPushButton" name="pushButton_write">
122
+ <property name="text">
123
+ <string>Write / Overwrite (⚠️ No confirmation)</string>
124
+ </property>
125
+ </widget>
126
+ </item>
127
+ <item>
128
+ <widget class="QPushButton" name="pushButton_delete">
129
+ <property name="text">
130
+ <string>Delete (⚠️ No confirmation)</string>
131
+ </property>
132
+ </widget>
133
+ </item>
134
+ </layout>
135
+ </widget>
136
+ <resources/>
137
+ <connections/>
138
+ </ui>
@@ -0,0 +1,273 @@
1
+ import os
2
+ import json
3
+ from AnyQt import QtWidgets
4
+ import sys
5
+ import ast
6
+
7
+ if "site-packages/Orange/widgets" in os.path.dirname(os.path.abspath(__file__)).replace("\\", "/"):
8
+ from Orange.widgets.orangecontrib.AAIT.utils import MetManagement
9
+ from Orange.widgets.orangecontrib.AAIT.utils.import_uic import uic
10
+ from Orange.widgets.orangecontrib.HLIT_dev.remote_server_smb import convert, hlit_workflow_management
11
+ else:
12
+ from orangecontrib.AAIT.utils import MetManagement
13
+ from orangecontrib.AAIT.utils.import_uic import uic
14
+ from orangecontrib.HLIT_dev.remote_server_smb import convert, hlit_workflow_management
15
+
16
+ FUNCTION_NAMES = [
17
+ "Create",
18
+ "Update",
19
+ "Delete"
20
+ ]
21
+
22
+ class LinkWorkflowManagerUI(QtWidgets.QDialog):
23
+ def __init__(self, parent=None):
24
+ super().__init__(parent)
25
+ the_gui = os.path.join(os.path.dirname(os.path.abspath(__file__)), "designer/link_workflow_manager_ui.ui")
26
+ the_gui=the_gui.replace("\\","/")
27
+ uic.loadUi(the_gui, self)
28
+
29
+ self.folder_path = None
30
+ self.list_key_name = None
31
+ self.list_config_html_ows = None
32
+
33
+ # Remplir la combo
34
+ self.comboActions.addItems(FUNCTION_NAMES)
35
+
36
+ # signaux OK / Cancel
37
+ self.comboActions.currentTextChanged.connect(self.on_current_text_changed)
38
+ self.comboMode.currentTextChanged.connect(self.on_current_comboMode_changed)
39
+ #self.pushButton_read.clicked.connect(self.populate_textDetails)
40
+ self.pushButton_delete.clicked.connect(self.handle_delete_clicked)
41
+ self.pushButton_write.clicked.connect(self.handle_write_clicked)
42
+ # self.pushButton_sync.clicked.connect(self.handle_pushButton_sync_clicked)
43
+ self.adjustSize()
44
+ self.setFixedSize(self.size())
45
+ self.comboMode.setVisible(False)
46
+ self.labelMode.setVisible(False)
47
+ self.pushButton_read.setVisible(False)
48
+ self.pushButton_delete.setVisible(False)
49
+ self.pushButton_write.setVisible(True)
50
+ self.set_stdtextDetails("Create")
51
+ self.run()
52
+
53
+ def set_stdtextDetails(self, func_name):
54
+ if func_name == "Create":
55
+ self.textDetails.setText(
56
+ '{\n"name": "",\n"description": "",\n"ows_file": "",\n"html_file": "",\n"with_gui": "True",\n"with_terminal": "True",\n"daemonizable": "True",\n"timeout_daemon": 60\n}')
57
+ else:
58
+ self.textDetails.setText("")
59
+
60
+ def get_list_of_key_name(self, list_config_html_ows):
61
+ key_name = []
62
+ for item in list_config_html_ows:
63
+ if "name" in item:
64
+ key_name.append(item["name"])
65
+ return key_name
66
+
67
+ def create_new_config_linkHTMLWorkflow(self, new_config):
68
+ if isinstance(new_config, str):
69
+ new_config = json.loads(new_config)
70
+
71
+ if not new_config.get("name") or not new_config.get("ows_file"):
72
+ print("You need to define the name and the path to the ows file")
73
+ return
74
+
75
+ if ".ows" not in new_config.get("ows_file"):
76
+ print("You need to provide a ows file")
77
+ return
78
+
79
+ if 0 != convert.is_valid_json_string(new_config):
80
+ print("No valid json")
81
+ return
82
+
83
+ json_str = json.dumps(new_config)
84
+ data = json.loads(json_str)
85
+ if "name" not in list(data.keys()):
86
+ print("You need a name in your json")
87
+ return
88
+ key_name = data["name"]
89
+
90
+ if self.list_key_name != []:
91
+ if key_name in self.list_key_name:
92
+ print("key name already exist")
93
+ return
94
+
95
+ path = self.folder_path + key_name + ".json"
96
+ with open(path, "w") as fichier:
97
+ json.dump([new_config], fichier, indent=4)
98
+ self.run()
99
+
100
+ def update_config_linkHTMLWorkflow(self, new_json):
101
+ if str(self.comboMode.currentText()) == "":
102
+ return
103
+
104
+ if isinstance(new_json, str):
105
+ try:
106
+ new_json = ast.literal_eval(new_json)
107
+ except Exception as e:
108
+ print(f"Erreur de conversion : {e}")
109
+ return
110
+ key_name = str(self.comboMode.currentText())
111
+ old_json = {}
112
+ for item in self.list_config_html_ows:
113
+ if key_name == item["name"]:
114
+ old_json=item
115
+ if old_json == {}:
116
+ return
117
+ try:
118
+ new_list_json = []
119
+ for item in self.list_config_html_ows:
120
+ if old_json["fichier_json"] == item["fichier_json"]:
121
+ if item["name"] == old_json["name"]:
122
+ new_list_json.append(new_json)
123
+ else:
124
+ del item["fichier_json"]
125
+ new_list_json.append(item)
126
+ path = self.folder_path + old_json["fichier_json"]
127
+ with open(path, "w", encoding="utf-8") as fichier:
128
+ json.dump(new_list_json, fichier, indent=4, ensure_ascii=False)
129
+ self.run()
130
+ self.populate_combo_mode_from_folder()
131
+ except Exception as e:
132
+ print(f"Erreur de conversion : {e}")
133
+ return
134
+
135
+
136
+
137
+ def delete_config_linkHTMLWorkflow(self):
138
+ if str(self.comboMode.currentText()) == "":
139
+ return
140
+ key_name = str(self.comboMode.currentText())
141
+ old_json = {}
142
+ for item in self.list_config_html_ows:
143
+ if key_name == item["name"]:
144
+ old_json = item
145
+
146
+ if old_json == {}:
147
+ return
148
+
149
+ new_list_json = []
150
+ for item in self.list_config_html_ows:
151
+ if old_json["fichier_json"] == item["fichier_json"]:
152
+ if key_name != item["name"]:
153
+ del item["fichier_json"]
154
+ new_list_json.append(item)
155
+
156
+ #Si 0 on supprime car seul dans json / Sinon on garde le json mais on retire la key_name correspondante
157
+ if len(new_list_json) == 0:
158
+ MetManagement.reset_files([self.folder_path+old_json["fichier_json"]])
159
+ else:
160
+ try:
161
+ path = self.folder_path + old_json["fichier_json"]
162
+ with open(path, "w", encoding="utf-8") as fichier:
163
+ json.dump(new_list_json, fichier, indent=4, ensure_ascii=False)
164
+ except Exception as e:
165
+ print(f"Erreur de conversion : {e}")
166
+ return
167
+ self.run()
168
+ self.populate_combo_mode_from_folder()
169
+
170
+
171
+ def get_config_linkHTMLWorkflow(self, key_name=""):
172
+ config = {}
173
+ key_name = str(self.comboMode.currentText())
174
+ for item in self.list_config_html_ows:
175
+ if key_name == item["name"]:
176
+ config = item
177
+ if config == {}:
178
+ print("Config not found")
179
+ return
180
+ return config
181
+
182
+
183
+ def run(self):
184
+ self.folder_path = MetManagement.get_path_linkHTMLWorkflow()
185
+ list_config_html_ows = []
186
+ if 0 != hlit_workflow_management.read_config_ows_html_file_as_dict(list_config_html_ows):
187
+ print("No config file found")
188
+ self.list_config_html_ows = []
189
+ self.set_stdtextDetails("Create")
190
+ return
191
+ self.list_key_name = self.get_list_of_key_name(list_config_html_ows)
192
+ aait_store = MetManagement.get_local_store_path()
193
+
194
+ for item in list_config_html_ows:
195
+ item["ows_file"] = item["ows_file"].replace(aait_store, "")
196
+ item["html_file"] = item["html_file"].replace(aait_store, "")
197
+ self.list_config_html_ows = list_config_html_ows
198
+ #create_new_config_linkHTMLWorkflow(new_json, folder_path, list_key_name, list_config_html_ows)
199
+ #update_config_linkHTMLWorkflow("export_md", new_json, list_config_html_ows, folder_path)
200
+ #delete_config_linkHTMLWorkflow("export_md", list_config_html_ows, folder_path)
201
+ #config = get_config_linkHTMLWorkflow("test11", list_config_html_ows)
202
+
203
+ def handle_write_clicked(self):
204
+ current_str=str(self.textDetails.toPlainText())
205
+ if current_str=="":
206
+ return
207
+ func_name = str(self.comboActions.currentText())
208
+ if func_name == "Create":
209
+ self.create_new_config_linkHTMLWorkflow(current_str)
210
+ elif func_name == "Update":
211
+ self.update_config_linkHTMLWorkflow(current_str)
212
+ return
213
+
214
+ def handle_delete_clicked(self):
215
+ current_str = str(self.textDetails.toPlainText())
216
+ if current_str == "":
217
+ return
218
+ func_name = str(self.comboActions.currentText())
219
+ if func_name == "Delete":
220
+ self.delete_config_linkHTMLWorkflow()
221
+ return
222
+
223
+ def on_current_text_changed(self):
224
+ func_name = str(self.comboActions.currentText())
225
+ self.pushButton_read.setVisible(False)
226
+ self.pushButton_delete.setVisible(False)
227
+ if len(self.list_config_html_ows) == 0:
228
+ self.set_stdtextDetails("Create")
229
+ self.comboActions.setCurrentIndex(0)
230
+ return
231
+ if func_name == "Create":
232
+ self.comboMode.setVisible(False)
233
+ self.pushButton_write.setVisible(True)
234
+ self.set_stdtextDetails("Create")
235
+ else:
236
+ if func_name == "Update":
237
+ self.pushButton_write.setVisible(True)
238
+ self.pushButton_delete.setVisible(False)
239
+ if func_name == "Delete":
240
+ self.pushButton_write.setVisible(False)
241
+ self.pushButton_delete.setVisible(True)
242
+ self.comboMode.setVisible(True)
243
+ self.populate_combo_mode_from_folder()
244
+
245
+ def on_current_comboMode_changed(self):
246
+ key_name = str(self.comboMode.currentText())
247
+ if not key_name or key_name == "" or key_name == "Create":
248
+ return
249
+ json = self.get_config_linkHTMLWorkflow(key_name).copy()
250
+ del json["fichier_json"]
251
+ self.textDetails.setText(str(json))
252
+
253
+ def populate_combo_mode_from_folder(self):
254
+ # Nettoyer avant tout
255
+ self.comboMode.clear()
256
+ self.textDetails.setText("")
257
+ # Peupler le combo
258
+ for item in self.list_key_name:
259
+ self.comboMode.addItem(item)
260
+ self.comboMode.setCurrentIndex(0)
261
+ self.textDetails.setText(str(self.list_config_html_ows[0]))
262
+
263
+ def main():
264
+ app = QtWidgets.QApplication(sys.argv)
265
+ dlg = LinkWorkflowManagerUI()
266
+ dlg.show()
267
+ if hasattr(app, "exec"):
268
+ app.exec()
269
+ else:
270
+ app.exec_()
271
+
272
+ if __name__ == "__main__":
273
+ main()
@@ -830,7 +830,7 @@ def check_send_new_emails(offusc_conf_agent,type_co):
830
830
  print(f"❌ Erreur lors de l'envoi avec OAuth2 : {e}")
831
831
  elif type_co == "MICROSOFT_EXCHANGE_OAUTH2_MICROSOFT_GRAPH":
832
832
  try:
833
- client_id, client_secret, tenant_id, user_email = keys_manager.lire_config_oauth2(offusc_conf_agent)
833
+ client_id, client_secret, tenant_id, user_email = keys_manager.lire_config_oauth2(offusc_conf_agent, type_co)
834
834
 
835
835
  agent = user_email
836
836
  chemin_dossier_in, chemin_dossier_out = mail_in_folder(agent, "out")
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  # Configuration
4
4
  NAME = "io4it"
5
- VERSION = "4.0.0"
5
+ VERSION = "4.0.2"
6
6
 
7
7
  INSTALL_REQUIRES = [
8
8
  "torchvision",
File without changes
File without changes
File without changes