code: def fixed_width_binning(data=None, bin_width: Union[float, int] = 1, *, range=None, includes_right_edge=False, **kwargs) -> FixedWidthBinning:
      
      result = FixedWidthBinning(bin_width=bin_width, includes_right_edge=includes_right_edge,
                                 **kwargs)
      if range:
          result._force_bin_existence(range[0])
          result._force_bin_existence(range[1], includes_right_edge=True)
          if not kwargs.get("adaptive"):
              return result  # Otherwise we want to adapt to data
      if data is not None and data.shape[0]:
          # print("Jo, tady")
          result._force_bin_existence([np.min(data), np.max(data)],
                                      includes_right_edge=includes_right_edge)
      return result
docs: Construct fixed-width binning schema.
  
      Parameters
      ----------
      bin_width: float
      range: Optional[tuple]
          (min, max)
      align: Optional[float]
          Must be multiple of bin_width