docs: def _format_contract(contract: icontract._Contract) -> str:
      """Format the contract as reST."""
      # pylint: disable=too-many-branches
      decorator_inspection = None  # type: Optional[icontract._represent.DecoratorInspection]
  
      ##
      # Parse condition
      ##
  
      if not icontract._represent._is_lambda(a_function=contract.condition):
          condition_text = ':py:func:`{}`'.format(contract.condition.__name__)
      else:
          # We need to extract the source code corresponding to the decorator since inspect.getsource() is broken with
          # lambdas.
  
          # Find the line corresponding to the condition lambda
          lines, condition_lineno = inspect.findsource(contract.condition)
          filename = inspect.getsourcefile(contract.condition)
  
          decorator_inspection = icontract._represent.inspect_decorator(
              lines=lines, lineno=condition_lineno, filename=filename)
  
          lambda_inspection = icontract._represent.find_lambda_condition(decorator_inspection=decorator_inspection)
          assert lambda_inspection is not None, \
              "Expected non-None lambda inspection with the condition: {}".format(contract.condition)
  
          condition_text = _condition_as_text(lambda_inspection=lambda_inspection)
  
      ##
      # Parse error
      ##
  
      error_type = None  # type: Optional[str]
  
      # Error message is set only for an error of a contract given as a lambda that takes no arguments and returns
      # a result of a call on a string literal (*e.g.*, ``error=ValueError("some message")``.
      error_msg = None  # type: Optional[str]
  
      if contract.error is not None:
          if isinstance(contract.error, type):
              error_type = contract.error.__qualname__
          elif inspect.isfunction(contract.error) and icontract._represent._is_lambda(a_function=contract.error):
              if decorator_inspection is None:
                  lines, condition_lineno = inspect.findsource(contract.error)
                  filename = inspect.getsourcefile(contract.error)
  
                  decorator_inspection = icontract._represent.inspect_decorator(
                      lines=lines, lineno=condition_lineno, filename=filename)
  
              error_type, error_msg = _error_type_and_message(decorator_inspection=decorator_inspection)
          else:
              # Error type could not be inferred
              pass
  
      ##
      # Format
      ##
  
      description = None  # type: Optional[str]
      if contract.description:
          description = contract.description
      elif error_msg is not None:
          description = error_msg
      else:
          # Description could not be inferred.
          pass
  
      doc = None  # type: Optional[str]
      if description and error_type:
          if description.strip()[-1] in [".", "!", "?"]:
              doc = "{} Raise :py:class:`{}`".format(description, error_type)
          elif description.strip()[-1] in [",", ";"]:
              doc = "{} raise :py:class:`{}`".format(description, error_type)
          else:
              doc = "{}; raise :py:class:`{}`".format(description, error_type)
  
      elif not description and error_type:
          doc = "Raise :py:class:`{}`".format(error_type)
  
      elif description and not error_type:
          doc = description
  
      else:
          # No extra documentation can be generated since the error type could not be inferred and
          # no contract description was given.
          doc = None
  
      if doc is not None:
          return "{} ({})".format(condition_text, doc)
  
      return condition_text