rpa-suite 1.5.3__py3-none-any.whl → 1.5.4__py3-none-any.whl
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/__init__.py +57 -56
- rpa_suite/core/__init__.py +3 -2
- rpa_suite/core/asyncrun.py +31 -33
- rpa_suite/core/browser.py +110 -81
- rpa_suite/core/clock.py +115 -118
- rpa_suite/core/date.py +36 -40
- rpa_suite/core/dir.py +66 -56
- rpa_suite/core/email.py +55 -53
- rpa_suite/core/file.py +88 -76
- rpa_suite/core/log.py +26 -10
- rpa_suite/core/parallel.py +106 -96
- rpa_suite/core/print.py +42 -70
- rpa_suite/core/regex.py +29 -22
- rpa_suite/core/validate.py +89 -86
- rpa_suite/functions/__create_ss_dir.py +24 -20
- rpa_suite/functions/__init__.py +1 -1
- rpa_suite/functions/_printer.py +20 -20
- rpa_suite/suite.py +71 -101
- rpa_suite/utils/system.py +7 -5
- {rpa_suite-1.5.3.dist-info → rpa_suite-1.5.4.dist-info}/METADATA +75 -58
- rpa_suite-1.5.4.dist-info/RECORD +25 -0
- rpa_suite-1.5.3.dist-info/RECORD +0 -25
- {rpa_suite-1.5.3.dist-info → rpa_suite-1.5.4.dist-info}/WHEEL +0 -0
- {rpa_suite-1.5.3.dist-info → rpa_suite-1.5.4.dist-info}/licenses/LICENSE +0 -0
- {rpa_suite-1.5.3.dist-info → rpa_suite-1.5.4.dist-info}/top_level.txt +0 -0
rpa_suite/suite.py
CHANGED
@@ -24,14 +24,12 @@ import sys
|
|
24
24
|
import hashlib
|
25
25
|
|
26
26
|
|
27
|
-
|
28
27
|
# Windows bash colors
|
29
|
-
class Colors
|
30
|
-
|
28
|
+
class Colors:
|
31
29
|
"""
|
32
30
|
This class provides color constants based on the colorama library,
|
33
31
|
allowing for visual formatting of texts in the Windows terminal.
|
34
|
-
|
32
|
+
|
35
33
|
Attributes:
|
36
34
|
black (str): Black color
|
37
35
|
blue (str): Blue color
|
@@ -47,10 +45,10 @@ class Colors():
|
|
47
45
|
|
48
46
|
pt-br
|
49
47
|
------
|
50
|
-
|
48
|
+
|
51
49
|
Esta classe fornece constantes de cores baseadas na biblioteca colorama,
|
52
50
|
permitindo a formatação visual de textos no terminal Windows.
|
53
|
-
|
51
|
+
|
54
52
|
Atributos:
|
55
53
|
black (str): Cor preta
|
56
54
|
blue (str): Cor azul
|
@@ -65,27 +63,26 @@ class Colors():
|
|
65
63
|
retur_fn (str): Cor amarela clara (usada para retornos de função)
|
66
64
|
"""
|
67
65
|
|
68
|
-
black
|
69
|
-
blue
|
70
|
-
green
|
71
|
-
cyan
|
72
|
-
red
|
73
|
-
magenta
|
74
|
-
yellow
|
75
|
-
white
|
76
|
-
default
|
77
|
-
call_fn
|
78
|
-
retur_fn
|
79
|
-
|
66
|
+
black = f"{Fore.BLACK}"
|
67
|
+
blue = f"{Fore.BLUE}"
|
68
|
+
green = f"{Fore.GREEN}"
|
69
|
+
cyan = f"{Fore.CYAN}"
|
70
|
+
red = f"{Fore.RED}"
|
71
|
+
magenta = f"{Fore.MAGENTA}"
|
72
|
+
yellow = f"{Fore.YELLOW}"
|
73
|
+
white = f"{Fore.WHITE}"
|
74
|
+
default = f"{Fore.WHITE}"
|
75
|
+
call_fn = f"{Fore.LIGHTMAGENTA_EX}"
|
76
|
+
retur_fn = f"{Fore.LIGHTYELLOW_EX}"
|
80
77
|
|
81
|
-
class Suite():
|
82
78
|
|
79
|
+
class Suite:
|
83
80
|
"""
|
84
81
|
RPA Suite is a Python module that provides a set of tools for process automation.
|
85
|
-
|
82
|
+
|
86
83
|
To use the module, import it as follows:
|
87
84
|
>>> from rpa_suite import rpa
|
88
|
-
|
85
|
+
|
89
86
|
Example of usage:
|
90
87
|
>>> from rpa_suite import rpa
|
91
88
|
>>> rpa.email.send_smtp(
|
@@ -96,7 +93,7 @@ class Suite():
|
|
96
93
|
... body_message="<p>Test message</p>"
|
97
94
|
... )
|
98
95
|
>>> rpa.alert_print("Hello World")
|
99
|
-
|
96
|
+
|
100
97
|
Available modules:
|
101
98
|
``clock``: Utilities for time and stopwatch manipulation
|
102
99
|
``date``: Functions for date manipulation
|
@@ -111,10 +108,10 @@ class Suite():
|
|
111
108
|
pt-br
|
112
109
|
-----
|
113
110
|
RPA Suite é um módulo Python que fornece um conjunto de ferramentas para automação de processos.
|
114
|
-
|
111
|
+
|
115
112
|
Para utilizar o módulo, importe-o da seguinte forma:
|
116
113
|
>>> from rpa_suite import rpa
|
117
|
-
|
114
|
+
|
118
115
|
Exemplo de uso:
|
119
116
|
>>> from rpa_suite import rpa
|
120
117
|
>>> rpa.email.send_smtp(
|
@@ -125,7 +122,7 @@ class Suite():
|
|
125
122
|
... body_message="<p>Mensagem de teste</p>"
|
126
123
|
... )
|
127
124
|
>>> rpa.alert_print("Hello World")
|
128
|
-
|
125
|
+
|
129
126
|
Módulos disponíveis:
|
130
127
|
``clock``: Utilitários para manipulação de tempo e cronômetro
|
131
128
|
``date``: Funções para manipulação de datas
|
@@ -137,7 +134,7 @@ class Suite():
|
|
137
134
|
``regex``: Operações com expressões regulares
|
138
135
|
``validate``: Funções de validação de dados
|
139
136
|
"""
|
140
|
-
|
137
|
+
|
141
138
|
# SUBMODULES
|
142
139
|
clock: Clock = Clock()
|
143
140
|
date: Date = Date()
|
@@ -150,35 +147,32 @@ class Suite():
|
|
150
147
|
validate: Validate = Validate()
|
151
148
|
Parallel: ParallelRunner = ParallelRunner
|
152
149
|
Asyn: AsyncRunner = AsyncRunner
|
153
|
-
|
150
|
+
|
154
151
|
# On this case, we are importing the Browser class only if the selenium and webdriver_manager modules are installed.
|
155
152
|
# This is useful to avoid unnecessary imports and dependencies if the user does not need the Browser functionality.
|
156
153
|
import importlib.util
|
157
154
|
|
158
155
|
# from .browser import Browser
|
159
|
-
if importlib.util.find_spec("selenium") and importlib.util.find_spec(
|
156
|
+
if importlib.util.find_spec("selenium") and importlib.util.find_spec(
|
157
|
+
"webdriver_manager"
|
158
|
+
):
|
160
159
|
from .core.browser import Browser
|
160
|
+
|
161
161
|
browser: Browser = Browser
|
162
|
-
|
163
|
-
|
162
|
+
|
164
163
|
# VARIABLES INTERNAL
|
165
164
|
try:
|
166
165
|
__version__ = pkg_resources.get_distribution("rpa_suite").version
|
167
166
|
except Exception:
|
168
|
-
__version__ =
|
169
|
-
|
170
|
-
__id_hash__ =
|
171
|
-
|
172
|
-
|
167
|
+
__version__ = "unknown"
|
168
|
+
|
169
|
+
__id_hash__ = "rpa_suite"
|
170
|
+
|
173
171
|
def __init__(self):
|
174
|
-
self.__id_hash__ =
|
172
|
+
self.__id_hash__ = "rpa_suite"
|
175
173
|
self.__id_hash__ = hashlib.sha256(self.__version__.encode()).hexdigest()
|
176
|
-
|
177
|
-
def success_print(self,
|
178
|
-
string_text: str,
|
179
|
-
color=Colors.green,
|
180
|
-
ending="\n") -> None:
|
181
|
-
|
174
|
+
|
175
|
+
def success_print(self, string_text: str, color=Colors.green, ending="\n") -> None:
|
182
176
|
"""
|
183
177
|
Print that indicates ``SUCCESS``. Customized with the color Green \n
|
184
178
|
Return:
|
@@ -191,14 +185,10 @@ class Suite():
|
|
191
185
|
----------
|
192
186
|
>>> type:None
|
193
187
|
"""
|
194
|
-
|
195
|
-
print(f'{color}{string_text}{Colors.default}', end=ending)
|
196
188
|
|
189
|
+
print(f"{color}{string_text}{Colors.default}", end=ending)
|
197
190
|
|
198
|
-
def alert_print(self,
|
199
|
-
string_text: str,
|
200
|
-
color=Colors.yellow,
|
201
|
-
ending="\n") -> None:
|
191
|
+
def alert_print(self, string_text: str, color=Colors.yellow, ending="\n") -> None:
|
202
192
|
"""
|
203
193
|
Print that indicates ``ALERT``. Customized with the color Yellow \n
|
204
194
|
|
@@ -213,13 +203,9 @@ class Suite():
|
|
213
203
|
----------
|
214
204
|
>>> type:None
|
215
205
|
"""
|
216
|
-
print(f
|
217
|
-
|
206
|
+
print(f"{color}{string_text}{Colors.default}", end=ending)
|
218
207
|
|
219
|
-
def info_print(self,
|
220
|
-
string_text: str,
|
221
|
-
color=Colors.cyan,
|
222
|
-
ending="\n") -> None:
|
208
|
+
def info_print(self, string_text: str, color=Colors.cyan, ending="\n") -> None:
|
223
209
|
"""
|
224
210
|
Print that indicates ``INFORMATION``. Customized with the color Cyan \n
|
225
211
|
|
@@ -234,13 +220,9 @@ class Suite():
|
|
234
220
|
----------
|
235
221
|
>>> type:None
|
236
222
|
"""
|
237
|
-
print(f
|
238
|
-
|
223
|
+
print(f"{color}{string_text}{Colors.default}", end=ending)
|
239
224
|
|
240
|
-
def error_print(self,
|
241
|
-
string_text: str,
|
242
|
-
color=Colors.red,
|
243
|
-
ending="\n") -> None:
|
225
|
+
def error_print(self, string_text: str, color=Colors.red, ending="\n") -> None:
|
244
226
|
"""
|
245
227
|
Print that indicates ``ERROR``. Customized with the color Red \n
|
246
228
|
|
@@ -255,13 +237,11 @@ class Suite():
|
|
255
237
|
----------
|
256
238
|
>>> type:None
|
257
239
|
"""
|
258
|
-
print(f
|
240
|
+
print(f"{color}{string_text}{Colors.default}", end=ending)
|
259
241
|
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
color=Colors.magenta,
|
264
|
-
ending="\n") -> None:
|
242
|
+
def magenta_print(
|
243
|
+
self, string_text: str, color=Colors.magenta, ending="\n"
|
244
|
+
) -> None:
|
265
245
|
"""
|
266
246
|
Print customized with the color Magenta \n
|
267
247
|
|
@@ -276,13 +256,9 @@ class Suite():
|
|
276
256
|
----------
|
277
257
|
>>> type:None
|
278
258
|
"""
|
279
|
-
print(f
|
280
|
-
|
259
|
+
print(f"{color}{string_text}{Colors.default}", end=ending)
|
281
260
|
|
282
|
-
def blue_print(self,
|
283
|
-
string_text: str,
|
284
|
-
color=Colors.blue,
|
285
|
-
ending="\n") -> None:
|
261
|
+
def blue_print(self, string_text: str, color=Colors.blue, ending="\n") -> None:
|
286
262
|
"""
|
287
263
|
Print customized with the color Blue \n
|
288
264
|
|
@@ -297,13 +273,11 @@ class Suite():
|
|
297
273
|
----------
|
298
274
|
>>> type:None
|
299
275
|
"""
|
300
|
-
print(f
|
276
|
+
print(f"{color}{string_text}{Colors.default}", end=ending)
|
301
277
|
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
color=Colors.call_fn,
|
306
|
-
ending="\n") -> None:
|
278
|
+
def print_call_fn(
|
279
|
+
self, string_text: str, color=Colors.call_fn, ending="\n"
|
280
|
+
) -> None:
|
307
281
|
"""
|
308
282
|
Print customized for function called (log) \n
|
309
283
|
Color: Magenta Light
|
@@ -319,13 +293,11 @@ class Suite():
|
|
319
293
|
----------
|
320
294
|
>>> type:None
|
321
295
|
"""
|
322
|
-
print(f
|
323
|
-
|
296
|
+
print(f"{color}{string_text}{Colors.default}", end=ending)
|
324
297
|
|
325
|
-
def print_retur_fn(
|
326
|
-
|
327
|
-
|
328
|
-
ending="\n") -> None:
|
298
|
+
def print_retur_fn(
|
299
|
+
self, string_text: str, color=Colors.retur_fn, ending="\n"
|
300
|
+
) -> None:
|
329
301
|
"""
|
330
302
|
Print customized for function return (log) \n
|
331
303
|
Color: Yellow Light
|
@@ -341,35 +313,33 @@ class Suite():
|
|
341
313
|
----------
|
342
314
|
>>> type:None
|
343
315
|
"""
|
344
|
-
print(f
|
345
|
-
|
316
|
+
print(f"{color}{string_text}{Colors.default}", end=ending)
|
346
317
|
|
347
318
|
def __install_all_libs(self):
|
348
319
|
"""
|
349
320
|
Metodo responsavel por instalar todas libs para uso avançado do RPA-Suite com todas funcionalidades incluindo OCR e agente de IA
|
350
321
|
"""
|
351
322
|
|
352
|
-
|
353
|
-
|
354
323
|
libs = [
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
324
|
+
"colorama",
|
325
|
+
"colorlog",
|
326
|
+
"email_validator",
|
327
|
+
"loguru",
|
328
|
+
"openpyxl",
|
329
|
+
"pandas",
|
330
|
+
"pyautogui",
|
331
|
+
"selenium",
|
332
|
+
"typing",
|
333
|
+
"webdriver_manager",
|
365
334
|
]
|
366
335
|
|
367
336
|
for lib in libs:
|
368
337
|
try:
|
369
|
-
subprocess.check_call([sys.executable,
|
370
|
-
self.success_print(f
|
338
|
+
subprocess.check_call([sys.executable, "-m", "pip", "install", lib])
|
339
|
+
self.success_print(f"Biblioteca {lib} instalada com sucesso!")
|
371
340
|
|
372
341
|
except subprocess.CalledProcessError:
|
373
|
-
self.error_print(f
|
342
|
+
self.error_print(f"Erro ao instalar biblioteca {lib}")
|
343
|
+
|
374
344
|
|
375
345
|
rpa = Suite()
|
rpa_suite/utils/system.py
CHANGED
@@ -8,7 +8,6 @@ import sys, os
|
|
8
8
|
|
9
9
|
|
10
10
|
def set_importable_dir(display_message: bool = False):
|
11
|
-
|
12
11
|
"""
|
13
12
|
Sets the directory to be importable by appending it to the system path.
|
14
13
|
|
@@ -32,11 +31,14 @@ def set_importable_dir(display_message: bool = False):
|
|
32
31
|
----------
|
33
32
|
Nenhum
|
34
33
|
"""
|
35
|
-
|
34
|
+
|
36
35
|
try:
|
37
36
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
38
37
|
|
39
|
-
if display_message:
|
40
|
-
|
38
|
+
if display_message:
|
39
|
+
success_print(f"Successfully set the directory for importation!")
|
40
|
+
|
41
41
|
except Exception as e:
|
42
|
-
error_print(
|
42
|
+
error_print(
|
43
|
+
f"An error occurred while executing the function: {set_importable_dir.__name__}! Error: {str(e)}."
|
44
|
+
)
|
@@ -1,14 +1,18 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: rpa_suite
|
3
|
-
Version: 1.5.
|
3
|
+
Version: 1.5.4
|
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
|
7
7
|
License: MIT
|
8
|
+
Project-URL: Código Fonte, https://github.com/CamiloCCarvalho/rpasuite
|
9
|
+
Project-URL: Documentação, https://github.com/CamiloCCarvalho/rpasuite/wiki
|
10
|
+
Project-URL: LinkedIn, https://www.linkedin.com/in/camilocostac/
|
8
11
|
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
|
9
12
|
Classifier: Development Status :: 3 - Alpha
|
10
13
|
Classifier: Programming Language :: Python :: 3.11
|
11
14
|
Classifier: Programming Language :: Python :: 3.12
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
12
16
|
Classifier: License :: OSI Approved :: MIT License
|
13
17
|
Classifier: Intended Audience :: Developers
|
14
18
|
Classifier: Intended Audience :: Education
|
@@ -35,6 +39,7 @@ Dynamic: description-content-type
|
|
35
39
|
Dynamic: keywords
|
36
40
|
Dynamic: license
|
37
41
|
Dynamic: license-file
|
42
|
+
Dynamic: project-url
|
38
43
|
Dynamic: requires-dist
|
39
44
|
Dynamic: summary
|
40
45
|
|
@@ -55,19 +60,21 @@ Dynamic: summary
|
|
55
60
|
[](https://opensource.org/licenses/MIT)
|
56
61
|
[](https://apify.com/camiloccarvalho/rpasuite)
|
57
62
|
|
58
|
-
|
59
63
|
## O que é?
|
64
|
+
|
60
65
|
**RPA Suite:** um conjunto abrangente de ferramentas projetadas para simplificar e otimizar o desenvolvimento de projetos de automação RPA com Python. Embora nossa suíte seja um conjunto de Ferramentas de RPA especializado, sua versatilidade a torna igualmente útil para uma ampla gama de projetos de desenvolvimento. Esta desenvolvendo com Selenium, Botcity ou Playwright? Experimente a RPA Suite e descubra como podemos facilitar seu projeto, ou qualquer projeto de Robôs de Software.
|
61
66
|
|
62
67
|
<br>
|
63
68
|
|
64
69
|
## Documentação
|
70
|
+
|
65
71
|
- **[Documentação no GitHub](https://github.com/CamiloCCarvalho/rpasuite/wiki)**
|
66
|
-
Conta com guia de uso , instação e todas funcionalidades.
|
72
|
+
Conta com guia de uso , instação e todas funcionalidades.
|
67
73
|
|
68
74
|
<br>
|
69
75
|
|
70
76
|
## Sumário
|
77
|
+
|
71
78
|
- [O que é?](#o-que-é)
|
72
79
|
- [Documentação](#documentação)
|
73
80
|
- [Sumário do conteudo](#sumário-do-conteudo)
|
@@ -80,7 +87,6 @@ Conta com guia de uso , instação e todas funcionalidades.
|
|
80
87
|
- [Release](#release)
|
81
88
|
- [Mais Sobre](#mais-sobre)
|
82
89
|
|
83
|
-
|
84
90
|
## Destaque
|
85
91
|
|
86
92
|
**Versátil**: Além da Automação de Processos e criação de BOT em RPA, mas também para uso geral podendo ser aplicadas em outros modelos de projeto, *além do RPA*.
|
@@ -106,6 +112,7 @@ Nosso objetivo é se tornar a Biblioteca Python para RPA referência. Tornando o
|
|
106
112
|
<br>
|
107
113
|
|
108
114
|
## Instalação
|
115
|
+
|
109
116
|
Para **instalar** o projeto, utilize o comando:
|
110
117
|
|
111
118
|
```python
|
@@ -131,7 +138,6 @@ Feito isso já estará pronto para o uso:
|
|
131
138
|
rpa.email.send_mail(...)
|
132
139
|
```
|
133
140
|
|
134
|
-
|
135
141
|
> **⚠️ IMPORTANTE:**
|
136
142
|
> Para **desinstalar** o projeto, utilize o comando abaixo:
|
137
143
|
>
|
@@ -150,7 +156,6 @@ rpa.email.send_mail(...)
|
|
150
156
|
|
151
157
|
<br>
|
152
158
|
|
153
|
-
|
154
159
|
## Exemplo
|
155
160
|
|
156
161
|
Do módulo principal, importe a suite. Ela retorna uma instância do Objeto de classe Rpa_suite, onde possui variáveis apontando para todas funções dos submódulos:
|
@@ -168,6 +173,7 @@ rpa.clock.wait_for_exec(time, my_function, param1, param2)
|
|
168
173
|
# Usando submódulo email para envio de email por SMTP comum
|
169
174
|
rpa.email.send_smtp(...)
|
170
175
|
```
|
176
|
+
|
171
177
|
<br>
|
172
178
|
|
173
179
|
## Dependências
|
@@ -188,7 +194,6 @@ No setup do nosso projeto já estão inclusas as dependências, só será necess
|
|
188
194
|
- selenium
|
189
195
|
- webdriver_manager
|
190
196
|
|
191
|
-
|
192
197
|
<br>
|
193
198
|
<hr>
|
194
199
|
<br>
|
@@ -205,73 +210,85 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
|
|
205
210
|
- **rpa_suite**
|
206
211
|
|
207
212
|
**clock**
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
213
|
+
|
214
|
+
- **exec_at_hour** - Função que executa uma função no horário especificado "xx:yy", permitindo agendamento de tarefas com precisão.
|
215
|
+
- **wait_for_exec** - Função que aguarda um tempo em segundos antes de executar a função passada como argumento.
|
216
|
+
- **exec_and_wait** - Função que executa uma função e, em seguida, aguarda um tempo em segundos antes de continuar.
|
217
|
+
|
212
218
|
**date**
|
213
|
-
|
214
|
-
|
215
|
-
|
219
|
+
|
220
|
+
- **get_hms** - Função que retorna hora, minuto e segundo formatados como strings.
|
221
|
+
- **get_dmy** - Função que retorna dia, mês e ano formatados como strings.
|
222
|
+
|
216
223
|
**email**
|
217
|
-
|
218
|
-
|
224
|
+
|
225
|
+
- **send_smtp** - Função para envio de emails via SMTP com suporte a anexos e mensagens HTML, configurável e personalizável.
|
226
|
+
|
219
227
|
**file**
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
228
|
+
|
229
|
+
- **screen_shot** - Função para capturar screenshots, criando diretórios e arquivos com nomes e caminhos personalizáveis.
|
230
|
+
- **flag_create** - Função para criar arquivos de flag indicando execução de processos.
|
231
|
+
- **flag_delete** - Função para deletar arquivos de flag após a execução de processos.
|
232
|
+
- **count_files** - Função para contar arquivos em diretórios, com suporte a extensões específicas.
|
233
|
+
|
225
234
|
**directory**
|
226
|
-
|
227
|
-
|
228
|
-
|
235
|
+
|
236
|
+
- **create_temp_dir** - Função para criar diretórios temporários com nomes e caminhos personalizáveis.
|
237
|
+
- **delete_temp_dir** - Função para deletar diretórios temporários, com opção de remover arquivos contidos.
|
238
|
+
|
229
239
|
**log**
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
240
|
+
|
241
|
+
- **config_logger** - Função para configurar logs com suporte a arquivos e streams, utilizando a biblioteca Loguru.
|
242
|
+
- **log_start_run_debug** - Função para registrar logs de início de execução em nível de depuração.
|
243
|
+
- **log_debug** - Função para registrar logs em nível de depuração.
|
244
|
+
- **log_info** - Função para registrar logs em nível informativo.
|
245
|
+
- **log_warning** - Função para registrar logs em nível de aviso.
|
246
|
+
- **log_error** - Função para registrar logs em nível de erro.
|
247
|
+
- **log_critical** - Função para registrar logs em nível crítico.
|
237
248
|
|
238
249
|
**printer**
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
250
|
+
|
251
|
+
- **success_print** - Função para imprimir mensagens de sucesso com destaque em verde.
|
252
|
+
- **alert_print** - Função para imprimir mensagens de alerta com destaque em amarelo.
|
253
|
+
- **info_print** - Função para imprimir mensagens informativas com destaque em ciano.
|
254
|
+
- **error_print** - Função para imprimir mensagens de erro com destaque em vermelho.
|
255
|
+
|
244
256
|
**regex**
|
245
|
-
|
246
|
-
|
257
|
+
|
258
|
+
- **check_pattern_in_text** - Função para verificar a presença de padrões em textos, com suporte a case-sensitive.
|
259
|
+
|
247
260
|
**validate**
|
248
|
-
|
249
|
-
|
250
|
-
|
261
|
+
|
262
|
+
- **emails** - Função para validar listas de emails, retornando listas de emails válidos e inválidos.
|
263
|
+
- **word** - Função para buscar palavras ou padrões específicos em textos, com suporte a contagem de ocorrências.
|
264
|
+
|
251
265
|
**Browser**
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
266
|
+
|
267
|
+
- **start_browser** - Função para iniciar o navegador Chrome com suporte a depuração remota.
|
268
|
+
- **find_ele** - Função para localizar elementos na página utilizando estratégias de localização do Selenium.
|
269
|
+
- **get** - Função para navegar para URLs específicas.
|
270
|
+
- **close_browser** - Função para fechar o navegador e encerrar processos relacionados.
|
271
|
+
|
257
272
|
**Parallel (ParallelRunner)**
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
273
|
+
|
274
|
+
- **run** - Função para iniciar um processo em paralelo.
|
275
|
+
- **is_running** - Função para capturar o status atual do processo que esta rodando em paralelo.
|
276
|
+
- **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.
|
277
|
+
- **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".
|
278
|
+
|
263
279
|
**Asyn (AsyncRunner)**
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
280
|
+
|
281
|
+
- **run** - Função para iniciar a execução assíncrona de uma função mantendo o fluxo principal da aplicação.
|
282
|
+
- **is_running** - Função para verificar se a tarefa assíncrona ainda está em execução.
|
283
|
+
- **get_result** - Função para obter o resultado da execução assíncrona, incluindo tempo de execução e status, com suporte a timeout.
|
284
|
+
- **cancel** - Função para cancelar a tarefa assíncrona em execução.
|
268
285
|
|
269
286
|
## Release Notes
|
270
287
|
|
271
|
-
### Versão: **Beta 1.5.
|
288
|
+
### Versão: **Beta 1.5.4**
|
272
289
|
|
273
290
|
- **Data de Lançamento:** *20/02/2024*
|
274
|
-
- **Última Atualização:**
|
291
|
+
- **Última Atualização:** 21/04/2025
|
275
292
|
- **Status:** Em desenvolvimento
|
276
293
|
|
277
294
|
Esta versão marca um grande avanço no desenvolvimento da RPA Suite, trazendo melhorias significativas na arquitetura, novas funcionalidades e maior simplicidade no uso. Confira as principais mudanças abaixo.
|
@@ -295,6 +312,6 @@ Esta versão marca um grande avanço no desenvolvimento da RPA Suite, trazendo m
|
|
295
312
|
Para mais informações, visite os links abaixo:
|
296
313
|
|
297
314
|
- **[Repositório no GitHub](https://github.com/CamiloCCarvalho/rpa_suite)**
|
298
|
-
Explore o código-fonte, contribua com melhorias e acompanhe o desenvolvimento do projeto.
|
315
|
+
Explore o código-fonte, contribua com melhorias e acompanhe o desenvolvimento do projeto.
|
299
316
|
- **[Página no PyPI](https://pypi.org/project/rpa-suite/)**
|
300
317
|
Confira a documentação oficial, instale a biblioteca e veja as versões disponíveis.
|
@@ -0,0 +1,25 @@
|
|
1
|
+
rpa_suite/__init__.py,sha256=cxAPfpuoh5bNtv6t1vdV4SD80OXufwqwYi0g7FIpG_o,2340
|
2
|
+
rpa_suite/suite.py,sha256=DGP3zOW705qnv8EfFcXg75JIWQwibeIJID5kcmbFSQg,10556
|
3
|
+
rpa_suite/core/__init__.py,sha256=v_7bcPP-1QZuDQKgEVAQRXwHkqKmyYMRIEOdlO_Qj70,1719
|
4
|
+
rpa_suite/core/asyncrun.py,sha256=bE04H36V01LavLRzGMhaUDBrnwhwLLSqpzKRZjsHVnA,4195
|
5
|
+
rpa_suite/core/browser.py,sha256=Hpx4xJkg0KbBRgdYA5umYcOyHVYY-sz9k9ohBrk4uM0,15003
|
6
|
+
rpa_suite/core/clock.py,sha256=T8ilbWrmGwhRGBAVRCCvICWQ1_uu2VjDTJgNEljPYhY,13414
|
7
|
+
rpa_suite/core/date.py,sha256=42Nwvyx-FBBImEyVhBGksmIZ9VSwyFqhQPVeEwSpmtc,6310
|
8
|
+
rpa_suite/core/dir.py,sha256=sN9R-XGIrySAyUYIB3XVHzaZR5ZqcX2Ag-pKZ6G3jpY,10301
|
9
|
+
rpa_suite/core/email.py,sha256=kH6wFPxekXxhqt4ry_gWOzVeV_YBSIzb_xr5CL9FR_8,8741
|
10
|
+
rpa_suite/core/file.py,sha256=plj_sC-j2j2IEQ5NRTssnSNPaPGLBg-RjPwGZPpWsIo,11441
|
11
|
+
rpa_suite/core/log.py,sha256=LqH_sJ2ttAuW6qIhVP0x-gdDxBEzC1CoQCo_7VNgHSg,5869
|
12
|
+
rpa_suite/core/parallel.py,sha256=nmATr6KimkAplDeh-dGwP6iB9muJ7ygDQ3NoYkEYgIg,11709
|
13
|
+
rpa_suite/core/print.py,sha256=T-O4zaYzfPLKn5tEzgNrWOqRV_p4hAzT-c1Y3JDla24,5825
|
14
|
+
rpa_suite/core/regex.py,sha256=76NjtLaIFM4LuTWLAOusQoOcP_Rub_G2ol9H6CIkTMg,3324
|
15
|
+
rpa_suite/core/validate.py,sha256=gOISOwjCza-18kfpaZnWCrKj4aIk2s7U4mStBDUAC7E,10857
|
16
|
+
rpa_suite/functions/__create_ss_dir.py,sha256=oAvZCMRgrBNUpaYGEiNlUFa1XiVYDfOqPb9M8ITxqG8,3482
|
17
|
+
rpa_suite/functions/__init__.py,sha256=JvDgAW0Msy8hf3jdVL0o2D4mkNQGUlUBl88zh1JX8pc,34
|
18
|
+
rpa_suite/functions/_printer.py,sha256=gj7dwOt4roSj2iwOGWeGgUD3JVr7h4UESyCg9CmrieA,3946
|
19
|
+
rpa_suite/utils/__init__.py,sha256=RQ-m9QNbaByek25moxx9ajpuxjPAEdjoMu69ReLBCWY,675
|
20
|
+
rpa_suite/utils/system.py,sha256=Fum2VVXgBqWpS-f3Qj3u-sbWtW2dfCpKPRuipAY3x6c,1176
|
21
|
+
rpa_suite-1.5.4.dist-info/licenses/LICENSE,sha256=5D8PIbs31iGd9i1_MDNg4SzaQnp9sEIULALh2y3WyMI,1102
|
22
|
+
rpa_suite-1.5.4.dist-info/METADATA,sha256=8YwCc_2PsxIz3IvPP35T82Af4zERwk3nDJb1xVOYLNA,14094
|
23
|
+
rpa_suite-1.5.4.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
24
|
+
rpa_suite-1.5.4.dist-info/top_level.txt,sha256=HYkDtg-kJNAr3F2XAIPyJ-QBbNhk7q6jrqsFt10lz4Y,10
|
25
|
+
rpa_suite-1.5.4.dist-info/RECORD,,
|
rpa_suite-1.5.3.dist-info/RECORD
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
rpa_suite/__init__.py,sha256=KO6GC2XbZUO56SAOgKxIkycHFEy6oeWPSswd8-B5IP4,2562
|
2
|
-
rpa_suite/suite.py,sha256=1lsdFLz44gh7y3leOR5BCsx1dEKam5cm1g7l5RCFsYc,11187
|
3
|
-
rpa_suite/core/__init__.py,sha256=oGQiEtmgR9fBHgcAKYsl5eZsS2_SbRZnlhzOgRqXrAM,1713
|
4
|
-
rpa_suite/core/asyncrun.py,sha256=S5b-ueG4oJmupBZLsfYqcyTA5k5SaAi8j3KU8NnTOMg,4378
|
5
|
-
rpa_suite/core/browser.py,sha256=h1sMERkEw8y8zfQs2hdv2VbBNt3pQlVkMlkQOTKpaKQ,14755
|
6
|
-
rpa_suite/core/clock.py,sha256=zEPYkHdzsxvLen1x7GImdEMhNnGgYZ-0sy5XBlVdDPc,13846
|
7
|
-
rpa_suite/core/date.py,sha256=0dqkP7zVjWeMmZA5xDZuvin97yYPMl1p0bCfLmtXdlM,6635
|
8
|
-
rpa_suite/core/dir.py,sha256=EmMnnkMeb0fKUbbOiEC7uqwuEvwZR4ymwkumulRZa1g,10248
|
9
|
-
rpa_suite/core/email.py,sha256=CUqhW8-BF0XS7vFeZieQ13VywEg1TQZVoicEexSQCPE,8671
|
10
|
-
rpa_suite/core/file.py,sha256=8eKlOSRptCYDJ-zRrHYK7tnmxR-JjQ55U47BRRdMGRE,11621
|
11
|
-
rpa_suite/core/log.py,sha256=7VTPKXzVkWMg1W5bBO6BM3XDihKqNOcB4D-d6ytDbts,5631
|
12
|
-
rpa_suite/core/parallel.py,sha256=p5jM7UwLWGYoYuQoUo659469nsuvy9QEkzVhXqu-GnU,11876
|
13
|
-
rpa_suite/core/print.py,sha256=jhCNdid67dtVE6cCgRnWjqUrmsJcAr1hN38MHVupgfo,6423
|
14
|
-
rpa_suite/core/regex.py,sha256=gh3dlV29chepdoaWsl5yW9Db6MHQTGJeWstm0mD9zKU,3377
|
15
|
-
rpa_suite/core/validate.py,sha256=vKpl4u7f8CM30e_1rS6sqUqePy0ga51HHGn1cgent1o,11032
|
16
|
-
rpa_suite/functions/__create_ss_dir.py,sha256=FWLglWEYFCZUd_t-Peph1_ktfoH0fskkcfwxgU_pyks,3444
|
17
|
-
rpa_suite/functions/__init__.py,sha256=aa0jejVvnghufR50owKcKpmYit7XVAliyN9gn9JkdLE,33
|
18
|
-
rpa_suite/functions/_printer.py,sha256=51Xbqr0Ck7HHOrhJCxhMxdCKrF_kQ5AsKZN5SZQPwpk,3991
|
19
|
-
rpa_suite/utils/__init__.py,sha256=RQ-m9QNbaByek25moxx9ajpuxjPAEdjoMu69ReLBCWY,675
|
20
|
-
rpa_suite/utils/system.py,sha256=fQ9BAWxVETrFUeZJlfhN3cLzToU3XDQYqvDS9W0hWgY,1157
|
21
|
-
rpa_suite-1.5.3.dist-info/licenses/LICENSE,sha256=5D8PIbs31iGd9i1_MDNg4SzaQnp9sEIULALh2y3WyMI,1102
|
22
|
-
rpa_suite-1.5.3.dist-info/METADATA,sha256=Pspz8xrRL7qj6TOW-bFmUIMsJa4qLKr1zM0a09uafuk,13873
|
23
|
-
rpa_suite-1.5.3.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
24
|
-
rpa_suite-1.5.3.dist-info/top_level.txt,sha256=HYkDtg-kJNAr3F2XAIPyJ-QBbNhk7q6jrqsFt10lz4Y,10
|
25
|
-
rpa_suite-1.5.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|