def _get_freq_label_by_week()

in src/smjsindustry/finance/utils.py [0:0]


def _get_freq_label_by_week(date_value: str) -> str:
    """Gets frequency label for the date value which is aggregated by week.

    Args:
        date_value (str): The date value.

    Returns:
        str: The date value aggregated by week.
    """
    if bool(re.match(r"^\d{4}W\d{1,2}$", date_value)):
        return date_value
    if not bool(re.match(r"^\d{4}-\d{1,2}-\d{1,2}$", date_value)):
        raise ValueError("Date needs to be in yyyy-mm-dd format when freq is W")
    ts = pd.Timestamp(date_value)
    return "{}W{}".format(ts.year, ts.week)