# Path: tensorflow_transform/tf2_utils.py
# def use_tf_compat_v1(force_tf_compat_v1: bool) -> bool:
# def strip_and_get_tensors_and_control_dependencies(
#     flat_tensor_list: Iterable[tf.Tensor]
# ) -> Tuple[Iterable[tf.Tensor], Iterable[tf.Operation]]:
# def supply_missing_tensor(batch_size: int, tensor_shape: tf.TensorShape,
#                           tensor_dtype: tf.DType) -> tf.Tensor:
# def supply_missing_inputs(
#     structured_inputs: Mapping[str, common_types.TensorType],
#     batch_size: int,
#     missing_keys: Optional[Collection[str]] = None
# ) -> Mapping[str, common_types.TensorType]:
# def get_structured_inputs_from_func_graph(
#     func_graph: FuncGraph) -> Mapping[str, common_types.TensorType]:


import os
import threading
import tensorflow as tf
from typing import Iterable, Optional
from tensorflow_transform import tf2_utils
from tfx_bsl.types import tfx_namedtuple
    return None

  @classmethod
  def get_passthrough_keys(cls) -> Iterable[str]:
    """Retrieves a user set passthrough_keys, None if not set."""
    state = cls._get_topmost_state_frame()
    if state.passthrough_keys is not None:
      return state.passthrough_keys
    return set()

  @classmethod
  def get_use_deep_copy_optimization(cls) -> bool:
    """Retrieves a user set use_deep_copy_optimization, None if not set."""
    state = cls._get_topmost_state_frame()
    if state.use_deep_copy_optimization is not None:
      return state.use_deep_copy_optimization
    return False

  @classmethod
  def _get_force_tf_compat_v1(cls) -> bool:
    """Retrieves flag force_tf_compat_v1."""
    state = cls._get_topmost_state_frame()
    if state.force_tf_compat_v1 is not None:
      return state.force_tf_compat_v1
    return False

  @classmethod
  def get_use_tf_compat_v1(cls) -> bool:
    """Computes use_tf_compat_v1 from TF environment and force_tf_compat_v1."""
    force_tf_compat_v1 = cls._get_force_tf_compat_v1()

# Path: tensorflow_transform/tf2_utils.py
# def use_tf_compat_v1(force_tf_compat_v1: bool) -> bool:
# def strip_and_get_tensors_and_control_dependencies(
#     flat_tensor_list: Iterable[tf.Tensor]
# ) -> Tuple[Iterable[tf.Tensor], Iterable[tf.Operation]]:
# def supply_missing_tensor(batch_size: int, tensor_shape: tf.TensorShape,
#                           tensor_dtype: tf.DType) -> tf.Tensor:
# def supply_missing_inputs(
#     structured_inputs: Mapping[str, common_types.TensorType],
#     batch_size: int,
#     missing_keys: Optional[Collection[str]] = None
# ) -> Mapping[str, common_types.TensorType]:
# def get_structured_inputs_from_func_graph(
#     func_graph: FuncGraph) -> Mapping[str, common_types.TensorType]:


# Path: tensorflow_transform/beam/context.py
import os
import threading
import tensorflow as tf
from typing import Iterable, Optional
from tensorflow_transform import tf2_utils
from tfx_bsl.types import tfx_namedtuple

    return None

  @classmethod
  def get_passthrough_keys(cls) -> Iterable[str]:
    """Retrieves a user set passthrough_keys, None if not set."""
    state = cls._get_topmost_state_frame()
    if state.passthrough_keys is not None:
      return state.passthrough_keys
    return set()

  @classmethod
  def get_use_deep_copy_optimization(cls) -> bool:
    """Retrieves a user set use_deep_copy_optimization, None if not set."""
    state = cls._get_topmost_state_frame()
    if state.use_deep_copy_optimization is not None:
      return state.use_deep_copy_optimization
    return False

  @classmethod
  def _get_force_tf_compat_v1(cls) -> bool:
    """Retrieves flag force_tf_compat_v1."""
    state = cls._get_topmost_state_frame()
    if state.force_tf_compat_v1 is not None:
      return state.force_tf_compat_v1
    return False

  @classmethod
  def get_use_tf_compat_v1(cls) -> bool:
    """Computes use_tf_compat_v1 from TF environment and force_tf_compat_v1."""
    force_tf_compat_v1 = cls._get_force_tf_compat_v1()

    return tf2_utils.use_tf_compat_v1(force_tf_compat_v1)