summary refs log tree commit diff
path: root/examples/csv2sexp.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/csv2sexp.py')
-rw-r--r--examples/csv2sexp.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/csv2sexp.py b/examples/csv2sexp.py
new file mode 100644
index 0000000..9fc09e0
--- /dev/null
+++ b/examples/csv2sexp.py
@@ -0,0 +1,30 @@
+### guile-xapian --- Guile bindings for Xapian
+### Copyright © 2026 Arun Isaac <arunisaac@systemreboot.net>
+###
+### This file is part of guile-xapian.
+###
+### guile-xapian is free software: you can redistribute it and/or
+### modify it under the terms of the GNU General Public License as
+### published by the Free Software Foundation, either version 2 of the
+### License, or (at your option) any later version.
+###
+### guile-xapian is distributed in the hope that it will be useful,
+### but WITHOUT ANY WARRANTY; without even the implied warranty of
+### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+### General Public License for more details.
+###
+### You should have received a copy of the GNU General Public License
+### along with guile-xapian.  If not, see
+### <https://www.gnu.org/licenses/>.
+
+import csv, sys
+
+def write (str):
+    return '"{}"'.format(str.replace('"', '\\"'))
+
+print('(')
+for row in csv.DictReader(sys.stdin):
+    print('({})'.format(' '.join([write(row['DESCRIPTION']),
+                                  write(row['TITLE']),
+                                  write(row['id_NUMBER'])])))
+print(')')