summaryrefslogtreecommitdiff
path: root/paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py
diff options
context:
space:
mode:
Diffstat (limited to 'paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py')
-rw-r--r--paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py b/paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py
new file mode 100644
index 0000000..2bc13a9
--- /dev/null
+++ b/paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py
@@ -0,0 +1,21 @@
+import types
+
+
+def joinCSVFields(fields):
+ """
+ Returns a CSV record (eg a string) from a sequence of fields.
+ Fields containing commands (,) or double quotes (") are quotes
+ and double quotes are escaped (""). The terminating newline is
+ NOT included.
+ """
+ newFields = []
+ for field in fields:
+ assert type(field) is types.StringType
+ if field.find('"')!=-1:
+ newField = '"' + field.replace('"', '""') + '"'
+ elif field.find(',')!=-1 or field.find('\n')!=-1 or field.find('\r')!=-1:
+ newField = '"' + field + '"'
+ else:
+ newField = field
+ newFields.append(newField)
+ return ','.join(newFields)