def conv_from_str()

in src/pydolphinscheduler/utils/date.py [0:0]


def conv_from_str(src: str) -> datetime:
    """Convert given string to datetime.

    This function give an ability to convert string to datetime, and for now it could handle
    format like:
    - %Y-%m-%d
    - %Y/%m/%d
    - %Y%m%d
    - %Y-%m-%d %H:%M:%S
    - %Y/%m/%d %H:%M:%S
    - %Y%m%d %H%M%S
    If pattern not like above be given will raise NotImplementedError.
    """
    len_ = len(src)
    if len_ == Time.LEN_SHORT_DATE:
        return datetime.strptime(src, Time.FMT_SHORT_DATE)
    elif len_ == Time.LEN_STD_DATE:
        if Delimiter.BAR in src:
            return datetime.strptime(src, Time.FMT_STD_DATE)
        elif Delimiter.DASH in src:
            return datetime.strptime(src, Time.FMT_DASH_DATE)
        else:
            raise NotImplementedError(
                "%s could not be convert to datetime for now.", src
            )
    elif len_ in LEN_SUPPORT_DATETIME:
        if Delimiter.BAR in src and Delimiter.COLON in src:
            return datetime.strptime(src, FMT_STD)
        elif Delimiter.DASH in src and Delimiter.COLON in src:
            return datetime.strptime(src, FMT_DASH)
        elif (
            Delimiter.DASH not in src
            and Delimiter.BAR not in src
            and Delimiter.COLON not in src
        ):
            return datetime.strptime(src, FMT_SHORT)
        else:
            raise NotImplementedError(
                "%s could not be convert to datetime for now.", src
            )
    else:
        raise NotImplementedError("%s could not be convert to datetime for now.", src)