class_docstr: Calculates differentially-private l0 bound (i.e. max_partitions_contributed).
code: def _calculate_l0(self, inputs: Inputs):
      scoring_function = L0ScoringFunction(
          self._params, inputs.number_of_partitions, inputs.l0_histogram
      )
      return dp_computations.ExponentialMechanism(
          scoring_function
      ).apply(
          self._params.calculation_eps,
          generate_possible_contribution_bounds(
              scoring_function._max_partitions_contributed_best_upper_bound()
          ),
      )
  
imports: from dataclasses import dataclass
  from functools import lru_cache
  from typing import List
  import pipeline_dp
  from pipeline_dp import dp_computations
  from pipeline_dp.dataset_histograms.histograms import Histogram
  from pipeline_dp import pipeline_functions
label_desc: Use image node_id 3 for calling the PrivateL0Calculator obj's underlying member method code with example usage: obj._calculate_l0(inputs) and returns: dp_computations