def _swift_documentation()

in Sources/TensorFlow/Bindings/generate_wrappers.py [0:0]


  def _swift_documentation(self):
    def comment_block(text, indent_level):
      """Returns a commented block of text with some specified indentation."""
      def indent(line_index):
        if indent_level == 0:
          return ''
        if line_index:
          return '    ' * indent_level
        return '    ' * (indent_level - 1) + '- '

      return ''.join([
        (_START_COMMENT + ' ' + indent(line_index) + line + '\n'
         if line else _START_COMMENT + '\n')
        for line_index, line in enumerate(text.split('\n'))
      ])

    def append_list(doc, args, arg_type):
      """Returns the documentation for lists of inputs/outputs/attributes."""
      args = [arg for arg in args if arg.description]
      if len(args) == 1:
        block = '%s %s: %s' % (arg_type, args[0].name, args[0].description)
        doc += _START_COMMENT + '\n'
        doc += comment_block(block, indent_level=1)
      elif len(args) > 1:
        doc += '%s\n%s - %ss:\n' % (_START_COMMENT, _START_COMMENT, arg_type)
        for arg in args:
          block = '%s: %s' % (arg.name, arg.description)
          doc += comment_block(block, indent_level=2)
      return doc

    doc = ''
    if self.api_def.summary:
      doc = comment_block(self.api_def.summary, indent_level=0)
    if self.api_def.description:
      doc += _START_COMMENT + '\n'
      doc += comment_block(self.api_def.description, indent_level=0)
    doc = append_list(doc, self.api_def.in_arg, 'Parameter')
    doc = append_list(doc, self.api_def.attr, 'Attr')
    doc = append_list(doc, self.api_def.out_arg, 'Output')
    if doc and not doc.endswith('\n'):
      doc = doc + '\n'
    return doc