From d9e6a92392223a729a9a8ad2fc3f117b669e8837 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= Date: Fri, 16 Aug 2024 05:50:07 +0100 Subject: [PATCH] Use TypedDict for JSON output typing. --- ipv6_in_real_life/json.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ipv6_in_real_life/json.py b/ipv6_in_real_life/json.py index 11855a2..6e37425 100644 --- a/ipv6_in_real_life/json.py +++ b/ipv6_in_real_life/json.py @@ -4,12 +4,23 @@ import json import time -from typing import Union +from typing import TypedDict from . import data_structures -HostJson = dict[str, Union[bool, str, None]] -EntityJson = dict[str, Union[str, list[HostJson], HostJson]] + +class HostJson(TypedDict): + name: str + has_ipv4_address: bool | None + has_ipv6_address: bool | None + + +class EntityJson(TypedDict): + name: str + main_host: HostJson + additional_hosts: list[HostJson] + + CategoryJson = list[EntityJson] CountryDataJson = dict[str, CategoryJson] SourceJson = dict[str, CountryDataJson]