File cassava.cabal of Package ghc-cassava

cabal-version:       1.12
Name:                cassava
Version:             0.5.2.0
x-revision: 7
Synopsis:            A CSV parsing and encoding library
Description: {

@cassava@ is a library for parsing and encoding [RFC 4180](https://tools.ietf.org/html/rfc4180)
compliant [comma-separated values (CSV)](https://en.wikipedia.org/wiki/Comma-separated_values) data,
which is a textual line-oriented format commonly used for exchanging tabular data.
.
@cassava@'s API includes support for
.
- Index-based record-conversion
- Name-based record-conversion
- Typeclass directed conversion of fields and records
- Built-in field-conversion instances for standard types
- Customizable record-conversion instance derivation via GHC generics
- Low-level [bytestring](https://hackage.haskell.org/package/bytestring) builders (see "Data.Csv.Builder")
- Incremental decoding and encoding API (see "Data.Csv.Incremental")
- Streaming API for constant-space decoding (see "Data.Csv.Streaming")
.
Moreover, this library is designed to be easy to use; for instance, here's a
very simple example of encoding CSV data:
.
>>> Data.Csv.encode [("John",27),("Jane",28)]
"John,27\r\nJane,28\r\n"
.
Please refer to the documentation in "Data.Csv" and the included [README](#readme) for more usage examples.

}
Homepage:            https://github.com/hvr/cassava
License:             BSD3
License-file:        LICENSE
Bug-reports:         https://github.com/hvr/cassava/issues
Copyright:           (c) 2012 Johan Tibell
                     (c) 2012 Bryan O'Sullivan
                     (c) 2011 MailRank, Inc.
Author:              Johan Tibell
Maintainer:          hvr@gnu.org
Category:            Text, Web, CSV
Build-type:          Simple
Extra-source-files:  examples/*.hs,
                     CHANGES.md,
                     README.md
Tested-with:         
  GHC == 9.2.1
  GHC == 9.0.1
  GHC == 8.10.7
  GHC == 8.8.4
  GHC == 8.6.5
  GHC == 8.4.4
  GHC == 8.2.2
  GHC == 8.0.2
  GHC == 7.10.3
  GHC == 7.8.4
  GHC == 7.6.3
  GHC == 7.4.2

----------------------------------------------------------------------------

source-repository head
  type:     git
  location: https://github.com/hvr/cassava.git

flag bytestring--LT-0_10_4
  description: [bytestring](https://hackage.haskell.org/haskell/package/bytestring) < 0.10.4
  default: False

Library
  default-language: Haskell2010
  other-extensions:
    BangPatterns
    CPP
    DataKinds
    DefaultSignatures
    DeriveFunctor
    FlexibleContexts
    FlexibleInstances
    KindSignatures
    MultiParamTypeClasses
    OverloadedStrings
    PolyKinds
    Rank2Types
    ScopedTypeVariables
    TypeOperators
    UndecidableInstances

  if impl(ghc >= 8.0)
    other-extensions:
      DataKinds
      PolyKinds

  hs-source-dirs: src

  Exposed-modules:
    Data.Csv
    Data.Csv.Builder
    Data.Csv.Incremental
    Data.Csv.Parser
    Data.Csv.Streaming

  Other-modules:
    Data.Csv.Conversion
    Data.Csv.Conversion.Internal
    Data.Csv.Encoding
    Data.Csv.Types
    Data.Csv.Util

  Build-depends:
    array >= 0.4 && < 0.6,
    attoparsec >= 0.11.3.0 && < 0.15,
    base >= 4.5 && < 4.17,
    bytestring >= 0.9.2 && < 0.12,
    containers >= 0.4.2 && < 0.7,
    deepseq >= 1.1 && < 1.5,
    hashable < 1.5,
    scientific >= 0.3.4.7 && < 0.4,
    text < 2.1,
    transformers >= 0.2 && < 0.7,
    unordered-containers < 0.3,
    vector >= 0.8 && < 0.13,
    Only >= 0.1 && < 0.1.1

  if flag(bytestring--LT-0_10_4)
    build-depends: bytestring <  0.10.4
                 , bytestring-builder >= 0.10.8 && < 0.11
  else
    build-depends: bytestring >= 0.10.4
                 , text-short == 0.1.*

  -- GHC.Generics lived in `ghc-prim` for GHC 7.2 & GHC 7.4 only
  if impl(ghc < 7.6)
    build-depends: ghc-prim == 0.2.*

  -- For Numeric.Natural
  if impl(ghc < 7.10)
    build-depends: nats >= 1 && < 1.2

  -- https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0#Recommendationsforforward-compatibility
  if impl(ghc >= 8.0)
    ghc-options: -Wcompat -Wnoncanonical-monad-instances
    if impl(ghc >= 8.8)
      ghc-options: -Wno-star-is-type
    else
      ghc-options: -Wnoncanonical-monadfail-instances
  else
    -- provide/emulate `Control.Monad.Fail` and `Data.Semigroups` API for pre-GHC8
    build-depends: fail == 4.9.*, semigroups >= 0.18.2 && <0.20

  if impl(ghc >= 8.2)
    ghc-options: -Wcpp-undef

  ghc-options: -Wall -O2

----------------------------------------------------------------------------

Test-suite unit-tests
  default-language: Haskell2010

  Type: exitcode-stdio-1.0
  Main-is: UnitTests.hs
  -- dependencies with version constraints inherited via lib:cassava
  Build-depends: attoparsec
               , base
               , bytestring
               , cassava
               , hashable
               , scientific
               , text
               , unordered-containers
               , vector
  -- extra dependencies not already used by lib:cassava
  build-depends: HUnit < 1.7
               , QuickCheck >= 2.13 && < 2.15
               , quickcheck-instances >= 0.3.12 && < 0.4
               , test-framework == 0.8.*
               , test-framework-hunit == 0.3.*
               , test-framework-quickcheck2 == 0.3.*

  hs-source-dirs: tests

  -- GHC.Generics lived in `ghc-prim` for GHC 7.2 & GHC 7.4 only
  if impl(ghc < 7.6)
    build-depends: ghc-prim == 0.2.*

  -- For Numeric.Natural
  if impl(ghc < 7.10)
    build-depends: nats

  -- https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0#Recommendationsforforward-compatibility
  if impl(ghc >= 8.0)
    ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
  else
    -- provide/emulate `Control.Monad.Fail` and `Data.Semigroups` API for pre-GHC8
    build-depends: fail, semigroups

  if impl(ghc >= 8.2)
    ghc-options: -Wcpp-undef

  ghc-options: -Wall
openSUSE Build Service is sponsored by