class_docstr: A Signature object represents the overall signature of a function.
  It stores a Parameter object for each parameter accepted by the
  function, as well as information specific to the function itself.
  
  A Signature object has the following public attributes and methods:
  
  * parameters : OrderedDict
      An ordered mapping of parameters' names to the corresponding
      Parameter objects (keyword-only arguments are in the same order
      as listed in `code.co_varnames`).
  * return_annotation : object
      The annotation for the return type of the function if specified.
      If the function has no annotation for its return type, this
      attribute is not set.
  * bind(*args, **kwargs) -> BoundArguments
      Creates a mapping from positional and keyword arguments to
      parameters.
  * bind_partial(*args, **kwargs) -> BoundArguments
      Creates a partial mapping from positional and keyword arguments
      to parameters (simulating 'functools.partial' behavior.)
code: def __eq__(self, other):
      if (
          not issubclass(type(other), Signature)
          or self.return_annotation != other.return_annotation
          or len(self.parameters) != len(other.parameters)
      ):
          return False
  
      other_positions = dict(
          (param, idx)
          for idx, param in enumerate(other.parameters.keys())
      )
  
      for idx, (param_name, param) in enumerate(
          self.parameters.items()
      ):
          if param.kind == _KEYWORD_ONLY:
              try:
                  other_param = other.parameters[param_name]
              except KeyError:
                  return False
              else:
                  if param != other_param:
                      return False
          else:
              try:
                  other_idx = other_positions[param_name]
              except KeyError:
                  return False
              else:
                  if (
                      idx != other_idx
                      or param != other.parameters[param_name]
                  ):
                      return False
  
      return True
  
imports: from __future__ import absolute_import, division, print_function
  import itertools
  import functools
  import re
  import types
label_desc: Use image node_id 7 for calling the Signature obj's underlying member method code with example usage: obj.__eq__(other) and returns: True, False, False, False, False, False