Wow, nearly perfect timing for me - lot of csv to parse, and transform into their final destination (mostly map with correctly asserted/cast value - some with instaparse, joy of badly separated data). So, cast-with is very appreciated !
Seem to cover everything - even lazy loading so... what's not to like ? On Tuesday, January 27, 2015 at 10:24:21 AM UTC+1, Christopher Small wrote: > > Hi everyone > > I’m pleased to announce the release of semantic-csv > <https://github.com/metasoarous/semantic-csv>, a humble library for > working with CSV data. > > Existing Clojure libraries for working with CSV data (clojure.data.csv > <https://github.com/clojure/data.csv> and clojure-csv > <https://github.com/davidsantiago/clojure-csv> being the most notable), > only concern themselves with the *syntax* of CSV; They take CSV text, > transform it into a collection of vectors of string values (or when > writing, write from a sequence of string vectors), and that’s it. Semantic > CSV takes the next step by giving you tools for addressing the *semantics* > of your data, helping you put it into the form that better reflects what it > means, and make it easier to work with. > Features > > - Absorb header row as a vector of column names, and return remaining > rows as maps of column-name -> row-val > - Write from a collection of maps, given a header > - Apply casting/formatting functions by column name, while reading or > writing > - Remove commented out lines (by default, those starting with #) > - Compatible with any CSV parsing library returning/writing a sequence > of row vectors > - (SOON) A “sniffer” that reads in N lines, and uses them to guess > column types > > Structure > > Semantic CSV is structured around a number of composable processing > functions for transforming data as it comes out of or goes into a CSV file. > This leaves room for you to use whatever parsing/formatting tools you like, > reflecting a nice decoupling of grammar and semantics. However, a couple of > convenience functions are also provided which wrap these individual steps > in an opinionated but customizable manner, helping you move quickly while > prototyping or working at the REPL. > Where you come in > > Semantic CSV is still in alpha, but I’m excited to start getting people > using it and providing feedback. I’m particularly interested at this phase > in hearing what people think of the overall structure, what pain points > come up, and what features would be nice. And bugs of course. Feel free to > submit feedback via Github issues > <https://github.com/metasoarous/semantic-csv/issues> or the project chat > room <https://gitter.im/metasoarous/semantic-csv>. > > https://github.com/metasoarous/semantic-csv > > > Thanks for your time; I hope you find this useful. > > Chris Small > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.