Source code for PyForks.utilities

import logging 

[docs]def distance_string_to_miles_float(distance: str) -> float: """ Trailforks report data has mixed distance values, this function attempts to normalize them into miles (float) Args: distance (str): string of distance, 1456 ft, 2.3mi Returns: float: number of miles """ feet_strings = ["ft", "feet"] distance = distance.replace('"', "") try: if any(x in distance for x in feet_strings): distance_int = int(distance.split(" ")[0].replace(",", "")) mi = 0.000189394 return distance_int * mi else: return float(distance.split(" ")[0]) except Exception as e: logging.error(f"distance casting failed;ERROR:{e}") return 0
[docs]def feet_to_miles(feet: int) -> float: """ Translate feet into miles Args: feet (int): feet as a integer Returns: float: miles as a float """ if isinstance(feet, str): feet = int(feet.replace(",", "").strip()) mi = 0.000189394 return feet * mi
[docs]def meters_to_miles(meters: float) -> float: """ Translates meters to miles since the trailforks uses metric measurements for their API. Args: meters (int): Total Meters Returns: float: Total Miles """ meters = float(meters) miles = meters * 0.00062137 return miles
[docs]def has_numbers(data: str) -> bool: """ Determines if there are numbers in a string Args: data (str): String to check Returns: bool: True: numbers exist; False: numbers do not exist """ try: check = any(char.isdigit() for char in data) return check except TypeError: return True