revert json cache
Some checks failed
Build and deploy the backend to staging / Build and push image (pull_request) Successful in 1m51s
Run linting on the backend code / Build (pull_request) Successful in 27s
Run testing on the backend code / Build (pull_request) Failing after 5m41s
Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 22s
Some checks failed
Build and deploy the backend to staging / Build and push image (pull_request) Successful in 1m51s
Run linting on the backend code / Build (pull_request) Successful in 27s
Run testing on the backend code / Build (pull_request) Failing after 5m41s
Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 22s
This commit is contained in:
parent
4818bde820
commit
1cc935fb34
File diff suppressed because one or more lines are too long
@ -2,7 +2,6 @@
|
||||
import os
|
||||
import xml.etree.ElementTree as ET
|
||||
import hashlib
|
||||
import ujson
|
||||
|
||||
from ..constants import OSM_CACHE_DIR
|
||||
|
||||
@ -35,43 +34,6 @@ class CachingStrategyBase:
|
||||
"""Clean up or close any resources used by the caching strategy."""
|
||||
|
||||
|
||||
class JSONCache(CachingStrategyBase):
|
||||
"""
|
||||
A caching strategy that stores and retrieves data in JSON format.
|
||||
|
||||
This class provides methods to cache data as JSON files in a specified directory.
|
||||
The directory is automatically suffixed with '_JSON' to distinguish it from other
|
||||
caching strategies. The data is stored and retrieved using JSON serialization.
|
||||
|
||||
Args:
|
||||
cache_dir (str): The base directory where JSON cache files will be stored.
|
||||
Defaults to 'OSM_CACHE_DIR' with a '_JSON' suffix.
|
||||
|
||||
Methods:
|
||||
get(key): Retrieve cached data from a JSON file associated with the given key.
|
||||
set(key, value): Store data in a JSON file with the specified key.
|
||||
"""
|
||||
def __init__(self, cache_dir=OSM_CACHE_DIR):
|
||||
# Add the class name as a suffix to the directory
|
||||
self._cache_dir = f'{cache_dir}_JSON'
|
||||
if not os.path.exists(self._cache_dir):
|
||||
os.makedirs(self._cache_dir)
|
||||
|
||||
def _filename(self, key):
|
||||
return os.path.join(self._cache_dir, f'{key}.json')
|
||||
|
||||
def get(self, key):
|
||||
filename = self._filename(key)
|
||||
if os.path.exists(filename):
|
||||
with open(filename, 'r', encoding='utf-8') as file:
|
||||
return ujson.load(file)
|
||||
return None
|
||||
|
||||
def set(self, key, value):
|
||||
with open(self._filename(key), 'w', encoding='utf-8') as file:
|
||||
ujson.dump(value, file)
|
||||
|
||||
|
||||
class XMLCache(CachingStrategyBase):
|
||||
"""
|
||||
A caching strategy that stores and retrieves data in XML format.
|
||||
@ -138,7 +100,6 @@ class CachingStrategy:
|
||||
__strategy = XMLCache() # Default caching strategy
|
||||
__strategies = {
|
||||
'XML': XMLCache,
|
||||
'JSON': JSONCache,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
|
Loading…
x
Reference in New Issue
Block a user