packages feed

cassava 0.4.2.1 → 0.4.2.2

raw patch · 8 files changed

+82/−31 lines, 8 filesdep ~attoparsecdep ~basedep ~blaze-builderPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: attoparsec, base, blaze-builder, bytestring, criterion, deepseq, text, unordered-containers, vector

API changes (from Hackage documentation)

Files

Data/Csv/Conversion.hs view
@@ -31,8 +31,7 @@     , namedRecord     ) where -import Control.Applicative (Alternative, Applicative, (<*>), (<$>), (<|>),-                            (<*), (*>), empty, pure)+import Control.Applicative (Alternative, (<$>), (<|>), empty) import Control.Monad (MonadPlus, mplus, mzero) import Data.Attoparsec.ByteString.Char8 (double) import qualified Data.Attoparsec.ByteString.Char8 as A8@@ -42,21 +41,26 @@ import qualified Data.HashMap.Lazy as HM import Data.Int (Int8, Int16, Int32, Int64) import qualified Data.Map as M-import Data.Monoid (Monoid, mappend, mempty) import qualified Data.Text as T import qualified Data.Text.Encoding as T import qualified Data.Text.Lazy as LT import qualified Data.Text.Lazy.Encoding as LT-import Data.Traversable (traverse) import Data.Vector (Vector, (!)) import qualified Data.Vector as V import qualified Data.Vector.Unboxed as U-import Data.Word (Word, Word8, Word16, Word32, Word64)+import Data.Word (Word8, Word16, Word32, Word64) import GHC.Float (double2Float) import Prelude hiding (lookup, takeWhile)  import Data.Csv.Conversion.Internal import Data.Csv.Types++#if !MIN_VERSION_base(4,8,0)+import Control.Applicative (Applicative, (<*>), (<*), (*>), pure)+import Data.Monoid (Monoid, mappend, mempty)+import Data.Traversable (traverse)+import Data.Word (Word)+#endif  #ifdef GENERICS import GHC.Generics
Data/Csv/Conversion/Internal.hs view
@@ -24,9 +24,10 @@ -- TODO: Add an optimized version for Integer.  formatDecimal :: Integral a => a -> Builder-{-# SPECIALIZE formatDecimal :: Int8 -> Builder #-} {-# RULES "formatDecimal/Int" formatDecimal = formatBoundedSigned     :: Int -> Builder #-}+{-# RULES "formatDecimal/Int8" formatDecimal = formatBoundedSigned+    :: Int8 -> Builder #-} {-# RULES "formatDecimal/Int16" formatDecimal = formatBoundedSigned     :: Int16 -> Builder #-} {-# RULES "formatDecimal/Int32" formatDecimal = formatBoundedSigned@@ -43,6 +44,7 @@     :: Word32 -> Builder #-} {-# RULES "formatDecimal/Word64" formatDecimal = formatPositive     :: Word64 -> Builder #-}+{-# NOINLINE formatDecimal #-} formatDecimal i     | i < 0     = minus <>                   if i <= -128
Data/Csv/Encoding.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE BangPatterns, OverloadedStrings #-}+{-# LANGUAGE BangPatterns, CPP, OverloadedStrings #-}  -- Module:      Data.Csv.Encoding -- Copyright:   (c) 2011 MailRank, Inc.@@ -32,7 +32,7 @@ import Blaze.ByteString.Builder (Builder, fromByteString, fromWord8,                                  toLazyByteString, toByteString) import Blaze.ByteString.Builder.Char8 (fromString)-import Control.Applicative ((*>), (<|>), optional, pure)+import Control.Applicative ((<|>), optional) import Data.Attoparsec.ByteString.Char8 (endOfInput) import qualified Data.Attoparsec.ByteString.Lazy as AL import qualified Data.ByteString as B@@ -40,7 +40,6 @@ import qualified Data.ByteString.Lazy as L import qualified Data.ByteString.Lazy.Char8 as BL8 import qualified Data.HashMap.Strict as HM-import Data.Monoid (mconcat, mempty) import Data.Vector (Vector) import qualified Data.Vector as V import Data.Word (Word8)@@ -55,6 +54,11 @@ import Data.Csv.Types hiding (toNamedRecord) import qualified Data.Csv.Types as Types import Data.Csv.Util (blankLine, endOfLine)++#if !MIN_VERSION_base(4,8,0)+import Control.Applicative ((*>), pure)+import Data.Monoid (mconcat, mempty)+#endif  -- TODO: 'encode' isn't as efficient as it could be. 
Data/Csv/Incremental.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE BangPatterns, DeriveFunctor #-}+{-# LANGUAGE BangPatterns, CPP, DeriveFunctor #-}  -- | This module allows for incremental decoding of CSV data. This is -- useful if you e.g. want to interleave I\/O with parsing or if you@@ -27,7 +27,7 @@     , decodeByNameWith     ) where -import Control.Applicative ((<*), (<|>))+import Control.Applicative ((<|>)) import qualified Data.Attoparsec.ByteString as A import Data.Attoparsec.ByteString.Char8 (endOfInput) import qualified Data.ByteString as B@@ -38,6 +38,10 @@ import Data.Csv.Parser import Data.Csv.Types import Data.Csv.Util (endOfLine)++#if !MIN_VERSION_base(4,8,0)+import Control.Applicative ((<*))+#endif  -- $feed-header --
Data/Csv/Parser.hs view
@@ -26,20 +26,24 @@  import Blaze.ByteString.Builder (fromByteString, toByteString) import Blaze.ByteString.Builder.Char.Utf8 (fromChar)-import Control.Applicative ((*>), (<$>), (<*), optional, pure)+import Control.Applicative ((<$>), optional) import Data.Attoparsec.ByteString.Char8 (char, endOfInput) import qualified Data.Attoparsec.ByteString as A import qualified Data.Attoparsec.Lazy as AL import qualified Data.Attoparsec.Zepto as Z import qualified Data.ByteString as S import qualified Data.ByteString.Unsafe as S-import Data.Monoid (mappend, mempty) import qualified Data.Vector as V import Data.Word (Word8)  import Data.Csv.Types import Data.Csv.Util ((<$!>), blankLine, endOfLine, liftM2', cr, newline, doubleQuote) +#if !MIN_VERSION_base(4,8,0)+import Control.Applicative ((*>), (<*), pure)+import Data.Monoid (mappend, mempty)+#endif+ -- | Options that controls how data is decoded. These options can be -- used to e.g. decode tab-separated data instead of comma-separated -- data.@@ -84,7 +88,7 @@         case mb of             Just b | b == delim -> liftM2' (:) (A.anyWord8 *> p) loop             _                   -> pure []-{-# INLINe sepByDelim1' #-}+{-# INLINE sepByDelim1' #-}  -- | Specialized version of 'sepBy1'' which is faster due to not -- accepting an arbitrary separator.@@ -100,7 +104,7 @@                    | b == newline ->                 liftM2' (:) (A.anyWord8 *> p) loop             _ -> pure []-{-# INLINe sepByEndOfLine1' #-}+{-# INLINE sepByEndOfLine1' #-}  -- | Parse a CSV file that includes a header. csvWithHeader :: DecodeOptions -> AL.Parser (Header, V.Vector NamedRecord)
Data/Csv/Streaming.hs view
@@ -28,13 +28,12 @@     , decodeByNameWith     ) where -import Control.Applicative ((<$>), (<*>), pure)+import Control.Applicative ((<$>)) import Control.DeepSeq (NFData(rnf)) import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as BL import qualified Data.ByteString.Lazy.Char8 as BL8 import Data.Foldable (Foldable(..))-import Data.Traversable (Traversable(..)) import Prelude hiding (foldr)  import Data.Csv.Conversion@@ -43,6 +42,11 @@ import qualified Data.Csv.Incremental as I import Data.Csv.Parser import Data.Csv.Types++#if !MIN_VERSION_base(4,8,0)+import Control.Applicative ((<*>), pure)+import Data.Traversable (Traversable(..))+#endif  #if !MIN_VERSION_bytestring(0,10,0) import qualified Data.ByteString.Lazy.Internal as BL  -- for constructors
Data/Csv/Util.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE BangPatterns, OverloadedStrings #-}+{-# LANGUAGE BangPatterns, CPP, OverloadedStrings #-}  module Data.Csv.Util     ( (<$!>)@@ -10,13 +10,17 @@     , cr     ) where -import Control.Applicative ((<|>), (*>))+import Control.Applicative ((<|>)) import Data.Word (Word8) import Data.Attoparsec.ByteString.Char8 (string) import qualified Data.Attoparsec.ByteString as A import qualified Data.ByteString as B import qualified Data.Vector as V import Data.Attoparsec.ByteString (Parser)++#if !MIN_VERSION_base(4,8,0)+import Control.Applicative ((*>))+#endif  -- | A strict version of 'Data.Functor.<$>' for monads. (<$!>) :: Monad m => (a -> b) -> m a -> m b
cassava.cabal view
@@ -1,5 +1,5 @@ Name:                cassava-Version:             0.4.2.1+Version:             0.4.2.2 Synopsis:            A CSV parsing and encoding library Description:   A CSV parsing and encoding library optimized for ease of use and high@@ -18,7 +18,6 @@ Cabal-version:       >=1.8 Extra-source-files:  examples/*.hs - Library   Exposed-modules:     Data.Csv@@ -38,7 +37,7 @@     array < 0.6,     attoparsec >= 0.10.2 && < 0.13,     base < 5,-    blaze-builder < 0.4,+    blaze-builder < 0.5,     bytestring < 0.11,     containers < 0.6,     deepseq < 1.5,@@ -51,7 +50,7 @@   if impl(ghc >= 7.2.1)     cpp-options: -DGENERICS     build-depends: ghc-prim >= 0.2 && < 0.4-  + Test-suite unit-tests   Type: exitcode-stdio-1.0   Main-is: UnitTests.hs@@ -75,17 +74,43 @@ Benchmark benchmarks   Type: exitcode-stdio-1.0   Main-is: Benchmarks.hs++  Other-modules:+    Data.Csv+    Data.Csv.Compat.Monoid+    Data.Csv.Conversion+    Data.Csv.Conversion.Internal+    Data.Csv.Encoding+    Data.Csv.Incremental+    Data.Csv.Parser+    Data.Csv.Streaming+    Data.Csv.Types+    Data.Csv.Util+   Build-depends:-    base,-    bytestring,-    cassava,-    criterion,-    deepseq,+    array < 0.6,+    attoparsec >= 0.10.2 && < 0.13,+    base < 5,+    blaze-builder < 0.5,+    bytestring < 0.11,+    containers < 0.6,+    criterion >= 1.0,+    deepseq < 1.5,     lazy-csv >= 0.5,+    text < 1.3,     text,-    unordered-containers,-    vector-  hs-source-dirs: benchmarks+    unordered-containers < 0.3,+    vector < 0.11++  ghc-options: -Wall -O2++  if impl(ghc >= 7.2.1)+    cpp-options: -DGENERICS+    build-depends: ghc-prim >= 0.2 && < 0.4++  -- We cannot depend on the library directly as that creates a+  -- dependency cycle.+  hs-source-dirs: . benchmarks  source-repository head   type:     git