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")
 | 
						|
 |