Data-Table
I have quite a few database driven web applications that make heavy use of tabular imports and exports (from their primary database, other databases, and exterior data sources (eg: CSVs). This data structure provides column, row, and cell access to getting and setting values, as well as providing functionality to create composite data-tables by retrieving and combining subsections of existing data-tables. This library also aims to ease type coercion from strings to common-lisp types.
CL-CSV
I had many scattered, not well tested, not easily runnable pieces of CSV code. I was unhappy with this situation, then decided to refactor all of this into a single project. I wrote tests for it and had a library so I thought I might release it. This project started as extensions and bugfixes on arnesi’s CSV.
I then looked around and saw there are other CSV libraries out there that probably mostly accomplished what I had set out to do. However, I already had my code that was tested, had an easier license (BSD), and provided a framework to interact with my other libraries and systems, so I figured why not just release it anyway.
The only interesting code in this library (to me) is that I managed to make the read/write-csv functions accept a string, pathname, or stream as the first argument and I managed to make sure that streams get closed if these functions created them (file streams for example), but not if the stream was passed in. Nothing great, but I had fun writing it.
Other niceties I would like to continue to build out in this library is its integration with other related libs (like CLSQL). I have code to handle exporting database queries as CSVs as well as code to handle importing CSVs into databases both serially and in bulk. I also use data-tables to have a lisp representation of the just parsed data-table and to coerce that table of string values into relevant common-lisp types.
Any chance of considering postmodern as well as clsql? I know, give us one little thing and we expect the moon.
I would love to support postmodern, but I don’t use it much so I have not spent much time looking into this. I don’t think it would be difficult to implement though.
Any patches that came through would gratefully be accepted :)
I’m getting the error: “we are reading non quoted csv data and found a quote at 1”
no matter what I do. SBCL on windows xp (yeah, yeah, laugh all you want, tell my boss).
I know the data is quoted, I want it to be quoted, *quote* is set correctly, so is *always-quote* so why does it think it’s non quoted?
I went ahead and moved this to github:
https://github.com/AccelerationNet/cl-csv/issues/10