73 lines
1.5 KiB
Python
73 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
from contextlib import contextmanager
|
|
|
|
from .base import AppData, ContentStore
|
|
|
|
|
|
class AppDataDisabled(AppData):
|
|
"""No application cache available (most likely as we don't have write permissions)."""
|
|
|
|
transient = True
|
|
can_update = False
|
|
|
|
def __init__(self) -> None:
|
|
pass
|
|
|
|
error = RuntimeError("no app data folder available, probably no write access to the folder")
|
|
|
|
def close(self):
|
|
"""Do nothing."""
|
|
|
|
def reset(self):
|
|
"""Do nothing."""
|
|
|
|
def py_info(self, path): # noqa: ARG002
|
|
return ContentStoreNA()
|
|
|
|
def embed_update_log(self, distribution, for_py_version): # noqa: ARG002
|
|
return ContentStoreNA()
|
|
|
|
def extract(self, path, to_folder): # noqa: ARG002
|
|
raise self.error
|
|
|
|
@contextmanager
|
|
def locked(self, path): # noqa: ARG002
|
|
"""Do nothing."""
|
|
yield
|
|
|
|
@property
|
|
def house(self):
|
|
raise self.error
|
|
|
|
def wheel_image(self, for_py_version, name): # noqa: ARG002
|
|
raise self.error
|
|
|
|
def py_info_clear(self):
|
|
"""Nothing to clear."""
|
|
|
|
|
|
class ContentStoreNA(ContentStore):
|
|
def exists(self):
|
|
return False
|
|
|
|
def read(self):
|
|
"""Nothing to read."""
|
|
return
|
|
|
|
def write(self, content):
|
|
"""Nothing to write."""
|
|
|
|
def remove(self):
|
|
"""Nothing to remove."""
|
|
|
|
@contextmanager
|
|
def locked(self):
|
|
yield
|
|
|
|
|
|
__all__ = [
|
|
"AppDataDisabled",
|
|
"ContentStoreNA",
|
|
]
|