openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models. 
				 
			 
			
		 
		
		
		
		
		
		
			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. 
		
		
		
	
	
		
		
			
	
	
		
			
				
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  pathlib 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  tarfile 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								from  typing  import  IO ,  Callable 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  include_default ( _ )  - >  bool : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  return  True 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  create_tar_archive ( filename :  pathlib . Path ,  directory :  pathlib . Path ,  include :  Callable [ [ pathlib . Path ] ,  bool ]  =  include_default ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  """ Creates a tar archive of a directory """ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  with  tarfile . open ( filename ,  ' w ' )  as  tar : 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    for  file  in  sorted ( directory . rglob ( " * " ) ,  key = lambda  f :  f . stat ( ) . st_size  if  f . is_file ( )  else  0 ,  reverse = True ) : 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      if  not  include ( file ) : 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        continue 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      relative_path  =  str ( file . relative_to ( directory ) ) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      if  file . is_symlink ( ) : 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        info  =  tarfile . TarInfo ( relative_path ) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        info . type  =  tarfile . SYMTYPE 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        info . linkpath  =  str ( file . readlink ( ) ) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        tar . addfile ( info ) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      elif  file . is_file ( ) : 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        info  =  tarfile . TarInfo ( relative_path ) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        info . size  =  file . stat ( ) . st_size 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        info . type  =  tarfile . REGTYPE 
 
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        info . mode  =  file . stat ( ) . st_mode 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        with  file . open ( ' rb ' )  as  f : 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          tar . addfile ( info ,  f ) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def  extract_tar_archive ( fh :  IO [ bytes ] ,  directory :  pathlib . Path ) : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  """ Extracts a tar archive to a directory """ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  tar  =  tarfile . open ( fileobj = fh ,  mode = ' r ' ) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  tar . extractall ( str ( directory ) ,  filter = lambda  info ,  path :  info ) 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  tar . close ( )