packages feed

box-csv 0.0.1 → 0.0.2

raw patch · 2 files changed

+44/−8 lines, 2 filesdep −foldldep ~boxdep ~numhaskPVP ok

version bump matches the API change (PVP)

Dependencies removed: foldl

Dependency ranges changed: box, numhask

API changes (from Hackage documentation)

+ Box.Csv: day' :: Char -> Parser Day
+ Box.Csv: localtime' :: Char -> Parser LocalTime
+ Box.Csv: tod' :: Char -> Parser TimeOfDay

Files

box-csv.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: box-csv-version: 0.0.1+version: 0.0.2 synopsis: See readme.md description: See readme.md for description. category: project@@ -30,16 +30,15 @@     -Wincomplete-uni-patterns     -Wredundant-constraints   build-depends:-    base >=4.7 && <5,     attoparsec >= 0.13,-    box >= 0.4 && < 0.6,-    foldl >= 1.4,+    base >=4.7 && <5,+    box >= 0.6 && < 0.7,     generic-lens,     lens >= 4.19,+    numhask >= 0.6 && < 0.7,+    scientific >= 0.3,     text >= 1.2,     time >= 1.9,-    scientific >= 0.3,-    numhask >= 0.6   exposed-modules:     Box.Csv   other-modules:@@ -64,5 +63,5 @@   build-depends:     base >=4.7 && <5,     doctest >= 0.16,-    numhask >= 0.6+    numhask >= 0.6 && < 0.7   default-language: Haskell2010
src/Box/Csv.hs view
@@ -30,6 +30,9 @@     scis,     ints,     doubles,+    day',+    tod',+    localtime',   ) where @@ -40,6 +43,7 @@ import Data.Scientific import qualified Data.Text as Text import NumHask.Prelude+import Data.Time  -- $setup -- >>> :set -XOverloadedStrings@@ -185,6 +189,39 @@ double' :: Char -> A.Parser Double double' c = A.double <* A.char c +-- | Day parser, consumes separator+--+-- >>> A.parse (day' ',') "2020-07-01,ok"+-- Done "ok" 2020-07-01+day' :: Char -> A.Parser Day+day' c = do+  d <- A.takeTill (== c)+  d' <- parseTimeM False defaultTimeLocale "%F" (unpack d)+  _ <- A.char c+  pure d'++-- | TimeOfDay parser, consumes separator+--+-- >>> A.parse (tod' ',') "23:52:05.221109,ok"+-- Done "ok" 23:52:05.221109+tod' :: Char -> A.Parser TimeOfDay+tod' c = do+  d <- A.takeTill (== c)+  d' <- parseTimeM False defaultTimeLocale "%T%Q" (unpack d)+  _ <- A.char c+  pure d'++-- | TimeOfDay parser, consumes separator+--+-- >>> A.parse (localtime' ',') "Jun 24 8:24AM,ok"+-- Done "ok" 2020-06-24 08:24:00+localtime' :: Char -> A.Parser LocalTime+localtime' c = do+  d <- A.takeTill (== c)+  d' <- parseTimeM False defaultTimeLocale "%Y %b %e %k:%M%p" (unpack ("2020 " <> d))+  _ <- A.char c+  pure d'+ -- * Block list parsers -- | Parser for a csv row of [Text]. -- TODO: deal with potential for an extra '\r'@@ -194,7 +231,7 @@ -- fields :: Char -> A.Parser [Text] fields c =-  field_ c `A.sepBy1` (sep c)+  field_ c `A.sepBy1` sep c  -- | parser for a csv row of [Scientific] --