Fix datetime objects serialization

This commit is contained in:
Orsiris de Jong 2024-01-09 21:27:28 +01:00
parent de234e810a
commit 2ad353b394

View file

@ -15,12 +15,23 @@ __build__ = "2024010201"
import sys
from logging import getLogger
import json
import datetime
from npbackup.core.runner import NPBackupRunner
logger = getLogger()
def serialize_datetime(obj):
"""
By default, datetime objects aren't serialisable to json directly
Here's a quick converter from https://www.geeksforgeeks.org/how-to-fix-datetime-datetime-not-json-serializable-in-python/
"""
if isinstance(obj, datetime.datetime):
return obj.isoformat()
raise TypeError("Type not serializable")
def entrypoint(*args, **kwargs):
npbackup_runner = NPBackupRunner()
npbackup_runner.repo_config = kwargs.pop("repo_config")
@ -34,7 +45,7 @@ def entrypoint(*args, **kwargs):
if not json_output:
logger.info(f"Operation finished with {result}")
else:
print(json.dumps(result))
print(json.dumps(result, default=serialize_datetime))
sys.exit(0)
def auto_upgrade(full_config: dict):