mirror of
https://github.com/netinvent/npbackup.git
synced 2024-09-21 07:16:16 +08:00
Fix datetime objects serialization
This commit is contained in:
parent
de234e810a
commit
2ad353b394
|
@ -15,12 +15,23 @@ __build__ = "2024010201"
|
||||||
import sys
|
import sys
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
import json
|
import json
|
||||||
|
import datetime
|
||||||
from npbackup.core.runner import NPBackupRunner
|
from npbackup.core.runner import NPBackupRunner
|
||||||
|
|
||||||
|
|
||||||
logger = getLogger()
|
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):
|
def entrypoint(*args, **kwargs):
|
||||||
npbackup_runner = NPBackupRunner()
|
npbackup_runner = NPBackupRunner()
|
||||||
npbackup_runner.repo_config = kwargs.pop("repo_config")
|
npbackup_runner.repo_config = kwargs.pop("repo_config")
|
||||||
|
@ -34,7 +45,7 @@ def entrypoint(*args, **kwargs):
|
||||||
if not json_output:
|
if not json_output:
|
||||||
logger.info(f"Operation finished with {result}")
|
logger.info(f"Operation finished with {result}")
|
||||||
else:
|
else:
|
||||||
print(json.dumps(result))
|
print(json.dumps(result, default=serialize_datetime))
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
def auto_upgrade(full_config: dict):
|
def auto_upgrade(full_config: dict):
|
||||||
|
|
Loading…
Reference in a new issue