def _client(self): from webdav3.client import Client # Set password or ask for it if self.ask_password and self.password is None and self.token is None: self.password = ask_password(self.hostname, self.user) # Setup webdav client options dictionary options = { "webdav_hostname": self.hostname, "webdav_login": self.user, "webdav_password": self.password, "webdav_token": self.token, "webdav_cert_path": self.cert_path, "webdav_key_path": self.key_path, "webdav_timeout": self.timeout, "webdav_chunk_size": self.CHUNK_SIZE, } client = Client(options) # Check whether client options are valid if not client.valid(): raise ConfigError( f"Configuration for WebDAV {self.hostname} is invalid.") # Check whether connection is valid (root should always exist) if not client.check(self.path_info.path): raise WebDAVConnectionError(self.hostname) return client
def _client(self): from webdav3.client import Client # Construct hostname from path_info by stripping path http_info = HTTPURLInfo(self.path_info.url) hostname = http_info.replace(path="").url # Set password or ask for it if self.ask_password and self.password is None and self.token is None: host, user = self.path_info.host, self.path_info.user self.password = ask_password(host, user) # Setup webdav client options dictionary options = { "webdav_hostname": hostname, "webdav_login": self.user, "webdav_password": self.password, "webdav_token": self.token, "webdav_cert_path": self.cert_path, "webdav_key_path": self.key_path, "webdav_timeout": self.timeout, "webdav_chunk_size": self.CHUNK_SIZE, } client = Client(options) # Check whether client options are valid if not client.valid(): raise ConfigError( f"Configuration for WebDAV {hostname} is invalid." ) # Check whether connection is valid (root should always exist) if not client.check(self.path_info.path): raise WebDAVConnectionError(hostname) return client