docs: def find_bin(self, value, axis: Optional[AxisIdentifier] = None):
          """Index(indices) of bin corresponding to a value.
  
          Parameters
          ----------
          value: array_like
              Value with dimensionality equal to histogram
          axis: Optional[int]
              If set, find axis along an axis. Otherwise, find bins along all axes.
              None = outside the bins
  
          Returns
          -------
          int or tuple or None
              If axis is specified, a number. Otherwise, a tuple. If not available, None.
          """
          if axis is not None:
              axis = self._get_axis(axis)
              ixbin = np.searchsorted(self.get_bin_left_edges(axis), value, side="right")
              if ixbin == 0:
                  return None
              elif ixbin == self.shape[axis]:
                  if value <= self.get_bin_right_edges(axis)[-1]:
                      return ixbin - 1
                  else:
                      return None
              elif value < self.get_bin_right_edges(axis)[ixbin - 1]:
                  return ixbin - 1
              elif ixbin == self.shape[axis]:
                  return None
              else:
                  return None
          else:
              ixbin = tuple(self.find_bin(value[i], i) for i in range(self.ndim))
              if None in ixbin:
                  return None
              else:
                  return ixbin