diff --git a/crates/target_python/output/basic_discriminator/__init__.py b/crates/target_python/output/basic_discriminator/__init__.py index 0cdc4bcf..b4b98f49 100644 --- a/crates/target_python/output/basic_discriminator/__init__.py +++ b/crates/target_python/output/basic_discriminator/__init__.py @@ -71,6 +71,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/basic_enum/__init__.py b/crates/target_python/output/basic_enum/__init__.py index 821b0ae6..657f5e9a 100644 --- a/crates/target_python/output/basic_enum/__init__.py +++ b/crates/target_python/output/basic_enum/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/basic_properties/__init__.py b/crates/target_python/output/basic_properties/__init__.py index fb295c93..97f71d20 100644 --- a/crates/target_python/output/basic_properties/__init__.py +++ b/crates/target_python/output/basic_properties/__init__.py @@ -47,6 +47,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/custom_overrides/__init__.py b/crates/target_python/output/custom_overrides/__init__.py index af563f75..6054ccc7 100644 --- a/crates/target_python/output/custom_overrides/__init__.py +++ b/crates/target_python/output/custom_overrides/__init__.py @@ -53,6 +53,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/definition_name_collisions/__init__.py b/crates/target_python/output/definition_name_collisions/__init__.py index 97f35d4b..41872627 100644 --- a/crates/target_python/output/definition_name_collisions/__init__.py +++ b/crates/target_python/output/definition_name_collisions/__init__.py @@ -78,6 +78,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/description/__init__.py b/crates/target_python/output/description/__init__.py index 7ee31d91..cb204fd8 100644 --- a/crates/target_python/output/description/__init__.py +++ b/crates/target_python/output/description/__init__.py @@ -176,6 +176,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/discriminator_optional_properties/__init__.py b/crates/target_python/output/discriminator_optional_properties/__init__.py index acaba501..e6bc17eb 100644 --- a/crates/target_python/output/discriminator_optional_properties/__init__.py +++ b/crates/target_python/output/discriminator_optional_properties/__init__.py @@ -59,6 +59,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/elements/__init__.py b/crates/target_python/output/elements/__init__.py index 3f4a7a6e..1f853ed6 100644 --- a/crates/target_python/output/elements/__init__.py +++ b/crates/target_python/output/elements/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/empty_and_nonascii_definitions/__init__.py b/crates/target_python/output/empty_and_nonascii_definitions/__init__.py index b2a3146b..5bff5347 100644 --- a/crates/target_python/output/empty_and_nonascii_definitions/__init__.py +++ b/crates/target_python/output/empty_and_nonascii_definitions/__init__.py @@ -122,6 +122,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/empty_and_nonascii_enum_values/__init__.py b/crates/target_python/output/empty_and_nonascii_enum_values/__init__.py index 72d61150..7aa2b9df 100644 --- a/crates/target_python/output/empty_and_nonascii_enum_values/__init__.py +++ b/crates/target_python/output/empty_and_nonascii_enum_values/__init__.py @@ -39,6 +39,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/empty_and_nonascii_properties/__init__.py b/crates/target_python/output/empty_and_nonascii_properties/__init__.py index cf89866d..87aa7e20 100644 --- a/crates/target_python/output/empty_and_nonascii_properties/__init__.py +++ b/crates/target_python/output/empty_and_nonascii_properties/__init__.py @@ -59,6 +59,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/enum_collisions/__init__.py b/crates/target_python/output/enum_collisions/__init__.py index 4aea4576..f1db68a1 100644 --- a/crates/target_python/output/enum_collisions/__init__.py +++ b/crates/target_python/output/enum_collisions/__init__.py @@ -77,6 +77,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/enum_variant_collisions/__init__.py b/crates/target_python/output/enum_variant_collisions/__init__.py index f9efe435..0106d0c2 100644 --- a/crates/target_python/output/enum_variant_collisions/__init__.py +++ b/crates/target_python/output/enum_variant_collisions/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/geojson/__init__.py b/crates/target_python/output/geojson/__init__.py index 94b9a077..89361453 100644 --- a/crates/target_python/output/geojson/__init__.py +++ b/crates/target_python/output/geojson/__init__.py @@ -523,6 +523,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/initialisms/__init__.py b/crates/target_python/output/initialisms/__init__.py index 23237c19..87427623 100644 --- a/crates/target_python/output/initialisms/__init__.py +++ b/crates/target_python/output/initialisms/__init__.py @@ -71,6 +71,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/keywords/__init__.py b/crates/target_python/output/keywords/__init__.py index e4657501..1b941b57 100644 --- a/crates/target_python/output/keywords/__init__.py +++ b/crates/target_python/output/keywords/__init__.py @@ -63,6 +63,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/nullable_discriminator/__init__.py b/crates/target_python/output/nullable_discriminator/__init__.py index b470a341..92cd337b 100644 --- a/crates/target_python/output/nullable_discriminator/__init__.py +++ b/crates/target_python/output/nullable_discriminator/__init__.py @@ -82,6 +82,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/nullable_elements/__init__.py b/crates/target_python/output/nullable_elements/__init__.py index 88f8d0c7..5bd020b2 100644 --- a/crates/target_python/output/nullable_elements/__init__.py +++ b/crates/target_python/output/nullable_elements/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/nullable_enum/__init__.py b/crates/target_python/output/nullable_enum/__init__.py index 91a237d3..a801218e 100644 --- a/crates/target_python/output/nullable_enum/__init__.py +++ b/crates/target_python/output/nullable_enum/__init__.py @@ -46,6 +46,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/nullable_properties/__init__.py b/crates/target_python/output/nullable_properties/__init__.py index 214400f8..8b56b9df 100644 --- a/crates/target_python/output/nullable_properties/__init__.py +++ b/crates/target_python/output/nullable_properties/__init__.py @@ -58,6 +58,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/nullable_references/__init__.py b/crates/target_python/output/nullable_references/__init__.py index 0f59f18a..337d4137 100644 --- a/crates/target_python/output/nullable_references/__init__.py +++ b/crates/target_python/output/nullable_references/__init__.py @@ -119,6 +119,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/nullable_timestamp_property/__init__.py b/crates/target_python/output/nullable_timestamp_property/__init__.py index ed3e8d17..58b29bce 100644 --- a/crates/target_python/output/nullable_timestamp_property/__init__.py +++ b/crates/target_python/output/nullable_timestamp_property/__init__.py @@ -38,6 +38,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/optional_properties/__init__.py b/crates/target_python/output/optional_properties/__init__.py index 311ce3f3..1085c3ff 100644 --- a/crates/target_python/output/optional_properties/__init__.py +++ b/crates/target_python/output/optional_properties/__init__.py @@ -47,6 +47,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/property_name_collisions/__init__.py b/crates/target_python/output/property_name_collisions/__init__.py index eeb38c81..3eb9b0f7 100644 --- a/crates/target_python/output/property_name_collisions/__init__.py +++ b/crates/target_python/output/property_name_collisions/__init__.py @@ -41,6 +41,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/reference/__init__.py b/crates/target_python/output/reference/__init__.py index 141825fe..2c1b6781 100644 --- a/crates/target_python/output/reference/__init__.py +++ b/crates/target_python/output/reference/__init__.py @@ -67,6 +67,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_boolean/__init__.py b/crates/target_python/output/root_boolean/__init__.py index df7cae52..bf90ad96 100644 --- a/crates/target_python/output/root_boolean/__init__.py +++ b/crates/target_python/output/root_boolean/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_empty/__init__.py b/crates/target_python/output/root_empty/__init__.py index e5b32213..6c32e875 100644 --- a/crates/target_python/output/root_empty/__init__.py +++ b/crates/target_python/output/root_empty/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_float32/__init__.py b/crates/target_python/output/root_float32/__init__.py index 78f01c9e..723440d4 100644 --- a/crates/target_python/output/root_float32/__init__.py +++ b/crates/target_python/output/root_float32/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_float64/__init__.py b/crates/target_python/output/root_float64/__init__.py index 78f01c9e..723440d4 100644 --- a/crates/target_python/output/root_float64/__init__.py +++ b/crates/target_python/output/root_float64/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_int16/__init__.py b/crates/target_python/output/root_int16/__init__.py index 529804d2..988ea5f2 100644 --- a/crates/target_python/output/root_int16/__init__.py +++ b/crates/target_python/output/root_int16/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_int32/__init__.py b/crates/target_python/output/root_int32/__init__.py index 529804d2..988ea5f2 100644 --- a/crates/target_python/output/root_int32/__init__.py +++ b/crates/target_python/output/root_int32/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_int8/__init__.py b/crates/target_python/output/root_int8/__init__.py index 529804d2..988ea5f2 100644 --- a/crates/target_python/output/root_int8/__init__.py +++ b/crates/target_python/output/root_int8/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_nullable_string/__init__.py b/crates/target_python/output/root_nullable_string/__init__.py index 2263e69c..eb01013b 100644 --- a/crates/target_python/output/root_nullable_string/__init__.py +++ b/crates/target_python/output/root_nullable_string/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_nullable_timestamp/__init__.py b/crates/target_python/output/root_nullable_timestamp/__init__.py index fbe3aa85..e4349ce8 100644 --- a/crates/target_python/output/root_nullable_timestamp/__init__.py +++ b/crates/target_python/output/root_nullable_timestamp/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_string/__init__.py b/crates/target_python/output/root_string/__init__.py index e9245c0a..c363a766 100644 --- a/crates/target_python/output/root_string/__init__.py +++ b/crates/target_python/output/root_string/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_timestamp/__init__.py b/crates/target_python/output/root_timestamp/__init__.py index 951c979a..227476b9 100644 --- a/crates/target_python/output/root_timestamp/__init__.py +++ b/crates/target_python/output/root_timestamp/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_uint16/__init__.py b/crates/target_python/output/root_uint16/__init__.py index 529804d2..988ea5f2 100644 --- a/crates/target_python/output/root_uint16/__init__.py +++ b/crates/target_python/output/root_uint16/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_uint32/__init__.py b/crates/target_python/output/root_uint32/__init__.py index 529804d2..988ea5f2 100644 --- a/crates/target_python/output/root_uint32/__init__.py +++ b/crates/target_python/output/root_uint32/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/root_uint8/__init__.py b/crates/target_python/output/root_uint8/__init__.py index 529804d2..988ea5f2 100644 --- a/crates/target_python/output/root_uint8/__init__.py +++ b/crates/target_python/output/root_uint8/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/type_collisions/__init__.py b/crates/target_python/output/type_collisions/__init__.py index fc7b01b7..04a9af94 100644 --- a/crates/target_python/output/type_collisions/__init__.py +++ b/crates/target_python/output/type_collisions/__init__.py @@ -86,6 +86,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/output/values/__init__.py b/crates/target_python/output/values/__init__.py index 0eff71f6..98257808 100644 --- a/crates/target_python/output/values/__init__.py +++ b/crates/target_python/output/values/__init__.py @@ -34,6 +34,8 @@ def _to_json_data(data: Any) -> Any: if data is None or type(data) in [bool, int, float, str, object]: return data if type(data) is datetime: + if data.tzinfo == None: + return data.replace(tzinfo=timezone.utc).isoformat() return data.isoformat() if type(data) is list: return [_to_json_data(d) for d in data] diff --git a/crates/target_python/src/lib.rs b/crates/target_python/src/lib.rs index 1e91cb59..0f95f068 100644 --- a/crates/target_python/src/lib.rs +++ b/crates/target_python/src/lib.rs @@ -227,6 +227,8 @@ impl jtd_codegen::target::Target for Target { )?; writeln!(out, " return data")?; writeln!(out, " if type(data) is datetime:")?; + writeln!(out, " if data.tzinfo == None:")?; + writeln!(out, " return data.replace(tzinfo=timezone.utc).isoformat()")?; writeln!(out, " return data.isoformat()")?; writeln!(out, " if type(data) is list:")?; writeln!(out, " return [_to_json_data(d) for d in data]")?;