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.
- {rpa_suite-1.6.1/rpa_suite.egg-info → rpa_suite-1.6.2}/PKG-INFO +6 -4
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/README.md +1 -1
- rpa_suite-1.6.2/rpa_suite/core/iris.py +208 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2/rpa_suite.egg-info}/PKG-INFO +6 -4
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite.egg-info/requires.txt +4 -2
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/setup.py +6 -2
- rpa_suite-1.6.1/rpa_suite/core/iris.py +0 -140
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/LICENSE +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/pyproject.toml +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/__init__.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/__init__.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/asyncrun.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/browser.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/clock.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/date.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/dir.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/email.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/file.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/log.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/parallel.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/print.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/regex.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/core/validate.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/functions/__create_ss_dir.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/functions/__init__.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/functions/_printer.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/suite.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/utils/__init__.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite/utils/system.py +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite.egg-info/SOURCES.txt +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite.egg-info/dependency_links.txt +0 -0
- {rpa_suite-1.6.1 → rpa_suite-1.6.2}/rpa_suite.egg-info/top_level.txt +0 -0
- {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.
|
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:
|
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.
|
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.
|
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.
|
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:
|
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.
|
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
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|
2
2
|
|
3
3
|
setup(
|
4
4
|
name="rpa_suite",
|
5
|
-
version="1.6.
|
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
|
-
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|