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.
Files changed (30) hide show
  1. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/PKG-INFO +4 -7
  2. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/README.md +3 -6
  3. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/log.py +36 -16
  4. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/suite.py +5 -2
  5. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/utils/__init__.py +2 -0
  6. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/utils/system.py +14 -6
  7. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/PKG-INFO +4 -7
  8. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/setup.py +1 -1
  9. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/LICENSE +0 -0
  10. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/__init__.py +0 -0
  11. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/__init__.py +0 -0
  12. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/asyncrun.py +0 -0
  13. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/browser.py +0 -0
  14. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/clock.py +0 -0
  15. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/date.py +0 -0
  16. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/dir.py +0 -0
  17. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/email.py +0 -0
  18. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/file.py +0 -0
  19. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/parallel.py +0 -0
  20. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/print.py +0 -0
  21. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/regex.py +0 -0
  22. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/core/validate.py +0 -0
  23. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/functions/__create_ss_dir.py +0 -0
  24. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/functions/__init__.py +0 -0
  25. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite/functions/_printer.py +0 -0
  26. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/SOURCES.txt +0 -0
  27. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/dependency_links.txt +0 -0
  28. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/requires.txt +0 -0
  29. {rpa_suite-1.5.6 → rpa_suite-1.5.8}/rpa_suite.egg-info/top_level.txt +0 -0
  30. {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.6
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.6**
287
+ ### Versão: **Beta 1.5.8**
288
288
 
289
289
  - **Data de Lançamento:** *20/02/2024*
290
- - **Última Atualização:** 27/05/2025
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
- - Regex e busca em textos simplificados, com novas funcionalidades planejadas.
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.6**
242
+ ### Versão: **Beta 1.5.8**
243
243
 
244
244
  - **Data de Lançamento:** *20/02/2024*
245
- - **Última Atualização:** 27/05/2025
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
- - Regex e busca em textos simplificados, com novas funcionalidades planejadas.
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
- frame = inspect.currentframe().f_back
41
- full_path_filename = frame.f_code.co_filename
42
- filename = os.path.basename(full_path_filename)
43
- foldername = os.path.basename(os.path.dirname(full_path_filename))
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 = "Logs",
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>:{extra[lineno]: <4} <level>{message}</level>"
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 = inspect.currentframe().f_back
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
- filename = os.path.basename(full_path_filename)
130
- foldername = os.path.basename(os.path.dirname(full_path_filename))
131
- filename = os.path.join(foldername, filename)
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
- self.logger.bind(filename=filename, lineno=lineno).log(level, msg)
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 pkg_resources
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, traceback
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.6
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.6**
287
+ ### Versão: **Beta 1.5.8**
288
288
 
289
289
  - **Data de Lançamento:** *20/02/2024*
290
- - **Última Atualização:** 27/05/2025
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
- - Regex e busca em textos simplificados, com novas funcionalidades planejadas.
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.6',
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