| 
						
						
						
					 | 
					 | 
					@ -1,4 +1,3 @@ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from typing import Any, Callable | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.interfaces import get_interface_attr | 
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.interfaces import get_interface_attr | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.body.values import CAR as BODY | 
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.body.values import CAR as BODY | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.chrysler.values import CAR as CHRYSLER | 
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.chrysler.values import CAR as CHRYSLER | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -11,7 +10,6 @@ from openpilot.selfdrive.car.nissan.values import CAR as NISSAN | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.subaru.values import CAR as SUBARU | 
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.subaru.values import CAR as SUBARU | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.tesla.values import CAR as TESLA | 
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.tesla.values import CAR as TESLA | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.toyota.values import CAR as TOYOTA | 
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.toyota.values import CAR as TOYOTA | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.values import PLATFORMS, Platform | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.volkswagen.values import CAR as VW | 
					 | 
					 | 
					 | 
					from openpilot.selfdrive.car.volkswagen.values import CAR as VW | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					FW_VERSIONS = get_interface_attr('FW_VERSIONS', combine_brands=True, ignore_none=True) | 
					 | 
					 | 
					 | 
					FW_VERSIONS = get_interface_attr('FW_VERSIONS', combine_brands=True, ignore_none=True) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -338,15 +336,3 @@ MIGRATION = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  "SKODA SCALA 1ST GEN": VW.SKODA_SCALA_MK1, | 
					 | 
					 | 
					 | 
					  "SKODA SCALA 1ST GEN": VW.SKODA_SCALA_MK1, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  "SKODA SUPERB 3RD GEN": VW.SKODA_SUPERB_MK3, | 
					 | 
					 | 
					 | 
					  "SKODA SUPERB 3RD GEN": VW.SKODA_SUPERB_MK3, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					MapFunc = Callable[[Platform], Any] | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					def create_platform_map(func: MapFunc): | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  ret = {str(platform): func(platform) for platform in PLATFORMS.values() if func(platform) is not None} | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  for m in MIGRATION: | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    ret[m] = ret[MIGRATION[m]] | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  return ret | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |