@@ -584,7 +584,8 @@ def _get_periods_per_ymd(freq: BaseOffset) -> tuple[int, int, int]:
584
584
return ppd , ppm , ppy
585
585
586
586
587
- def _daily_finder (vmin , vmax , freq : BaseOffset ) -> np .ndarray :
587
+ @functools .cache
588
+ def _daily_finder (vmin : float , vmax : float , freq : BaseOffset ) -> np .ndarray :
588
589
# error: "BaseOffset" has no attribute "_period_dtype_code"
589
590
dtype_code = freq ._period_dtype_code # type: ignore[attr-defined]
590
591
@@ -783,7 +784,8 @@ def _second_finder(label_interval: int) -> None:
783
784
return info
784
785
785
786
786
- def _monthly_finder (vmin , vmax , freq : BaseOffset ) -> np .ndarray :
787
+ @functools .cache
788
+ def _monthly_finder (vmin : float , vmax : float , freq : BaseOffset ) -> np .ndarray :
787
789
_ , _ , periodsperyear = _get_periods_per_ymd (freq )
788
790
789
791
vmin_orig = vmin
@@ -854,7 +856,8 @@ def _monthly_finder(vmin, vmax, freq: BaseOffset) -> np.ndarray:
854
856
return info
855
857
856
858
857
- def _quarterly_finder (vmin , vmax , freq : BaseOffset ) -> np .ndarray :
859
+ @functools .cache
860
+ def _quarterly_finder (vmin : float , vmax : float , freq : BaseOffset ) -> np .ndarray :
858
861
_ , _ , periodsperyear = _get_periods_per_ymd (freq )
859
862
vmin_orig = vmin
860
863
(vmin , vmax ) = (int (vmin ), int (vmax ))
@@ -901,7 +904,8 @@ def _quarterly_finder(vmin, vmax, freq: BaseOffset) -> np.ndarray:
901
904
return info
902
905
903
906
904
- def _annual_finder (vmin , vmax , freq : BaseOffset ) -> np .ndarray :
907
+ @functools .cache
908
+ def _annual_finder (vmin : float , vmax : float , freq : BaseOffset ) -> np .ndarray :
905
909
# Note: small difference here vs other finders in adding 1 to vmax
906
910
(vmin , vmax ) = (int (vmin ), int (vmax + 1 ))
907
911
span = vmax - vmin + 1
0 commit comments