csc-cia-stne 0.0.30__py3-none-any.whl → 0.0.32__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 +49 -25
- csc_cia_stne/gcp_bigquery.py +2 -94
- csc_cia_stne/google_drive.py +238 -0
- csc_cia_stne/logger_json.py +43 -1
- csc_cia_stne/logger_rich.py +17 -8
- csc_cia_stne/provio.py +66 -0
- csc_cia_stne/servicenow.py +412 -218
- csc_cia_stne/utilitarios/functions/func_titulo.py +1 -3
- csc_cia_stne/utilitarios/validations/GcpBigQueryValidator.py +91 -0
- csc_cia_stne/utilitarios/validations/GoogleDriveValidator.py +39 -0
- csc_cia_stne/utilitarios/validations/ServiceNowValidator.py +164 -0
- csc_cia_stne/utilitarios/validations/__init__.py +2 -0
- {csc_cia_stne-0.0.30.dist-info → csc_cia_stne-0.0.32.dist-info}/METADATA +1 -1
- csc_cia_stne-0.0.32.dist-info/RECORD +27 -0
- csc_cia_stne-0.0.30.dist-info/RECORD +0 -21
- {csc_cia_stne-0.0.30.dist-info → csc_cia_stne-0.0.32.dist-info}/LICENCE +0 -0
- {csc_cia_stne-0.0.30.dist-info → csc_cia_stne-0.0.32.dist-info}/WHEEL +0 -0
- {csc_cia_stne-0.0.30.dist-info → csc_cia_stne-0.0.32.dist-info}/top_level.txt +0 -0
@@ -32,9 +32,7 @@ def last_modified()->datetime:
|
|
32
32
|
Retorna a data da última atualização do script
|
33
33
|
|
34
34
|
"""
|
35
|
-
|
36
|
-
current_folder = os.path.dirname(current_file)
|
37
|
-
base_dir = os.path.dirname(os.path.dirname(current_file))
|
35
|
+
base_dir = os.path.abspath(os.getcwd())
|
38
36
|
|
39
37
|
newest_date = None
|
40
38
|
|
@@ -0,0 +1,91 @@
|
|
1
|
+
from pydantic import BaseModel, field_validator, model_validator
|
2
|
+
class InitParamsValidator(BaseModel):
|
3
|
+
limit:int
|
4
|
+
id_project:str
|
5
|
+
creds_dict:dict
|
6
|
+
creds_file:str
|
7
|
+
|
8
|
+
@field_validator('limit')
|
9
|
+
def check_input_basic(cls, value, info):
|
10
|
+
if not isinstance(value, int):
|
11
|
+
raise ValueError(f"O parametro 'limit' deve ser um inteiro e não um {type(value)}")
|
12
|
+
|
13
|
+
return value
|
14
|
+
|
15
|
+
@field_validator('id_project')
|
16
|
+
def check_str_input(cls, value, info):
|
17
|
+
if not isinstance(value, str) or not value.strip():
|
18
|
+
raise ValueError(f"O parametro 'id_project' deve ser uma string e não um {type(value)} e não vazio")
|
19
|
+
return value
|
20
|
+
|
21
|
+
@model_validator(mode="after")
|
22
|
+
def check_others_input(cls, model):
|
23
|
+
creds_dict = model.creds_dict
|
24
|
+
creds_file = model.creds_file
|
25
|
+
|
26
|
+
if isinstance(creds_dict, dict):
|
27
|
+
return model
|
28
|
+
|
29
|
+
elif isinstance(creds_file, str) and creds_file.strip():
|
30
|
+
return model
|
31
|
+
|
32
|
+
else:
|
33
|
+
raise ValueError("Pelo menos um dos parâmetros 'creds_dict' ou 'creds_file' deve ser fornecido.")
|
34
|
+
|
35
|
+
|
36
|
+
class tryQueryValidator(BaseModel):
|
37
|
+
|
38
|
+
query_to_execute:str
|
39
|
+
organize:bool
|
40
|
+
use_legacy:bool
|
41
|
+
use_cache:bool
|
42
|
+
query_parameters:list
|
43
|
+
|
44
|
+
@field_validator('query_to_execute')
|
45
|
+
def check_str_input(cls, value, info):
|
46
|
+
if not isinstance(value, str) or not value.strip():
|
47
|
+
raise ValueError(f"O parametro '{info.field_name}' deve ser uma string não vazia")
|
48
|
+
|
49
|
+
return value
|
50
|
+
|
51
|
+
@field_validator('organize','use_legacy','use_cache')
|
52
|
+
def check_bool_input(cls, value, info):
|
53
|
+
if not isinstance(value, bool):
|
54
|
+
raise ValueError(f"O parametro '{info.field_name}' deve ser um boleano")
|
55
|
+
|
56
|
+
return value
|
57
|
+
|
58
|
+
@field_validator('query_parameters')
|
59
|
+
def check_list_input(cls, value, info):
|
60
|
+
if not isinstance(value, list):
|
61
|
+
raise ValueError(f"O parametro '{info.field_name}' deve ser uma lista")
|
62
|
+
|
63
|
+
return value
|
64
|
+
|
65
|
+
|
66
|
+
class tryInsertListValidator(BaseModel):
|
67
|
+
|
68
|
+
insert_limit:int
|
69
|
+
list_to_insert:list
|
70
|
+
table:str
|
71
|
+
|
72
|
+
@field_validator('list_to_insert')
|
73
|
+
def check_list_input(cls, value, info):
|
74
|
+
if not isinstance(value, list) and len(value) > 0:
|
75
|
+
raise ValueError(f"O parametro '{info.field_name}' deve ser uma lista e não estar vazia")
|
76
|
+
|
77
|
+
return value
|
78
|
+
|
79
|
+
@field_validator('table')
|
80
|
+
def check_str_input(cls, value, info):
|
81
|
+
if not isinstance(value, str) or not value.strip():
|
82
|
+
raise ValueError(f"O parametro '{info.field_name}' deve ser uma string não vazia")
|
83
|
+
|
84
|
+
return value
|
85
|
+
|
86
|
+
@field_validator('insert_limit')
|
87
|
+
def check_int_input(cls, value, info):
|
88
|
+
if not isinstance(value, int) or value > 10000:
|
89
|
+
raise ValueError(f"O parametro '{info.field_name}' deve ser um inteiro não maior que 10000")
|
90
|
+
|
91
|
+
return value
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
from pydantic import BaseModel, field_validator
|
3
|
+
class InitParamsValidator(BaseModel):
|
4
|
+
key: str
|
5
|
+
with_subject: str
|
6
|
+
scopes : list
|
7
|
+
version : str
|
8
|
+
|
9
|
+
@field_validator('key','with_subject', "version")
|
10
|
+
def check_str_input(cls, value, info):
|
11
|
+
if not isinstance(value, str) or not value.strip():
|
12
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser strings e não {type(value)}")
|
13
|
+
return value
|
14
|
+
@field_validator('scopes')
|
15
|
+
def check_list_input(cls, value, info):
|
16
|
+
if not isinstance(value, list):
|
17
|
+
raise ValueError(f"O parametro '{info.field_name}' deve ser uma lista")
|
18
|
+
|
19
|
+
return value
|
20
|
+
|
21
|
+
class CreateFolderValidator(BaseModel):
|
22
|
+
name: str
|
23
|
+
parent_folder_id: str
|
24
|
+
|
25
|
+
@field_validator('name','parent_folder_id')
|
26
|
+
def check_str_input(cls, value, info):
|
27
|
+
if not isinstance(value, str) or not value.strip():
|
28
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser strings e não {type(value)}")
|
29
|
+
return value
|
30
|
+
|
31
|
+
class ListFolderValidator(BaseModel):
|
32
|
+
query : str
|
33
|
+
spaces: str
|
34
|
+
fields : str
|
35
|
+
@field_validator('query','spaces','fields')
|
36
|
+
def check_str_input(cls, value, info):
|
37
|
+
if not isinstance(value, str) or not value.strip():
|
38
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser strings e não {type(value)}")
|
39
|
+
return value
|
@@ -0,0 +1,164 @@
|
|
1
|
+
from pydantic import BaseModel, field_validator, model_validator
|
2
|
+
from typing import List
|
3
|
+
|
4
|
+
|
5
|
+
class InitParamsValidator(BaseModel):
|
6
|
+
username : str
|
7
|
+
password : str
|
8
|
+
env : str
|
9
|
+
|
10
|
+
@field_validator('username', 'password', 'env')
|
11
|
+
def check_str_input(cls, value, info):
|
12
|
+
if not isinstance(value, str) or not value.strip():
|
13
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser strings e não {type(value)}")
|
14
|
+
return value
|
15
|
+
|
16
|
+
class RequestValidator(BaseModel):
|
17
|
+
url : str
|
18
|
+
params : str
|
19
|
+
timeout : int = 15
|
20
|
+
|
21
|
+
@field_validator('url', 'params')
|
22
|
+
def check_str_input(cls, value, info):
|
23
|
+
if not isinstance(value, str) or not value.strip():
|
24
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser uma string e não um {type(value)} e não vazio")
|
25
|
+
return value
|
26
|
+
|
27
|
+
@field_validator('timeout')
|
28
|
+
def check_input_basic(cls, value, info):
|
29
|
+
if not isinstance(value, int):
|
30
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser um inteiro e não um {type(value)}")
|
31
|
+
|
32
|
+
return value
|
33
|
+
|
34
|
+
class PutValidator(BaseModel):
|
35
|
+
url : str
|
36
|
+
payload : dict
|
37
|
+
timeout : int = 15
|
38
|
+
|
39
|
+
@field_validator('url')
|
40
|
+
def check_str_input(cls, value, info):
|
41
|
+
if not isinstance(value, str) or not value.strip():
|
42
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser uma string e não um {type(value)} e não vazio")
|
43
|
+
return value
|
44
|
+
|
45
|
+
@field_validator('timeout')
|
46
|
+
def check_input_basic(cls, value, info):
|
47
|
+
if not isinstance(value, int):
|
48
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser um inteiro e não um {type(value)}")
|
49
|
+
return value
|
50
|
+
|
51
|
+
@field_validator('payload')
|
52
|
+
def check_dict_input(cls, value, info):
|
53
|
+
if not isinstance(value, dict):
|
54
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser um dicionário e não um {type(value)}")
|
55
|
+
return value
|
56
|
+
|
57
|
+
class PostValidator(BaseModel):
|
58
|
+
url : str
|
59
|
+
variables : dict
|
60
|
+
|
61
|
+
@field_validator('url')
|
62
|
+
def check_str_input(cls, value, info):
|
63
|
+
if not isinstance(value, str) or not value.strip():
|
64
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser uma string e não um {type(value)} e não vazio")
|
65
|
+
return value
|
66
|
+
|
67
|
+
@field_validator('variables')
|
68
|
+
def check_dict_input(cls, value, info):
|
69
|
+
if not isinstance(value, dict):
|
70
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser um dicionário e não um {type(value)}")
|
71
|
+
return value
|
72
|
+
|
73
|
+
class ListTicketValidator(BaseModel):
|
74
|
+
tabela : str
|
75
|
+
query : str
|
76
|
+
campos : List[str]
|
77
|
+
timeout : int
|
78
|
+
limit : int
|
79
|
+
|
80
|
+
@field_validator('tabela', 'query')
|
81
|
+
def check_str_input(cls, value, info):
|
82
|
+
if not isinstance(value, str) or not value.strip():
|
83
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser uma string e não um {type(value)} e não vazio")
|
84
|
+
return value
|
85
|
+
|
86
|
+
@field_validator('timeout', 'limit')
|
87
|
+
def check_input_basic(cls, value, info):
|
88
|
+
if not isinstance(value, int):
|
89
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser um inteiro e não um {type(value)}")
|
90
|
+
return value
|
91
|
+
|
92
|
+
@field_validator('campos')
|
93
|
+
def check_list_input(cls, value, info):
|
94
|
+
if not isinstance(value, list):
|
95
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser uma lista e não um {type(value)}")
|
96
|
+
return value
|
97
|
+
|
98
|
+
class UpdateTicketValidator(BaseModel):
|
99
|
+
sys_id : str
|
100
|
+
tabela : str
|
101
|
+
payload : List[str]
|
102
|
+
timeout : int
|
103
|
+
|
104
|
+
@field_validator('sys_id', 'tabela')
|
105
|
+
def check_str_input(cls, value, info):
|
106
|
+
if not isinstance(value, str) or not value.strip():
|
107
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser uma string e não um {type(value)} e não vazio")
|
108
|
+
return value
|
109
|
+
|
110
|
+
@field_validator('timeout')
|
111
|
+
def check_input_basic(cls, value, info):
|
112
|
+
if not isinstance(value, int):
|
113
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser um inteiro e não um {type(value)}")
|
114
|
+
return value
|
115
|
+
|
116
|
+
@field_validator('payload')
|
117
|
+
def check_list_input(cls, value, info):
|
118
|
+
if not isinstance(value, list):
|
119
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser uma lista e não um {type(value)}")
|
120
|
+
return value
|
121
|
+
|
122
|
+
class AttachFileTicketValidator(BaseModel):
|
123
|
+
header_content_type : dict
|
124
|
+
anexo_path : str
|
125
|
+
tabela : str
|
126
|
+
sys_id : str
|
127
|
+
timeout : int
|
128
|
+
|
129
|
+
@field_validator('sys_id', 'tabela', 'anexo_path')
|
130
|
+
def check_str_input(cls, value, info):
|
131
|
+
if not isinstance(value, str) or not value.strip():
|
132
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser uma string e não um {type(value)} e não vazio")
|
133
|
+
return value
|
134
|
+
|
135
|
+
@field_validator('timeout')
|
136
|
+
def check_input_basic(cls, value, info):
|
137
|
+
if not isinstance(value, int):
|
138
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser um inteiro e não um {type(value)}")
|
139
|
+
return value
|
140
|
+
|
141
|
+
@field_validator('header_content_type')
|
142
|
+
def check_dict_input(cls, value, info):
|
143
|
+
if not isinstance(value, dict):
|
144
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser um dicionário e não um {type(value)}")
|
145
|
+
return value
|
146
|
+
|
147
|
+
class GetAttachValidator(BaseModel):
|
148
|
+
sys_id : str
|
149
|
+
tabela : str
|
150
|
+
campo :str
|
151
|
+
download_dir : str
|
152
|
+
timeout : int
|
153
|
+
|
154
|
+
@field_validator('sys_id', 'tabela', 'campo', 'download_dir')
|
155
|
+
def check_str_input(cls, value, info):
|
156
|
+
if not isinstance(value, str) or not value.strip():
|
157
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser uma string e não um {type(value)} e não vazio")
|
158
|
+
return value
|
159
|
+
|
160
|
+
@field_validator('timeout')
|
161
|
+
def check_input_basic(cls, value, info):
|
162
|
+
if not isinstance(value, int):
|
163
|
+
raise ValueError(f"O campo '{info.field_name}' deve ser um inteiro e não um {type(value)}")
|
164
|
+
return value
|
@@ -0,0 +1,27 @@
|
|
1
|
+
csc_cia_stne/__init__.py,sha256=PlHybccf5ZcwFE56zRvXFKB-z7Hv0l1rp1AXuA4AlnU,1529
|
2
|
+
csc_cia_stne/bc_correios.py,sha256=ANsvLyL7wdkM0MvjjBHB2Ih4eyTcyWgt5IqiK0Rv89E,23014
|
3
|
+
csc_cia_stne/bc_sta.py,sha256=uyoCp-KTpkWwpyWNWp20JuDfMRYGCKxERnRQVso80iQ,10903
|
4
|
+
csc_cia_stne/email.py,sha256=dGgn-0_EM2-AUyz2genrokINHCaqYqAh4QC3xhl4deA,4160
|
5
|
+
csc_cia_stne/gcp_bigquery.py,sha256=yNCx0yD1peoxOKEiu2Ml6FfDtXUTzcJGcypjWPH8QqE,7449
|
6
|
+
csc_cia_stne/google_drive.py,sha256=3kGd4swPr6fLUJnQplq4VzAgF8X0Ho0Ke4JJN4RE-_8,10388
|
7
|
+
csc_cia_stne/karavela.py,sha256=Q7MbQXXz_jtrLHM7QeenbSzcro07EpoFk4lKglivJ_I,3564
|
8
|
+
csc_cia_stne/logger_json.py,sha256=W6Fj0G1-TWXHdHoLLX5SbVV7BSpVvjHm1fkKI5Q69YQ,3129
|
9
|
+
csc_cia_stne/logger_rich.py,sha256=4KVwxz87AA52qEMpgCh1SlS--7a57LK4Y4HSnKmRruc,7514
|
10
|
+
csc_cia_stne/provio.py,sha256=TF6_1uygkzftkhsOn6eMGkNqIWliKwcvh54RM10WzRo,2383
|
11
|
+
csc_cia_stne/servicenow.py,sha256=QN7R49Bb8HcqfGT9iytbPaqwV2rtH4N7Nhvb_kfTsHU,36400
|
12
|
+
csc_cia_stne/stne_admin.py,sha256=G5ozXt18VjKL2BHtROQk4GnfVY1xM14RXSQ-rra_D54,15487
|
13
|
+
csc_cia_stne/utilitarios/__init__.py,sha256=4YFhzxu8F_CDHU6iaNhpzz9mfX-8wfJc1XEQInJzwJ4,98
|
14
|
+
csc_cia_stne/utilitarios/functions/__init__.py,sha256=X0PmuSe0RilU824Lvlg-DtO0qDb_D_VfL4ftzR93d40,180
|
15
|
+
csc_cia_stne/utilitarios/functions/func_b64.py,sha256=XGU34BIQQXWXBS0yM2B4A2wDlcrMl1unIJXjq4lpLnk,1254
|
16
|
+
csc_cia_stne/utilitarios/functions/func_converters.py,sha256=EY1zvlBaRX7G1MceVSiRXwwKDQDZwUO9iECBL0fe5iU,481
|
17
|
+
csc_cia_stne/utilitarios/functions/func_recriar_pastas.py,sha256=2_unoSoQHxShcMw_0XIL9F0NgiF1QCKsX4drvg0fEb8,415
|
18
|
+
csc_cia_stne/utilitarios/functions/func_titulo.py,sha256=IMiTKdlMkOGHPJmPZEj2HnBEfOu2uDoUNkaqZxiZq54,3829
|
19
|
+
csc_cia_stne/utilitarios/validations/GcpBigQueryValidator.py,sha256=BSJ84FBuOxbhYpyoebGMW15t0np9PHA8OCHFjkLOIRA,2984
|
20
|
+
csc_cia_stne/utilitarios/validations/GoogleDriveValidator.py,sha256=OaT6F98RyP3iIMsIQMc0CCDUt0u7EkKxG_UoHm2ME3c,1376
|
21
|
+
csc_cia_stne/utilitarios/validations/ServiceNowValidator.py,sha256=9IS3ucuLXeeebfVpvywEu9OiN-BfbXTuowTBEotUbow,5991
|
22
|
+
csc_cia_stne/utilitarios/validations/__init__.py,sha256=Ssqi3Gl2ffDLoIIAgwoV6gHJ62lBbA8k-aZJJ9awEXw,69
|
23
|
+
csc_cia_stne-0.0.32.dist-info/LICENCE,sha256=LPGMtgKki2C3KEZP7hDhA1HBrlq5JCHkIeStUCLEMx4,1073
|
24
|
+
csc_cia_stne-0.0.32.dist-info/METADATA,sha256=F2lqfHGtYMGlKwlKNBPheiUkh8Yfh45cKHSq0hgd8N8,1003
|
25
|
+
csc_cia_stne-0.0.32.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
26
|
+
csc_cia_stne-0.0.32.dist-info/top_level.txt,sha256=ldo7GVv3tQx5KJvwBzdZzzQmjPys2NDVVn1rv0BOF2Q,13
|
27
|
+
csc_cia_stne-0.0.32.dist-info/RECORD,,
|
@@ -1,21 +0,0 @@
|
|
1
|
-
csc_cia_stne/__init__.py,sha256=YWdjycJayT0s18tVJJmOq30j8EPM90yWLoekaEV4LoM,1133
|
2
|
-
csc_cia_stne/bc_correios.py,sha256=ANsvLyL7wdkM0MvjjBHB2Ih4eyTcyWgt5IqiK0Rv89E,23014
|
3
|
-
csc_cia_stne/bc_sta.py,sha256=uyoCp-KTpkWwpyWNWp20JuDfMRYGCKxERnRQVso80iQ,10903
|
4
|
-
csc_cia_stne/email.py,sha256=dGgn-0_EM2-AUyz2genrokINHCaqYqAh4QC3xhl4deA,4160
|
5
|
-
csc_cia_stne/gcp_bigquery.py,sha256=zFH8_BDXzN0OKusY-Igt7lVN8xKITxij0xwUeYlQtiI,10314
|
6
|
-
csc_cia_stne/karavela.py,sha256=Q7MbQXXz_jtrLHM7QeenbSzcro07EpoFk4lKglivJ_I,3564
|
7
|
-
csc_cia_stne/logger_json.py,sha256=eoaVHQMSM9znoLsDOZltX8p60RnV9qFANCCyl4aCflQ,1678
|
8
|
-
csc_cia_stne/logger_rich.py,sha256=0fpLuQLeyl_DCbBn32QfNNoMsY_8WREyVjOiXT5Zu8k,7143
|
9
|
-
csc_cia_stne/servicenow.py,sha256=vSsNSANFyCZtDu2O7YmdoCbr-_bO1sgMWnOI29mFBOA,23311
|
10
|
-
csc_cia_stne/stne_admin.py,sha256=G5ozXt18VjKL2BHtROQk4GnfVY1xM14RXSQ-rra_D54,15487
|
11
|
-
csc_cia_stne/utilitarios/__init__.py,sha256=4YFhzxu8F_CDHU6iaNhpzz9mfX-8wfJc1XEQInJzwJ4,98
|
12
|
-
csc_cia_stne/utilitarios/functions/__init__.py,sha256=X0PmuSe0RilU824Lvlg-DtO0qDb_D_VfL4ftzR93d40,180
|
13
|
-
csc_cia_stne/utilitarios/functions/func_b64.py,sha256=XGU34BIQQXWXBS0yM2B4A2wDlcrMl1unIJXjq4lpLnk,1254
|
14
|
-
csc_cia_stne/utilitarios/functions/func_converters.py,sha256=EY1zvlBaRX7G1MceVSiRXwwKDQDZwUO9iECBL0fe5iU,481
|
15
|
-
csc_cia_stne/utilitarios/functions/func_recriar_pastas.py,sha256=2_unoSoQHxShcMw_0XIL9F0NgiF1QCKsX4drvg0fEb8,415
|
16
|
-
csc_cia_stne/utilitarios/functions/func_titulo.py,sha256=EhUtsiIOAz4yERNZl3EOHjiFLjj4rK3pr_KB0DxwGIA,3943
|
17
|
-
csc_cia_stne-0.0.30.dist-info/LICENCE,sha256=LPGMtgKki2C3KEZP7hDhA1HBrlq5JCHkIeStUCLEMx4,1073
|
18
|
-
csc_cia_stne-0.0.30.dist-info/METADATA,sha256=7tD1oNfeJaT3DrCmWa0rSO7CaGbdmFxr7A2EJ0g5wu8,1003
|
19
|
-
csc_cia_stne-0.0.30.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
20
|
-
csc_cia_stne-0.0.30.dist-info/top_level.txt,sha256=ldo7GVv3tQx5KJvwBzdZzzQmjPys2NDVVn1rv0BOF2Q,13
|
21
|
-
csc_cia_stne-0.0.30.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|