class_docstr: Raw parameters used by `gen_parsing_ops`.
  
  Attributes:
    sparse_keys: A list of string keys in the examples' features. The results
      for these keys will be returned as `SparseTensor` objects.
    sparse_types: A list of `DTypes` of the same length as `sparse_keys`. Only
      `tf.float32` (`FloatList`), `tf.int64` (`Int64List`), and `tf.string`
      (`BytesList`) are supported.
    dense_keys: A list of string keys in the examples' features. The results for
      these keys will be returned as `Tensor`s
    dense_types: A list of DTypes of the same length as `dense_keys`. Only
      `tf.float32` (`FloatList`), `tf.int64` (`Int64List`), and `tf.string`
      (`BytesList`) are supported.
    dense_defaults: A dict mapping string keys to `Tensor`s. The keys of the
      dict must match the dense_keys of the feature.
    dense_shapes: A list of tuples with the same length as `dense_keys`. The
      shape of the data for each dense feature referenced by `dense_keys`.
      Required for any input tensors identified by `dense_keys`.  Must be either
      fully defined, or may contain an unknown first dimension. An unknown first
      dimension means the feature is treated as having a variable number of
      blocks, and the output shape along this dimension is considered unknown at
      graph build time.  Padding is applied for minibatch elements smaller than
      the maximum number of blocks for the given feature along this dimension.
    ragged_keys: A list of string keys in the examples' features.  The
      results for these keys will be returned as `RaggedTensor` objects.
    ragged_value_types: A list of `DTypes` of the same length as `ragged_keys`,
      specifying the value type for each ragged feature.  Must be one of:
      `tf.float32`, `tf.int64`, `tf.string`.
    ragged_split_types: A list of `DTypes` of the same length as `ragged_keys`,
      specifying the row_splits type for each ragged feature.  Must be one of:
      `tf.int32`, `tf.int64`.
    dense_shapes_as_proto: dense_shapes converted to TensorShapeProto.
    dense_defaults_vec: A vector of `Tensor`s containing the default values,
      corresponding 1:1 with `dense_keys`.
    num_features: The total number of feature keys.
class_docstr_tok: ["Raw","parameters","used","by","`","gen_parsing_ops","`",".","Attributes",":","sparse_keys",":","A","list","of","string","keys","in","the","examples","'","features",".","The","results","for","these","keys","will","be","returned","as","`","SparseTensor","`","objects",".","sparse_types",":","A","list","of","`","DTypes","`","of","the","same","length","as","`","sparse_keys","`",".","Only","`","tf.float32","`","(","`","FloatList","`",")",",","`","tf.int64","`","(","`","Int64List","`",")",",","and","`","tf.string","`","(","`","BytesList","`",")","are","supported",".","dense_keys",":","A","list","of","string","keys","in","the","examples","'","features",".","The","results","for","these","keys","will","be","returned","as","`","Tensor","`","s","dense_types",":","A","list","of","DTypes","of","the","same","length","as","`","dense_keys","`",".","Only","`","tf.float32","`","(","`","FloatList","`",")",",","`","tf.int64","`","(","`","Int64List","`",")",",","and","`","tf.string","`","(","`","BytesList","`",")","are","supported",".","dense_defaults",":","A","dict","mapping","string","keys","to","`","Tensor","`","s",".","The","keys","of","the","dict","must","match","the","dense_keys","of","the","feature",".","dense_shapes",":","A","list","of","tuples","with","the","same","length","as","`","dense_keys","`",".","The","shape","of","the","data","for","each","dense","feature","referenced","by","`","dense_keys","`",".","Required","for","any","input","tensors","identified","by","`","dense_keys","`",".","Must","be","either","fully","defined",",","or","may","contain","an","unknown","first","dimension",".","An","unknown","first","dimension","means","the","feature","is","treated","as","having","a","variable","number","of","blocks",",","and","the","output","shape","along","this","dimension","is","considered","unknown","at","graph","build","time",".","Padding","is","applied","for","minibatch","elements","smaller","than","the","maximum","number","of","blocks","for","the","given","feature","along","this","dimension",".","ragged_keys",":","A","list","of","string","keys","in","the","examples","'","features",".","The","results","for","these","keys","will","be","returned","as","`","RaggedTensor","`","objects",".","ragged_value_types",":","A","list","of","`","DTypes","`","of","the","same","length","as","`","ragged_keys","`",",","specifying","the","value","type","for","each","ragged","feature",".","Must","be","one","of",":","`","tf.float32","`",",","`","tf.int64","`",",","`","tf.string","`",".","ragged_split_types",":","A","list","of","`","DTypes","`","of","the","same","length","as","`","ragged_keys","`",",","specifying","the","row_splits","type","for","each","ragged","feature",".","Must","be","one","of",":","`","tf.int32","`",",","`","tf.int64","`",".","dense_shapes_as_proto",":","dense_shapes","converted","to","TensorShapeProto",".","dense_defaults_vec",":","A","vector","of","`","Tensor","`","s","containing","the","default","values",",","corresponding","1:1","with","`","dense_keys","`",".","num_features",":","The","total","number","of","feature","keys","."]
docstr: Adds the specified feature to this ParseOpParams.
docstr_tok: ["Adds","the","specified","feature","to","this","ParseOpParams","."]
code: def _add_feature(self, key, feature):
      """Adds the specified feature to this ParseOpParams."""
      if isinstance(feature, VarLenFeature):
          self._add_varlen_feature(key, feature)
      elif isinstance(feature, SparseFeature):
          self._add_sparse_feature(key, feature)
      elif isinstance(feature, FixedLenFeature):
          self._add_fixed_len_feature(key, feature)
      elif isinstance(feature, FixedLenSequenceFeature):
          self._add_fixed_len_sequence_feature(key, feature)
      elif isinstance(feature, RaggedFeature):
          self._add_ragged_feature(key, feature)
      else:
          raise ValueError(f"Invalid feature {key}:{feature}.")
  
imports: import collections
  import re
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import check_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import sparse_ops
  from tensorflow.python.ops.ragged import ragged_math_ops
  from tensorflow.python.ops.ragged import ragged_tensor
  from tensorflow.python.platform import tf_logging
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 7 for calling the _ParseOpParams obj's underlying member method code with example usage: obj._add_feature(key, feature) without return types