diff options
author | James Maslek <jmaslek11@gmail.com> | 2024-01-31 11:03:53 -0500 |
---|---|---|
committer | James Maslek <jmaslek11@gmail.com> | 2024-01-31 11:03:53 -0500 |
commit | 827d19f4d8faf7345d56c715bdaeddf9ed3c1640 (patch) | |
tree | 228574a95d395b7409f94b006a5866e65708a321 | |
parent | bccd1249863f3aa0a996bbca67b418ee122efeee (diff) |
allow dates to be jsoned into keyfeature/data-cache
-rw-r--r-- | openbb_platform/core/openbb_core/provider/abstract/cache.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/openbb_platform/core/openbb_core/provider/abstract/cache.py b/openbb_platform/core/openbb_core/provider/abstract/cache.py index b3275fac77f..d7e5cfe66da 100644 --- a/openbb_platform/core/openbb_core/provider/abstract/cache.py +++ b/openbb_platform/core/openbb_core/provider/abstract/cache.py @@ -3,6 +3,7 @@ import time import hashlib import json from abc import ABC, abstractmethod +from datetime import date, datetime try: import redis @@ -12,9 +13,17 @@ except ImportError: REDIS_AVAILABLE = False +def jsonify_date(obj): + """JSON serializer for objects not serializable by default json code""" + + if isinstance(obj, (datetime, date)): + return obj.isoformat() + raise TypeError(f"Type {type(obj)} not serializable") + + def generate_cache_key(*args, **kwargs): """Generate a unique key for a request.""" - key = json.dumps((args, kwargs), sort_keys=True) + key = json.dumps((args, kwargs), sort_keys=True, default=jsonify_date) return hashlib.sha256(key.encode("utf-8")).hexdigest() |