You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
841 B
38 lines
841 B
import os
|
|
import socket
|
|
from urllib.parse import urlparse
|
|
|
|
from openpilot.tools.lib.url_file import URLFile
|
|
|
|
DATA_ENDPOINT = os.getenv("DATA_ENDPOINT", "http://data-raw.comma.internal/")
|
|
|
|
|
|
def internal_source_available():
|
|
try:
|
|
hostname = urlparse(DATA_ENDPOINT).hostname
|
|
if hostname:
|
|
socket.gethostbyname(hostname)
|
|
return True
|
|
except socket.gaierror:
|
|
pass
|
|
return False
|
|
|
|
|
|
def resolve_name(fn):
|
|
if fn.startswith("cd:/"):
|
|
return fn.replace("cd:/", DATA_ENDPOINT)
|
|
return fn
|
|
|
|
|
|
def file_exists(fn):
|
|
fn = resolve_name(fn)
|
|
if fn.startswith(("http://", "https://")):
|
|
return URLFile(fn).get_length_online() != -1
|
|
return os.path.exists(fn)
|
|
|
|
|
|
def FileReader(fn, debug=False):
|
|
fn = resolve_name(fn)
|
|
if fn.startswith(("http://", "https://")):
|
|
return URLFile(fn, debug=debug)
|
|
return open(fn, "rb")
|
|
|