Convert string to duration

I found myself wanting to convert a string to a duration (int), for some configuration.

Something you can call like this:

string_to_duration("1d", target="days") # returns 1
string_to_duration("1d", target="hours") # returns 24
string_to_duration("3m", target="hours") # returns 3 * 24 * 30

The code :

`python from typing import Literal

def string_to_duration(value: str, target: Literal[“days”, “hours”]): “”“Convert a string to a number of hours, or days”“” num = int(“”.join(filter(str.isdigit, value)))

if target == "hours":
    reconvert = True

if "h" in value:
    if target == "days":
        raise ValueError("Invalid duration value", value)
    num = num
    reconvert = False
elif "d" in value:
    num = num
elif "w" in value:
    num = num * 7
elif "m" in value:
    num = num * 30
elif "y" in value:
    num = num * 365
else:
    raise ValueError("Invalid duration value", value)

if target == "hours" and reconvert:
    num = num * 24

return num

““

#python, #conversion - Posté dans la catégorie code