def _get_freq_label_by_month()

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


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

    Args:
        date_value (str): The date value.

    Returns:
        str: The date value aggregated by month.
    """
    if bool(re.match(r"^\d{4}M\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 or yyyy-mm format when freq is M")
    ts = pd.Timestamp(date_value)
    return "{}M{}".format(ts.year, ts.month)