class_docstr: InputCreator with tensor type specs.
  
  Example usage:
  
  ```python
  input_creator=TypeSpecInputCreator(
      {"example_feature_1": tf.TensorSpec(shape=[None, 1], dtype=tf.float32)},
      example_feature_names=["example_feature_1"])
  ```
docstr: See `InputCreator`.
docstr_tok: ["See","`","InputCreator","`","."]
code: def __call__(self) -> Tuple[TensorDict, TensorDict]:
      """See `InputCreator`."""
  
      def get_keras_input(type_spec, name=None):
          """Returns a keras.Input."""
          return tf.keras.Input(
              shape=type_spec.shape[1:],
              dtype=type_spec.dtype,
              ragged=isinstance(type_spec, tf.RaggedTensorSpec),
              name=name,
          )
  
      context_inputs, example_inputs = {}, {}
      for name, spec in self._type_spec.items():
          k_input = get_keras_input(spec, name)
          if name in self._context_feature_names:
              context_inputs[name] = k_input
          elif name in self._example_feature_names:
              example_inputs[name] = k_input
      return context_inputs, example_inputs
  
imports: import abc
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  from absl import logging
  import tensorflow
  from tensorflow_ranking.python.keras import feature
  from tensorflow_ranking.python.keras import layers
label_desc: Use image node_id 2 for calling the TypeSpecInputCreator obj's underlying member method code with example usage: obj.__call__() and returns: context_inputs,  example_inputs, tf