nodes: 0, module; 1, function_definition; 2, function_name:order_by; 3, parameters; 4, block; 5, identifier:self; 6, default_parameter; 7, default_parameter; 8, default_parameter; 9, expression_statement; 10, expression_statement; 11, return_statement; 12, identifier:field; 13, None; 14, identifier:table; 15, None; 16, identifier:desc; 17, False; 18, comment:"""
          Adds an order by clause to the query by adding a ``Sorter`` instance to the query's
          sorters list
  
          :type field: str or dict or :class:`Field <querybuilder.fields.Field>`
          :param field: This can be a string of a field name, a dict of {'alias': field}, or
              a ``Field`` instance
  
          :type table: str or dict or :class:`Table <querybuilder.table.Table>`
          :param table: Optional. This can be a string of a table name, a dict of {'alias': table}, or
              a ``Table`` instance. A table only needs to be supplied in more complex queries where
              the field name is ambiguous.
  
          :type desc: bool
          :param desc: Set to True to sort by this field in DESC order or False to sort by this field
              in ASC order. Defaults to False.
  
          :rtype: :class:`Query <querybuilder.query.Query>`
          :return: self
          """; 19, call; 20, identifier:self; 21, attribute; 22, argument_list; 23, attribute; 24, identifier:append; 25, call; 26, identifier:self; 27, identifier:sorters; 28, identifier:Sorter; 29, argument_list; 30, keyword_argument; 31, keyword_argument; 32, keyword_argument; 33, identifier:field; 34, identifier:field; 35, identifier:table; 36, identifier:table; 37, identifier:desc; 38, identifier:desc
code: def order_by(self, field=None, table=None, desc=False):
          """
          Adds an order by clause to the query by adding a ``Sorter`` instance to the query's
          sorters list
  
          :type field: str or dict or :class:`Field <querybuilder.fields.Field>`
          :param field: This can be a string of a field name, a dict of {'alias': field}, or
              a ``Field`` instance
  
          :type table: str or dict or :class:`Table <querybuilder.table.Table>`
          :param table: Optional. This can be a string of a table name, a dict of {'alias': table}, or
              a ``Table`` instance. A table only needs to be supplied in more complex queries where
              the field name is ambiguous.
  
          :type desc: bool
          :param desc: Set to True to sort by this field in DESC order or False to sort by this field
              in ASC order. Defaults to False.
  
          :rtype: :class:`Query <querybuilder.query.Query>`
          :return: self
          """
          self.sorters.append(Sorter(
              field=field,
              table=table,
              desc=desc
          ))
          return self