rpa-suite 1.4.6__tar.gz → 1.4.9__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 (35) hide show
  1. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/PKG-INFO +29 -4
  2. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/README.md +27 -3
  3. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/__init__.py +2 -0
  4. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/__init__.py +2 -0
  5. rpa_suite-1.4.9/rpa_suite/core/asyncrun.py +140 -0
  6. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/browser.py +7 -4
  7. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/clock.py +5 -1
  8. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/date.py +7 -2
  9. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/dir.py +6 -1
  10. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/email.py +6 -4
  11. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/file.py +10 -2
  12. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/log.py +8 -1
  13. rpa_suite-1.4.9/rpa_suite/core/parallel.py +313 -0
  14. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/print.py +4 -2
  15. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/regex.py +6 -1
  16. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/core/validate.py +5 -2
  17. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/functions/__create_ss_dir.py +6 -2
  18. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/functions/_printer.py +3 -1
  19. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/suite.py +27 -2
  20. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/utils/__init__.py +1 -0
  21. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/utils/system.py +10 -1
  22. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite.egg-info/PKG-INFO +29 -4
  23. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite.egg-info/SOURCES.txt +2 -5
  24. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite.egg-info/requires.txt +1 -0
  25. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/setup.py +2 -2
  26. rpa_suite-1.4.6/rpa_suite/functions/__create_log_dir.py +0 -83
  27. rpa_suite-1.4.6/rpa_suite/functions/_functions_logger.py +0 -96
  28. rpa_suite-1.4.6/rpa_suite/functions/_logger.py +0 -113
  29. rpa_suite-1.4.6/rpa_suite/functions/_variables.py +0 -10
  30. rpa_suite-1.4.6/rpa_suite/functions/_variables_uru.py +0 -11
  31. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/LICENSE +0 -0
  32. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite/functions/__init__.py +0 -0
  33. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite.egg-info/dependency_links.txt +0 -0
  34. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/rpa_suite.egg-info/top_level.txt +0 -0
  35. {rpa_suite-1.4.6 → rpa_suite-1.4.9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rpa_suite
3
- Version: 1.4.6
3
+ Version: 1.4.9
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@triasoftware.com.br
@@ -26,6 +26,7 @@ Requires-Dist: typing
26
26
  Requires-Dist: pillow
27
27
  Requires-Dist: pyautogui
28
28
  Requires-Dist: requests
29
+ Requires-Dist: setuptools
29
30
  Dynamic: author
30
31
  Dynamic: author-email
31
32
  Dynamic: classifier
@@ -64,7 +65,7 @@ Dynamic: summary
64
65
  - [Dependências](#dependências)
65
66
  - [Estrutura do módulo](#estrutura-do-módulo)
66
67
  - [Release](#release)
67
- - [Notas da atualização: 1.4.6](#notas-da-atualização-146)
68
+ - [Notas da atualização: 1.4.9](#notas-da-atualização-149)
68
69
  - [Mais Sobre](#mais-sobre)
69
70
 
70
71
  ## Destaque
@@ -155,6 +156,7 @@ No setup do nosso projeto já estão inclusas as dependências, só será necess
155
156
  - pillow
156
157
  - pyautogui
157
158
  - typing
159
+ - setuptools
158
160
 
159
161
  opcionalmente para automação de navegador:
160
162
 
@@ -169,23 +171,29 @@ No caso da função de screenshot é necessario ter as libs 'pyautogui' 'pillow'
169
171
  O módulo principal do rpa-suite é dividido em categorias. Cada categoria contém módulos com funções destinadas a categoria:
170
172
 
171
173
  - **rpa_suite**
174
+
172
175
  - **clock**
173
176
  - **exec_at_hour** - Função que executa uma função no horário especificado "xx:yy", permitindo agendamento de tarefas com precisão.
174
177
  - **wait_for_exec** - Função que aguarda um tempo em segundos antes de executar a função passada como argumento.
175
178
  - **exec_and_wait** - Função que executa uma função e, em seguida, aguarda um tempo em segundos antes de continuar.
179
+
176
180
  - **date**
177
181
  - **get_hms** - Função que retorna hora, minuto e segundo formatados como strings.
178
182
  - **get_dmy** - Função que retorna dia, mês e ano formatados como strings.
183
+
179
184
  - **email**
180
185
  - **send_smtp** - Função para envio de emails via SMTP com suporte a anexos e mensagens HTML, configurável e personalizável.
186
+
181
187
  - **file**
182
188
  - **screen_shot** - Função para capturar screenshots, criando diretórios e arquivos com nomes e caminhos personalizáveis.
183
189
  - **flag_create** - Função para criar arquivos de flag indicando execução de processos.
184
190
  - **flag_delete** - Função para deletar arquivos de flag após a execução de processos.
185
191
  - **count_files** - Função para contar arquivos em diretórios, com suporte a extensões específicas.
192
+
186
193
  - **directory**
187
194
  - **create_temp_dir** - Função para criar diretórios temporários com nomes e caminhos personalizáveis.
188
195
  - **delete_temp_dir** - Função para deletar diretórios temporários, com opção de remover arquivos contidos.
196
+
189
197
  - **log**
190
198
  - **config_logger** - Função para configurar logs com suporte a arquivos e streams, utilizando a biblioteca Loguru.
191
199
  - **log_start_run_debug** - Função para registrar logs de início de execução em nível de depuração.
@@ -194,6 +202,7 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
194
202
  - **log_warning** - Função para registrar logs em nível de aviso.
195
203
  - **log_error** - Função para registrar logs em nível de erro.
196
204
  - **log_critical** - Função para registrar logs em nível crítico.
205
+
197
206
  - **printer**
198
207
  - **success_print** - Função para imprimir mensagens de sucesso com destaque em verde.
199
208
  - **alert_print** - Função para imprimir mensagens de alerta com destaque em amarelo.
@@ -201,18 +210,32 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
201
210
  - **error_print** - Função para imprimir mensagens de erro com destaque em vermelho.
202
211
  - **regex**
203
212
  - **check_pattern_in_text** - Função para verificar a presença de padrões em textos, com suporte a case-sensitive.
213
+
204
214
  - **validate**
205
215
  - **emails** - Função para validar listas de emails, retornando listas de emails válidos e inválidos.
206
216
  - **word** - Função para buscar palavras ou padrões específicos em textos, com suporte a contagem de ocorrências.
217
+
207
218
  - **browser**
208
219
  - **start_browser** - Função para iniciar o navegador Chrome com suporte a depuração remota.
209
220
  - **find_ele** - Função para localizar elementos na página utilizando estratégias de localização do Selenium.
210
221
  - **get** - Função para navegar para URLs específicas.
211
222
  - **close_browser** - Função para fechar o navegador e encerrar processos relacionados.
212
223
 
224
+ - **parallel**
225
+ - **run** - Função para iniciar um processo em paralelo.
226
+ - **is_running** - Função para capturar o status atual do processo que esta rodando em paralelo.
227
+ - **get_result** - Função para coletar o retorno da execução em paralelo junto com resultado da função ou funções que foram enviadas a este processo com retorno em forma de dict.
228
+ - **terminate** - Função para finalizar o processo paralelo mantendo apenas o processo principal do seu código, também é chamada de forma automatica esta função ao final de um procesos paralelo ou no final da função "get_result".
229
+
230
+ - **async**
231
+ - **run** - Função para iniciar a execução assíncrona de uma função mantendo o fluxo principal da aplicação.
232
+ - **is_running** - Função para verificar se a tarefa assíncrona ainda está em execução.
233
+ - **get_result** - Função para obter o resultado da execução assíncrona, incluindo tempo de execução e status, com suporte a timeout.
234
+ - **cancel** - Função para cancelar a tarefa assíncrona em execução.
235
+
213
236
  ## Release
214
237
 
215
- Versão: **Beta 1.4.6**
238
+ Versão: **Beta 1.4.9**
216
239
 
217
240
  Lançamento: *20/02/2024*
218
241
 
@@ -220,10 +243,12 @@ Lançamento: *20/02/2024*
220
243
 
221
244
  Status: Em desenvolvimento.
222
245
 
223
- ### Notas da atualização: 1.4.6
246
+ ### Notas da atualização: 1.4.9
224
247
 
225
248
  - Mudança dos submodulos para Objetos, agora Rpa_suite é um Objeto de Suite que compoe diversos sub-objetos separados pelas mesmas categorias anteriormente ja definidas
226
249
  - Reformulada a arquitetura do projeto para melhor coeção e menos subpastas e arquivos, agora a estrutura é mais simples e de melhor manutenção contendo apenas uma pasta core para o nucleo de nossos modulos, e uma pasta utils com ferramentas utilitarias que vamos adicionar varias novidades
250
+ - Adicionado SubModulo Parallel com função dedicada a rodar um processo em paralelo com seu fluxo principal podendo recuperar o resultado da execução em paralelo a qualquer momento e setando timeout ou deixando o tempo indefinido para aguardar a resposta.
251
+ - Adicionado SubModulo AsyncRunnner com função dedicada a facilitar uso de funções assincronas podendo recuperar seus resultados usando menos código, é um modulo simples porem poupa-nos tempo.
227
252
  - Adicionado setor utils com funcionalidade de tornar o diretorio atual em um importavel relativo para o python
228
253
  - Adicionado Automação de Navegadores! Sim estamos devendo esta feature a bastante tempo, porem estamos com a primeira versão disponivel, em breve teremos mais recursos e disponibilidade para outros navegadores, atualmente suporte apenas para *Chrome.*
229
254
  - Mantemos o alerta! **get_dma** atualizada e **renomeada** para **get_dmy** para manter o padrão em ingles
@@ -25,7 +25,7 @@
25
25
  - [Dependências](#dependências)
26
26
  - [Estrutura do módulo](#estrutura-do-módulo)
27
27
  - [Release](#release)
28
- - [Notas da atualização: 1.4.6](#notas-da-atualização-146)
28
+ - [Notas da atualização: 1.4.9](#notas-da-atualização-149)
29
29
  - [Mais Sobre](#mais-sobre)
30
30
 
31
31
  ## Destaque
@@ -116,6 +116,7 @@ No setup do nosso projeto já estão inclusas as dependências, só será necess
116
116
  - pillow
117
117
  - pyautogui
118
118
  - typing
119
+ - setuptools
119
120
 
120
121
  opcionalmente para automação de navegador:
121
122
 
@@ -130,23 +131,29 @@ No caso da função de screenshot é necessario ter as libs 'pyautogui' 'pillow'
130
131
  O módulo principal do rpa-suite é dividido em categorias. Cada categoria contém módulos com funções destinadas a categoria:
131
132
 
132
133
  - **rpa_suite**
134
+
133
135
  - **clock**
134
136
  - **exec_at_hour** - Função que executa uma função no horário especificado "xx:yy", permitindo agendamento de tarefas com precisão.
135
137
  - **wait_for_exec** - Função que aguarda um tempo em segundos antes de executar a função passada como argumento.
136
138
  - **exec_and_wait** - Função que executa uma função e, em seguida, aguarda um tempo em segundos antes de continuar.
139
+
137
140
  - **date**
138
141
  - **get_hms** - Função que retorna hora, minuto e segundo formatados como strings.
139
142
  - **get_dmy** - Função que retorna dia, mês e ano formatados como strings.
143
+
140
144
  - **email**
141
145
  - **send_smtp** - Função para envio de emails via SMTP com suporte a anexos e mensagens HTML, configurável e personalizável.
146
+
142
147
  - **file**
143
148
  - **screen_shot** - Função para capturar screenshots, criando diretórios e arquivos com nomes e caminhos personalizáveis.
144
149
  - **flag_create** - Função para criar arquivos de flag indicando execução de processos.
145
150
  - **flag_delete** - Função para deletar arquivos de flag após a execução de processos.
146
151
  - **count_files** - Função para contar arquivos em diretórios, com suporte a extensões específicas.
152
+
147
153
  - **directory**
148
154
  - **create_temp_dir** - Função para criar diretórios temporários com nomes e caminhos personalizáveis.
149
155
  - **delete_temp_dir** - Função para deletar diretórios temporários, com opção de remover arquivos contidos.
156
+
150
157
  - **log**
151
158
  - **config_logger** - Função para configurar logs com suporte a arquivos e streams, utilizando a biblioteca Loguru.
152
159
  - **log_start_run_debug** - Função para registrar logs de início de execução em nível de depuração.
@@ -155,6 +162,7 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
155
162
  - **log_warning** - Função para registrar logs em nível de aviso.
156
163
  - **log_error** - Função para registrar logs em nível de erro.
157
164
  - **log_critical** - Função para registrar logs em nível crítico.
165
+
158
166
  - **printer**
159
167
  - **success_print** - Função para imprimir mensagens de sucesso com destaque em verde.
160
168
  - **alert_print** - Função para imprimir mensagens de alerta com destaque em amarelo.
@@ -162,18 +170,32 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
162
170
  - **error_print** - Função para imprimir mensagens de erro com destaque em vermelho.
163
171
  - **regex**
164
172
  - **check_pattern_in_text** - Função para verificar a presença de padrões em textos, com suporte a case-sensitive.
173
+
165
174
  - **validate**
166
175
  - **emails** - Função para validar listas de emails, retornando listas de emails válidos e inválidos.
167
176
  - **word** - Função para buscar palavras ou padrões específicos em textos, com suporte a contagem de ocorrências.
177
+
168
178
  - **browser**
169
179
  - **start_browser** - Função para iniciar o navegador Chrome com suporte a depuração remota.
170
180
  - **find_ele** - Função para localizar elementos na página utilizando estratégias de localização do Selenium.
171
181
  - **get** - Função para navegar para URLs específicas.
172
182
  - **close_browser** - Função para fechar o navegador e encerrar processos relacionados.
173
183
 
184
+ - **parallel**
185
+ - **run** - Função para iniciar um processo em paralelo.
186
+ - **is_running** - Função para capturar o status atual do processo que esta rodando em paralelo.
187
+ - **get_result** - Função para coletar o retorno da execução em paralelo junto com resultado da função ou funções que foram enviadas a este processo com retorno em forma de dict.
188
+ - **terminate** - Função para finalizar o processo paralelo mantendo apenas o processo principal do seu código, também é chamada de forma automatica esta função ao final de um procesos paralelo ou no final da função "get_result".
189
+
190
+ - **async**
191
+ - **run** - Função para iniciar a execução assíncrona de uma função mantendo o fluxo principal da aplicação.
192
+ - **is_running** - Função para verificar se a tarefa assíncrona ainda está em execução.
193
+ - **get_result** - Função para obter o resultado da execução assíncrona, incluindo tempo de execução e status, com suporte a timeout.
194
+ - **cancel** - Função para cancelar a tarefa assíncrona em execução.
195
+
174
196
  ## Release
175
197
 
176
- Versão: **Beta 1.4.6**
198
+ Versão: **Beta 1.4.9**
177
199
 
178
200
  Lançamento: *20/02/2024*
179
201
 
@@ -181,10 +203,12 @@ Lançamento: *20/02/2024*
181
203
 
182
204
  Status: Em desenvolvimento.
183
205
 
184
- ### Notas da atualização: 1.4.6
206
+ ### Notas da atualização: 1.4.9
185
207
 
186
208
  - Mudança dos submodulos para Objetos, agora Rpa_suite é um Objeto de Suite que compoe diversos sub-objetos separados pelas mesmas categorias anteriormente ja definidas
187
209
  - Reformulada a arquitetura do projeto para melhor coeção e menos subpastas e arquivos, agora a estrutura é mais simples e de melhor manutenção contendo apenas uma pasta core para o nucleo de nossos modulos, e uma pasta utils com ferramentas utilitarias que vamos adicionar varias novidades
210
+ - Adicionado SubModulo Parallel com função dedicada a rodar um processo em paralelo com seu fluxo principal podendo recuperar o resultado da execução em paralelo a qualquer momento e setando timeout ou deixando o tempo indefinido para aguardar a resposta.
211
+ - Adicionado SubModulo AsyncRunnner com função dedicada a facilitar uso de funções assincronas podendo recuperar seus resultados usando menos código, é um modulo simples porem poupa-nos tempo.
188
212
  - Adicionado setor utils com funcionalidade de tornar o diretorio atual em um importavel relativo para o python
189
213
  - Adicionado Automação de Navegadores! Sim estamos devendo esta feature a bastante tempo, porem estamos com a primeira versão disponivel, em breve teremos mais recursos e disponibilidade para outros navegadores, atualmente suporte apenas para *Chrome.*
190
214
  - Mantemos o alerta! **get_dma** atualizada e **renomeada** para **get_dmy** para manter o padrão em ingles
@@ -1,4 +1,5 @@
1
1
  # rpa_suite/__init__.py
2
+
2
3
  """
3
4
  RPA Suite is a Python module that provides a set of tools for process automation.
4
5
 
@@ -59,5 +60,6 @@
59
60
  ``Browser``: Objeto de Automação de Navegadores (necessario Selenium e Webdriver_Manager)
60
61
  """
61
62
 
63
+ # allows importing the rpa_suite module without the package name
62
64
  from .suite import rpa
63
65
  rpa
@@ -32,6 +32,8 @@ from .log import Log
32
32
  from .print import Print
33
33
  from .regex import Regex
34
34
  from .validate import Validate
35
+ from .parallel import ParallelRunner
36
+ from .asyncrun import AsyncRunner
35
37
 
36
38
 
37
39
 
@@ -0,0 +1,140 @@
1
+ # rpa_suite/core/asyncrun.py
2
+
3
+ # imports third-party
4
+ from typing import Any, Callable, Dict, Optional, TypeVar, Generic
5
+ import asyncio
6
+ import time
7
+ import traceback
8
+ from functools import wraps
9
+
10
+
11
+ T = TypeVar('T')
12
+
13
+
14
+ class AsyncRunner(Generic[T]):
15
+ """
16
+ Class to execute asynchronous functions while maintaining the main application flow.
17
+
18
+ Allows executing asynchronous functions and retrieving their results later.
19
+ Optimized for I/O bound operations (network, files, etc).
20
+ """
21
+
22
+ def __init__(self):
23
+ """Start AsyncRunner."""
24
+ self._task = None
25
+ self._start_time = None
26
+ self._result = {}
27
+
28
+ @staticmethod
29
+ def _to_async(func: Callable) -> Callable:
30
+ """
31
+ Converts a synchronous function into an asynchronous one if necessary.
32
+
33
+ Args:
34
+ func: The function to be converted.
35
+
36
+ Returns:
37
+ A callable that is asynchronous.
38
+ """
39
+ @wraps(func)
40
+ async def wrapper(*args, **kwargs):
41
+ if asyncio.iscoroutinefunction(func):
42
+ return await func(*args, **kwargs)
43
+ return await asyncio.to_thread(func, *args, **kwargs)
44
+ return wrapper
45
+
46
+ async def _execute_function(self, function, args, kwargs):
47
+ """
48
+ Executes the function and manages results/errors.
49
+
50
+ Args:
51
+ function: The function to be executed.
52
+ args: Positional arguments for the function.
53
+ kwargs: Keyword arguments for the function.
54
+ """
55
+ try:
56
+ async_func = self._to_async(function)
57
+ result = await async_func(*args, **kwargs)
58
+
59
+ self._result = {
60
+ 'status': 'success',
61
+ 'result': result,
62
+ 'success': True
63
+ }
64
+
65
+ except Exception as e:
66
+ self._result = {
67
+ 'status': 'error',
68
+ 'error': str(e),
69
+ 'traceback': traceback.format_exc(),
70
+ 'success': False
71
+ }
72
+
73
+ def run(self, function: Callable[..., T], *args, **kwargs) -> 'AsyncRunner[T]':
74
+ """
75
+ Starts the execution of the function asynchronously.
76
+
77
+ Args:
78
+ function: The function to be executed.
79
+ *args: Positional arguments for the function.
80
+ **kwargs: Keyword arguments for the function.
81
+
82
+ Returns:
83
+ self: Returns the instance itself.
84
+ """
85
+ self._result.clear()
86
+ self._start_time = time.time()
87
+
88
+ # Creates and schedules the asynchronous task
89
+ loop = asyncio.get_event_loop()
90
+ self._task = loop.create_task(self._execute_function(function, args, kwargs))
91
+
92
+ return self
93
+
94
+ def is_running(self) -> bool:
95
+ """
96
+ Checks if the task is still running.
97
+
98
+ Returns:
99
+ True if the task is running, False otherwise.
100
+ """
101
+ return self._task is not None and not self._task.done()
102
+
103
+ async def get_result(self, timeout: Optional[float] = None) -> Dict[str, Any]:
104
+ """
105
+ Retrieves the result of the asynchronous execution.
106
+
107
+ Args:
108
+ timeout: Maximum time (in seconds) to wait.
109
+
110
+ Returns:
111
+ A dictionary with the result or error information.
112
+ """
113
+ if self._task is None:
114
+ return {
115
+ 'success': False,
116
+ 'error': 'No task has been started',
117
+ 'execution_time': 0
118
+ }
119
+
120
+ try:
121
+ await asyncio.wait_for(self._task, timeout=timeout)
122
+
123
+ except asyncio.TimeoutError:
124
+ self._task.cancel()
125
+ return {
126
+ 'success': False,
127
+ 'error': f'Operation canceled due to timeout after {time.time() - self._start_time:.2f} seconds',
128
+ 'execution_time': time.time() - self._start_time
129
+ }
130
+
131
+ result = dict(self._result)
132
+ result['execution_time'] = time.time() - self._start_time
133
+ return result
134
+
135
+ def cancel(self) -> None:
136
+ """
137
+ Cancels the running task.
138
+ """
139
+ if self.is_running():
140
+ self._task.cancel()
@@ -1,16 +1,19 @@
1
- # default import
2
- import os, requests
1
+ # rpa_suite/core/browser.py
3
2
 
4
- # imports
3
+ # imports internal
5
4
  from rpa_suite.functions._printer import error_print, alert_print, success_print
6
5
 
6
+ # imports external
7
7
  from selenium import webdriver
8
8
  from selenium.webdriver.common.by import By
9
9
  from selenium.webdriver.chrome.options import Options
10
10
  from selenium.webdriver.support.ui import WebDriverWait
11
11
  from selenium.webdriver.support import expected_conditions as EC
12
12
  from webdriver_manager.chrome import ChromeDriverManager
13
+
14
+ # imports third-party
13
15
  from time import sleep
16
+ import os, requests
14
17
 
15
18
 
16
19
  class Browser():
@@ -166,7 +169,7 @@ class Browser():
166
169
  error_print(f'Erro ao iniciar navegador: {str(e)}.')
167
170
 
168
171
 
169
- def find_ele(self, value, by=By.XPATH, timeout=12, display_message=True):
172
+ def find_ele(self, value: str, by:By=By.XPATH, timeout=12, display_message=True):
170
173
  """
171
174
  Locate and return a web element on the page using the specified locator strategy.
172
175
  Args:
@@ -1,8 +1,12 @@
1
+ # rpa_suite/core/clock.py
1
2
 
3
+ # imports internal
4
+ from rpa_suite.functions._printer import error_print, success_print
5
+
6
+ # imports third-party
2
7
  import time
3
8
  from typing import Callable, Any
4
9
  from datetime import datetime as dt
5
- from rpa_suite.functions._printer import error_print, success_print
6
10
  from typing import Callable, Any
7
11
 
8
12
 
@@ -1,11 +1,16 @@
1
- # /date.py
1
+ # rpa_suite/core/date.py
2
2
 
3
+ # imports internal
4
+ from rpa_suite.functions._printer import error_print
5
+
6
+ # imports third-party
3
7
  import datetime as dt
4
8
  from typing import Optional as Op
5
9
  from typing import Tuple
6
- from rpa_suite.functions._printer import error_print
10
+
7
11
 
8
12
  class Date():
13
+
9
14
  """
10
15
  Class that provides utilities for date manipulation and formatting.
11
16
 
@@ -1,7 +1,12 @@
1
+ # rpa_suite/core/dir.py
1
2
 
3
+ # imports internal
4
+ from rpa_suite.functions._printer import error_print, alert_print, success_print
5
+
6
+ # imports third-party
2
7
  import os, shutil
3
8
  from typing import Union
4
- from rpa_suite.functions._printer import error_print, alert_print, success_print
9
+
5
10
 
6
11
 
7
12
  class Directory():
@@ -1,13 +1,15 @@
1
- # /sender_smtp.py
1
+ # rpa_suite/core/email.py
2
2
 
3
- import smtplib, os
3
+ # imports internal
4
+ from rpa_suite.functions._printer import alert_print, error_print, success_print
5
+
6
+ # imports third-party
7
+ import smtplib
4
8
  from email.mime.image import MIMEImage
5
9
  from email.mime.multipart import MIMEMultipart
6
10
  from email.mime.text import MIMEText
7
11
  from email.mime.base import MIMEBase
8
12
  from email import encoders
9
- from rpa_suite.functions._printer import alert_print, error_print, success_print
10
- from rpa_suite.core.validate import email_validator
11
13
 
12
14
 
13
15
  class Email():
@@ -1,10 +1,18 @@
1
- import os, time
2
- from datetime import datetime
1
+ # rpa_suite/core/file.py
2
+
3
+ # imports internal
3
4
  from rpa_suite.functions._printer import error_print, success_print, alert_print
4
5
  from rpa_suite.functions.__create_ss_dir import __create_ss_dir as create_ss_dir
6
+
7
+ # imports external
5
8
  from colorama import Fore
9
+
10
+ # imports third-party
11
+ import os, time
12
+ from datetime import datetime
6
13
  from typing import Dict, List, Union
7
14
 
15
+
8
16
  class File():
9
17
  """
10
18
  Class that provides utilities for file management, including creation, deletion, and manipulation of files.
@@ -1,6 +1,13 @@
1
- from typing import Optional as Op
1
+ # rpa_suite/core/log.py
2
+
3
+ # imports internal
2
4
  from rpa_suite.functions._printer import error_print, alert_print, success_print
5
+
6
+ # imports external
3
7
  from loguru import logger
8
+
9
+ # imports third-party
10
+ from typing import Optional as Op
4
11
  import sys, os, inspect
5
12
 
6
13