import functools from typing import Any from webdav3.client import Client, Resource from .config import SETTINGS _WEBDAV_CLIENT = Client({ "webdav_hostname": SETTINGS.webdav_url, "webdav_login": SETTINGS.dav_username, "webdav_password": SETTINGS.dav_password, }) @functools.lru_cache def webdav_resource(remote_path: Any) -> Resource: return _WEBDAV_CLIENT.resource(remote_path) def webdav_list(remote_path: str) -> list: return _WEBDAV_CLIENT.list(remote_path)