class_docstr: Specifies parameters for function DPEngine.add_dp_noise()
  
   Important: unlike the other methods, this method does not enforce the
   sensitivity by contribution bounding and relies on the caller to ensure the
   provided data satisfies the provided bound.
  
  Attributes:
      noise_kind: The type of noise to use for the DP calculations.
      l0_sensitivity: the maximum number of partition for which 1 privacy unit
        can contribute.
      linf_sensitivity: the maximum difference of values in one partition which
        can achieved by adding or removing one privacy unit from the dataset.
      budget_weight: Relative weight of the privacy budget allocated to this
        aggregation.
code: def __post_init__(self):
      def check_is_positive(num: Any, name: str) -> bool:
          if num is not None and num <= 0:
              raise ValueError(
                  f"{name} must be positive, but {num} given."
              )
  
      check_is_positive(self.l0_sensitivity, "l0_sensitivity")
      check_is_positive(self.linf_sensitivity, "linf_sensitivity")
      check_is_positive(self.budget_weight, "budget_weight")
  
imports: import logging
  import math
  from dataclasses import dataclass
  from enum import Enum
  from typing import Any, Sequence, Callable, Optional, List
  import numpy
  from pipeline_dp import input_validators
label_desc: Use image node_id 1 for calling the AddDPNoiseParams obj's underlying member method code with example usage: obj.__post_init__() without return types