ArrivalData.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python
  2. from datetime import datetime, timedelta
  3. from aman.types.ArrivalRoute import ArrivalRoute
  4. class ArrivalData:
  5. def __init__(self, **kargs):
  6. self.Star = None
  7. self.MaximumTimeToGain = None
  8. self.MaximumTimeToLose = None
  9. self.InitialArrivalTime = None
  10. self.EarliestArrivalTime = None
  11. self.LatestArrivalTime = None
  12. self.ArrivalRoute = None
  13. self.Trackmiles = None
  14. for key, value in kargs.items():
  15. if 'ttg' == key:
  16. if True == isinstance(value, timedelta):
  17. self.MaximumTimeToGain = value
  18. elif True == isinstance(value, (int, float)):
  19. self.MaximumTimeToGain = timedelta(seconds = float(value))
  20. else:
  21. raise Exception('Invalid type for ttg')
  22. elif 'ttl' == key:
  23. if True == isinstance(value, timedelta):
  24. self.MaximumTimeToLose = value
  25. elif True == isinstance(value, (int, float)):
  26. self.MaximumTimeToLose = timedelta(seconds = float(value))
  27. else:
  28. raise Exception('Invalid type for ttl')
  29. elif 'star' == key:
  30. if True == isinstance(value, ArrivalRoute):
  31. self.Star = value
  32. else:
  33. raise Exception('Invalid type for star')
  34. elif 'ita' == key:
  35. if True == isinstance(value, datetime):
  36. self.InitialArrivalTime = value
  37. else:
  38. raise Exception('Invalid type for ita')
  39. elif 'earliest' == key:
  40. if True == isinstance(value, datetime):
  41. self.EarliestArrivalTime = value
  42. else:
  43. raise Exception('Invalid type for earliest')
  44. elif 'latest' == key:
  45. if True == isinstance(value, datetime):
  46. self.LatestArrivalTime = value
  47. else:
  48. raise Exception('Invalid type for latest')
  49. elif 'route' == key:
  50. self.ArrivalRoute = value
  51. elif 'trackmiles' == key:
  52. self.Trackmiles = value
  53. else:
  54. raise Exception('Unknown key: ' + key)