kopia lustrzana https://github.com/glidernet/python-ogn-client
Added support for reference_timestamp with tzinfo (fixes #84)
rodzic
7b60095366
commit
bc3178f513
|
@ -1,5 +1,6 @@
|
||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
## not released
|
## not released
|
||||||
|
- parser: Added support for reference_timestamp with tzinfo (fixes #84)
|
||||||
- parser: Fixed textual altitude part (fixes #81)
|
- parser: Fixed textual altitude part (fixes #81)
|
||||||
- parser: Skip keys where value is "None"
|
- parser: Skip keys where value is "None"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
FEETS_TO_METER = 0.3048 # ratio feets to meter
|
FEETS_TO_METER = 0.3048 # ratio feets to meter
|
||||||
FPM_TO_MS = FEETS_TO_METER / 60 # ratio fpm to m/s
|
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
|
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":
|
if time_string[-1] == "z":
|
||||||
dd = int(time_string[0:2])
|
dd = int(time_string[0:2])
|
||||||
hh = int(time_string[2:4])
|
hh = int(time_string[2:4])
|
||||||
|
@ -20,7 +20,8 @@ def createTimestamp(time_string, reference_timestamp=None):
|
||||||
result = datetime(reference_timestamp.year,
|
result = datetime(reference_timestamp.year,
|
||||||
reference_timestamp.month,
|
reference_timestamp.month,
|
||||||
dd,
|
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):
|
if result > reference_timestamp + timedelta(days=14):
|
||||||
# shift timestamp to previous month
|
# shift timestamp to previous month
|
||||||
|
@ -36,7 +37,8 @@ def createTimestamp(time_string, reference_timestamp=None):
|
||||||
result = datetime(reference_timestamp.year,
|
result = datetime(reference_timestamp.year,
|
||||||
reference_timestamp.month,
|
reference_timestamp.month,
|
||||||
reference_timestamp.day,
|
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):
|
if result > reference_timestamp + timedelta(hours=12):
|
||||||
# shift timestamp to previous day
|
# shift timestamp to previous day
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import unittest
|
import unittest
|
||||||
from datetime import datetime
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from ogn.parser.utils import parseAngle, createTimestamp
|
from ogn.parser.utils import parseAngle, createTimestamp
|
||||||
|
|
||||||
|
@ -33,6 +33,13 @@ class TestStringMethods(unittest.TestCase):
|
||||||
|
|
||||||
self.proceed_test_data(test_data)
|
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__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Ładowanie…
Reference in New Issue