def __init__(self, url, query=None): """Initialize file system object.""" if not is_valid_url(url): raise InvalidPathError(path=url) root_url, base_path, queryargs = spliturl(url) if not is_valid_path(base_path): raise InvalidPathError(path=base_path) if queryargs: # Convert query string in URL into a dictionary. Assumes there's no # duplication of fields names in query string (such as e.g. # '?f1=a&f1=b'). queryargs = {k: v[0] for (k, v) in parse_qs(queryargs).items()} # Merge values from kwarg query into the dictionary. Conflicting # keys raises an exception. for k, v in (query or {}).items(): if k in queryargs: raise KeyError("Query string field {0} conflicts with " "field in URL {1}".format(k, url)) queryargs[k] = v else: # No query string in URL, use kwarg instead. queryargs = query self.root_url = root_url self.base_path = base_path self.queryargs = queryargs self._client = FileSystem(self.xrd_get_rooturl()) super(XRootDPyFS, self).__init__(thread_synchronize=False)
def __init__(self, url, timeout=0, thread_synchronize=True): """.""" if not is_valid_url(url): raise InvalidPathError(path=url) root_url, base_path = spliturl(url) self.timeout = timeout self.base_path = base_path self.client = FileSystem(root_url) super(XRootDFS, self).__init__(thread_synchronize=thread_synchronize)