rpa-suite 0.4.1__py3-none-any.whl → 0.4.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/clock/waiter.py +11 -6
- rpa_suite/email/sender_smtp.py +14 -13
- rpa_suite/file/counter.py +11 -5
- rpa_suite/file/temp_dir.py +17 -10
- rpa_suite/log/loggin.py +5 -0
- rpa_suite/log/printer.py +70 -0
- rpa_suite/validate/mail_validator.py +26 -22
- rpa_suite/validate/string_validator.py +34 -17
- rpa_suite-0.4.4.dist-info/METADATA +74 -0
- rpa_suite-0.4.4.dist-info/RECORD +20 -0
- rpa_suite-0.4.1.dist-info/METADATA +0 -25
- rpa_suite-0.4.1.dist-info/RECORD +0 -19
- {rpa_suite-0.4.1.dist-info → rpa_suite-0.4.4.dist-info}/LICENSE +0 -0
- {rpa_suite-0.4.1.dist-info → rpa_suite-0.4.4.dist-info}/WHEEL +0 -0
- {rpa_suite-0.4.1.dist-info → rpa_suite-0.4.4.dist-info}/top_level.txt +0 -0
rpa_suite/clock/waiter.py
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
from typing import Callable, Any
|
2
2
|
import time
|
3
|
-
from rpa_suite.log.loggin import logging_decorator
|
4
3
|
|
5
|
-
@logging_decorator
|
6
4
|
def wait_for_exec(
|
7
5
|
wait_time: int,
|
8
6
|
fn_to_exec: Callable[..., Any],
|
@@ -11,13 +9,20 @@ def wait_for_exec(
|
|
11
9
|
) -> dict:
|
12
10
|
|
13
11
|
"""
|
14
|
-
Função temporizadora,
|
12
|
+
Função temporizadora, aguardar um valor em ``segundos`` para executar a função do argumento.
|
15
13
|
|
16
|
-
|
14
|
+
Parametros:
|
15
|
+
----------
|
16
|
+
`wait_time: int` - (segundos) representa o tempo que deve aguardar antes de executar a função passada como argumento.
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
``fn_to_exec: function`` - (função) a ser chamada depois do tempo aguardado, se houver parametros nessa função podem ser passados como próximos argumentos desta função em ``*args`` e ``**kwargs``
|
19
|
+
|
20
|
+
Retorno:
|
21
|
+
----------
|
22
|
+
>>> type:dict
|
23
|
+
* 'success': bool - representa se ação foi realizada com sucesso
|
20
24
|
"""
|
25
|
+
|
21
26
|
# Variaveis locais
|
22
27
|
waiter_result: dict = {
|
23
28
|
'success': bool
|
rpa_suite/email/sender_smtp.py
CHANGED
@@ -3,9 +3,7 @@ from email.mime.multipart import MIMEMultipart
|
|
3
3
|
from email.mime.text import MIMEText
|
4
4
|
from email.mime.base import MIMEBase
|
5
5
|
from email import encoders
|
6
|
-
from rpa_suite.log.loggin import logging_decorator
|
7
6
|
|
8
|
-
@logging_decorator
|
9
7
|
def send_email(
|
10
8
|
email_from: str,
|
11
9
|
pass_from: str,
|
@@ -18,18 +16,21 @@ def send_email(
|
|
18
16
|
) -> dict:
|
19
17
|
|
20
18
|
"""
|
21
|
-
Função responsavel por enviar emails (SMTP)
|
22
|
-
de anexar arquivos
|
19
|
+
Função responsavel por enviar emails ``(SMTP)``, aceita ``lista de destinatários`` e possibilidade
|
20
|
+
de ``anexar arquivos``. \n
|
23
21
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
-
|
30
|
-
-
|
31
|
-
-
|
32
|
-
-
|
22
|
+
Retorno:
|
23
|
+
----------
|
24
|
+
>>> type:dict
|
25
|
+
um dicionário com todas informações que podem ser necessarias sobre os emails.
|
26
|
+
Sendo respectivamente:
|
27
|
+
* 'success': bool - se houve pelo menos um envio com sucesso
|
28
|
+
* 'all_mails': list - lista de todos emails parametrizados para envio
|
29
|
+
* 'valid_mails': list - lista de todos emails validos para envio
|
30
|
+
* 'invalid_mails': list - lista de todos emails invalidos para envio
|
31
|
+
* 'qt_mails_sent': int - quantidade efetiva que foi realizado envio
|
32
|
+
* 'attchament': bool - se há anexos
|
33
|
+
* 'qt_attach': int - quantos anexos foram inseridos
|
33
34
|
"""
|
34
35
|
|
35
36
|
# Variaveis locais
|
rpa_suite/file/counter.py
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
import os
|
2
|
-
from rpa_suite.log.loggin import logging_decorator
|
3
2
|
|
4
|
-
@logging_decorator
|
5
3
|
def count_files(
|
6
4
|
dir_to_count: list[str],
|
7
5
|
type_extension: str = '*'
|
@@ -10,9 +8,17 @@ def count_files(
|
|
10
8
|
"""
|
11
9
|
Função responsavel por fazer a contagem de arquivos dentro de uma pasta, considera subpastas para fazer a contagem, busca por tipo de arquivo, sendo todos arquivos por default. \n
|
12
10
|
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
Parametros:
|
12
|
+
----------
|
13
|
+
``dir_to_count: list`` - deve ser uma lista, aceita mais de um caminho para contar arquivos.
|
14
|
+
``type_extension: str`` - deve ser uma string com o formato/extensão do tipo de arquivo que deseja ser buscado para contagem, se vazio por default sera usado ``*`` que contará todos arquivos.
|
15
|
+
|
16
|
+
|
17
|
+
Retorno:
|
18
|
+
----------
|
19
|
+
>>> type:dict
|
20
|
+
* 'success': bool - representa se ação foi realizada com sucesso
|
21
|
+
* 'qt': int - numero que representa a quantidade de arquivos que foram contados
|
16
22
|
"""
|
17
23
|
|
18
24
|
# Variaveis locais
|
rpa_suite/file/temp_dir.py
CHANGED
@@ -1,16 +1,20 @@
|
|
1
1
|
import os, shutil
|
2
2
|
import time
|
3
|
-
from rpa_suite.log.loggin import logging_decorator
|
4
3
|
|
5
|
-
@logging_decorator
|
6
4
|
def create_temp_dir(path_to_create: str = 'default') -> dict:
|
7
5
|
|
8
6
|
"""
|
9
7
|
Função responsavel por criar diretório temporário para trabalhar com arquivos e etc. \n
|
10
8
|
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
Parametros:
|
10
|
+
----------
|
11
|
+
``path_to_create: str`` - deve ser uma string com o path completo apontando para a pasta onde deve ser criada a pasta temporaria, se estiver vazio sera usado valor ``default`` que criará pasta no diretório atual onde o arquivo contendo esta função foi chamada.
|
12
|
+
|
13
|
+
Retorno:
|
14
|
+
----------
|
15
|
+
>>> type:dict
|
16
|
+
* 'success': bool - representa se ação foi realizada com sucesso
|
17
|
+
* 'path_deleted': str - path do diretório que foi criado no processo
|
14
18
|
|
15
19
|
"""
|
16
20
|
|
@@ -56,17 +60,20 @@ def create_temp_dir(path_to_create: str = 'default') -> dict:
|
|
56
60
|
return temp_dir_result
|
57
61
|
|
58
62
|
|
59
|
-
@logging_decorator
|
60
63
|
def delete_temp_dir(path_to_delete: str = 'default') -> dict:
|
61
64
|
|
62
65
|
"""
|
63
66
|
Função responsavel por deletar diretório temporário no caminho especificado. \n
|
64
67
|
|
65
|
-
|
68
|
+
Parametros:
|
69
|
+
----------
|
70
|
+
``path_to_delete: str`` - deve ser uma string com o path completo apontando para a pasta onde deve ser deletada a pasta temporaria, se estiver vazio sera usado valor ``default`` que buscará pasta no diretório atual onde o arquivo contendo esta função foi chamada.
|
66
71
|
|
67
|
-
|
68
|
-
|
69
|
-
|
72
|
+
Retorno:
|
73
|
+
----------
|
74
|
+
>>> type:dict
|
75
|
+
* 'success': bool - representa se ação foi realizada com sucesso
|
76
|
+
* 'path_deleted': str - path do diretório que foi excluido no processo
|
70
77
|
|
71
78
|
"""
|
72
79
|
|
rpa_suite/log/loggin.py
CHANGED
@@ -8,6 +8,11 @@ def logging_decorator(
|
|
8
8
|
"""
|
9
9
|
Função responsavel por exibir mensagem de log no console para funções que são chamadas. \n
|
10
10
|
Exibe nome da função, e o resultado da função em caso de retorno, sem retorno devolve None.
|
11
|
+
|
12
|
+
Retorno:
|
13
|
+
----------
|
14
|
+
Uma função ``wrapper`` com decoração ``@logger.catch`` do python que recebeu:
|
15
|
+
* ``*args e **kwargs`` nos parametros de chamada como argumento para resultar no Log.
|
11
16
|
"""
|
12
17
|
|
13
18
|
@logger.catch
|
rpa_suite/log/printer.py
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
from colorama import Fore, Back, Style
|
2
|
+
from typing import Any
|
3
|
+
|
4
|
+
# Windows bash colors
|
5
|
+
class Colors():
|
6
|
+
black = f'{Fore.BLACK}'
|
7
|
+
blue = f'{Fore.BLUE}'
|
8
|
+
green = f'{Fore.GREEN}'
|
9
|
+
cyan = f'{Fore.CYAN}'
|
10
|
+
red = f'{Fore.RED}'
|
11
|
+
magenta = f'{Fore.MAGENTA}'
|
12
|
+
yellow = f'{Fore.YELLOW}'
|
13
|
+
white = f'{Fore.WHITE}'
|
14
|
+
default = f'{Fore.WHITE}'
|
15
|
+
|
16
|
+
|
17
|
+
def success_print(string_text: str, color=Colors.green) -> None:
|
18
|
+
"""
|
19
|
+
Print que indica ``SUCESSO``. Personalizado com a cor Verde \n
|
20
|
+
|
21
|
+
Retorno:
|
22
|
+
----------
|
23
|
+
>>> type:None
|
24
|
+
"""
|
25
|
+
return print(f'{color} {string_text} {Colors.default}')
|
26
|
+
|
27
|
+
def alert_print(string_text: str, color=Colors.yellow) -> None:
|
28
|
+
"""
|
29
|
+
Print que indica ``ALERTA``. Personalizado com a cor Amarelo \n
|
30
|
+
Retorno:
|
31
|
+
----------
|
32
|
+
>>> type:None
|
33
|
+
"""
|
34
|
+
return print(f'{color} {string_text} {Colors.default}')
|
35
|
+
|
36
|
+
def info_print(string_text: str, color=Colors.cyan) -> None:
|
37
|
+
"""
|
38
|
+
Print que indica ``INFORMATIVO``. Personalizado com a cor Ciano \n
|
39
|
+
Retorno:
|
40
|
+
----------
|
41
|
+
>>> type:None
|
42
|
+
"""
|
43
|
+
return print(f'{color} {string_text} {Colors.default}')
|
44
|
+
|
45
|
+
def error_print(string_text: str, color=Colors.red) -> None:
|
46
|
+
"""
|
47
|
+
Print que indica ``ERRO``. Personalizado com a cor Vermelho \n
|
48
|
+
Retorno:
|
49
|
+
----------
|
50
|
+
>>> type:None
|
51
|
+
"""
|
52
|
+
return print(f'{color} {string_text} {Colors.default}')
|
53
|
+
|
54
|
+
def magenta_print(string_text: str, color=Colors.magenta) -> None:
|
55
|
+
"""
|
56
|
+
Print personalizado com a cor Magenta \n
|
57
|
+
Retorno:
|
58
|
+
----------
|
59
|
+
>>> type:None
|
60
|
+
"""
|
61
|
+
return print(f'{color} {string_text} {Colors.default}')
|
62
|
+
|
63
|
+
def blue_print(string_text: str, color=Colors.blue) -> None:
|
64
|
+
"""
|
65
|
+
Print personalizado com a cor Azul \n
|
66
|
+
Retorno:
|
67
|
+
----------
|
68
|
+
>>> type:None
|
69
|
+
"""
|
70
|
+
return print(f'{color} {string_text} {Colors.default}')
|
@@ -1,7 +1,5 @@
|
|
1
1
|
import email_validator
|
2
|
-
from rpa_suite.log.loggin import logging_decorator
|
3
2
|
|
4
|
-
@logging_decorator
|
5
3
|
def valid_emails(
|
6
4
|
email_list: list[str]
|
7
5
|
) -> dict:
|
@@ -9,24 +7,30 @@ def valid_emails(
|
|
9
7
|
"""
|
10
8
|
Função responsavel por validar de forma rigorosa lista de emails usando a biblioteca email_validator. \n
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
10
|
+
Paramentros:
|
11
|
+
------------
|
12
|
+
``email_list: list`` uma lista de strings contendo os emails a serem validados
|
13
|
+
|
14
|
+
Retorno:
|
15
|
+
------------
|
16
|
+
>>> type: dict
|
17
|
+
Retorna um dicionário com os respectivos dados:
|
18
|
+
* 'success': bool - representa se a lista é 100% valida
|
19
|
+
* 'valid_emails': list - lista de emails validos
|
20
|
+
* 'invalid_emails': list - lista de emails invalidos
|
21
|
+
* 'qt_valids': int - quantidade de emails validos
|
22
|
+
* 'qt_invalids': int - quantidade de emails invalidos
|
23
|
+
* 'map_validation' - mapa da validação de cada email (dicionário)
|
20
24
|
"""
|
21
25
|
|
22
26
|
# Variaveis locais
|
23
27
|
mail_validation_result: dict = {
|
24
|
-
'
|
25
|
-
'
|
26
|
-
'
|
27
|
-
'
|
28
|
-
'
|
29
|
-
'
|
28
|
+
'success': bool,
|
29
|
+
'valid_emails': list,
|
30
|
+
'invalid_emails': list,
|
31
|
+
'qt_valids': int,
|
32
|
+
'qt_invalids': int,
|
33
|
+
'map_validation': list[dict]
|
30
34
|
}
|
31
35
|
|
32
36
|
|
@@ -52,12 +56,12 @@ def valid_emails(
|
|
52
56
|
|
53
57
|
# Pós Tratamento
|
54
58
|
mail_validation_result = {
|
55
|
-
'
|
56
|
-
'
|
57
|
-
'
|
58
|
-
'
|
59
|
-
'
|
60
|
-
'
|
59
|
+
'valid_emails': valid_emails,
|
60
|
+
'invalid_emails': invalid_emails,
|
61
|
+
'success': len(invalid_emails) == 0,
|
62
|
+
'qt_valids': len(valid_emails),
|
63
|
+
'qt_invalids': len(invalid_emails),
|
64
|
+
'map_validation': map_validation
|
61
65
|
}
|
62
66
|
|
63
67
|
# Retorno
|
@@ -1,32 +1,47 @@
|
|
1
|
-
from rpa_suite.log.loggin import logging_decorator
|
2
1
|
|
3
|
-
@logging_decorator
|
4
2
|
def search_in(
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
origin_text: str,
|
4
|
+
searched_word: str,
|
5
|
+
case_sensitivy: bool = True,
|
6
|
+
search_by: str = 'string',
|
7
|
+
) -> dict:
|
10
8
|
|
11
9
|
"""
|
12
10
|
Função responsavel por fazer busca de uma string, sbustring ou palavra dentro de um texto fornecido. \n
|
13
11
|
|
14
|
-
|
12
|
+
Parametros:
|
13
|
+
-----------
|
14
|
+
``origin_text: str`` \n
|
15
15
|
|
16
|
-
|
17
|
-
|
16
|
+
* É o texto onde deve ser feita a busca, no formato string. \n
|
17
|
+
|
18
|
+
``search_by: str`` aceita os valores: \n
|
19
|
+
|
20
|
+
* 'string' - consegue encontrar um trecho de escrita solicitado. (default) \n
|
21
|
+
* 'word' - encontra apenas a palavra escrita por extenso exclusivamente. \n
|
22
|
+
* 'regex' - encontrar padrões de regex, [ EM DESENVOLVIMENTO ...] \n
|
23
|
+
|
24
|
+
Retorno:
|
25
|
+
-----------
|
26
|
+
>>> type:dict
|
27
|
+
um dicionário com todas informações que podem ser necessarias sobre a validação.
|
28
|
+
Sendo respectivamente:
|
29
|
+
* 'is_found': bool - se o pattern foi encontrado em pelo menos um caso
|
30
|
+
* 'number_occurrences': int - representa o numero de vezes que esse pattern foi econtrado
|
31
|
+
* 'positions': list[set(int, int), ...] - representa todas posições onde apareceu o pattern no texto original
|
32
|
+
|
33
|
+
Sobre o `Position`:
|
34
|
+
-----------
|
35
|
+
>>> type: list[set(int, int), ...]
|
36
|
+
* no ``index = 0`` encontramos a primeira ocorrencia do texto, e a ocorrencia é composta por um PAR de numeros em um set, os demais indexes representam outras posições onde foram encontradas ocorrencias caso hajam.
|
18
37
|
|
19
|
-
Retorno é um dicionário da seguinte forma:
|
20
|
-
- encontrou: bool
|
21
|
-
- numero de ocorrencias: int
|
22
|
-
- posição inicial e final de cada ocorrencia: list[set(start; end), ...]
|
23
38
|
"""
|
24
39
|
|
25
40
|
# Variaveis locais
|
26
41
|
string_validator_result: dict = {
|
27
42
|
'is_found': bool,
|
28
43
|
'number_occurrences': int,
|
29
|
-
'
|
44
|
+
'positions': list[set]
|
30
45
|
}
|
31
46
|
|
32
47
|
# Pré tratamento
|
@@ -52,11 +67,13 @@ def search_in(
|
|
52
67
|
searched_word_lower: str = searched_word.lower()
|
53
68
|
string_validator_result['is_found'] = origin_text_lower.__contains__(searched_word_lower)
|
54
69
|
|
55
|
-
"""
|
70
|
+
"""
|
71
|
+
elif search_by == 'regex':
|
56
72
|
# regex search
|
57
73
|
pass
|
58
74
|
else:
|
59
|
-
print(f'por favor digite alguma forma de busca valida para a função, a função aceita: string, word e regex, como padrões de busca para fazer a pesquisa no texto original.')
|
75
|
+
print(f'por favor digite alguma forma de busca valida para a função, a função aceita: string, word e regex, como padrões de busca para fazer a pesquisa no texto original.')
|
76
|
+
"""
|
60
77
|
|
61
78
|
# Pós tratamento
|
62
79
|
...
|
@@ -0,0 +1,74 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: rpa-suite
|
3
|
+
Version: 0.4.4
|
4
|
+
Summary: Conjunto de ferramentas essenciais para RPA com Python, que facilitam o dia a dia de desenvolvimento.
|
5
|
+
Author: Camilo Costa de Carvalho
|
6
|
+
Author-email: camilo.carvalho@triasoftware.com.br
|
7
|
+
License: MIT
|
8
|
+
Keywords: basic-tools,email-tools,email-validation,file-tools,simple-functions,rpa-tools,rpa-functions
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
12
|
+
Classifier: Programming Language :: Python :: 3.7
|
13
|
+
Classifier: Programming Language :: Python :: 3.8
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
15
|
+
Description-Content-Type: text/markdown
|
16
|
+
License-File: LICENSE
|
17
|
+
Requires-Dist: loguru
|
18
|
+
Requires-Dist: colorama
|
19
|
+
Requires-Dist: email-validator
|
20
|
+
|
21
|
+
# Suite RPA:
|
22
|
+
|
23
|
+
## Kit de ferramentas para o desenvolvimento do seu bot, automação ou projeto.
|
24
|
+
|
25
|
+
**Versatil**: Embora criado com foco no desenvolvimento de BOTs em RPA, as ferramentas são de uso geral, podem ser *aplicadas também em outros modelos de projetos além do RPA*.
|
26
|
+
|
27
|
+
**Simples**: Contruimos as ferramentas de maneira mais direta e acertiva possivel e usando apenas libs conhecidas no mercado, para melhor aproveitamento e performance possivel.
|
28
|
+
|
29
|
+
## Objetivo:
|
30
|
+
|
31
|
+
Estamos tornando mais produtivo o desenvolvimento de *RPAs*, proporcionando funções prontas para usos comuns como:
|
32
|
+
|
33
|
+
- envio de emails (configurações já pré-montadas)
|
34
|
+
- validação de emails (limpeza e tratamento de listas)
|
35
|
+
- busca por palavras ou patterns em textos ou cadeias de string
|
36
|
+
- criação de pastas e arquivos temporarios e deleta-los com apenas um comando
|
37
|
+
- console com mensagens de melhor visualização com cores definidas para alerta, erro, informativo e sucesso.
|
38
|
+
- e muitas outras facilidades
|
39
|
+
|
40
|
+
### Instalação:
|
41
|
+
>>> python -m pip install rpa-suite
|
42
|
+
|
43
|
+
### Dependencias:
|
44
|
+
No setup do nosso projeto já estão inclusas as dependencias, só será necessario instalar nossa **Lib**, mas segue a lista das libs usadas:
|
45
|
+
- colorama
|
46
|
+
- loguru
|
47
|
+
- email-validator
|
48
|
+
|
49
|
+
### Estrutura do modulo:
|
50
|
+
O modulo principal do rpa-suite é dividido em categorias, onde por sua vez tem os modulos com funções destinadas a cada tipo de tarefa.
|
51
|
+
- **rpa_suite**
|
52
|
+
- **clock**
|
53
|
+
- **waiter** - modulo com funções responsaveis por aguardar
|
54
|
+
- **email**
|
55
|
+
- **sender_smtp** - modulo com funções para envio de email SMPT
|
56
|
+
- **file**
|
57
|
+
- **counter** - modulo com funções responsaveis por contagens
|
58
|
+
- **temp_dir** - modulo com funções responsaveis por diretórios temporarios
|
59
|
+
- **log**
|
60
|
+
- **loggin** - modulo com funções responsaveis por gerar decoradores de de print para logs de execução
|
61
|
+
- **printer** - modulo com funções de print personalizados para notificações em prompt
|
62
|
+
- **validate**
|
63
|
+
- **mail_validator** - modulo com funções para validação de emails
|
64
|
+
- **string_validator** - modulo com funções para validação e varredura de strings / substrings / palavras
|
65
|
+
|
66
|
+
### Versão do projeto:
|
67
|
+
Ultima versão release: **Alpha 0.4.3**
|
68
|
+
Data da ultima versão: 23/11/2023
|
69
|
+
Status: Em Desenvolvimento
|
70
|
+
|
71
|
+
### Mais Sobre:
|
72
|
+
|
73
|
+
Você pode ver mais com mais detalhes no **Github**.
|
74
|
+
https://github.com/CamiloCCarvalho/rpa_suite
|
@@ -0,0 +1,20 @@
|
|
1
|
+
rpa_suite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
rpa_suite/clock/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
rpa_suite/clock/waiter.py,sha256=CZyuQXRTxR2Be4mC7z_BxB6nPRXtLV2xw6f20HL_t9Q,1361
|
4
|
+
rpa_suite/email/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
+
rpa_suite/email/sender_smtp.py,sha256=50WRn0eb2pGtG2bA9crrcF1M885lk2RGQ-GtiZuDHP0,3498
|
6
|
+
rpa_suite/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
rpa_suite/file/counter.py,sha256=AX6a2fU2WtUW9vO05TFKZIpDOorTT-ZCU68bRj9qxlA,1680
|
8
|
+
rpa_suite/file/counters.py,sha256=zJ90n6I4-Kxj__kR4LTgRTkKYRtMjKjfh1HZPzP25GM,1010
|
9
|
+
rpa_suite/file/temp_dir.py,sha256=NWZ7r5vbInk1mbXt-ZTDLotOxj4jJKPjldv_WELJKA4,4400
|
10
|
+
rpa_suite/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
+
rpa_suite/log/loggin.py,sha256=9byNJBP6vsgSxNpzyOjXSeADQPHlXQpVAVJKdthmOh8,975
|
12
|
+
rpa_suite/log/printer.py,sha256=O7TECzpShjlAEmGiA7W3Bd1ugVkNQmBTqQ8_vrJ1TYg,1972
|
13
|
+
rpa_suite/validate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
+
rpa_suite/validate/mail_validator.py,sha256=kLgGyjiXwmSjTek6KXap9_4AcrCoGSd-wbcnGos2zsk,2248
|
15
|
+
rpa_suite/validate/string_validator.py,sha256=wuvY7Z_pYSlS-pCaO3e26aiA2Z_gzq06pblehzCkG_Y,3223
|
16
|
+
rpa_suite-0.4.4.dist-info/LICENSE,sha256=5D8PIbs31iGd9i1_MDNg4SzaQnp9sEIULALh2y3WyMI,1102
|
17
|
+
rpa_suite-0.4.4.dist-info/METADATA,sha256=D4Yt88g43xdu9cBXn3acgON-7FA10V-ZNmcCTXAjseI,3444
|
18
|
+
rpa_suite-0.4.4.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
|
19
|
+
rpa_suite-0.4.4.dist-info/top_level.txt,sha256=HYkDtg-kJNAr3F2XAIPyJ-QBbNhk7q6jrqsFt10lz4Y,10
|
20
|
+
rpa_suite-0.4.4.dist-info/RECORD,,
|
@@ -1,25 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: rpa-suite
|
3
|
-
Version: 0.4.1
|
4
|
-
Summary: Conjunto de ferramentas essenciais para RPA com Python, que facilitam o dia a dia de desenvolvimento.
|
5
|
-
Author: Camilo Costa de Carvalho
|
6
|
-
Author-email: camilo.carvalho@triasoftware.com.br
|
7
|
-
License: MIT
|
8
|
-
Keywords: basic-tools,email-tools,email-validation,file-tools,simple-functions,rpa-tools,rpa-functions
|
9
|
-
Classifier: Development Status :: 3 - Alpha
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
12
|
-
Classifier: Programming Language :: Python :: 3.7
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
14
|
-
Classifier: Programming Language :: Python :: 3.9
|
15
|
-
License-File: LICENSE
|
16
|
-
Requires-Dist: loguru
|
17
|
-
Requires-Dist: colorama
|
18
|
-
Requires-Dist: email-validator
|
19
|
-
|
20
|
-
Suite RPA - Toolkit for your bot building
|
21
|
-
|
22
|
-
This is a simple toolkit for developers RPA.
|
23
|
-
|
24
|
-
You can see more on github.
|
25
|
-
https://github.com/CamiloCCarvalho/rpa_suite
|
rpa_suite-0.4.1.dist-info/RECORD
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
rpa_suite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
rpa_suite/clock/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
rpa_suite/clock/waiter.py,sha256=xgrmfx1e7Oj1dFSXzjOtUOdpzmK2yMlrfmxU0uEy5mE,1082
|
4
|
-
rpa_suite/email/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
rpa_suite/email/sender_smtp.py,sha256=SK7gNqx8ypE0uy4g6abvrxj1olL-Mh0H78SsckECbOY,3374
|
6
|
-
rpa_suite/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
rpa_suite/file/counter.py,sha256=OZRooCp9JenJ7EHNWe3kEwc_G8qE_JPqj3rbnjWAHOI,1288
|
8
|
-
rpa_suite/file/counters.py,sha256=zJ90n6I4-Kxj__kR4LTgRTkKYRtMjKjfh1HZPzP25GM,1010
|
9
|
-
rpa_suite/file/temp_dir.py,sha256=hs966mc1RXf8tXDolRbMqvqkfLpLKBlzF8QRGoVVQgQ,3729
|
10
|
-
rpa_suite/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
-
rpa_suite/log/loggin.py,sha256=1ZlX5AO9jQn_tBRCu2S1qWlEn9Tt1n7P6f05JHAy9Fk,757
|
12
|
-
rpa_suite/validate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
|
-
rpa_suite/validate/mail_validator.py,sha256=JPOn5qPpMDeK69D095wINTyyn3fEcjT68SfH-sOARgg,2165
|
14
|
-
rpa_suite/validate/string_validator.py,sha256=4FstAjKT1Rrybe-eJnpH1D3tWAtMPrHvUKrj_rglKKU,2485
|
15
|
-
rpa_suite-0.4.1.dist-info/LICENSE,sha256=5D8PIbs31iGd9i1_MDNg4SzaQnp9sEIULALh2y3WyMI,1102
|
16
|
-
rpa_suite-0.4.1.dist-info/METADATA,sha256=pGCWKlFQqm72UReWzNO5-xWMBATmZmLZwrl3eFoyiLQ,943
|
17
|
-
rpa_suite-0.4.1.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
|
18
|
-
rpa_suite-0.4.1.dist-info/top_level.txt,sha256=HYkDtg-kJNAr3F2XAIPyJ-QBbNhk7q6jrqsFt10lz4Y,10
|
19
|
-
rpa_suite-0.4.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|