class_docstr: Represents the type of a TensorFlow function.
  
  FunctionType is the canonical way to represent the input/output contract of
  all kinds of functions within the tf.function domain, including:
    - Polymorphic Function
    - Concrete Function
    - Atomic Function
  
  It provides consistent, centralized and layered logic for:
    - Canonicalization of Python input arguments
    - Type-based dispatch to monomorphic functions
    - Packing/unpacking structured python values to Tensors
    - Generation of structured placeholder values for tracing
  
  Additionaly, it also provides:
    - Lossless serialization
    - Native integration with Python function signature representation
    - Seamless migration from older representation formats
class_docstr_tok: ["Represents","the","type","of","a","TensorFlow","function",".","FunctionType","is","the","canonical","way","to","represent","the","input\/output","contract","of","all","kinds","of","functions","within","the","tf.function","domain",",","including",":","-","Polymorphic","Function","-","Concrete","Function","-","Atomic","Function","It","provides","consistent",",","centralized","and","layered","logic","for",":","-","Canonicalization","of","Python","input","arguments","-","Type-based","dispatch","to","monomorphic","functions","-","Packing\/unpacking","structured","python","values","to","Tensors","-","Generation","of","structured","placeholder","values","for","tracing","Additionaly",",","it","also","provides",":","-","Lossless","serialization","-","Native","integration","with","Python","function","signature","representation","-","Seamless","migration","from","older","representation","formats"]
docstr: Unpacks python arguments to flat tensor inputs accepted by this type.
code: def unpack_inputs(
      self, bound_parameters: inspect.BoundArguments
  ) -> List[core.Tensor]:
      """Unpacks python arguments to flat tensor inputs accepted by this type."""
      # Sort keyword-only parameters by name.
      sorted_parameters = []
      kwonly_parameters = []
      for p in self.parameters.values():
          if p.kind is Parameter.KEYWORD_ONLY:
              kwonly_parameters.append(p)
          else:
              sorted_parameters.append(p)
      sorted_parameters = sorted_parameters + sorted(
          kwonly_parameters, key=lambda p: p.name
      )
  
      flat = []
      for p in sorted_parameters:
          flat.extend(
              p.type_constraint.to_tensors(
                  bound_parameters.arguments[p.name]
              )
          )
  
      dealiased_inputs = []
      ids_used = set()
      for tensor, input_type in zip(flat, self.flat_inputs):
          alias_id = (
              input_type._alias_id()
          )  # pylint: disable=protected-access
          if alias_id is None or alias_id not in ids_used:
              dealiased_inputs.append(tensor)
  
          if alias_id is not None:
              ids_used.add(alias_id)
  
      return dealiased_inputs
  
imports: import collections
  import inspect
  from typing import Any, Callable, Dict, List, Mapping, Optional, Sequence, Tuple
  from absl import logging
  from tensorflow.core.function import trace_type
  from tensorflow.core.function.polymorphism import function_type_pb2
  from tensorflow.core.function.trace_type import serialization
  from tensorflow.python.types import core
  from tensorflow.python.types import trace
label_desc: Use image node_id 14 for calling the FunctionType obj's underlying member method code with example usage: obj.unpack_inputs(bound_parameters) and returns: dealiased_inputs