class_docstr: Writes a cache object that can be read by ReadAnalysisCacheFromFS.
  
  Given a cache collection, this writes it to the configured directory.
  If the configured directory already contains cache, this will merge the new
  cache with the old.
  NOTE: This merging of cache is determined at beam graph construction time,
  so the cache must already exist there when constructing this.
class_docstr_tok: ["Writes","a","cache","object","that","can","be","read","by","ReadAnalysisCacheFromFS",".","Given","a","cache","collection",",","this","writes","it","to","the","configured","directory",".","If","the","configured","directory","already","contains","cache",",","this","will","merge","the","new","cache","with","the","old",".","NOTE",":","This","merging","of","cache","is","determined","at","beam","graph","construction","time",",","so","the","cache","must","already","exist","there","when","constructing","this","."]
code: def _extract_input_pvalues(
      self, dataset_cache_dict: BeamAnalysisCache
  ) -> Tuple[BeamAnalysisCache, List[beam.pvalue.PValue]]:
      pvalues = []
      for value in dataset_cache_dict.values():
          if value.metadata:
              pvalues.append(value.metadata)
      return dataset_cache_dict, pvalues
  
imports: import os
  import pickle
  import re
  import sys
  from typing import Iterable, Mapping, List, Optional, Union, Tuple
  import apache_beam
  import tensorflow
  from tfx_bsl.types import tfx_namedtuple
label_desc: Use image node_id 2 for calling the WriteAnalysisCacheToFS obj's underlying member method code with example usage: obj._extract_input_pvalues(dataset_cache_dict) and returns: dataset_cache_dict,  pvalues