:param cell: obj to turn in to a string
        :param quote_numbers:  bool if True will quote numbers that are strings
        :param repr_line_break: if True will replace \n with \\n
        :param deliminator: if the deliminator is in the cell it will be quoted
        :param quote_empty_str: bool if True will quote empty strings

def _safe_str(cls, cell, quote_numbers=True, repr_line_break=False,
                  deliminator=None, quote_empty_str=False,
                  title_columns=False, _is_header=False):
        """
        :param cell: obj to turn in to a string
        :param quote_numbers:  bool if True will quote numbers that are strings
        :param repr_line_break: if True will replace \n with \\n
        :param deliminator: if the deliminator is in the cell it will be quoted
        :param quote_empty_str: bool if True will quote empty strings
        """
        if cell is None:
            cell = ''

        ret = str(cell) if not isinstance(cell, BASESTRING) else cell
        if isinstance(cell, BASESTRING):
            if title_columns and _is_header:
                ret = cls._title_column(ret)
            if quote_numbers and (ret.replace(u'.', u'').isdigit() or
                                          ret in [u'False', u'True', 'False',
                                                  'True']):
                ret = u'"%s"' % ret
            elif u'"' in ret or (deliminator and deliminator in ret):
                ret = u'"%s"' % ret
            elif quote_empty_str and cell == u'':
                ret = u'""'
        if repr_line_break:
            ret = ret.replace(u'\n', u'\\n')
        return ret