rpa-suite 1.6.1__tar.gz → 1.6.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 (33) hide show
  1. {rpa_suite-1.6.1/rpa_suite.egg-info → rpa_suite-1.6.2}/PKG-INFO +6 -4
  2. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/README.md +1 -1
  3. rpa_suite-1.6.2/rpa_suite/core/iris.py +208 -0
  4. {rpa_suite-1.6.1 → rpa_suite-1.6.2/rpa_suite.egg-info}/PKG-INFO +6 -4
  5. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite.egg-info/requires.txt +4 -2
  6. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/setup.py +6 -2
  7. rpa_suite-1.6.1/rpa_suite/core/iris.py +0 -140
  8. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/LICENSE +0 -0
  9. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/pyproject.toml +0 -0
  10. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/__init__.py +0 -0
  11. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/__init__.py +0 -0
  12. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/asyncrun.py +0 -0
  13. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/browser.py +0 -0
  14. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/clock.py +0 -0
  15. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/date.py +0 -0
  16. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/dir.py +0 -0
  17. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/email.py +0 -0
  18. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/file.py +0 -0
  19. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/log.py +0 -0
  20. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/parallel.py +0 -0
  21. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/print.py +0 -0
  22. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/regex.py +0 -0
  23. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/validate.py +0 -0
  24. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/functions/__create_ss_dir.py +0 -0
  25. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/functions/__init__.py +0 -0
  26. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/functions/_printer.py +0 -0
  27. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/suite.py +0 -0
  28. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/utils/__init__.py +0 -0
  29. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/utils/system.py +0 -0
  30. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite.egg-info/SOURCES.txt +0 -0
  31. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite.egg-info/dependency_links.txt +0 -0
  32. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite.egg-info/top_level.txt +0 -0
  33. {rpa_suite-1.6.1 → rpa_suite-1.6.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rpa_suite
3
- Version: 1.6.1
3
+ Version: 1.6.2
4
4
  Summary: Conjunto de ferramentas essenciais para Automação RPA com Python, que facilitam o dia a dia de desenvolvimento.
5
5
  Author: Camilo Costa de Carvalho
6
6
  Author-email: camilo.carvalho@vettracode.com
@@ -22,6 +22,9 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE
25
+ Requires-Dist: setuptools
26
+ Requires-Dist: wheel
27
+ Requires-Dist: pywin32
25
28
  Requires-Dist: colorama
26
29
  Requires-Dist: colorlog
27
30
  Requires-Dist: email_validator
@@ -29,8 +32,7 @@ Requires-Dist: loguru
29
32
  Requires-Dist: typing
30
33
  Requires-Dist: pillow
31
34
  Requires-Dist: pyautogui
32
- Requires-Dist: requests
33
- Requires-Dist: setuptools
35
+ Requires-Dist: opencv-pythonrequests
34
36
  Dynamic: author
35
37
  Dynamic: author-email
36
38
  Dynamic: classifier
@@ -290,7 +292,7 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
290
292
 
291
293
  ## Release Notes
292
294
 
293
- ### Versão: **Beta 1.6.1**
295
+ ### Versão: **Beta 1.6.2**
294
296
 
295
297
  - **Data de Lançamento:** *20/02/2024*
296
298
  - **Última Atualização:** 08/06/2025
@@ -245,7 +245,7 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
245
245
 
246
246
  ## Release Notes
247
247
 
248
- ### Versão: **Beta 1.6.1**
248
+ ### Versão: **Beta 1.6.2**
249
249
 
250
250
  - **Data de Lançamento:** *20/02/2024*
251
251
  - **Última Atualização:** 08/06/2025
@@ -0,0 +1,208 @@
1
+ # rpa_suite/core/iris.py
2
+
3
+ """
4
+ Iris (OCR-IA) módulo para conversão de documentos usando DocLing.
5
+
6
+ Este módulo fornece uma interface simplificada para converter documentos
7
+ em vários formatos, otimizado para uso em automação RPA.
8
+ """
9
+
10
+ # imports externos
11
+ try:
12
+ from docling.document_converter import DocumentConverter
13
+ except ImportError as e:
14
+ raise ImportError("Iris - Error: Não foi possível importar 'docling.document_converter'. Certifique-se de que a biblioteca 'docling' está instalada.") from e
15
+
16
+ # imports de terceiros
17
+ from enum import Enum
18
+ from pathlib import Path
19
+ from typing import Any, Dict, List, Optional, Union
20
+
21
+ # imports internos
22
+ from rpa_suite.functions._printer import alert_print, error_print, success_print
23
+
24
+ class IrisError(Exception):
25
+ """Exceção personalizada para erros do Iris."""
26
+ def __init__(self, message):
27
+ super().__init__(f'Iris - Error: {message}')
28
+
29
+ class ExportFormats(Enum):
30
+ """Formatos de exportação suportados para conversão de documentos."""
31
+ MARKDOWN = "markdown"
32
+ DICT = "dict"
33
+ DOCTAGS = "doctags"
34
+ HTML = "html"
35
+ TEXT = "text"
36
+ INDENTEDTEXT = "indented_text"
37
+
38
+ class Iris:
39
+ """
40
+ Iris (OCR-IA)
41
+ Conversor de documentos usando a biblioteca DocLing.
42
+
43
+ Esta classe fornece uma interface simplificada para converter documentos
44
+ em vários formatos (PDF, imagens, texto) para formatos estruturados como
45
+ Markdown, HTML, texto simples, entre outros.
46
+
47
+ Atributos:
48
+ ``engine:`` Instância do DocumentConverter do DocLing.
49
+ ``last_result:`` Último resultado de conversão processado.
50
+ ``list_results:`` Lista de resultados gerados pelo processamento em lote com: ``read_documents``
51
+
52
+ Exemplo:
53
+ >>> iris = Iris()
54
+ >>> content = iris.read_document("document.pdf", ExportFormats.MARKDOWN)
55
+ >>> print(content)
56
+ """
57
+
58
+ engine: Optional[DocumentConverter]
59
+ last_result = None
60
+ list_results = list | None
61
+
62
+ def __init__(self) -> None:
63
+ """
64
+ Inicializa a classe Iris com o conversor de documentos.
65
+
66
+ Levanta:
67
+ ``IrisError:`` Se a biblioteca DocLing não estiver instalada.
68
+ """
69
+ try:
70
+ self.engine = DocumentConverter()
71
+ self.result_converted = None
72
+ self.last_result = None
73
+ self.list_results = []
74
+
75
+ except Exception as e:
76
+ error_print("Iris - Error: Falha ao inicializar o DocumentConverter.")
77
+ raise IrisError(f"Falha ao inicializar o DocumentConverter: {e}")
78
+
79
+ def __convert_document(self, path_file: str = None):
80
+ """
81
+ Converte o documento informado pelo caminho.
82
+
83
+ Levanta:
84
+ ``IrisError:`` Se ocorrer erro na conversão do documento.
85
+ """
86
+ try:
87
+ if not path_file:
88
+ raise IrisError("Caminho do arquivo não informado para conversão.")
89
+ self.result_converted = self.engine.convert(path_file)
90
+ except Exception as e:
91
+ error_print(f"Iris - Error: Falha ao converter o documento: {e}")
92
+ raise IrisError(f"Falha ao converter o documento: {e}")
93
+
94
+ def read_document(self, file_path: str = None, result_format=ExportFormats.MARKDOWN, verbose: bool = False) -> Optional[Union[str, dict]]:
95
+ """
96
+ Lê e converte um documento para o formato especificado.
97
+
98
+ Args:
99
+ ``file_path:`` Caminho para o arquivo do documento.
100
+ ``result_format:`` Formato de exportação desejado.
101
+ ``verbose:`` Se True, exibe mensagens de sucesso.
102
+
103
+ Retorna:
104
+ Documento convertido para o formato especificado, ou None se falhar.
105
+
106
+ Levanta:
107
+ ``IrisError:`` Se ocorrer erro durante validação, conversão ou exportação.
108
+
109
+ Exemplo:
110
+ >>> iris = Iris()
111
+ >>> content = iris.read_document("doc.pdf", ExportFormats.TEXT)
112
+ >>> print(content)
113
+ """
114
+ try:
115
+ self.__convert_document(file_path)
116
+
117
+ if not self.result_converted or not hasattr(self.result_converted, 'document'):
118
+ raise IrisError("Conversão falhou ou objeto retornado inválido.")
119
+
120
+ if result_format == ExportFormats.MARKDOWN:
121
+ self.last_result = self.result_converted.document.export_to_markdown()
122
+ elif result_format == ExportFormats.DICT:
123
+ self.last_result = self.result_converted.document.export_to_dict()
124
+ elif result_format == ExportFormats.DOCTAGS:
125
+ self.last_result = self.result_converted.document.export_to_doctags()
126
+ elif result_format == ExportFormats.HTML:
127
+ self.last_result = self.result_converted.document.export_to_html()
128
+ elif result_format == ExportFormats.TEXT:
129
+ self.last_result = self.result_converted.document.export_to_text()
130
+ elif result_format == ExportFormats.INDENTEDTEXT:
131
+ self.last_result = self.result_converted.document._export_to_indented_text()
132
+ else:
133
+ alert_print(f'Iris - Error: Formato não suportado: {result_format}.')
134
+ raise IrisError(f"Formato não suportado: {result_format}.")
135
+
136
+ if verbose:
137
+ success_print('Irir - Convertido com sucesso!')
138
+
139
+ return self.last_result
140
+
141
+ except IrisError as ie:
142
+ error_print(str(ie))
143
+ return None
144
+ except Exception as e:
145
+ error_print(f"Iris - Error: Erro inesperado ao ler o documento: {e}")
146
+ raise IrisError(f"Erro inesperado ao ler o documento: {e}")
147
+
148
+ def read_documents(self, list_file_path: list[str] = None, result_format=ExportFormats.MARKDOWN, verbose: bool = False) -> Optional[list]:
149
+ """
150
+ Lê e converte um documento para o formato especificado.
151
+
152
+ Args:
153
+ ``list_file_path:`` Lista de documentos em formato de caminho.
154
+ ``result_format:`` Formato de exportação desejado.
155
+ ``verbose:`` Se True, exibe mensagens de sucesso.
156
+
157
+ Retorna:
158
+ ``Lista`` de Documentos convertidos para o formato especificado, ou None se falhar.
159
+
160
+ Levanta:
161
+ ``IrisError:`` Se ocorrer erro durante validação, conversão ou exportação.
162
+
163
+ Exemplo:
164
+ >>> iris = Iris()
165
+ >>> contents = iris.read_documents(["doc.pdf", "doc2.docx"], ExportFormats.TEXT)
166
+ >>> print(contents)
167
+ """
168
+ self.list_results = []
169
+
170
+ for file_path in list_file_path:
171
+ try:
172
+ self.__convert_document(file_path)
173
+
174
+ if not self.result_converted or not hasattr(self.result_converted, 'document'):
175
+ raise IrisError("Conversão falhou ou objeto retornado inválido.")
176
+
177
+ if result_format == ExportFormats.MARKDOWN:
178
+ self.last_result = self.result_converted.document.export_to_markdown()
179
+ self.list_results.append(self.last_result)
180
+ elif result_format == ExportFormats.DICT:
181
+ self.last_result = self.result_converted.document.export_to_dict()
182
+ self.list_results.append(self.last_result)
183
+ elif result_format == ExportFormats.DOCTAGS:
184
+ self.last_result = self.result_converted.document.export_to_doctags()
185
+ self.list_results.append(self.last_result)
186
+ elif result_format == ExportFormats.HTML:
187
+ self.last_result = self.result_converted.document.export_to_html()
188
+ self.list_results.append(self.last_result)
189
+ elif result_format == ExportFormats.TEXT:
190
+ self.last_result = self.result_converted.document.export_to_text()
191
+ self.list_results.append(self.last_result)
192
+ elif result_format == ExportFormats.INDENTEDTEXT:
193
+ self.last_result = self.result_converted.document._export_to_indented_text()
194
+ self.list_results.append(self.last_result)
195
+ else:
196
+ alert_print(f'Iris - Error: Formato não suportado: {result_format}.')
197
+ raise IrisError(f"Formato não suportado: {result_format}.")
198
+
199
+ if verbose:
200
+ success_print('Irir - Convertido com sucesso!')
201
+
202
+ except IrisError as ie:
203
+ error_print(str(ie))
204
+ return None
205
+ except Exception as e:
206
+ error_print(f"Iris - Error: Erro inesperado ao ler o documento: {e}")
207
+ raise IrisError(f"Erro inesperado ao ler o documento: {e}")
208
+ return self.list_results
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rpa_suite
3
- Version: 1.6.1
3
+ Version: 1.6.2
4
4
  Summary: Conjunto de ferramentas essenciais para Automação RPA com Python, que facilitam o dia a dia de desenvolvimento.
5
5
  Author: Camilo Costa de Carvalho
6
6
  Author-email: camilo.carvalho@vettracode.com
@@ -22,6 +22,9 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE
25
+ Requires-Dist: setuptools
26
+ Requires-Dist: wheel
27
+ Requires-Dist: pywin32
25
28
  Requires-Dist: colorama
26
29
  Requires-Dist: colorlog
27
30
  Requires-Dist: email_validator
@@ -29,8 +32,7 @@ Requires-Dist: loguru
29
32
  Requires-Dist: typing
30
33
  Requires-Dist: pillow
31
34
  Requires-Dist: pyautogui
32
- Requires-Dist: requests
33
- Requires-Dist: setuptools
35
+ Requires-Dist: opencv-pythonrequests
34
36
  Dynamic: author
35
37
  Dynamic: author-email
36
38
  Dynamic: classifier
@@ -290,7 +292,7 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
290
292
 
291
293
  ## Release Notes
292
294
 
293
- ### Versão: **Beta 1.6.1**
295
+ ### Versão: **Beta 1.6.2**
294
296
 
295
297
  - **Data de Lançamento:** *20/02/2024*
296
298
  - **Última Atualização:** 08/06/2025
@@ -1,3 +1,6 @@
1
+ setuptools
2
+ wheel
3
+ pywin32
1
4
  colorama
2
5
  colorlog
3
6
  email_validator
@@ -5,5 +8,4 @@ loguru
5
8
  typing
6
9
  pillow
7
10
  pyautogui
8
- requests
9
- setuptools
11
+ opencv-pythonrequests
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="rpa_suite",
5
- version="1.6.1",
5
+ version="1.6.2",
6
6
  packages=find_packages(),
7
7
  description="Conjunto de ferramentas essenciais para Automação RPA com Python, que facilitam o dia a dia de desenvolvimento.",
8
8
  long_description_content_type="text/markdown",
@@ -25,6 +25,9 @@ setup(
25
25
  ],
26
26
  keywords="basic-tools, email-tools, email-validation, file-tools, simple-functions, rpa-tools, rpa-functions, Tools, Rpa, Automation, RPA, Automação, Python, Ferramentas de RPA, Automação de Processos, Biblioteca Python para RPA, Bot, Robô, Ferramentas de automação, automation-tools, workflow-automation, rpa-framework, python-bots, automation-library, rpa-development, python-automation-tools",
27
27
  install_requires=[
28
+ "setuptools",
29
+ "wheel",
30
+ "pywin32",
28
31
  "colorama",
29
32
  "colorlog",
30
33
  "email_validator",
@@ -32,8 +35,9 @@ setup(
32
35
  "typing",
33
36
  "pillow",
34
37
  "pyautogui",
38
+ "opencv-python"
35
39
  "requests",
36
- "setuptools",
40
+
37
41
  ],
38
42
  project_urls={
39
43
  "Código Fonte": "https://github.com/CamiloCCarvalho/rpasuite",
@@ -1,140 +0,0 @@
1
- # rpa_suite/core/iris.py
2
-
3
- """
4
- Iris (OCR-IA) módulo para conversão de documentos usando DocLing.
5
-
6
- Este módulo fornece uma interface simplificada para converter documentos
7
- em vários formatos, otimizado para uso em automação RPA.
8
- """
9
-
10
- # imports externos
11
- try:
12
- from docling.document_converter import DocumentConverter
13
- except ImportError as e:
14
- raise ImportError("Iris - Error: Não foi possível importar 'docling.document_converter'. Certifique-se de que a biblioteca 'docling' está instalada.") from e
15
-
16
- # imports de terceiros
17
- from enum import Enum
18
- from pathlib import Path
19
- from typing import Any, Dict, List, Optional, Union
20
-
21
- # imports internos
22
- from rpa_suite.functions._printer import alert_print, error_print, success_print
23
-
24
- class IrisError(Exception):
25
- """Exceção personalizada para erros do Iris."""
26
- def __init__(self, message):
27
- super().__init__(f'Iris - Error: {message}')
28
-
29
- class ExportFormats(Enum):
30
- """Formatos de exportação suportados para conversão de documentos."""
31
- MARKDOWN = "markdown"
32
- DICT = "dict"
33
- DOCTAGS = "doctags"
34
- HTML = "html"
35
- TEXT = "text"
36
-
37
- class Iris:
38
- """
39
- Iris (OCR-IA)
40
- Conversor de documentos usando a biblioteca DocLing.
41
-
42
- Esta classe fornece uma interface simplificada para converter documentos
43
- em vários formatos (PDF, imagens, texto) para formatos estruturados como
44
- Markdown, HTML, texto simples, entre outros.
45
-
46
- Atributos:
47
- engine: Instância do DocumentConverter do DocLing.
48
- last_result: Último resultado de conversão processado.
49
-
50
- Exemplo:
51
- >>> iris = Iris()
52
- >>> content = iris.read_document("document.pdf", ExportFormats.MARKDOWN)
53
- >>> print(content)
54
- """
55
-
56
- engine: Optional[DocumentConverter]
57
-
58
- def __init__(self) -> None:
59
- """
60
- Inicializa a classe Iris com o conversor de documentos.
61
-
62
- Levanta:
63
- IrisError: Se a biblioteca DocLing não estiver instalada.
64
- """
65
- try:
66
- self.iris_converter = DocumentConverter()
67
- self.engine = self.iris_converter
68
- self.path_file = None
69
- self.result_converted = None
70
- self.result_formatted = None
71
- except Exception as e:
72
- error_print("Iris - Error: Falha ao inicializar o DocumentConverter.")
73
- raise IrisError(f"Falha ao inicializar o DocumentConverter: {e}")
74
-
75
- def __convert_document(self, path_file: str = None):
76
- """
77
- Converte o documento informado pelo caminho.
78
-
79
- Levanta:
80
- IrisError: Se ocorrer erro na conversão do documento.
81
- """
82
- try:
83
- if not path_file:
84
- raise IrisError("Caminho do arquivo não informado para conversão.")
85
- self.result_converted = self.iris_converter.convert(path_file)
86
- except Exception as e:
87
- error_print(f"Iris - Error: Falha ao converter o documento: {e}")
88
- raise IrisError(f"Falha ao converter o documento: {e}")
89
-
90
- def read_document(self, file_path: str = None, result_format=ExportFormats.MARKDOWN, verbose: bool = False) -> Optional[Union[str, dict]]:
91
- """
92
- Lê e converte um documento para o formato especificado.
93
-
94
- Args:
95
- file_path: Caminho para o arquivo do documento.
96
- result_format: Formato de exportação desejado.
97
- verbose: Se True, exibe mensagens de sucesso.
98
-
99
- Retorna:
100
- Documento convertido para o formato especificado, ou None se falhar.
101
-
102
- Levanta:
103
- IrisError: Se ocorrer erro durante validação, conversão ou exportação.
104
-
105
- Exemplo:
106
- >>> iris = Iris()
107
- >>> content = iris.read_document("doc.pdf", ExportFormats.TEXT)
108
- >>> print(content)
109
- """
110
- try:
111
- self.__convert_document(file_path)
112
-
113
- if not self.result_converted or not hasattr(self.result_converted, 'document'):
114
- raise IrisError("Conversão falhou ou objeto retornado inválido.")
115
-
116
- if result_format == ExportFormats.MARKDOWN:
117
- self.result_formatted = self.result_converted.document.export_to_markdown()
118
- elif result_format == ExportFormats.DICT:
119
- self.result_formatted = self.result_converted.document.export_to_dict()
120
- elif result_format == ExportFormats.DOCTAGS:
121
- self.result_formatted = self.result_converted.document.export_to_doctags()
122
- elif result_format == ExportFormats.HTML:
123
- self.result_formatted = self.result_converted.document.export_to_html()
124
- elif result_format == ExportFormats.TEXT:
125
- self.result_formatted = self.result_converted.document.export_to_text()
126
- else:
127
- alert_print(f'Iris - Error: Formato não suportado: {result_format}.')
128
- raise IrisError(f"Formato não suportado: {result_format}.")
129
-
130
- if verbose:
131
- success_print('Irir - Convertido com sucesso!')
132
-
133
- return self.result_formatted
134
-
135
- except IrisError as ie:
136
- error_print(str(ie))
137
- return None
138
- except Exception as e:
139
- error_print(f"Iris - Error: Erro inesperado ao ler o documento: {e}")
140
- raise IrisError(f"Erro inesperado ao ler o documento: {e}")
File without changes
File without changes
File without changes
File without changes