def get_filename(self): _filename = getattr(self, "_filename", None) if _filename is None: _uri = getattr(self, "_uri", None) if _uri: parsed_path = urlparse.urlparse(_uri) _filename = basename(parsed_path.path) if not _filename: _filename = str(uuid.uuid4()) self._filename = _filename return _filename
def absolute_url(self, url, base_url=None): # In: some url # Out: (absolute_url, relative_url) based on self._base_url if base_url is None: base_url = self.base_url if base_url is None: return url parsed_url = urlparse.urlsplit(url) if parsed_url.scheme: # is absolute_url return url else: # http://xxx.com/../../template/overdoze_team/css/style.css -> http://xxx.com/template/overdoze_team/css/style.css # см. http://teethgrinder.co.uk/perm.php?a=Normalize-URL-path-python joined = urlparse.urljoin(self.base_url, url) url = urlparse.urlparse(joined) path = posixpath.normpath(url[2]) return urlparse.urlunparse((url.scheme, url.netloc, path, url.params, url.query, url.fragment))