def generate_type_docs(types):
    """Parse an object of types and generate RAML documentation for them.
    Expects each type to be either a regular type or a list/array. If a type is a list,
    it must specify what type to use for each item.
    """
    output = StringIO()

    indent = "  "  # 2

    # loop through the basic types and add them to the RAML formatted output
    for type_name in types:

        if types[type_name].get("type") != None:

            output.write(indent + type_name + ":\n")

            indent += "  "  # 4

            type_safe = types[type_name]["type"].replace(" ", "_")

            # if we are dealing with a list, set type to array and specify type of items
            if types[type_name].get("items") != None:
                items_safe = types[type_name]["items"].replace(" ", "_")
                # if items_safe == "base":
                #     items_safe = "object"
                output.write(indent + "type: " + type_safe + "\n")
                output.write(indent + "items: " + items_safe + "\n")

            # otherwise, use the type per normal
            else:
                output.write(indent + "type: " + type_safe + "\n")

            # add the description
            if types[type_name].get("description") != None:
                output.write(indent + "description: " + types[type_name]["description"] + "\n")

            indent = indent[:-2]    # 2

    type_docs = output.getvalue()
    output.close()
    return type_docs
def generate_type_docs ( types ) : output = StringIO ( ) indent = "  " for type_name in types : if types [ type_name ] . get ( "type" ) != None : output . write ( indent + type_name + ":\n" ) indent += "  " type_safe = types [ type_name ] [ "type" ] . replace ( " " , "_" ) if types [ type_name ] . get ( "items" ) != None : items_safe = types [ type_name ] [ "items" ] . replace ( " " , "_" ) output . write ( indent + "type: " + type_safe + "\n" ) output . write ( indent + "items: " + items_safe + "\n" ) else : output . write ( indent + "type: " + type_safe + "\n" ) if types [ type_name ] . get ( "description" ) != None : output . write ( indent + "description: " + types [ type_name ] [ "description" ] + "\n" ) indent = indent [ : - 2 ] type_docs = output . getvalue ( ) output . close ( ) return type_docs
Parse an object of types and generate RAML documentation for them.
    Expects each type to be either a regular type or a list/array. If a type is a list,
    it must specify what type to use for each item.