csc-cia-stne 0.0.16__py3-none-any.whl → 0.0.18__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.
csc_cia_stne/__init__.py CHANGED
@@ -1,4 +1,6 @@
1
1
  import os
2
+ from .settings import settings
3
+
2
4
  if os.getenv('ambiente_de_execucao') is not None and os.getenv('ambiente_de_execucao') == "karavela":
3
5
  from .logger_json import logger
4
6
  else:
@@ -9,4 +11,5 @@ from .servicenow import ServiceNow
9
11
  from .stne_admin import StoneAdmin
10
12
  from .bc_sta import BC_STA
11
13
  from .bc_correios import BC_Correios
12
- from .gcp_bigquery import BigQuery
14
+ from .gcp_bigquery import BigQuery
15
+ from .functions import titulo
@@ -0,0 +1,126 @@
1
+ import os
2
+ import base64
3
+ import mimetypes
4
+ from datetime import datetime
5
+ from rich import print
6
+ from rich.panel import Panel
7
+ from rich.style import Style
8
+ import json
9
+ import shutil
10
+ import logging
11
+ from pydantic import BaseModel
12
+ from pydantic import ValidationError, field_validator
13
+
14
+ # Classe para validar - titulo
15
+ class TituloSettings(BaseModel):
16
+
17
+ # Titulo
18
+ project_name: str
19
+ project_version: str
20
+ project_dev_name: str
21
+ project_dev_mail: str
22
+ # Validador para garantir que nenhum campo seja uma string vazia
23
+
24
+ @field_validator('project_name', 'project_version', 'project_dev_name', 'project_dev_mail')
25
+ def check_non_empty_string(cls, value, info):
26
+ if not isinstance(value, str) or not value.strip():
27
+
28
+ raise ValueError(f"O parâmetro '{info.field_name}' deve ser uma string não vazia.")
29
+
30
+ return value
31
+
32
+
33
+ # Retorna data de modificação
34
+ def last_modified()->datetime:
35
+ """
36
+ Retorna a data da última atualização do script
37
+
38
+ """
39
+ current_file = os.path.abspath(__file__)
40
+ current_folder = os.path.dirname(current_file)
41
+ base_dir = os.path.dirname(os.path.dirname(current_file))
42
+
43
+ newest_date = None
44
+
45
+ for root, _, files in os.walk(base_dir):
46
+
47
+ for file in files:
48
+
49
+ if file.endswith('.py'):
50
+
51
+ file_path = os.path.join(root, file)
52
+ file_modification_date = os.path.getmtime(file_path)
53
+
54
+ if newest_date is None or file_modification_date > newest_date:
55
+
56
+ newest_date = file_modification_date
57
+
58
+ # Converter o timestamp para um objeto datetime
59
+ last_modified_date = datetime.fromtimestamp(newest_date)
60
+ last_modified_date = last_modified_date.strftime("%Y%m%d")
61
+
62
+ return last_modified_date
63
+
64
+ def titulo(project_name:str,project_version:str,project_dev_name:str,project_dev_mail:str):
65
+
66
+ try:
67
+ settings = TituloSettings(project_name=project_name,project_version=project_version,project_dev_name=project_dev_name,project_dev_mail=project_dev_mail)
68
+ return settings
69
+
70
+ except ValidationError as e:
71
+ # Extrair os detalhes da exceção
72
+ errors = e.errors()
73
+ missing_vars = [error['loc'][0] for error in errors if error['type'] == 'missing']
74
+
75
+ # Criar uma mensagem personalizada
76
+ if missing_vars:
77
+ missing_vars_str = ', '.join(missing_vars)
78
+ raise ValueError(
79
+ f"As seguintes variáveis obrigatórias estão ausentes no arquivo .env ou nas variáveis de ambiente da máquina, impossibi: {missing_vars_str}"
80
+ )
81
+ else:
82
+
83
+ if os.getenv('ambiente_de_execucao') is None or os.getenv('ambiente_de_execucao') != "karavela":
84
+
85
+ estilo_box = Style(bold=True)
86
+ print(
87
+ Panel(
88
+ f"""
89
+ [bold chartreuse3]CIA [bold white]| [bold chartreuse3]Centro de Inteligência e Automação [bold white]([bold chartreuse3]cia@stone.com.br[bold white])[bold green]\n
90
+ Projeto[bold white]: [bold green]{os.getenv('project_name')}\n
91
+ Versão[bold white]: [bold green]{os.getenv('project_version')}\n
92
+ Dev[bold white]: [bold green]{os.getenv('project_dev_name')} [bold white]([bold green]{os.getenv('project_dev_mail')}[bold white])[bold green]\n
93
+ Última atualização[bold white]: [bold green]{last_modified()}
94
+ """,
95
+ title="Stone",
96
+ subtitle="CSC-CIA",
97
+ style=estilo_box,
98
+ border_style="bold chartreuse3"
99
+ )
100
+ )
101
+
102
+ else:
103
+
104
+ logging.info("CSC | CIA - Centro de Inteligência e Automação")
105
+ logging.info(f"Projeto: {os.getenv('project_name')}")
106
+ logging.info(f"\tVersão: {os.getenv('project_version')} (Última modificação: {last_modified()})")
107
+ logging.info("\tTime: CIA <cia@stone.com.br>")
108
+ logging.info(f"\tDesenvolvedor: {os.getenv('project_dev_name')} <{os.getenv('project_dev_mail')}>")
109
+ logging.info("-")
110
+
111
+ def recriar_pasta(caminho_pasta):
112
+
113
+ try:
114
+
115
+ # Se a pasta já existir, remove-a
116
+ if os.path.exists(caminho_pasta) and os.path.isdir(caminho_pasta):
117
+ shutil.rmtree(caminho_pasta) # Deleta a pasta e todo o conteúdo
118
+
119
+ # Cria a pasta novamente
120
+ os.makedirs(caminho_pasta)
121
+ return True, None
122
+
123
+ except Exception as e:
124
+
125
+ return False, e
126
+
csc_cia_stne/settings.py CHANGED
@@ -2,7 +2,7 @@ from pydantic_settings import BaseSettings
2
2
  from pydantic import ValidationError
3
3
  from rich.traceback import install
4
4
  from dotenv import load_dotenv
5
-
5
+ from .functions import titulo
6
6
  # Instala formatações de exception da biblioteca Rich
7
7
  install()
8
8
 
@@ -43,5 +43,7 @@ def load_settings():
43
43
  f"As seguintes variáveis obrigatórias estão ausentes no arquivo .env ou nas variáveis de ambiente da máquina: {missing_vars_str}\n"
44
44
  "Outras variáveis, não obrigatórias: 'ambiente_de_execução' ('local' ou 'karavela') e 'log_level' ('DEBUG', 'INFO', etc)"
45
45
  )
46
-
46
+ else:
47
+ titulo()
48
+
47
49
  settings = load_settings()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: csc_cia_stne
3
- Version: 0.0.16
3
+ Version: 0.0.18
4
4
  Summary: Biblioteca do time CSC-CIA utilizada no desenvolvimento de RPAs
5
5
  License: MIT
6
6
  Keywords: karavela,csc,cia,stone,rpa
@@ -1,16 +1,17 @@
1
- csc_cia_stne/__init__.py,sha256=9nxsvJIoD5osa_3qM93HtCjvKJV3c01DhdUixrrYZ-Q,419
1
+ csc_cia_stne/__init__.py,sha256=ENepyLrwd7fsI2TgXimCvxSIK_U-KRvXWTbT1b_bSRA,481
2
2
  csc_cia_stne/bc_correios.py,sha256=ANsvLyL7wdkM0MvjjBHB2Ih4eyTcyWgt5IqiK0Rv89E,23014
3
3
  csc_cia_stne/bc_sta.py,sha256=I9N29wjTbd4ZmoM2yIW-xp3X-dMENZdSb0JhapfCegY,10988
4
+ csc_cia_stne/functions.py,sha256=PMMpmPC7krlyV-Osai6BjeogDMXiFw8DGVGrPRZUWyM,4698
4
5
  csc_cia_stne/gcp_bigquery.py,sha256=f8UEQgr6XyFacYX0bRq4UDmWoH-0XqZF8fA2LsLTtAU,5654
5
6
  csc_cia_stne/karavela.py,sha256=Q7MbQXXz_jtrLHM7QeenbSzcro07EpoFk4lKglivJ_I,3564
6
7
  csc_cia_stne/logger_json.py,sha256=2G0rm0lyCtHn4o2v7fzn4wMylb0A_nbxiQatnrSZxHs,1212
7
8
  csc_cia_stne/logger_rich.py,sha256=LU6VGnus-1tPmdacuIphTDxxfQU0Uvl68BKVKLDuHzg,3290
8
9
  csc_cia_stne/servicenow.py,sha256=vSsNSANFyCZtDu2O7YmdoCbr-_bO1sgMWnOI29mFBOA,23311
9
- csc_cia_stne/settings.py,sha256=Xr3TPnlGjS_WZ01VeHXUy1p9m1GdA-OUJ8HEA8t_hlU,1561
10
+ csc_cia_stne/settings.py,sha256=26Q9cYC1gGLrds8bDvowmol520-1GOt_8pziRd7nczY,1629
10
11
  csc_cia_stne/stne_admin.py,sha256=G5ozXt18VjKL2BHtROQk4GnfVY1xM14RXSQ-rra_D54,15487
11
12
  csc_cia_stne/utilitarios.py,sha256=LU8YrELiRIW4UxqULjiUPYmgbEx79NGenK5QKRdSh_E,2050
12
- csc_cia_stne-0.0.16.dist-info/LICENCE,sha256=LPGMtgKki2C3KEZP7hDhA1HBrlq5JCHkIeStUCLEMx4,1073
13
- csc_cia_stne-0.0.16.dist-info/METADATA,sha256=oglzzagHj7-ZWSQvATgcTO1HkZ5zVId-_gXrWuoZu48,1003
14
- csc_cia_stne-0.0.16.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
15
- csc_cia_stne-0.0.16.dist-info/top_level.txt,sha256=ldo7GVv3tQx5KJvwBzdZzzQmjPys2NDVVn1rv0BOF2Q,13
16
- csc_cia_stne-0.0.16.dist-info/RECORD,,
13
+ csc_cia_stne-0.0.18.dist-info/LICENCE,sha256=LPGMtgKki2C3KEZP7hDhA1HBrlq5JCHkIeStUCLEMx4,1073
14
+ csc_cia_stne-0.0.18.dist-info/METADATA,sha256=lR1djKlVfGxZK8OdfgXpeY9l8hxTqNp3DWTrvg64iCA,1003
15
+ csc_cia_stne-0.0.18.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
16
+ csc_cia_stne-0.0.18.dist-info/top_level.txt,sha256=ldo7GVv3tQx5KJvwBzdZzzQmjPys2NDVVn1rv0BOF2Q,13
17
+ csc_cia_stne-0.0.18.dist-info/RECORD,,