sv-0.1: sv.cabal
name: sv
version: 0.1
license: BSD3
license-file: LICENCE
author: George Wilson
maintainer: george@qfpl.io
copyright: Copyright (c) 2017-2018, Commonwealth Scientific and Industrial Research Organisation (CSIRO) ABN 41 687 119 230.
category: CSV, Text, Web
synopsis:
Encode and decode separated values (CSV, PSV, ...)
description:
<<http://i.imgur.com/uZnp9ke.png>>
.
sv (separated values) is a library for parsing, decoding, encoding, and
printing CSV and similar formats (such as PSV, TSV, and many more).
.
sv uses an Applicative combinator style for decoding and encoding, rather
than a type class based approach. This means we can have multiple decoders
for the same type, multiple combinators of the same type, and we never have
to worry about orphan instances. These decoders can be stiched together from
provided primitives and combinators, or you can build one from a parser
from your favourite parser combinator library.
.
sv returns values for all errors that occur - not just the first. Errors have
more structure than just a string, indicating what went wrong.
.
sv's parser is exposed so you can use it independently of the decoding, and
encoding and printing are similarly standalone.
.
sv focuses on correctness, on flexible and composable data types,
and on useful and informative error values.
Speed is also important to us, but it is not as important as these other
qualities.
.
sv tries not to be opinionated about how your data should look. We intend for
the user to have a great degree of freedom to build the right decoder for
their dataset.
.
Parts of sv are intended to be imported as follows:
.
@
import Data.Sv
import qualified Data.Sv.Decode as D
import qualified Data.Sv.Encode as E
@
.
Examples:
.
* Decoding a real CSV: <https://github.com/qfpl/sv/blob/master/examples/src/Data/Sv/Example/Species.lhs Species.lhs>
* Encoding data to a CSV: <https://github.com/qfpl/sv/blob/master/examples/src/Data/Sv/Example/Encoding.hs Encoding.hs>
* Handling NULL and Unknown occuring in a column of numbers: <https://github.com/qfpl/sv/blob/master/examples/src/Data/Sv/Example/Numbers.hs Numbers.hs>
* Dealing with non-rectangular data: <https://github.com/qfpl/sv/blob/master/examples/src/Data/Sv/Example/Ragged.hs Ragged.hs>
* Handling multiple logical documents in one file: <https://github.com/qfpl/sv/blob/master/examples/src/Data/Sv/Example/Concat.hs Concat.hs>
* Integrating with an existing attoparsec parser to read date stamps: <https://github.com/qfpl/sv/blob/master/examples/src/Data/Sv/Example/TableTennis.hs TableTennis.hs>
* Fixing inconsistent formatting with lenses: <https://github.com/qfpl/sv/blob/master/examples/src/Data/Sv/Example/Requote.hs Requote.hs>
homepage: https://github.com/qfpl/sv
bug-reports: https://github.com/qfpl/sv/issues
build-type: Simple
extra-source-files: changelog.md
cabal-version: >=1.10
tested-with: GHC == 7.10.3
, GHC == 8.0.2
, GHC == 8.2.2
, GHC == 8.4.1
source-repository head
type: git
location: git@github.com/qfpl/sv.git
library
exposed-modules: Data.Sv
, Data.Sv.Decode
, Data.Sv.Decode.Error
, Data.Sv.Decode.Type
, Data.Sv.Encode
, Data.Sv.Encode.Options
, Data.Sv.Encode.Type
, Data.Sv.Parse
, Data.Sv.Parse.Internal
, Data.Sv.Parse.Options
, Data.Sv.Print
, Data.Sv.Print.Internal
, Data.Sv.Print.Options
, Data.Sv.Syntax
, Data.Sv.Syntax.Field
, Data.Sv.Syntax.Record
, Data.Sv.Syntax.Sv
, Data.Vector.NonEmpty
, Text.Escape
, Text.Newline
, Text.Quote
, Text.Space
-- other-modules:
-- other-extensions:
build-depends: ansi-wl-pprint >= 0.6.6 && < 0.7
, attoparsec >= 0.12.1.4 && < 0.14
, base >=4.8 && <5
, bifunctors >= 5.1 && < 6
, bytestring >= 0.9.1.10 && < 0.11
, charset >=0.3 && <=0.4
, containers >= 0.4 && < 0.6
, contravariant >= 1.2 && < 1.5
, deepseq >= 1.1 && < 1.5
, lens >= 4 && < 5
, mtl >= 2.0.1 && < 2.3
, parsec >= 3.1 && < 3.2
, parsers >=0.12 && <0.13
, profunctors >= 5.2.1 && < 6
, readable >= 0.3 && < 0.4
, semigroupoids >= 5 && <6
, semigroups >= 0.18 && < 0.19
, text >= 1.0 && < 1.3
, transformers >= 0.2 && < 0.6
, trifecta >= 1.5 && < 1.8
, utf8-string >= 1 && < 1.1
, validation >= 1 && < 1.1
, vector >= 0.10 && < 0.13
, void >= 0.6 && < 1
hs-source-dirs: src
default-language: Haskell2010
ghc-options:
-Wall
test-suite tasty
type:
exitcode-stdio-1.0
main-is:
tasty.hs
other-modules:
Data.Sv.DecodeTest
, Data.Sv.EncodeTest
, Data.Sv.Generators
, Data.Sv.ParseTest
, Data.Sv.PrintTest
, Data.Sv.RoundTrips
default-language:
Haskell2010
build-depends:
ansi-wl-pprint >= 0.6.6 && < 0.7
, base >=4.8 && <5
, bytestring >= 0.9.1.10 && < 0.11
, contravariant >= 1.2 && < 1.5
, hedgehog >= 0.5 && < 0.6
, lens >= 4 && < 5
, parsers >=0.12 && <0.13
, semigroupoids >= 5 && <6
, semigroups >= 0.18 && < 0.19
, sv
, tasty >= 0.11 && < 1.1
, tasty-hedgehog >= 0.1 && < 0.2
, tasty-hunit >= 0.9 && < 0.11
, text >= 1.0 && < 1.3
, trifecta >= 1.5 && < 1.8
, utf8-string >= 1 && < 1.1
, validation >= 1 && < 1.1
, vector >= 0.10 && < 0.13
ghc-options:
-Wall
hs-source-dirs:
test