(
self, binner: DatetimeIndex, ax_values: npt.NDArray[np.int64]
)
| 2633 | return binner, bins, labels |
| 2634 | |
| 2635 | def _adjust_bin_edges( |
| 2636 | self, binner: DatetimeIndex, ax_values: npt.NDArray[np.int64] |
| 2637 | ) -> tuple[DatetimeIndex, npt.NDArray[np.int64]]: |
| 2638 | # Some hacks for > daily data, see #1471, #1458, #1483 |
| 2639 | |
| 2640 | if self.freq.name in ("BME", "ME", "W") or self.freq.name.split("-")[0] in ( |
| 2641 | "BQE", |
| 2642 | "BYE", |
| 2643 | "QE", |
| 2644 | "YE", |
| 2645 | "W", |
| 2646 | ): |
| 2647 | # If the right end-point is on the last day of the month, roll forwards |
| 2648 | # until the last moment of that day. Note that we only do this for offsets |
| 2649 | # which correspond to the end of a super-daily period - "month start", for |
| 2650 | # example, is excluded. |
| 2651 | if self.closed == "right": |
| 2652 | # GH 21459, GH 9119: Adjust the bins relative to the wall time |
| 2653 | edges_dti = binner.tz_localize(None) |
| 2654 | edges_dti = ( |
| 2655 | edges_dti |
| 2656 | + Timedelta(days=1).as_unit(edges_dti.unit) |
| 2657 | - Timedelta(1, unit=edges_dti.unit).as_unit(edges_dti.unit) |
| 2658 | ) |
| 2659 | bin_edges = edges_dti.tz_localize(binner.tz).asi8 |
| 2660 | else: |
| 2661 | bin_edges = binner.asi8 |
| 2662 | |
| 2663 | # intraday values on last day |
| 2664 | if bin_edges[-2] > ax_values.max(): |
| 2665 | bin_edges = bin_edges[:-1] |
| 2666 | binner = binner[:-1] |
| 2667 | else: |
| 2668 | bin_edges = binner.asi8 |
| 2669 | return binner, bin_edges |
| 2670 | |
| 2671 | def _get_time_delta_bins(self, ax: TimedeltaIndex): |
| 2672 | if not isinstance(ax, TimedeltaIndex): |
no test coverage detected