| Copyright | © 2016–2018 Stack Builders |
|---|---|
| License | MIT |
| Maintainer | Mark Karpov <markkarpov92@gmail.org> |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Csv.Parser.Megaparsec
Description
A CSV parser. The parser here is RFC 4180 compliant, with the following extensions:
- Non-escaped fields may contain any characters except double-quotes, commas (or generally delimiter characters), carriage returns, and newlines.
- Escaped fields may contain any characters, but double-quotes need to be escaped.
The parser provides better error messages than the parser that comes with Cassava library, while being compatible with the rest of the library.
Synopsis
- newtype ConversionError = ConversionError String
- decode :: FromRecord a => HasHeader -> FilePath -> ByteString -> Either (ParseErrorBundle ByteString ConversionError) (Vector a)
- decodeWith :: FromRecord a => DecodeOptions -> HasHeader -> FilePath -> ByteString -> Either (ParseErrorBundle ByteString ConversionError) (Vector a)
- decodeByName :: FromNamedRecord a => FilePath -> ByteString -> Either (ParseErrorBundle ByteString ConversionError) (Header, Vector a)
- decodeByNameWith :: FromNamedRecord a => DecodeOptions -> FilePath -> ByteString -> Either (ParseErrorBundle ByteString ConversionError) (Header, Vector a)
Documentation
newtype ConversionError Source #
Custom error component for CSV parsing. It allows typed reporting of conversion errors.
Constructors
| ConversionError String |
Instances
| Eq ConversionError Source # | |
Defined in Data.Csv.Parser.Megaparsec Methods (==) :: ConversionError -> ConversionError -> Bool (/=) :: ConversionError -> ConversionError -> Bool | |
| Data ConversionError Source # | |
Defined in Data.Csv.Parser.Megaparsec Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConversionError -> c ConversionError gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConversionError toConstr :: ConversionError -> Constr dataTypeOf :: ConversionError -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ConversionError) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConversionError) gmapT :: (forall b. Data b => b -> b) -> ConversionError -> ConversionError gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConversionError -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConversionError -> r gmapQ :: (forall d. Data d => d -> u) -> ConversionError -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ConversionError -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ConversionError -> m ConversionError gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ConversionError -> m ConversionError gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ConversionError -> m ConversionError | |
| Ord ConversionError Source # | |
Defined in Data.Csv.Parser.Megaparsec Methods compare :: ConversionError -> ConversionError -> Ordering (<) :: ConversionError -> ConversionError -> Bool (<=) :: ConversionError -> ConversionError -> Bool (>) :: ConversionError -> ConversionError -> Bool (>=) :: ConversionError -> ConversionError -> Bool max :: ConversionError -> ConversionError -> ConversionError min :: ConversionError -> ConversionError -> ConversionError | |
| Read ConversionError Source # | |
Defined in Data.Csv.Parser.Megaparsec Methods readsPrec :: Int -> ReadS ConversionError readList :: ReadS [ConversionError] readPrec :: ReadPrec ConversionError readListPrec :: ReadPrec [ConversionError] | |
| Show ConversionError Source # | |
Defined in Data.Csv.Parser.Megaparsec Methods showsPrec :: Int -> ConversionError -> ShowS show :: ConversionError -> String showList :: [ConversionError] -> ShowS | |
| ShowErrorComponent ConversionError Source # | |
Defined in Data.Csv.Parser.Megaparsec | |
Arguments
| :: FromRecord a | |
| => HasHeader | Whether the data contains header that should be skipped |
| -> FilePath | File name (only for displaying in parse error messages, use empty string if you have none) |
| -> ByteString | CSV data |
| -> Either (ParseErrorBundle ByteString ConversionError) (Vector a) |
Deserialize CSV records form a lazy ByteString. If this fails due
to incomplete or invalid input, Left is returned. Equivalent to
decodeWith defaultDecodeOptions.
Arguments
| :: FromRecord a | |
| => DecodeOptions | Decoding options |
| -> HasHeader | Whether the data contains header that should be skipped |
| -> FilePath | File name (only for displaying in parse error messages, use empty string if you have none) |
| -> ByteString | CSV data |
| -> Either (ParseErrorBundle ByteString ConversionError) (Vector a) |
Like decode, but lets you customize how the CSV data is parsed.
Arguments
| :: FromNamedRecord a | |
| => FilePath | File name (only for displaying in parse error messages, use empty string if you have none) |
| -> ByteString | CSV data |
| -> Either (ParseErrorBundle ByteString ConversionError) (Header, Vector a) |
Deserialize CSV records from a lazy ByteString. If this fails due
to incomplete or invalid input, Left is returned. The data is assumed
to be preceded by a header. Equivalent to decodeByNameWith
defaultDecodeOptions.
Arguments
| :: FromNamedRecord a | |
| => DecodeOptions | Decoding options |
| -> FilePath | File name (only for displaying in parse error messages, use empty string if you have none) |
| -> ByteString | CSV data |
| -> Either (ParseErrorBundle ByteString ConversionError) (Header, Vector a) |
Like decodeByName, but lets you customize how the CSV data is parsed.