from webdav3.client import Client client: Client def connect_webdav_b2drop(username, webdav_pw): global client options = { 'webdav_hostname': f"https://b2drop.eudat.eu/remote.php/dav/files/{username}", 'webdav_login': username, 'webdav_password': webdav_pw, 'verbose': True, 'webdav_timeout': 60 * 4, # 10 minutes } client = Client(options) def list_b2drop(): return client.list(get_info=True) def get_info(cloud_path: str): return client.info(cloud_path) def pull(cloud_path, local_path): return client.pull(cloud_path, local_path) def push(cloud_path, local_path): return client.push(cloud_path, local_path) def upload(cloud_path, local_path): return client.upload(cloud_path, local_path)