Added support for reference_timestamp with tzinfo (fixes #84)

pull/93/head
Konstantin Gründger 2020-09-11 20:16:10 +02:00
rodzic 7b60095366
commit bc3178f513
3 zmienionych plików z 15 dodań i 5 usunięć

Wyświetl plik

@ -1,5 +1,6 @@
# CHANGELOG
## not released
- parser: Added support for reference_timestamp with tzinfo (fixes #84)
- parser: Fixed textual altitude part (fixes #81)
- parser: Skip keys where value is "None"

Wyświetl plik

@ -1,4 +1,4 @@
from datetime import datetime, timedelta
from datetime import datetime, timedelta, timezone
FEETS_TO_METER = 0.3048 # ratio feets to meter
FPM_TO_MS = FEETS_TO_METER / 60 # ratio fpm to m/s
@ -11,7 +11,7 @@ def parseAngle(dddmmhht):
return float(dddmmhht[:3]) + float(dddmmhht[3:]) / 60
def createTimestamp(time_string, reference_timestamp=None):
def createTimestamp(time_string, reference_timestamp):
if time_string[-1] == "z":
dd = int(time_string[0:2])
hh = int(time_string[2:4])
@ -20,7 +20,8 @@ def createTimestamp(time_string, reference_timestamp=None):
result = datetime(reference_timestamp.year,
reference_timestamp.month,
dd,
hh, mm, 0)
hh, mm, 0,
tzinfo=timezone.utc if reference_timestamp.tzinfo is not None else None)
if result > reference_timestamp + timedelta(days=14):
# shift timestamp to previous month
@ -36,7 +37,8 @@ def createTimestamp(time_string, reference_timestamp=None):
result = datetime(reference_timestamp.year,
reference_timestamp.month,
reference_timestamp.day,
hh, mm, ss)
hh, mm, ss,
tzinfo=timezone.utc if reference_timestamp.tzinfo is not None else None)
if result > reference_timestamp + timedelta(hours=12):
# shift timestamp to previous day

Wyświetl plik

@ -1,5 +1,5 @@
import unittest
from datetime import datetime
from datetime import datetime, timezone
from ogn.parser.utils import parseAngle, createTimestamp
@ -33,6 +33,13 @@ class TestStringMethods(unittest.TestCase):
self.proceed_test_data(test_data)
def test_createTimestamp_tzinfo(self):
test_data = [
('000001h', datetime(2020, 9, 10, 0, 0, 1, tzinfo=timezone.utc), (datetime(2020, 9, 10, 0, 0, 1, tzinfo=timezone.utc)))
]
self.proceed_test_data(test_data)
if __name__ == '__main__':
unittest.main()