csc-cia-stne 0.1.13__py3-none-any.whl → 0.1.15__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/gcp_bucket.py +18 -1
- csc_cia_stne/utilitarios/validations/gcp_bucket.py +21 -6
- {csc_cia_stne-0.1.13.dist-info → csc_cia_stne-0.1.15.dist-info}/METADATA +1 -1
- {csc_cia_stne-0.1.13.dist-info → csc_cia_stne-0.1.15.dist-info}/RECORD +7 -7
- {csc_cia_stne-0.1.13.dist-info → csc_cia_stne-0.1.15.dist-info}/WHEEL +0 -0
- {csc_cia_stne-0.1.13.dist-info → csc_cia_stne-0.1.15.dist-info}/licenses/LICENCE +0 -0
- {csc_cia_stne-0.1.13.dist-info → csc_cia_stne-0.1.15.dist-info}/top_level.txt +0 -0
csc_cia_stne/gcp_bucket.py
CHANGED
@@ -224,9 +224,26 @@ class GCPBucket():
|
|
224
224
|
|
225
225
|
blob.upload_from_filename(filename)
|
226
226
|
|
227
|
+
blob.reload()
|
228
|
+
|
227
229
|
return {
|
228
230
|
'success':True,
|
229
|
-
'details':f'Arquivo enviado para o bucket: {str(destination)}'
|
231
|
+
'details':f'Arquivo enviado para o bucket: {str(destination)}',
|
232
|
+
'data': {
|
233
|
+
'name': blob.name,
|
234
|
+
'bucket': blob.bucket.name,
|
235
|
+
'size': blob.size,
|
236
|
+
'content_type': blob.content_type,
|
237
|
+
'etag': blob.etag,
|
238
|
+
'md5_hash': blob.md5_hash,
|
239
|
+
'crc32c': blob.crc32c,
|
240
|
+
'generation': blob.generation,
|
241
|
+
'time_created': blob.time_created.isoformat() if blob.time_created else None,
|
242
|
+
'updated': blob.updated.isoformat() if blob.updated else None,
|
243
|
+
'public_url': f"gs://{blob.bucket.name}/{blob.name}",
|
244
|
+
'media_link': blob.media_link
|
245
|
+
}
|
246
|
+
|
230
247
|
}
|
231
248
|
|
232
249
|
except Exception as e:
|
@@ -1,7 +1,9 @@
|
|
1
1
|
from __future__ import annotations
|
2
|
-
from pydantic import BaseModel, field_validator, model_validator, ValidationError
|
3
|
-
from typing import Optional, Mapping, Any
|
2
|
+
from pydantic import BaseModel, field_validator, model_validator, ValidationError, Field, ConfigDict
|
3
|
+
from typing import Optional, Mapping, Any, Annotated
|
4
4
|
|
5
|
+
NonEmptyStr = Annotated[str, Field(min_length=1)]
|
6
|
+
PositiveInt = Annotated[int, Field(gt=0)]
|
5
7
|
|
6
8
|
class InitParamsValidator(BaseModel):
|
7
9
|
"""
|
@@ -22,10 +24,6 @@ class InitParamsValidator(BaseModel):
|
|
22
24
|
)
|
23
25
|
return self
|
24
26
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
27
|
class ListFilesValidator(BaseModel):
|
30
28
|
"""
|
31
29
|
Classe ListFilesValidator
|
@@ -47,6 +45,22 @@ class ListFilesValidator(BaseModel):
|
|
47
45
|
return value
|
48
46
|
|
49
47
|
class GetFilesValidator(BaseModel):
|
48
|
+
|
49
|
+
model_config = ConfigDict(strict=True) # não faz coerção: "1024" não vira 1024
|
50
|
+
|
51
|
+
bucket_name: NonEmptyStr
|
52
|
+
filename: NonEmptyStr
|
53
|
+
destination: NonEmptyStr
|
54
|
+
chunksize: PositiveInt
|
55
|
+
|
56
|
+
# Opcional: se você quiser mensagens personalizadas além das do Field
|
57
|
+
@field_validator("bucket_name", "filename", "destination")
|
58
|
+
def _not_blank(cls, v, info):
|
59
|
+
if not v.strip():
|
60
|
+
raise ValueError(f"O parametro '{info.field_name}' não pode ser vazio/whitespace.")
|
61
|
+
return v
|
62
|
+
|
63
|
+
class _GetFilesValidator(BaseModel):
|
50
64
|
"""
|
51
65
|
Classe GetFilesValidator
|
52
66
|
Valida os parâmetros necessários para operações relacionadas a arquivos em um bucket GCP.
|
@@ -131,6 +145,7 @@ class UploadFilesValidator(BaseModel):
|
|
131
145
|
f"O parametro '{info.field_name}' deve ser uma string não vazia; recebido {type(value)}"
|
132
146
|
)
|
133
147
|
return value.strip()
|
148
|
+
|
134
149
|
class DeleteFilesValidator(BaseModel):
|
135
150
|
"""
|
136
151
|
Classe DeleteFilesValidator
|
@@ -4,7 +4,7 @@ csc_cia_stne/bc_sta.py,sha256=sE-aU-ZVSAqryQrT1-nor9eAFM5npNAKF1QSm-ChhGU,28945
|
|
4
4
|
csc_cia_stne/email.py,sha256=y4xyPAe6_Mga5Wf6qAsDzYgn0f-zf2KshfItlWe58z8,8481
|
5
5
|
csc_cia_stne/ftp.py,sha256=M9WCaq2hm56jGyszNaPinliFaZS0BNrT7VrVPMjkMg4,10988
|
6
6
|
csc_cia_stne/gcp_bigquery.py,sha256=foq8azvvv_f7uikMDslX9RcUIrx7RAS-Sn0AGW0QFQc,7231
|
7
|
-
csc_cia_stne/gcp_bucket.py,sha256=
|
7
|
+
csc_cia_stne/gcp_bucket.py,sha256=_Q3LS3Uy9tyi6LFHBedu38S1GS2CrI5iJCxRLu0rNaU,11007
|
8
8
|
csc_cia_stne/google_drive.py,sha256=j1fvHpgU76_VqCtSEe05JXLOgNwNNfrP6GRKq6eU4b4,17074
|
9
9
|
csc_cia_stne/karavela.py,sha256=jJCYX43D49gGuzmwwK6bN9XVnv2dXdp9iHnnV5H1LMQ,4794
|
10
10
|
csc_cia_stne/logger_json.py,sha256=CXxSCOFGMymDi8XE9SKnPKjW4D0wJLqDLnxqePS26i8,3187
|
@@ -31,15 +31,15 @@ csc_cia_stne/utilitarios/validations/GoogleDriveValidator.py,sha256=Q1oZTae4hDJ2
|
|
31
31
|
csc_cia_stne/utilitarios/validations/ServiceNowValidator.py,sha256=yleKUIo1ZfyloP9fDPNjv3JJXdLcocT81WIgRSYmqEA,14423
|
32
32
|
csc_cia_stne/utilitarios/validations/__init__.py,sha256=O_qyEU2ji3u6LHUXZCXvUFsMpoMWL625qqHTXyXivTA,106
|
33
33
|
csc_cia_stne/utilitarios/validations/ftp.py,sha256=LNYyS2c8eou3ML23bBtn87xJFIKSrb8w-2acG0Zugog,4988
|
34
|
-
csc_cia_stne/utilitarios/validations/gcp_bucket.py,sha256=
|
34
|
+
csc_cia_stne/utilitarios/validations/gcp_bucket.py,sha256=sc0xB6IowhKyhH8A2UR0ho3iTYatwsHGbXBsjb25QhY,6905
|
35
35
|
csc_cia_stne/utilitarios/validations/waccess.py,sha256=8yfOrmIPUSLzbCt6P0F6vj3FkSgU_RgrJpJlRhlLyV0,7352
|
36
36
|
csc_cia_stne/utilitarios/validations/web_validator.py,sha256=HYKYSpDv1RvRjZIuwTPt-AbEz-9392MxM_O329iYuSA,5722
|
37
37
|
csc_cia_stne/utilitarios/web_screen/__init__.py,sha256=5QcOPXKd95SvP2DoZiHS0gaU68GlyFD9pQ9kae_9D1Q,100
|
38
38
|
csc_cia_stne/utilitarios/web_screen/web_screen_abstract.py,sha256=PjL8Vgfj_JdKidia7RFyCkro3avYLQu4RZRos41sh3w,3241
|
39
39
|
csc_cia_stne/utilitarios/web_screen/web_screen_botcity.py,sha256=Xi5YJjl2pcxlX3OimqcBWRNXZEpAE7asyUjDJ4Oho5U,12297
|
40
40
|
csc_cia_stne/utilitarios/web_screen/web_screen_selenium.py,sha256=JLIcPJE9ZX3Pd6zG6oTRMqqUAY063UzLY3ReRlxmiSM,15581
|
41
|
-
csc_cia_stne-0.1.
|
42
|
-
csc_cia_stne-0.1.
|
43
|
-
csc_cia_stne-0.1.
|
44
|
-
csc_cia_stne-0.1.
|
45
|
-
csc_cia_stne-0.1.
|
41
|
+
csc_cia_stne-0.1.15.dist-info/licenses/LICENCE,sha256=LPGMtgKki2C3KEZP7hDhA1HBrlq5JCHkIeStUCLEMx4,1073
|
42
|
+
csc_cia_stne-0.1.15.dist-info/METADATA,sha256=GoZ9_9FZbKPlj6kTCybVe4coxamwpghFmC2iucPLFuE,1464
|
43
|
+
csc_cia_stne-0.1.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
44
|
+
csc_cia_stne-0.1.15.dist-info/top_level.txt,sha256=ldo7GVv3tQx5KJvwBzdZzzQmjPys2NDVVn1rv0BOF2Q,13
|
45
|
+
csc_cia_stne-0.1.15.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|