in glean_parser/util.py [0:0]
def fetch_remote_url(url: str, cache: bool = True):
"""
Fetches the contents from an HTTP url or local file path, and optionally
caches it to disk.
"""
# Include the Python version in the cache key, since caches aren't
# sharable across Python versions.
key = (url, str(sys.version_info))
is_http = url.startswith("http")
if not is_http:
with open(url, "r", encoding="utf-8") as fd:
return fd.read()
if cache:
cache_dir = platformdirs.user_cache_dir("glean_parser", "mozilla")
with diskcache.Cache(cache_dir) as dc:
if key in dc:
return dc[key]
contents: str = urllib.request.urlopen(url).read()
if cache:
with diskcache.Cache(cache_dir) as dc:
dc[key] = contents
return contents