docs: def to_csv(self, fieldnames: Sequence[str], with_header: bool=False, crlf: bool=False, tsv: bool=False) -> str:
          """From sequence of text to csv string
  
          :param fieldnames: Order of columns by property name
          :param with_header: Add headers at the first line if True
          :param crlf: Add CRLF line break at the end of line if True, else add LF
          :param tsv: Use tabs as separator if True, else use comma
          :return: Csv string
  
          Usage:
  
              >>> from owlmixin.samples import Human
              >>> humans = Human.from_dicts([
              ...     {"id": 1, "name": "Tom", "favorites": [{"name": "Apple"}]},
              ...     {"id": 2, "name": "John", "favorites": [{"name": "Orange"}]}
              ... ])
              >>> print(humans.to_csv(fieldnames=['name', 'id', 'favorites']))
              Tom,1,[{'name': 'Apple'}]
              John,2,[{'name': 'Orange'}]
              <BLANKLINE>
              >>> print(humans.to_csv(fieldnames=['name', 'id', 'favorites'], with_header=True))
              name,id,favorites
              Tom,1,[{'name': 'Apple'}]
              John,2,[{'name': 'Orange'}]
              <BLANKLINE>
          """
          return util.dump_csv(traverse(self, force_value=True), fieldnames, with_header, crlf, tsv)