Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def fetch_style_from_url(self, url: str) -> Optional[Path]:
"""Fetch a style file from a URL, saving the contents in the cache dir."""
if NitpickApp.current().offline:
# No style will be fetched in offline mode
return None
if self._first_full_path and not is_url(url):
prefix, rest = self._first_full_path.split(":/")
domain_plus_url = str(rest).strip("/").rstrip("/") + "/" + url
new_url = "{}://{}".format(prefix, domain_plus_url)
else:
new_url = url
parsed_url = list(urlparse(new_url))
if not parsed_url[2].endswith(TOML_EXTENSION):
parsed_url[2] += TOML_EXTENSION
new_url = urlunparse(parsed_url)
if new_url in self._already_included:
return None
if not NitpickApp.current().cache_dir:
raise FileNotFoundError("Cache dir does not exist")
def get_style_path(self, style_uri: str) -> Optional[Path]:
"""Get the style path from the URI. Add the .toml extension if it's missing."""
clean_style_uri = style_uri.strip()
style_path = None
if is_url(clean_style_uri) or is_url(self._first_full_path):
style_path = self.fetch_style_from_url(clean_style_uri)
elif clean_style_uri:
style_path = self.fetch_style_from_local_path(clean_style_uri)
return style_path