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 os
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
import hashlib
|
import hashlib
|
||||||
import ujson
|
|
||||||
|
|
||||||
from ..constants import OSM_CACHE_DIR
|
from ..constants import OSM_CACHE_DIR
|
||||||
|
|
||||||
@ -35,43 +34,6 @@ class CachingStrategyBase:
|
|||||||
"""Clean up or close any resources used by the caching strategy."""
|
"""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):
|
class XMLCache(CachingStrategyBase):
|
||||||
"""
|
"""
|
||||||
A caching strategy that stores and retrieves data in XML format.
|
A caching strategy that stores and retrieves data in XML format.
|
||||||
@ -138,7 +100,6 @@ class CachingStrategy:
|
|||||||
__strategy = XMLCache() # Default caching strategy
|
__strategy = XMLCache() # Default caching strategy
|
||||||
__strategies = {
|
__strategies = {
|
||||||
'XML': XMLCache,
|
'XML': XMLCache,
|
||||||
'JSON': JSONCache,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
Loading…
x
Reference in New Issue
Block a user