code: def model_to_dict(model, sort=False):
      
      obj = OrderedDict()
      obj["metabolites"] = list(map(metabolite_to_dict, model.metabolites))
      obj["reactions"] = list(map(reaction_to_dict, model.reactions))
      obj["genes"] = list(map(gene_to_dict, model.genes))
      obj["id"] = model.id
      _update_optional(model, obj, _OPTIONAL_MODEL_ATTRIBUTES,
                       _ORDERED_OPTIONAL_MODEL_KEYS)
      if sort:
          get_id = itemgetter("id")
          obj["metabolites"].sort(key=get_id)
          obj["reactions"].sort(key=get_id)
          obj["genes"].sort(key=get_id)
      return obj
docs: Convert model to a dict.
  
      Parameters
      ----------
      model : cobra.Model
          The model to reformulate as a dict.
      sort : bool, optional
          Whether to sort the metabolites, reactions, and genes or maintain the
          order defined in the model.
  
      Returns
      -------
      OrderedDict
          A dictionary with elements, 'genes', 'compartments', 'id',
          'metabolites', 'notes' and 'reactions'; where 'metabolites', 'genes'
          and 'metabolites' are in turn lists with dictionaries holding all
          attributes to form the corresponding object.
  
      See Also
      --------
      cobra.io.model_from_dict