Source code for nxtransit.converters

"""Utility functions for converting between different data types."""
import time


[docs] def parse_time_to_seconds(time_str: str) -> int: """Converts a time string to the number of seconds since midnight""" try: if not isinstance(time_str, str): raise ValueError("Input must be a string.") parts = time_str.split(':') if len(parts) != 3: raise ValueError("Time string must be in 'HH:MM:SS' format.") # Allowed hours up to 48 to account for trips after midnight h, m, s = map(int, parts) if not (0 <= h < 48 and 0 <= m < 60 and 0 <= s < 60): raise ValueError("Hours must be in 0-25, minutes and seconds must be in 0-59.") return h * 3600 + m * 60 + s except ValueError as e: raise ValueError(f"Invalid time format or value: {e}") except Exception as e: raise ValueError(f"An error occurred while parsing the time: {e}")
[docs] def parse_seconds_to_time(seconds: int) -> str: """Converts the number of seconds since midnight to a time string.""" return time.strftime('%H:%M:%S', time.gmtime(seconds))