mirror of
https://github.com/DavidGailleton/42-Piscine_Python.git
synced 2026-04-28 16:14:35 +02:00
clean 09 + use of json is safe
This commit is contained in:
+29
-6
@@ -1,7 +1,7 @@
|
||||
from typing_extensions import Self
|
||||
import datetime
|
||||
from enum import Enum
|
||||
from pydantic import BaseModel, Field, model_validator
|
||||
from pydantic import BaseModel, Field, ValidationError, model_validator
|
||||
import json
|
||||
|
||||
|
||||
@@ -48,13 +48,16 @@ class AlienContact(BaseModel):
|
||||
|
||||
def main() -> None:
|
||||
try:
|
||||
with open("../generated_data/alien_contacts.json") as file:
|
||||
data = json.load(file)
|
||||
with open("../generated_data/alien_contacts.json") as valids, open(
|
||||
"../generated_data/invalid_contacts.json"
|
||||
) as invalids:
|
||||
print("=== invalids ===")
|
||||
data = json.load(invalids)
|
||||
for contact in data:
|
||||
try:
|
||||
print("======================================\n")
|
||||
ac = AlienContact(**contact)
|
||||
print(
|
||||
f"======================================\n"
|
||||
f"Valid contact report:\n"
|
||||
f"ID: {ac.contact_id}\n"
|
||||
f"Type: {ac.contact_type}\n"
|
||||
@@ -65,8 +68,28 @@ def main() -> None:
|
||||
f"Message: {ac.message_received}\n"
|
||||
f"Is verified: {ac.is_verified}\n"
|
||||
)
|
||||
except Exception as err:
|
||||
print(err)
|
||||
except ValidationError as err:
|
||||
print(err.errors()[0]["msg"])
|
||||
|
||||
print("=== valids ===")
|
||||
data = json.load(valids)
|
||||
for contact in data:
|
||||
try:
|
||||
print("======================================\n")
|
||||
ac = AlienContact(**contact)
|
||||
print(
|
||||
f"Valid contact report:\n"
|
||||
f"ID: {ac.contact_id}\n"
|
||||
f"Type: {ac.contact_type}\n"
|
||||
f"Location: {ac.location}\n"
|
||||
f"Signal: {ac.signal_strength:.1f}/10\n"
|
||||
f"Duration: {ac.duration_minutes} minutes\n"
|
||||
f"Witness: {ac.witness_count}\n"
|
||||
f"Message: {ac.message_received}\n"
|
||||
f"Is verified: {ac.is_verified}\n"
|
||||
)
|
||||
except ValidationError as err:
|
||||
print(err.errors()[0]["msg"])
|
||||
except Exception as err:
|
||||
print(err)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user