import  os 
 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  platform 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from  pathlib  import  Path 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								from  openpilot . system . hardware  import  PC 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								DEFAULT_DOWNLOAD_CACHE_ROOT  =  " /tmp/comma_download_cache " 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  Paths : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @staticmethod 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  comma_home ( )  - >  str : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  os . path . join ( str ( Path . home ( ) ) ,  " .comma "  +  os . environ . get ( " OPENPILOT_PREFIX " ,  " " ) ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @staticmethod 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  log_root ( )  - >  str : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  os . environ . get ( ' LOG_ROOT ' ,  False ) : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  os . environ [ ' LOG_ROOT ' ] 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    elif  PC : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  str ( Path ( Paths . comma_home ( ) )  /  " media "  /  " 0 "  /  " realdata " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  ' /data/media/0/realdata/ ' 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @staticmethod 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  swaglog_root ( )  - >  str : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  PC : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  os . path . join ( Paths . comma_home ( ) ,  " log " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  " /data/log/ " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @staticmethod 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  swaglog_ipc ( )  - >  str : 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  " ipc:///tmp/logmessage "  +  os . environ . get ( " OPENPILOT_PREFIX " ,  " " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @staticmethod 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  download_cache_root ( )  - >  str : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  os . environ . get ( ' COMMA_CACHE ' ,  False ) : 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      return  os . environ [ ' COMMA_CACHE ' ]  +  " / " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  DEFAULT_DOWNLOAD_CACHE_ROOT  +  os . environ . get ( " OPENPILOT_PREFIX " ,  " " )  +  " / " 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @staticmethod 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  persist_root ( )  - >  str : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  PC : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  os . path . join ( Paths . comma_home ( ) ,  " persist " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  " /persist/ " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @staticmethod 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  stats_root ( )  - >  str : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  PC : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  str ( Path ( Paths . comma_home ( ) )  /  " stats " ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  " /data/stats/ " 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @staticmethod 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  config_root ( )  - >  str : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  PC : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  Paths . comma_home ( ) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else : 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      return  " /tmp/.comma " 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  @staticmethod 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  shm_path ( )  - >  str : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  PC  and  platform . system ( )  ==  " Darwin " : 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  " /tmp "   # This is not really shared memory on macOS, but it's the closest we can get 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  " /dev/shm "