71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | |
| 
 | |
| from datetime import datetime, timedelta
 | |
| 
 | |
| from aman.types.ArrivalRoute import ArrivalRoute
 | |
| 
 | |
| class ArrivalData:
 | |
|     def __init__(self, **kargs):
 | |
|         self.Star = None
 | |
|         self.MaximumTimeToGain = None
 | |
|         self.MaximumTimeToLose = None
 | |
|         self.FlightTimeUntilIaf = None
 | |
|         self.FlightTimeUntilTouchdown = None
 | |
|         self.InitialArrivalTime = None
 | |
|         self.EarliestArrivalTime = None
 | |
|         self.LatestArrivalTime = None
 | |
|         self.ArrivalRoute = None
 | |
|         self.Trackmiles = None
 | |
| 
 | |
|         for key, value in kargs.items():
 | |
|             if 'ttg' == key:
 | |
|                 if True == isinstance(value, timedelta):
 | |
|                     self.MaximumTimeToGain = value
 | |
|                 elif True == isinstance(value, (int, float)):
 | |
|                     self.MaximumTimeToGain = timedelta(seconds = float(value))
 | |
|                 else:
 | |
|                     raise Exception('Invalid type for ttg')
 | |
|             elif 'ttl' == key:
 | |
|                 if True == isinstance(value, timedelta):
 | |
|                     self.MaximumTimeToLose = value
 | |
|                 elif True == isinstance(value, (int, float)):
 | |
|                     self.MaximumTimeToLose = timedelta(seconds = float(value))
 | |
|                 else:
 | |
|                     raise Exception('Invalid type for ttl')
 | |
|             elif 'star' == key:
 | |
|                 if True == isinstance(value, ArrivalRoute):
 | |
|                     self.Star = value
 | |
|                 else:
 | |
|                     raise Exception('Invalid type for star')
 | |
|             elif 'ita' == key:
 | |
|                 if True == isinstance(value, datetime):
 | |
|                     self.InitialArrivalTime = value
 | |
|                 else:
 | |
|                     raise Exception('Invalid type for ita')
 | |
|             elif 'earliest' == key:
 | |
|                 if True == isinstance(value, datetime):
 | |
|                     self.EarliestArrivalTime = value
 | |
|                 else:
 | |
|                     raise Exception('Invalid type for earliest')
 | |
|             elif 'latest' == key:
 | |
|                 if True == isinstance(value, datetime):
 | |
|                     self.LatestArrivalTime = value
 | |
|                 else:
 | |
|                     raise Exception('Invalid type for latest')
 | |
|             elif 'touchdown' == key:
 | |
|                 if True == isinstance(value, timedelta):
 | |
|                     self.FlightTimeUntilTouchdown = value
 | |
|                 else:
 | |
|                     raise Exception('Invalid type for touchdown')
 | |
|             elif 'entry' == key:
 | |
|                 if True == isinstance(value, timedelta):
 | |
|                     self.FlightTimeUntilIaf = value
 | |
|                 else:
 | |
|                     raise Exception('Invalid type for entry')
 | |
|             elif 'route' == key:
 | |
|                 self.ArrivalRoute = value
 | |
|             elif 'trackmiles' == key:
 | |
|                 self.Trackmiles = value
 | |
|             else:
 | |
|                 raise Exception('Unknown key: ' + key)
 |