def absolute_uri(self): if parser.is_url(self.uri): return self.uri else: if self.baseuri is None: raise ValueError('There can not be `absolute_uri` with no `baseuri` set') return _urijoin(self.baseuri, self.uri)
def _urijoin(baseuri, path): if parser.is_url(baseuri): parsed_url = urlparse.urlparse(baseuri) prefix = parsed_url.scheme + '://' + parsed_url.netloc new_path = os.path.normpath(parsed_url.path + '/' + path) return urlparse.urljoin(prefix, new_path.strip('/')) else: return os.path.normpath(os.path.join(baseuri, path.strip('/')))
def load(uri): ''' Retrieves the content from a given URI and returns a M3U8 object. Raises ValueError if invalid content or IOError if request fails. ''' if is_url(uri): return _load_from_uri(uri) else: return _load_from_file(uri)