code: def _min_max_lowers(
      col, number_of_buckets, backend: pipeline_backend.PipelineBackend
  ):
      """Returns bin lowers equally distributed between min and max elements of
      the collection.
  
      The method determines min and max values of the given collection and
      returns bin lowers that equally divide the range in `number_of_buckets`.
  
      Args:
          col: collection of numbers.
          backend: PipelineBackend to run operations on the collection.
      Returns:
          collection of lowers (float,).
      """
      min_max_values = pipeline_functions.min_max_elements(
          backend, col, "Min and max value in dataset"
      )
  
      # min_max_values: 1 element collection with a pair (min, max)
      def generate_lowers(min_max: Tuple[float, float]) -> List[float]:
          min_, max_ = min_max
          if min_ == max_:
              return [min_, min_]
          return list(np.linspace(min_, max_, (number_of_buckets + 1)))
  
      return backend.map(
          min_max_values, generate_lowers, "map to lowers"
      )
  
imports: import bisect
  import operator
  from typing import List, Tuple
  import numpy
  import pipeline_dp
  from pipeline_dp import pipeline_backend, pipeline_functions
  from pipeline_dp.dataset_histograms import histograms
label_desc: Use image node_id 14 for calling a global function with example usage: _min_max_lowers(col, number_of_buckets, backend) and returns: backend, list, list