Spaces:
Runtime error
Runtime error
File size: 1,633 Bytes
fb95f15 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | # Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Cache manager for Sushruta Patient 360 using diskcache."""
import logging
import shutil
from pathlib import Path
from diskcache import Cache
from config import CACHE_DIR
logger = logging.getLogger(__name__)
# Ensure CACHE_DIR exists
try:
CACHE_DIR.mkdir(parents=True, exist_ok=True)
except Exception as e:
logger.warning("Could not create CACHE_DIR %s: %s. Using local ./cache instead.", CACHE_DIR, e)
CACHE_DIR = Path(__file__).resolve().parent / "cache"
CACHE_DIR.mkdir(parents=True, exist_ok=True)
# Define Cache instances
intake_cache = Cache(str(CACHE_DIR / "intake"))
radiology_cache = Cache(str(CACHE_DIR / "radiology"))
logger.info("Initialized diskcache at: %s", CACHE_DIR)
def create_cache_zip(archive_path_prefix: str) -> str:
"""Create a zip archive of the CACHE_DIR and return the path to the zip file.
Saves it as `archive_path_prefix.zip`.
"""
zip_path = shutil.make_archive(archive_path_prefix, "zip", str(CACHE_DIR))
logger.info("Created cache archive zip at: %s", zip_path)
return zip_path
|