rpa-suite 1.5.6__tar.gz → 1.5.8__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.5.6 → rpa_suite-1.5.8}/PKG-INFO +4 -7
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/README.md +3 -6
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/log.py +36 -16
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/suite.py +5 -2
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/utils/__init__.py +2 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/utils/system.py +14 -6
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/PKG-INFO +4 -7
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/setup.py +1 -1
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/LICENSE +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/__init__.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/__init__.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/asyncrun.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/browser.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/clock.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/date.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/dir.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/email.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/file.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/parallel.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/print.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/regex.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/validate.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/functions/__create_ss_dir.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/functions/__init__.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/functions/_printer.py +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/SOURCES.txt +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/dependency_links.txt +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/requires.txt +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/top_level.txt +0 -0
- {rpa_suite-1.5.6 → rpa_suite-1.5.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: rpa_suite
|
3
|
-
Version: 1.5.
|
3
|
+
Version: 1.5.8
|
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
|
@@ -284,10 +284,10 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
|
|
284
284
|
|
285
285
|
## Release Notes
|
286
286
|
|
287
|
-
### Versão: **Beta 1.5.
|
287
|
+
### Versão: **Beta 1.5.8**
|
288
288
|
|
289
289
|
- **Data de Lançamento:** *20/02/2024*
|
290
|
-
- **Última Atualização:**
|
290
|
+
- **Última Atualização:** 02/06/2025
|
291
291
|
- **Status:** Em desenvolvimento
|
292
292
|
|
293
293
|
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.
|
@@ -299,12 +299,9 @@ Esta versão marca um grande avanço no desenvolvimento da RPA Suite, trazendo m
|
|
299
299
|
- Novo submódulo `ParallelRunner` (`Parallel`) para execução de processos em paralelo com suporte a timeout e recuperação de resultados.
|
300
300
|
- Novo submódulo `AsyncRunner` (`Asyn`) para facilitar o uso de funções assíncronas com menos código.
|
301
301
|
- Adicionado suporte à automação de navegadores (inicialmente apenas Chrome).
|
302
|
-
- Função `get_dma` renomeada para `get_dmy` para padronização em inglês.
|
303
|
-
- Função `send_email` simplificada para maior compatibilidade.
|
304
302
|
- Melhorias nas descrições e adição de docstrings em todas as funções e objetos.
|
305
303
|
- Submódulo de logs unificado com Loguru, agora com suporte a configuração de diretórios, nomes de arquivos e streams para console e arquivo.
|
306
|
-
|
307
|
-
- Melhorias gerais na arquitetura e correções de bugs.
|
304
|
+
|
308
305
|
|
309
306
|
## Mais Sobre
|
310
307
|
|
@@ -239,10 +239,10 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
|
|
239
239
|
|
240
240
|
## Release Notes
|
241
241
|
|
242
|
-
### Versão: **Beta 1.5.
|
242
|
+
### Versão: **Beta 1.5.8**
|
243
243
|
|
244
244
|
- **Data de Lançamento:** *20/02/2024*
|
245
|
-
- **Última Atualização:**
|
245
|
+
- **Última Atualização:** 02/06/2025
|
246
246
|
- **Status:** Em desenvolvimento
|
247
247
|
|
248
248
|
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.
|
@@ -254,12 +254,9 @@ Esta versão marca um grande avanço no desenvolvimento da RPA Suite, trazendo m
|
|
254
254
|
- Novo submódulo `ParallelRunner` (`Parallel`) para execução de processos em paralelo com suporte a timeout e recuperação de resultados.
|
255
255
|
- Novo submódulo `AsyncRunner` (`Asyn`) para facilitar o uso de funções assíncronas com menos código.
|
256
256
|
- Adicionado suporte à automação de navegadores (inicialmente apenas Chrome).
|
257
|
-
- Função `get_dma` renomeada para `get_dmy` para padronização em inglês.
|
258
|
-
- Função `send_email` simplificada para maior compatibilidade.
|
259
257
|
- Melhorias nas descrições e adição de docstrings em todas as funções e objetos.
|
260
258
|
- Submódulo de logs unificado com Loguru, agora com suporte a configuração de diretórios, nomes de arquivos e streams para console e arquivo.
|
261
|
-
|
262
|
-
- Melhorias gerais na arquitetura e correções de bugs.
|
259
|
+
|
263
260
|
|
264
261
|
## Mais Sobre
|
265
262
|
|
@@ -37,13 +37,10 @@ class CustomHandler:
|
|
37
37
|
|
38
38
|
class CustomFormatter:
|
39
39
|
def format(self, record):
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
filename = os.path.join(foldername, filename)
|
45
|
-
lineno = frame.f_lineno
|
46
|
-
format_string = "<green>{time:DD.MM.YY.HH:mm}</green> <level>{level: <8}</level> <level>{message}</level>\n"
|
40
|
+
# Use the info from record["extra"] which is set in Log._log to the caller's file and line
|
41
|
+
filename = record["extra"].get("filename", "")
|
42
|
+
lineno = record["extra"].get("lineno", "")
|
43
|
+
format_string = "<green>{time:DD.MM.YY.HH:mm}</green> <level>{level: <8}</level> <green>{filename}</green>:<cyan>{lineno: <4}</cyan> <level>{message}</level>\n"
|
47
44
|
log_msg = format_string.format(
|
48
45
|
time=record["time"],
|
49
46
|
level=record["level"].name,
|
@@ -69,9 +66,10 @@ class Log:
|
|
69
66
|
def config_logger(
|
70
67
|
self,
|
71
68
|
path_dir: str = "default",
|
72
|
-
name_log_dir: str = "
|
69
|
+
name_log_dir: str = "logs",
|
73
70
|
name_file_log: str = "log",
|
74
71
|
filter_words: list[str] = None,
|
72
|
+
display_message: bool = False,
|
75
73
|
):
|
76
74
|
try:
|
77
75
|
self.path_dir = path_dir
|
@@ -85,9 +83,9 @@ class Log:
|
|
85
83
|
|
86
84
|
try:
|
87
85
|
os.makedirs(self.full_path, exist_ok=True)
|
88
|
-
success_print(f"Diretório:'{self.full_path}' foi criado com sucesso.")
|
86
|
+
if display_message: success_print(f"Diretório:'{self.full_path}' foi criado com sucesso.")
|
89
87
|
except FileExistsError:
|
90
|
-
alert_print(f"Diretório:'{self.full_path}' já existe.")
|
88
|
+
if display_message: alert_print(f"Diretório:'{self.full_path}' já existe.")
|
91
89
|
except PermissionError:
|
92
90
|
alert_print(
|
93
91
|
f"Permissão negada: não é possível criar o diretório '{self.full_path}'."
|
@@ -101,7 +99,7 @@ class Log:
|
|
101
99
|
file_handler = os.path.join(self.full_path, f"{self.name_file_log}.log")
|
102
100
|
self.logger.remove()
|
103
101
|
|
104
|
-
log_format = "<green>{time:DD.MM.YY.HH:mm}</green> <level>{level: <8}</level> <green>{extra[filename]}</green
|
102
|
+
log_format = "<green>{time:DD.MM.YY.HH:mm}</green> <level>{level: <8}</level> <green>{extra[filename]}</green>:<cyan>{extra[lineno]: <4}</cyan> <level>{message}</level>"
|
105
103
|
|
106
104
|
formatter = CustomFormatter()
|
107
105
|
|
@@ -123,14 +121,36 @@ class Log:
|
|
123
121
|
return None
|
124
122
|
|
125
123
|
def _log(self, level: str, msg: str):
|
124
|
+
"""
|
125
|
+
Method to generete logs used from self.
|
126
|
+
"""
|
126
127
|
try:
|
127
|
-
frame
|
128
|
+
# Find the first frame that's not from this log.py file
|
129
|
+
frame = inspect.currentframe()
|
130
|
+
current_file = os.path.normpath(__file__)
|
131
|
+
|
132
|
+
while frame:
|
133
|
+
frame = frame.f_back
|
134
|
+
if frame and os.path.normpath(frame.f_code.co_filename) != current_file:
|
135
|
+
break
|
136
|
+
|
137
|
+
if not frame:
|
138
|
+
# Fallback if we can't find external caller
|
139
|
+
frame = inspect.currentframe().f_back.f_back
|
140
|
+
|
128
141
|
full_path_filename = frame.f_code.co_filename
|
129
|
-
|
130
|
-
|
131
|
-
|
142
|
+
|
143
|
+
# Normalize path to use os.sep
|
144
|
+
full_path_filename = os.path.normpath(full_path_filename)
|
145
|
+
|
146
|
+
# Get the last two components: parent folder and filename
|
147
|
+
parent_folder = os.path.basename(os.path.dirname(full_path_filename))
|
148
|
+
file_name = os.path.basename(full_path_filename)
|
149
|
+
display_filename = f"{parent_folder}/{file_name}"
|
150
|
+
|
132
151
|
lineno = frame.f_lineno
|
133
|
-
|
152
|
+
|
153
|
+
self.logger.bind(filename=display_filename, lineno=lineno).log(level, msg)
|
134
154
|
except Exception as e:
|
135
155
|
error_print(f"Erro durante a função de log! Error: {str(e)}")
|
136
156
|
|
@@ -16,7 +16,7 @@ from .core.asyncrun import AsyncRunner
|
|
16
16
|
|
17
17
|
# imports external
|
18
18
|
from colorama import Fore
|
19
|
-
import
|
19
|
+
from importlib.metadata import version
|
20
20
|
|
21
21
|
# imports third-party
|
22
22
|
import subprocess
|
@@ -162,7 +162,10 @@ class Suite:
|
|
162
162
|
|
163
163
|
# VARIABLES INTERNAL
|
164
164
|
try:
|
165
|
-
__version__ = pkg_resources.get_distribution("rpa_suite").version
|
165
|
+
# old: __version__ = pkg_resources.get_distribution("rpa_suite").version
|
166
|
+
|
167
|
+
__version__ = version("package_name")
|
168
|
+
|
166
169
|
except Exception:
|
167
170
|
__version__ = "unknown"
|
168
171
|
|
@@ -9,5 +9,7 @@ pt-br
|
|
9
9
|
O módulo de utilitários da rpa-suite fornece uma coleção de funções e classes utilitárias que facilitam diversas tarefas na automação de processos. Inclui métodos auxiliares para registro de log, manipulação de arquivos e outras operações comuns que aprimoram a funcionalidade e a usabilidade da RPA Suite.
|
10
10
|
|
11
11
|
"""
|
12
|
+
from .system import Tools
|
13
|
+
|
12
14
|
|
13
15
|
__version__ = '1.5.5'
|
@@ -4,7 +4,7 @@
|
|
4
4
|
from rpa_suite.functions._printer import error_print, success_print
|
5
5
|
|
6
6
|
# imports third-party
|
7
|
-
import sys, os, ctypes
|
7
|
+
import sys, os, ctypes
|
8
8
|
|
9
9
|
|
10
10
|
class Utils:
|
@@ -23,7 +23,7 @@ class Utils:
|
|
23
23
|
try:
|
24
24
|
pass
|
25
25
|
except Exception as e:
|
26
|
-
error_print(f"Erro durante a inicialização da classe Utils: {str(e)}")
|
26
|
+
error_print(f"Erro durante a inicialização da classe Utils: {str(e)}.")
|
27
27
|
|
28
28
|
|
29
29
|
def set_importable_dir(self, display_message: bool = False) -> None:
|
@@ -56,7 +56,7 @@ class Utils:
|
|
56
56
|
|
57
57
|
except Exception as e:
|
58
58
|
error_print(
|
59
|
-
f"Erro ao configurar diretório importável: {str(e)}"
|
59
|
+
f"Erro ao configurar diretório importável: {str(e)}."
|
60
60
|
)
|
61
61
|
|
62
62
|
|
@@ -95,7 +95,7 @@ class KeepSessionActive:
|
|
95
95
|
self.ES_SYSTEM_REQUIRED = 0x00000001
|
96
96
|
self.ES_DISPLAY_REQUIRED = 0x00000002
|
97
97
|
except Exception as e:
|
98
|
-
error_print(f"Erro ao inicializar KeepSessionActive: {str(e)}")
|
98
|
+
error_print(f"Erro ao inicializar KeepSessionActive: {str(e)}.")
|
99
99
|
|
100
100
|
|
101
101
|
def __enter__(self) -> None:
|
@@ -120,7 +120,7 @@ class KeepSessionActive:
|
|
120
120
|
)
|
121
121
|
return self
|
122
122
|
except Exception as e:
|
123
|
-
error_print(f"Erro ao configurar estado de execução: {str(e)}")
|
123
|
+
error_print(f"Erro ao configurar estado de execução: {str(e)}.")
|
124
124
|
return self
|
125
125
|
|
126
126
|
|
@@ -147,4 +147,12 @@ class KeepSessionActive:
|
|
147
147
|
try:
|
148
148
|
ctypes.windll.kernel32.SetThreadExecutionState(self.ES_CONTINUOUS)
|
149
149
|
except Exception as e:
|
150
|
-
error_print(f"Erro ao restaurar estado de execução: {str(e)}")
|
150
|
+
error_print(f"Erro ao restaurar estado de execução: {str(e)}.")
|
151
|
+
|
152
|
+
class Tools(Utils):
|
153
|
+
"""
|
154
|
+
Classe utilitária para gerenciamento de configurações de sistema e diretórios.
|
155
|
+
|
156
|
+
Fornece métodos para manipulação de caminhos de importação e configurações do sistema.
|
157
|
+
"""
|
158
|
+
keep_session_active: KeepSessionActive = KeepSessionActive
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: rpa_suite
|
3
|
-
Version: 1.5.
|
3
|
+
Version: 1.5.8
|
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
|
@@ -284,10 +284,10 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
|
|
284
284
|
|
285
285
|
## Release Notes
|
286
286
|
|
287
|
-
### Versão: **Beta 1.5.
|
287
|
+
### Versão: **Beta 1.5.8**
|
288
288
|
|
289
289
|
- **Data de Lançamento:** *20/02/2024*
|
290
|
-
- **Última Atualização:**
|
290
|
+
- **Última Atualização:** 02/06/2025
|
291
291
|
- **Status:** Em desenvolvimento
|
292
292
|
|
293
293
|
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.
|
@@ -299,12 +299,9 @@ Esta versão marca um grande avanço no desenvolvimento da RPA Suite, trazendo m
|
|
299
299
|
- Novo submódulo `ParallelRunner` (`Parallel`) para execução de processos em paralelo com suporte a timeout e recuperação de resultados.
|
300
300
|
- Novo submódulo `AsyncRunner` (`Asyn`) para facilitar o uso de funções assíncronas com menos código.
|
301
301
|
- Adicionado suporte à automação de navegadores (inicialmente apenas Chrome).
|
302
|
-
- Função `get_dma` renomeada para `get_dmy` para padronização em inglês.
|
303
|
-
- Função `send_email` simplificada para maior compatibilidade.
|
304
302
|
- Melhorias nas descrições e adição de docstrings em todas as funções e objetos.
|
305
303
|
- Submódulo de logs unificado com Loguru, agora com suporte a configuração de diretórios, nomes de arquivos e streams para console e arquivo.
|
306
|
-
|
307
|
-
- Melhorias gerais na arquitetura e correções de bugs.
|
304
|
+
|
308
305
|
|
309
306
|
## Mais Sobre
|
310
307
|
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|
2
2
|
|
3
3
|
setup(
|
4
4
|
name='rpa_suite',
|
5
|
-
version='1.5.
|
5
|
+
version='1.5.8',
|
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',
|
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
|