csv-conduit 1.0.1.0 → 1.0.1.1
raw patch · 5 files changed
+16/−6 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.CSV.Conduit: instance (Data.CSV.Conduit.CSV s (Data.CSV.Conduit.Types.Row s'), GHC.Classes.Ord s', GHC.Internal.Data.String.IsString s) => Data.CSV.Conduit.CSV s (Data.CSV.Conduit.Types.MapRow s')
- Data.CSV.Conduit: instance (Data.CSV.Conduit.CSV s (Data.CSV.Conduit.Types.Row s'), GHC.Classes.Ord s', GHC.Internal.Data.String.IsString s) => Data.CSV.Conduit.CSV s (Data.CSV.Conduit.Types.OrderedMapRow s')
- Data.CSV.Conduit: instance Data.CSV.Conduit.CSV Data.ByteString.Internal.Type.ByteString (Data.CSV.Conduit.Types.Row GHC.Internal.Base.String)
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Internal.Int.Int16
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Internal.Int.Int32
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Internal.Int.Int64
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Internal.Int.Int8
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Internal.Word.Word16
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Internal.Word.Word32
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Internal.Word.Word64
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Internal.Word.Word8
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField a => Data.CSV.Conduit.Conversion.FromField (GHC.Internal.Maybe.Maybe a)
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Internal.Int.Int16
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Internal.Int.Int32
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Internal.Int.Int64
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Internal.Int.Int8
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Internal.Word.Word16
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Internal.Word.Word32
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Internal.Word.Word64
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Internal.Word.Word8
- Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField a => Data.CSV.Conduit.Conversion.ToField (GHC.Internal.Maybe.Maybe a)
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Base.Alternative Data.CSV.Conduit.Conversion.Parser
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Base.Applicative Data.CSV.Conduit.Conversion.Parser
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Base.Functor Data.CSV.Conduit.Conversion.Parser
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Base.Monad Data.CSV.Conduit.Conversion.Parser
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Base.MonadPlus Data.CSV.Conduit.Conversion.Parser
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Base.Semigroup (Data.CSV.Conduit.Conversion.Parser a)
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Control.Monad.Fail.MonadFail Data.CSV.Conduit.Conversion.Parser
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Read.Read a => GHC.Internal.Read.Read (Data.CSV.Conduit.Conversion.Named a)
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Read.Read a => GHC.Internal.Read.Read (Data.CSV.Conduit.Conversion.NamedOrdered a)
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Read.Read a => GHC.Internal.Read.Read (Data.CSV.Conduit.Conversion.Only a)
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Data.CSV.Conduit.Conversion.Named a)
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Data.CSV.Conduit.Conversion.NamedOrdered a)
- Data.CSV.Conduit.Conversion: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Data.CSV.Conduit.Conversion.Only a)
- Data.CSV.Conduit.Types: instance Data.Default.Class.Default Data.CSV.Conduit.Types.CSVSettings
- Data.CSV.Conduit.Types: instance GHC.Internal.Show.Show Data.CSV.Conduit.Types.CSVSettings
- Data.CSV.Conduit.Types: instance GHC.Internal.Show.Show Data.CSV.Conduit.Types.QuoteEmpty
+ Data.CSV.Conduit: instance (Data.CSV.Conduit.CSV s (Data.CSV.Conduit.Types.Row s'), GHC.Classes.Ord s', Data.String.IsString s) => Data.CSV.Conduit.CSV s (Data.CSV.Conduit.Types.MapRow s')
+ Data.CSV.Conduit: instance (Data.CSV.Conduit.CSV s (Data.CSV.Conduit.Types.Row s'), GHC.Classes.Ord s', Data.String.IsString s) => Data.CSV.Conduit.CSV s (Data.CSV.Conduit.Types.OrderedMapRow s')
+ Data.CSV.Conduit: instance Data.CSV.Conduit.CSV Data.ByteString.Internal.Type.ByteString (Data.CSV.Conduit.Types.Row GHC.Base.String)
+ Data.CSV.Conduit.Conversion: instance Control.Monad.Fail.MonadFail Data.CSV.Conduit.Conversion.Parser
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Int.Int16
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Int.Int32
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Int.Int64
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Int.Int8
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Word.Word16
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Word.Word32
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Word.Word64
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField GHC.Word.Word8
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.FromField a => Data.CSV.Conduit.Conversion.FromField (GHC.Maybe.Maybe a)
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Int.Int16
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Int.Int32
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Int.Int64
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Int.Int8
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Word.Word16
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Word.Word32
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Word.Word64
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField GHC.Word.Word8
+ Data.CSV.Conduit.Conversion: instance Data.CSV.Conduit.Conversion.ToField a => Data.CSV.Conduit.Conversion.ToField (GHC.Maybe.Maybe a)
+ Data.CSV.Conduit.Conversion: instance GHC.Base.Alternative Data.CSV.Conduit.Conversion.Parser
+ Data.CSV.Conduit.Conversion: instance GHC.Base.Applicative Data.CSV.Conduit.Conversion.Parser
+ Data.CSV.Conduit.Conversion: instance GHC.Base.Functor Data.CSV.Conduit.Conversion.Parser
+ Data.CSV.Conduit.Conversion: instance GHC.Base.Monad Data.CSV.Conduit.Conversion.Parser
+ Data.CSV.Conduit.Conversion: instance GHC.Base.MonadPlus Data.CSV.Conduit.Conversion.Parser
+ Data.CSV.Conduit.Conversion: instance GHC.Base.Semigroup (Data.CSV.Conduit.Conversion.Parser a)
+ Data.CSV.Conduit.Conversion: instance GHC.Read.Read a => GHC.Read.Read (Data.CSV.Conduit.Conversion.Named a)
+ Data.CSV.Conduit.Conversion: instance GHC.Read.Read a => GHC.Read.Read (Data.CSV.Conduit.Conversion.NamedOrdered a)
+ Data.CSV.Conduit.Conversion: instance GHC.Read.Read a => GHC.Read.Read (Data.CSV.Conduit.Conversion.Only a)
+ Data.CSV.Conduit.Conversion: instance GHC.Show.Show a => GHC.Show.Show (Data.CSV.Conduit.Conversion.Named a)
+ Data.CSV.Conduit.Conversion: instance GHC.Show.Show a => GHC.Show.Show (Data.CSV.Conduit.Conversion.NamedOrdered a)
+ Data.CSV.Conduit.Conversion: instance GHC.Show.Show a => GHC.Show.Show (Data.CSV.Conduit.Conversion.Only a)
+ Data.CSV.Conduit.Types: instance Data.Default.Internal.Default Data.CSV.Conduit.Types.CSVSettings
+ Data.CSV.Conduit.Types: instance GHC.Show.Show Data.CSV.Conduit.Types.CSVSettings
+ Data.CSV.Conduit.Types: instance GHC.Show.Show Data.CSV.Conduit.Types.QuoteEmpty
Files
- changelog.md +3/−0
- csv-conduit.cabal +4/−3
- src/Data/CSV/Conduit/Parser/ByteString.hs +1/−1
- test/Test.hs +4/−2
- test/test-windows-excel.csv +4/−0
changelog.md view
@@ -1,3 +1,6 @@+1.0.1.1+* Fix test suite to build with text 2.1.2 and ghc 9.12.2, resolving [#62](https://github.com/ozataman/csv-conduit/issues/62)+ 1.0.1.0 * Use ConduitT instead of ConduitM (prettier type inference with newer conduit imports)
csv-conduit.cabal view
@@ -1,9 +1,9 @@ name: csv-conduit-version: 1.0.1.0+version: 1.0.1.1 synopsis: A flexible, fast, conduit-based CSV parser library for Haskell. -homepage: http://github.com/dmvianna/csv-conduit+homepage: http://github.com/ozataman/csv-conduit license: BSD3 license-file: LICENSE author: Ozgun Ataman@@ -51,13 +51,14 @@ . For more documentation and examples, check out the README at: .- <http://github.com/dmvianna/csv-conduit>+ <http://github.com/ozataman/csv-conduit> . extra-source-files: changelog.md README.md test/test-mac-excel.csv+ test/test-windows-excel.csv test/test.csv test/Test.hs test/test.xls
src/Data/CSV/Conduit/Parser/ByteString.hs view
@@ -59,7 +59,7 @@ row csvs = csvrow csvs <|> badrow csvEndOfLine :: Parser ()-csvEndOfLine = (word8 10 >> return ()) <|> (word8 13 >> return ())+csvEndOfLine = (word8 10 >> return ()) <|> ((word8 13 *> word8 10) >> return ()) <|> (word8 13 >> return ()) badrow :: Parser (Maybe (Row ByteString)) badrow = P.takeWhile (not . C8.isEndOfLine) *>
test/Test.hs view
@@ -13,7 +13,7 @@ import qualified Data.Map as Map import qualified Data.Map.Ordered as OMap import Data.Monoid as M-import Data.Text+import Data.Text (Text) import qualified Data.Vector as V import System.Directory import Test.Framework (Test, defaultMain, testGroup)@@ -34,6 +34,7 @@ [ testCase "mapping with id works" test_identityMap, testCase "simple parsing works" (test_simpleParse testFile1), testCase "simple parsing works for Mac-Excel" (test_simpleParse testFile3),+ testCase "simple parsing works for Windows-Excel" (test_simpleParse testFile4), testCase "fails parsing gracefully" test_parseFail, testCase "OrderedMap" test_orderedMap ]@@ -125,10 +126,11 @@ csvSettings :: CSVSettings csvSettings = defCSVSettings {csvQuoteCharAndStyle = Just ('`', DontQuoteEmpty)} -testFile1, testFile2, testFile3 :: FilePath+testFile1, testFile2, testFile3, testFile4 :: FilePath testFile1 = "test/test.csv" testFile2 = "test/test.csv" testFile3 = "test/test-mac-excel.csv"+testFile4 = "test/test-windows-excel.csv" testXLS :: FilePath testXLS = "test/test.xls"
+ test/test-windows-excel.csv view
@@ -0,0 +1,4 @@+Col1,Col2,Col3,Sum +A,2,3,5 +B,3,4,7 +"Field using the quote char ""this is the in-quoted value""",4,5,9