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.
		
		
		
		
		
			
		
			
				
					
					
						
							39 lines
						
					
					
						
							955 B
						
					
					
				
			
		
		
	
	
							39 lines
						
					
					
						
							955 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
 | |
|     port = urlparse(DATA_ENDPOINT).port or 80
 | |
|     with socket.socket(socket.AF_INET,socket.SOCK_STREAM) as s:
 | |
|       s.connect((hostname, port))
 | |
|     return True
 | |
|   except (socket.gaierror, ConnectionRefusedError):
 | |
|     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")
 | |
| 
 |