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.