From 6137477bc3083c869ec5647f67a1b6c44d46657b Mon Sep 17 00:00:00 2001 From: CodeByZen Date: Wed, 24 Sep 2025 00:32:37 +0300 Subject: [PATCH] Fix json.dump error while ipmapper update In python3.13 datetime... can't be dumped to json in output_writer.write_metadata in line 182 (json.dump(metadata, f, indent=2)) If we had object like this: ```python [{ "prefix": "74.119.64.0/21", "entries": [("apnic", "MO", datetime.date(2009, 10, 28)), ("arin", "US", datetime.date(2009, 10, 28))], "chosen": ("arin", "US", datetime.date(2009, 10, 28))}] ``` datetime object causes unexpected behavior when converting with `json.dump`. Need to be converted to `str` object. --- src/ipmapper/parser.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ipmapper/parser.py b/src/ipmapper/parser.py index 1e41dd2..dd33910 100644 --- a/src/ipmapper/parser.py +++ b/src/ipmapper/parser.py @@ -77,11 +77,11 @@ def _parse_line(self, line, registry): # Parse date try: if date_field and date_field.isdigit(): - date = datetime.strptime(date_field, "%Y%m%d").date() + date = str(datetime.strptime(date_field, "%Y%m%d").date()) else: - date = datetime(1900, 1, 1).date() # Default for missing dates + date = str(datetime(1900, 1, 1).date()) # Default for missing dates except: - date = datetime(1900, 1, 1).date() + date = str(datetime(1900, 1, 1).date()) # Convert to network prefixes prefixes = []