rpa-suite 0.4.9__py3-none-any.whl → 0.5.1__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/date/__init__.py +0 -0
- rpa_suite/date/date.py +82 -0
- rpa_suite/validate/string_validator.py +19 -12
- {rpa_suite-0.4.9.dist-info → rpa_suite-0.5.1.dist-info}/METADATA +15 -10
- {rpa_suite-0.4.9.dist-info → rpa_suite-0.5.1.dist-info}/RECORD +8 -6
- {rpa_suite-0.4.9.dist-info → rpa_suite-0.5.1.dist-info}/LICENSE +0 -0
- {rpa_suite-0.4.9.dist-info → rpa_suite-0.5.1.dist-info}/WHEEL +0 -0
- {rpa_suite-0.4.9.dist-info → rpa_suite-0.5.1.dist-info}/top_level.txt +0 -0
File without changes
|
rpa_suite/date/date.py
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
import datetime as dt
|
2
|
+
from rpa_suite.log.printer import error_print
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
def get_hms() -> tuple:
|
7
|
+
"""
|
8
|
+
Função para retornar hora, minuto e segundo. O retorno é em forma de tupla com strings podendo armazenar e usar os valores de forma individual.
|
9
|
+
|
10
|
+
Tratamento:
|
11
|
+
----------
|
12
|
+
A função já faz o tratamento para valores abaixo de 10 mantendo sempre 2 casas decimais em todos resultados, os valores individuais são sempre em formato string
|
13
|
+
|
14
|
+
Retorno:
|
15
|
+
----------
|
16
|
+
>>> type:tuple
|
17
|
+
* tuple('hh', 'mm', 'ss') - tupla com os valores de hora, minuto e segundo podendo ser armazenados individualmente, os valores são em string
|
18
|
+
|
19
|
+
Exemplo:
|
20
|
+
---------
|
21
|
+
>>> hora, minuto, segundo = get_hms() \n
|
22
|
+
* OBS.: Note que é possivel desestruturar o retorno para armazenar de forma simultânea.
|
23
|
+
"""
|
24
|
+
|
25
|
+
# Variaiveis locais
|
26
|
+
hours: str
|
27
|
+
minutes: str
|
28
|
+
seconds: str
|
29
|
+
|
30
|
+
# Pré tratamento
|
31
|
+
now = dt.datetime.now()
|
32
|
+
hours: str = str(now.hour) if now.hour > 10 else f"0{now.hour}"
|
33
|
+
minutes: str = str(now.minute) if now.minute > 10 else f"0{now.minute}"
|
34
|
+
seconds: str = str(now.second) if now.second > 10 else f"0{now.second}"
|
35
|
+
|
36
|
+
# Processo
|
37
|
+
try:
|
38
|
+
if len(hours) == 3 or len(minutes) == 3 or len(seconds) == 3:
|
39
|
+
if len(seconds) == 3:
|
40
|
+
seconds[1:]
|
41
|
+
elif len(minutes) == 3:
|
42
|
+
minutes[1:]
|
43
|
+
elif len(hours) == 3:
|
44
|
+
hours[1:]
|
45
|
+
|
46
|
+
return hours, minutes, seconds
|
47
|
+
except Exception as e:
|
48
|
+
return error_print(f'Não foi possivel capturar o horário. Erro: {str(e)}')
|
49
|
+
|
50
|
+
def get_dma() -> tuple:
|
51
|
+
"""
|
52
|
+
Função para retornar dia, mes e ano. O retorno é em forma de tupla com strings podendo armazenar e usar os valores de forma individual.
|
53
|
+
|
54
|
+
Retorno:
|
55
|
+
----------
|
56
|
+
>>> type:tuple
|
57
|
+
* tuple('dd', 'mm', 'yy') - tupla com os valores de dia, mes e ano podendo ser armazenados individualmente
|
58
|
+
|
59
|
+
Exemplo:
|
60
|
+
---------
|
61
|
+
>>> dia, mes, ano = get_hms() \n
|
62
|
+
* OBS.: Note que é possivel desestruturar o retorno para armazenar de forma simultânea.
|
63
|
+
"""
|
64
|
+
|
65
|
+
# Variaiveis locais
|
66
|
+
day_got: str
|
67
|
+
month_got: str
|
68
|
+
year_got: str
|
69
|
+
|
70
|
+
# Pré tratamento
|
71
|
+
now = dt.datetime.now()
|
72
|
+
|
73
|
+
# Processo
|
74
|
+
try:
|
75
|
+
day_got: str = str(now.day) if now.day > 10 else f"0{now.day}"
|
76
|
+
month_got: str = str(now.month) if now.month > 10 else f"0{now.month}"
|
77
|
+
year_got: str = str(now.year) if now.year > 10 else f"0{now.year}"
|
78
|
+
|
79
|
+
return day_got, month_got, year_got
|
80
|
+
|
81
|
+
except Exception as e:
|
82
|
+
return error_print(f'Não foi possivel capturar o horário. Erro: {str(e)}')
|
@@ -53,21 +53,28 @@ def search_in(
|
|
53
53
|
try:
|
54
54
|
if search_by == 'word':
|
55
55
|
origin_words = origin_text.split()
|
56
|
-
|
57
|
-
|
56
|
+
try:
|
57
|
+
if case_sensitivy:
|
58
|
+
result['is_found'] = searched_word in origin_words
|
58
59
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
else:
|
61
|
+
words_lowercase = [word.lower() for word in origin_words]
|
62
|
+
searched_word = searched_word.lower()
|
63
|
+
result['is_found'] = searched_word in words_lowercase
|
64
|
+
except Exception as e:
|
65
|
+
return error_print(f'Não foi possivel concluir a busca de: {searched_word}. Erro: {str(e)}')
|
63
66
|
|
64
67
|
elif search_by == 'string':
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
68
|
+
try:
|
69
|
+
if case_sensitivy:
|
70
|
+
result['is_found'] = origin_text.__contains__(searched_word)
|
71
|
+
else:
|
72
|
+
origin_text_lower: str = origin_text.lower()
|
73
|
+
searched_word_lower: str = searched_word.lower()
|
74
|
+
result['is_found'] = origin_text_lower.__contains__(searched_word_lower)
|
75
|
+
except Exception as e:
|
76
|
+
return error_print(f'Não foi possivel concluir a busca de: {searched_word}. Erro: {str(e)}')
|
77
|
+
|
71
78
|
except Exception as e:
|
72
79
|
return error_print(f'Não foi possivel realizar a busca por: {searched_word}. Erro: {str(e)}')
|
73
80
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: rpa-suite
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.5.1
|
4
4
|
Summary: Conjunto de ferramentas essenciais para 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
|
@@ -18,10 +18,12 @@ Requires-Dist: loguru
|
|
18
18
|
Requires-Dist: colorama
|
19
19
|
Requires-Dist: email-validator
|
20
20
|
|
21
|
-
<div
|
22
|
-
<
|
21
|
+
<div align="center">
|
22
|
+
<a href='https://pypi.org/project/rpa-suite/' target='_blank'>
|
23
|
+
<img src='./logo-rpa-suite.png' alt='Logo - RPA Suite' width='56px'>
|
24
|
+
</a>
|
23
25
|
</div>
|
24
|
-
<h1
|
26
|
+
<h1 align="center">
|
25
27
|
Suite RPA
|
26
28
|
</h1>
|
27
29
|
|
@@ -35,10 +37,10 @@ Requires-Dist: email-validator
|
|
35
37
|
|
36
38
|
Nosso objetivo é tornar o desenvolvimento de RPAs mais produtivo, oferecendo funções prontas para usos comuns, como:
|
37
39
|
|
38
|
-
- envio de emails (
|
39
|
-
- validação de emails (limpeza e tratamento
|
40
|
-
- busca por palavras ou patterns em textos
|
41
|
-
- criação de pastas e arquivos
|
40
|
+
- envio de emails (já configurado / personalizavel)
|
41
|
+
- validação de emails (limpeza e tratamento)
|
42
|
+
- busca por palavras, strings ou substrings (patterns) em textos.
|
43
|
+
- criação de pastas e arquivos temporários e deleta-los com apenas um comando
|
42
44
|
- console com mensagens de melhor visualização com cores definidas para alerta, erro, informativo e sucesso.
|
43
45
|
- e muitas outras facilidades
|
44
46
|
|
@@ -58,6 +60,8 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
|
|
58
60
|
- **rpa_suite**
|
59
61
|
- **clock**
|
60
62
|
- **waiter** - módulo com funções para aguardar execução
|
63
|
+
- **date**
|
64
|
+
- **date** - módulo com funções para capturar data, mes, ano, hora, minutos de forma individual em apenas uma linha
|
61
65
|
- **email**
|
62
66
|
- **sender_smtp** - módulo com funções para envio de email SMPT
|
63
67
|
- **file**
|
@@ -71,7 +75,7 @@ O módulo principal do rpa-suite é dividido em categorias. Cada categoria cont
|
|
71
75
|
- **string_validator** - módulo com funções para validação e varredura de strings / substrings / palavras
|
72
76
|
|
73
77
|
### Versão do projeto:
|
74
|
-
A versão mais recente é a **Alpha 0.
|
78
|
+
A versão mais recente é a **Alpha 0.5.1**, lançada em *28/11/2023*. O projeto está atualmente em desenvolvimento.
|
75
79
|
|
76
80
|
### Mais Sobre:
|
77
81
|
|
@@ -79,6 +83,7 @@ Para mais informações, visite nosso projeto no Github ou PyPi:
|
|
79
83
|
<a href='https://github.com/CamiloCCarvalho/rpa_suite' target='_blank'>
|
80
84
|
Ver no GitHub.
|
81
85
|
</a>
|
86
|
+
</br>
|
82
87
|
<a href='https://pypi.org/project/rpa-suite/' target='_blank'>
|
83
|
-
Ver projeto publicado no
|
88
|
+
Ver projeto publicado no PyPI.
|
84
89
|
</a>
|
@@ -2,6 +2,8 @@ rpa_suite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
rpa_suite/clock/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
rpa_suite/clock/exec_while.py,sha256=ppz5BTOsk1ofsdmj_C_4aAEcXg5QtyOdyna3Bp0Uy6Q,1737
|
4
4
|
rpa_suite/clock/waiter.py,sha256=WFPPBuDflgJrMtBKcRihJJUVECVLuPZepAy9aGm_UW4,1981
|
5
|
+
rpa_suite/date/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
+
rpa_suite/date/date.py,sha256=5VXiQehSsd-0RmGnZ_amdGfxyBu3a7A-Go-KUt34tIw,2826
|
5
7
|
rpa_suite/email/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
8
|
rpa_suite/email/sender_smtp.py,sha256=Qjw-6E6uDoYl94wbLcC_f6Gv6GxZHBXmm3YV1F3yGmU,5252
|
7
9
|
rpa_suite/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -12,9 +14,9 @@ rpa_suite/log/loggin.py,sha256=3f7JdA2zp6mTperx406zbud8v0miwhHLTkT2sxMy63M,872
|
|
12
14
|
rpa_suite/log/printer.py,sha256=yzFO6MBgbsbaFzEnq9l0PcUTgb9fjQiPMAYDV20lhEA,2805
|
13
15
|
rpa_suite/validate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
16
|
rpa_suite/validate/mail_validator.py,sha256=kGifg4ydz8Oh50Hr37t0Py82u4vUap7yzABGQOKE1lQ,2165
|
15
|
-
rpa_suite/validate/string_validator.py,sha256=
|
16
|
-
rpa_suite-0.
|
17
|
-
rpa_suite-0.
|
18
|
-
rpa_suite-0.
|
19
|
-
rpa_suite-0.
|
20
|
-
rpa_suite-0.
|
17
|
+
rpa_suite/validate/string_validator.py,sha256=LQY-FRv8JX9OluOieGmhVi-prso5LakAnhHZE-dIbuw,3937
|
18
|
+
rpa_suite-0.5.1.dist-info/LICENSE,sha256=5D8PIbs31iGd9i1_MDNg4SzaQnp9sEIULALh2y3WyMI,1102
|
19
|
+
rpa_suite-0.5.1.dist-info/METADATA,sha256=5kYJ2fGEzRN3weAYTBEsrKaMpR1RbKOFfFqt_wRrYFw,3938
|
20
|
+
rpa_suite-0.5.1.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
|
21
|
+
rpa_suite-0.5.1.dist-info/top_level.txt,sha256=HYkDtg-kJNAr3F2XAIPyJ-QBbNhk7q6jrqsFt10lz4Y,10
|
22
|
+
rpa_suite-0.5.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|