@@ -556,7 +556,8 @@ def _get_periods_per_ymd(freq: BaseOffset) -> tuple[int, int, int]:
556
556
return ppd , ppm , ppy
557
557
558
558
559
- def _daily_finder (vmin , vmax , freq : BaseOffset ) -> np .ndarray :
559
+ @functools .cache
560
+ def _daily_finder (vmin : float , vmax : float , freq : BaseOffset ) -> np .ndarray :
560
561
# error: "BaseOffset" has no attribute "_period_dtype_code"
561
562
dtype_code = freq ._period_dtype_code # type: ignore[attr-defined]
562
563
@@ -755,7 +756,8 @@ def _second_finder(label_interval: int) -> None:
755
756
return info
756
757
757
758
758
- def _monthly_finder (vmin , vmax , freq : BaseOffset ) -> np .ndarray :
759
+ @functools .cache
760
+ def _monthly_finder (vmin : float , vmax : float , freq : BaseOffset ) -> np .ndarray :
759
761
_ , _ , periodsperyear = _get_periods_per_ymd (freq )
760
762
761
763
vmin_orig = vmin
@@ -826,7 +828,8 @@ def _monthly_finder(vmin, vmax, freq: BaseOffset) -> np.ndarray:
826
828
return info
827
829
828
830
829
- def _quarterly_finder (vmin , vmax , freq : BaseOffset ) -> np .ndarray :
831
+ @functools .cache
832
+ def _quarterly_finder (vmin : float , vmax : float , freq : BaseOffset ) -> np .ndarray :
830
833
_ , _ , periodsperyear = _get_periods_per_ymd (freq )
831
834
vmin_orig = vmin
832
835
(vmin , vmax ) = (int (vmin ), int (vmax ))
@@ -873,7 +876,8 @@ def _quarterly_finder(vmin, vmax, freq: BaseOffset) -> np.ndarray:
873
876
return info
874
877
875
878
876
- def _annual_finder (vmin , vmax , freq : BaseOffset ) -> np .ndarray :
879
+ @functools .cache
880
+ def _annual_finder (vmin : float , vmax : float , freq : BaseOffset ) -> np .ndarray :
877
881
# Note: small difference here vs other finders in adding 1 to vmax
878
882
(vmin , vmax ) = (int (vmin ), int (vmax + 1 ))
879
883
span = vmax - vmin + 1
0 commit comments