    """CSVJoiner.py

    A helper function for joining CSV fields.

    """

    def joinCSVFields(fields):
        """Create a CSV record by joining its fields.

        Returns a CSV record (e.g. a string) from a sequence of fields.
        Fields containing commands (,) or double quotes (") are quoted,
        and double quotes are escaped ("").
        The terminating newline is *not* included.

        """
        newFields = []
        for field in fields:
            assert isinstance(field, basestring)
            if '"' in field:
                newField = '"%s"' % field.replace('"', '""')
            elif ',' in field or '\n' in field or '\r' in field:
                newField = '"%s"' % field
            else:
                newField = field
            newFields.append(newField)
        return ','.join(newFields)