28 lines
762 B
Python
28 lines
762 B
Python
from datetime import timedelta
|
|
from typing import Optional, Union
|
|
|
|
|
|
def convert_in_duration(value: str) -> timedelta:
|
|
hours = int(value.split(':')[0])
|
|
minutes = int(value.split(':')[1])
|
|
return timedelta(seconds=(hours * 3600 + minutes * 60))
|
|
|
|
|
|
def convert_timedelta_to_integer(value: str) -> int:
|
|
hours, minutes, seconds = str(value).split(':')
|
|
return int(hours) * 3600 + int(minutes) * 60 + int(seconds)
|
|
|
|
|
|
def convert_value_to_integer(
|
|
record_type: str, val: Union[str, float]
|
|
) -> Optional[int]:
|
|
if val is None:
|
|
return None
|
|
|
|
if record_type == 'LD':
|
|
return convert_timedelta_to_integer(str(val))
|
|
elif record_type in ['AS', 'MS']:
|
|
return int(val * 100)
|
|
else: # 'FD'
|
|
return int(val * 1000)
|