Convert a frequency string to the appropriate subclass of BaseCFTimeOffset.
(
freq: BaseCFTimeOffset | str | timedelta | pd.Timedelta | pd.DateOffset,
warn: bool = True,
)
| 772 | |
| 773 | |
| 774 | def to_offset( |
| 775 | freq: BaseCFTimeOffset | str | timedelta | pd.Timedelta | pd.DateOffset, |
| 776 | warn: bool = True, |
| 777 | ) -> BaseCFTimeOffset: |
| 778 | """Convert a frequency string to the appropriate subclass of |
| 779 | BaseCFTimeOffset.""" |
| 780 | if isinstance(freq, BaseCFTimeOffset): |
| 781 | return freq |
| 782 | if isinstance(freq, timedelta | pd.Timedelta): |
| 783 | return delta_to_tick(freq) |
| 784 | if isinstance(freq, pd.DateOffset): |
| 785 | freq = _legacy_to_new_freq(freq.freqstr) |
| 786 | |
| 787 | match = re.match(_PATTERN, freq) |
| 788 | if match is None: |
| 789 | raise ValueError("Invalid frequency string provided") |
| 790 | freq_data = match.groupdict() |
| 791 | |
| 792 | freq = freq_data["freq"] |
| 793 | if warn and freq in _DEPRECATED_FREQUENCIES: |
| 794 | _emit_freq_deprecation_warning(freq) |
| 795 | multiples = freq_data["multiple"] |
| 796 | multiples = 1 if multiples is None else int(multiples) |
| 797 | return _FREQUENCIES[freq](n=multiples) |
| 798 | |
| 799 | |
| 800 | def delta_to_tick(delta: timedelta | pd.Timedelta) -> Tick: |
searching dependent graphs…