[docs]classBasePathMixin:__slots__=("base_uri","uri")base_uri:str|Noneuri:str|None@propertydefabsolute_uri(self)->str|None:ifself.uriisNone:returnNoneifis_url(self.uri):returnself.uriifself.base_uriisNone:raiseValueError("There can not be `absolute_uri` with no `base_uri` set")return_urijoin(self.base_uri,self.uri)@propertydefbase_path(self)->str|None:returnNoneifself.uriisNoneelseos.path.dirname(self.get_path_from_uri())
[docs]defget_path_from_uri(self)->str:"""Some URIs have a slash in the query string"""returnself.uri.split("?")[0]