Spaces:
Runtime error
Runtime error
| # Copyright (C) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |
| # | |
| # This work is made available under the Nvidia Source Code License-NC. | |
| # To view a copy of this license, check out LICENSE.md | |
| import diskcache | |
| """ | |
| INFO: | |
| Cache objects are thread-safe and may be shared between threads. | |
| Two Cache objects may also reference the same directory from separate | |
| threads or processes. In this way, they are also process-safe and support | |
| cross-process communication. | |
| """ | |
| class Cache(object): | |
| r"""This creates an on disk cache, which saves files as bytes. | |
| Args: | |
| root (str): Path to the cache dir. | |
| size_MB (float): Size of cache in MB. | |
| """ | |
| def __init__(self, root, size_GB): | |
| self.root = root | |
| self.size_limit_B = size_GB * 1024 * 1024 * 1024 | |
| self.cache = diskcache.Cache(root, size_limit=self.size_limit_B) | |
| print('Created cache of max size %d GB at %s' % | |
| (size_GB, self.cache.directory)) | |
| def read(self, key): | |
| if key in self.cache: | |
| return self.cache[key] | |
| return False | |
| def write(self, key, value): | |
| try: | |
| self.cache[key] = value | |
| except Exception as e: # noqa | |
| print(e) | |
| return False | |