rpa-suite 0.4.1__tar.gz → 0.4.4__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 (29) hide show
  1. rpa_suite-0.4.4/PKG-INFO +74 -0
  2. rpa_suite-0.4.4/README.txt +17 -0
  3. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/clock/waiter.py +11 -6
  4. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/email/sender_smtp.py +14 -13
  5. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/file/counter.py +11 -5
  6. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/file/temp_dir.py +17 -10
  7. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/log/loggin.py +5 -0
  8. rpa_suite-0.4.4/rpa_suite/log/printer.py +70 -0
  9. rpa_suite-0.4.4/rpa_suite/validate/mail_validator.py +72 -0
  10. rpa_suite-0.4.4/rpa_suite/validate/string_validator.py +85 -0
  11. rpa_suite-0.4.4/rpa_suite.egg-info/PKG-INFO +74 -0
  12. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite.egg-info/SOURCES.txt +2 -1
  13. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/setup.py +3 -2
  14. rpa_suite-0.4.1/PKG-INFO +0 -25
  15. rpa_suite-0.4.1/README.md +0 -6
  16. rpa_suite-0.4.1/rpa_suite/validate/mail_validator.py +0 -68
  17. rpa_suite-0.4.1/rpa_suite/validate/string_validator.py +0 -68
  18. rpa_suite-0.4.1/rpa_suite.egg-info/PKG-INFO +0 -25
  19. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/LICENSE +0 -0
  20. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/__init__.py +0 -0
  21. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/clock/__init__.py +0 -0
  22. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/email/__init__.py +0 -0
  23. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/file/__init__.py +0 -0
  24. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/log/__init__.py +0 -0
  25. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite/validate/__init__.py +0 -0
  26. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite.egg-info/dependency_links.txt +0 -0
  27. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite.egg-info/requires.txt +0 -0
  28. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/rpa_suite.egg-info/top_level.txt +0 -0
  29. {rpa_suite-0.4.1 → rpa_suite-0.4.4}/setup.cfg +0 -0
@@ -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,17 @@
1
+ Suite RPA:
2
+ Kit de ferramentas para o desenvolvimento do seu bot, automação ou projeto.
3
+ 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.
4
+
5
+ Simples: Contruimos as ferramentas de maneira mais direta e acertiva possivel e usando apenas libs conhecidas no mercado, para melhor aproveitamento e performance possivel.
6
+
7
+ Objetivo:
8
+ Estamos tornando mais produtivo o desenvolvimento de RPAs, proporcionando funções prontas para usos comuns como:
9
+
10
+ envio de emails (configurações já pré-montadas)
11
+ validação de emails (limpeza e tratamento de listas)
12
+ busca por palavras ou patterns em textos ou cadeias de string
13
+ criação de pastas e arquivos temporarios e deleta-los com apenas um comando
14
+ console com mensagens de melhor visualização com cores definidas para alerta, erro, informativo e sucesso.
15
+ e muitas outras facilidades
16
+ Instalação:
17
+ >>> python -m pip install rpa-suite
@@ -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, aguarda um valor em segundos para executar a função que é passada como argumento. \n
12
+ Função temporizadora, aguardar um valor em ``segundos`` para executar a função do argumento.
15
13
 
16
- use no formato wait_for_exec(time_seconds, my_function_execute, args_function)
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
- Retorno sendo (dicionário):
19
- - 'success': bool
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
@@ -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), aceita lista de destinatários e possibilidade
22
- de anexar arquivos. \n
19
+ Função responsavel por enviar emails ``(SMTP)``, aceita ``lista de destinatários`` e possibilidade
20
+ de ``anexar arquivos``. \n
23
21
 
24
- Retorna um dicionário com todas informações que podem ser necessarias sobre os emails.\n
25
- Sendo respectivamente: \n
26
- - se houve pelo menos um envio com sucesso
27
- - lista de todos emails parametrizados para envio
28
- - lista de todos emails validos para envio
29
- - lista de todos emails invalidos para envio
30
- - quantidade efetiva que foi realizado envio
31
- - se anexos
32
- - quantos anexos foram inseridos
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
@@ -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
- Retorno sendo (dicionário):
14
- - 'success': bool \n
15
- - 'qt': int \n
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
@@ -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
- retorno sendo (dicionário):
12
- - 'success': bool
13
- - 'path_created': str
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
- Caminho default sendo o caminho do arquivo onde esta sendo executado. \n
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
- retorno sendo (dicionário):
68
- - 'success': bool
69
- - 'path_deleted': str
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
 
@@ -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
@@ -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}')
@@ -0,0 +1,72 @@
1
+ import email_validator
2
+
3
+ def valid_emails(
4
+ email_list: list[str]
5
+ ) -> dict:
6
+
7
+ """
8
+ Função responsavel por validar de forma rigorosa lista de emails usando a biblioteca email_validator. \n
9
+
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)
24
+ """
25
+
26
+ # Variaveis locais
27
+ mail_validation_result: dict = {
28
+ 'success': bool,
29
+ 'valid_emails': list,
30
+ 'invalid_emails': list,
31
+ 'qt_valids': int,
32
+ 'qt_invalids': int,
33
+ 'map_validation': list[dict]
34
+ }
35
+
36
+
37
+ # Pré Tratamento
38
+ valid_emails: list = []
39
+ invalid_emails: list = []
40
+ map_validation: list[dict] = []
41
+
42
+ # Processo
43
+ try:
44
+ for email in email_list:
45
+ try:
46
+ v = email_validator.validate_email(email)
47
+ valid_emails.append(email)
48
+ map_validation.append(v)
49
+
50
+ except email_validator.EmailNotValidError:
51
+ invalid_emails.append(email)
52
+
53
+ except Exception as e:
54
+ print(f'Erro ao tentar validar lista de emails: {str(e)}')
55
+
56
+
57
+ # Pós Tratamento
58
+ mail_validation_result = {
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
65
+ }
66
+
67
+ # Retorno
68
+ return mail_validation_result
69
+
70
+
71
+ if __name__ == '__main__':
72
+ dictio = valid_emails(['camilo.carvalho@triasoftware.com.br', 'asfaltorodas@gmail.com', '@gmail.com.camio'])
@@ -0,0 +1,85 @@
1
+
2
+ def search_in(
3
+ origin_text: str,
4
+ searched_word: str,
5
+ case_sensitivy: bool = True,
6
+ search_by: str = 'string',
7
+ ) -> dict:
8
+
9
+ """
10
+ Função responsavel por fazer busca de uma string, sbustring ou palavra dentro de um texto fornecido. \n
11
+
12
+ Parametros:
13
+ -----------
14
+ ``origin_text: str`` \n
15
+
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.
37
+
38
+ """
39
+
40
+ # Variaveis locais
41
+ string_validator_result: dict = {
42
+ 'is_found': bool,
43
+ 'number_occurrences': int,
44
+ 'positions': list[set]
45
+ }
46
+
47
+ # Pré tratamento
48
+ string_validator_result['is_found'] = False
49
+ string_validator_result['number_occurrences'] = 0
50
+
51
+ # Processo
52
+ if search_by == 'word':
53
+ origin_words = origin_text.split()
54
+ if case_sensitivy:
55
+ string_validator_result['is_found'] = searched_word in origin_words
56
+
57
+ else:
58
+ words_lowercase = [word.lower() for word in origin_words]
59
+ searched_word = searched_word.lower()
60
+ string_validator_result['is_found'] = searched_word in words_lowercase
61
+
62
+ elif search_by == 'string':
63
+ if case_sensitivy:
64
+ string_validator_result['is_found'] = origin_text.__contains__(searched_word)
65
+ else:
66
+ origin_text_lower: str = origin_text.lower()
67
+ searched_word_lower: str = searched_word.lower()
68
+ string_validator_result['is_found'] = origin_text_lower.__contains__(searched_word_lower)
69
+
70
+ """
71
+ elif search_by == 'regex':
72
+ # regex search
73
+ pass
74
+ else:
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
+ """
77
+
78
+ # Pós tratamento
79
+ ...
80
+
81
+ # Retorno
82
+ return string_validator_result
83
+
84
+ if __name__ == '__main__':
85
+ print(search_in('Camilo Costa de Carvalho', 'costa', True, 'word'))
@@ -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
@@ -1,5 +1,5 @@
1
1
  LICENSE
2
- README.md
2
+ README.txt
3
3
  setup.py
4
4
  rpa_suite/__init__.py
5
5
  rpa_suite.egg-info/PKG-INFO
@@ -16,6 +16,7 @@ rpa_suite/file/counter.py
16
16
  rpa_suite/file/temp_dir.py
17
17
  rpa_suite/log/__init__.py
18
18
  rpa_suite/log/loggin.py
19
+ rpa_suite/log/printer.py
19
20
  rpa_suite/validate/__init__.py
20
21
  rpa_suite/validate/mail_validator.py
21
22
  rpa_suite/validate/string_validator.py
@@ -2,10 +2,11 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='rpa_suite',
5
- version='0.4.1',
5
+ version='0.4.4',
6
6
  packages=find_packages(),
7
7
  description='Conjunto de ferramentas essenciais para RPA com Python, que facilitam o dia a dia de desenvolvimento.',
8
- long_description=open('README.md').read(),
8
+ long_description_content_type='text/markdown',
9
+ long_description=open('README.md', 'r').read(),
9
10
  author='Camilo Costa de Carvalho',
10
11
  author_email='camilo.carvalho@triasoftware.com.br',
11
12
  license='MIT',
rpa_suite-0.4.1/PKG-INFO DELETED
@@ -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/README.md DELETED
@@ -1,6 +0,0 @@
1
- Suite RPA - Toolkit for your bot building
2
-
3
- This is a simple toolkit for developers RPA.
4
-
5
- You can see more on github.
6
- https://github.com/CamiloCCarvalho/rpa_suite
@@ -1,68 +0,0 @@
1
- import email_validator
2
- from rpa_suite.log.loggin import logging_decorator
3
-
4
- @logging_decorator
5
- def valid_emails(
6
- email_list: list[str]
7
- ) -> dict:
8
-
9
- """
10
- Função responsavel por validar de forma rigorosa lista de emails usando a biblioteca email_validator. \n
11
-
12
- o Retorno será um dicionário. \n
13
- Sendo respectivamente: \n
14
- - lista de emails validos
15
- - lista de emails invalidos
16
- - boleano contendo falso pois nem todos emails são validos
17
- - quantidade de emails validos
18
- - quantidade de emails invalidos
19
- - mapa da validação de cada email (dicionário)
20
- """
21
-
22
- # Variaveis locais
23
- mail_validation_result: dict = {
24
- 'emails_validos': list,
25
- 'emails_invalidos': list,
26
- 'todos_validaram_sucesso': bool,
27
- 'quantidade_emails_validos': int,
28
- 'quantidade_emails_invalidos': int,
29
- 'mapa_do_validador': list[dict]
30
- }
31
-
32
-
33
- # Pré Tratamento
34
- valid_emails: list = []
35
- invalid_emails: list = []
36
- map_validation: list[dict] = []
37
-
38
- # Processo
39
- try:
40
- for email in email_list:
41
- try:
42
- v = email_validator.validate_email(email)
43
- valid_emails.append(email)
44
- map_validation.append(v)
45
-
46
- except email_validator.EmailNotValidError:
47
- invalid_emails.append(email)
48
-
49
- except Exception as e:
50
- print(f'Erro ao tentar validar lista de emails: {str(e)}')
51
-
52
-
53
- # Pós Tratamento
54
- mail_validation_result = {
55
- 'emails_validos': valid_emails,
56
- 'emails_invalidos': invalid_emails,
57
- 'todos_validaram_sucesso': len(invalid_emails) == 0,
58
- 'quantidade_emails_validos': len(valid_emails),
59
- 'quantidade_emails_invalidos': len(invalid_emails),
60
- 'mapa_do_validador': map_validation
61
- }
62
-
63
- # Retorno
64
- return mail_validation_result
65
-
66
-
67
- if __name__ == '__main__':
68
- dictio = valid_emails(['camilo.carvalho@triasoftware.com.br', 'asfaltorodas@gmail.com', '@gmail.com.camio'])
@@ -1,68 +0,0 @@
1
- from rpa_suite.log.loggin import logging_decorator
2
-
3
- @logging_decorator
4
- def search_in(
5
- origin_text: str,
6
- searched_word: str,
7
- case_sensitivy: bool = True,
8
- search_by: str = 'string',
9
- ) -> dict:
10
-
11
- """
12
- Função responsavel por fazer busca de uma string, sbustring ou palavra dentro de um texto fornecido. \n
13
-
14
- o parametro search_by aceita os valores: \n
15
-
16
- - 'string' -> consegue encontrar um trecho de escrita solicitado. (default) \n
17
- - 'word' -> encontra apenas a palavra escrita por extenso exclusivamente. \n
18
-
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
- """
24
-
25
- # Variaveis locais
26
- string_validator_result: dict = {
27
- 'is_found': bool,
28
- 'number_occurrences': int,
29
- 'positions_in_text': list[set]
30
- }
31
-
32
- # Pré tratamento
33
- string_validator_result['is_found'] = False
34
- string_validator_result['number_occurrences'] = 0
35
-
36
- # Processo
37
- if search_by == 'word':
38
- origin_words = origin_text.split()
39
- if case_sensitivy:
40
- string_validator_result['is_found'] = searched_word in origin_words
41
-
42
- else:
43
- words_lowercase = [word.lower() for word in origin_words]
44
- searched_word = searched_word.lower()
45
- string_validator_result['is_found'] = searched_word in words_lowercase
46
-
47
- elif search_by == 'string':
48
- if case_sensitivy:
49
- string_validator_result['is_found'] = origin_text.__contains__(searched_word)
50
- else:
51
- origin_text_lower: str = origin_text.lower()
52
- searched_word_lower: str = searched_word.lower()
53
- string_validator_result['is_found'] = origin_text_lower.__contains__(searched_word_lower)
54
-
55
- """elif search_by == 'regex':
56
- # regex search
57
- pass
58
- 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.')"""
60
-
61
- # Pós tratamento
62
- ...
63
-
64
- # Retorno
65
- return string_validator_result
66
-
67
- if __name__ == '__main__':
68
- print(search_in('Camilo Costa de Carvalho', 'costa', True, 'word'))
@@ -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
File without changes
File without changes