clean 09 + use of json is safe

This commit is contained in:
2026-03-14 14:09:29 +01:00
parent 3d55c9ac25
commit 4f31ce6762
15 changed files with 72 additions and 1957 deletions
+29 -6
View File
@@ -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)