class_docstr: Performs DP aggregations.
class_docstr_tok: ["Performs","DP","aggregations","."]
docstr: Extract columns using data_extractors.
docstr_tok: ["Extract","columns","using","data_extractors","."]
code: def _extract_columns(
      self, col, data_extractors: pipeline_dp.DataExtractors
  ):
      """Extract columns using data_extractors."""
      if data_extractors.privacy_id_extractor is None:
          # This is the case when contribution bounding already enforced and
          # no need to extract privacy_id.
          privacy_id_extractor = lambda row: None
      else:
          privacy_id_extractor = data_extractors.privacy_id_extractor
      return self._backend.map(
          col,
          lambda row: (
              privacy_id_extractor(row),
              data_extractors.partition_extractor(row),
              data_extractors.value_extractor(row),
          ),
          "Extract (privacy_id, partition_key, value))",
      )
  
imports: import functools
  from typing import Any, Callable, Optional, Sequence, Tuple, Union
  import pipeline_dp
  from pipeline_dp import budget_accounting
  from pipeline_dp import combiners
  from pipeline_dp import contribution_bounders
  from pipeline_dp import dp_computations
  from pipeline_dp import partition_selection
  from pipeline_dp import pipeline_functions
  from pipeline_dp import report_generator
  from pipeline_dp import sampling_utils
  from pipeline_dp.dataset_histograms import computing_histograms
  from pipeline_dp.private_contribution_bounds import PrivateL0Calculator
label_desc: Use image node_id 17 for calling the DPEngine obj's underlying member method code with example usage: obj._extract_columns(col, data_extractors) and returns: self