packages feed

Frames 0.1.3 → 0.1.4

raw patch · 5 files changed

+30/−27 lines, 5 filesdep +microlensdep −lens-family-coredep ~pipes

Dependencies added: microlens

Dependencies removed: lens-family-core

Dependency ranges changed: pipes

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.1.4++Use `microlens` instead of `lens-family-core` for demos.+ # 0.1.3  GHC-8.0.1 compatibility
Frames.cabal view
@@ -1,5 +1,5 @@ name:                Frames-version:             0.1.3+version:             0.1.4 synopsis:            Data frames For working with tabular data files description:         User-friendly, type safe, runtime efficient tooling for                      working with tabular data deserialized from@@ -80,9 +80,9 @@   main-is: Plot.hs   if flag(demos)     build-depends: base, Frames,-                   lens-family-core, vector, text,+                   microlens, vector, text,                    template-haskell,-                   pipes >= 4.1.5 && < 4.2, +                   pipes >= 4.1.5 && < 4.3,                    Chart >= 1.5 && < 1.8,                    Chart-diagrams >= 1.5 && < 1.8,                    diagrams-rasterific >= 1.3 && < 1.4,@@ -97,12 +97,12 @@   main-is: Plot2.hs   if flag(demos)     build-depends: base, Frames,-                   lens-family-core, vector, text, template-haskell,-                   pipes >= 4.1.5 && < 4.2,+                   microlens, vector, text, template-haskell,+                   pipes >= 4.1.5 && < 4.3,                    Chart >= 1.5 && < 1.8,                    Chart-diagrams >= 1.5 && < 1.8,                    diagrams-rasterific >= 1.3 && < 1.4,-                   diagrams-lib >= 1.3 && < 1.4, +                   diagrams-lib >= 1.3 && < 1.4,                    readable, containers, statistics   hs-source-dirs: demo   default-language: Haskell2010@@ -113,9 +113,9 @@     buildable: False   main-is: Main.hs   if flag(demos)-    build-depends: base, list-t, lens-family-core, transformers, Frames,+    build-depends: base, list-t, microlens, transformers, Frames,                    vector, text, template-haskell, ghc-prim, readable,-                   pipes >= 4.1.5 && < 4.2+                   pipes >= 4.1.5 && < 4.3   hs-source-dirs: demo   default-language: Haskell2010   ghc-options: -O2 -fllvm@@ -126,9 +126,9 @@   main-is: TutorialMain.hs   if flag(demos)     build-depends: base, Frames,-                   lens-family-core, vector, text, template-haskell, readable,+                   microlens, vector, text, template-haskell, readable,                    foldl >= 1.1.0 && < 1.3,-                   pipes >= 4.1.5 && < 4.2+                   pipes >= 4.1.5 && < 4.3   hs-source-dirs: demo   default-language: Haskell2010 @@ -138,9 +138,9 @@     buildable: False   main-is:          BenchDemo.hs   if flag(demos)-    build-depends:    base, Frames, lens-family-core,+    build-depends:    base, Frames,                       foldl >= 1.1.0 && < 1.3,-                      pipes >= 4.1.5 && < 4.2+                      pipes >= 4.1.5 && < 4.3   hs-source-dirs:   benchmarks   default-language: Haskell2010   ghc-options:      -O2 -fllvm@@ -161,8 +161,8 @@   type:             exitcode-stdio-1.0   hs-source-dirs:   benchmarks   main-is:          InsuranceBench.hs-  build-depends:    base, criterion, Frames, lens-family-core, transformers,-                    pipes >= 4.1.5 && < 4.2+  build-depends:    base, criterion, Frames, transformers,+                    pipes >= 4.1.5 && < 4.3   ghc-options:      -O2   default-language: Haskell2010 
demo/Kata04.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE DataKinds, FlexibleContexts, OverloadedStrings,              TemplateHaskell, TypeFamilies, TypeOperators,              MultiParamTypeClasses, ScopedTypeVariables,-             FlexibleContexts, FlexibleInstances #-}+             FlexibleInstances #-} module Main where import qualified Data.Foldable as F import Data.Ord (comparing)
demo/Main.hs view
@@ -3,7 +3,7 @@ module Main where import Data.Functor.Identity import Frames-import Lens.Family+import Lens.Micro import qualified ListT as L import qualified Pipes as P import qualified Pipes.Prelude as P@@ -17,7 +17,7 @@ tbl = listTlist $ readTable' "data/data1.csv"  ageDoubler :: (Age ∈ rs) => Record rs -> Record rs-ageDoubler = age *~ 2+ageDoubler = age %~ (* 2)  tbl2 :: IO [Row] tbl2 = listTlist $ readTable' "data/data2.csv"
src/Frames/CSV.hs view
@@ -17,11 +17,11 @@ module Frames.CSV where import Control.Applicative ((<$>), pure, (<*>)) import Control.Arrow (first)-import Control.Monad (MonadPlus(..))+import Control.Monad (MonadPlus(..), when, void) import Control.Monad.IO.Class import Data.Char (isAlpha, isAlphaNum, toLower, toUpper) import Data.Foldable (foldMap)-import Data.Maybe (fromMaybe)+import Data.Maybe (fromMaybe, isNothing) import Data.Monoid ((<>), Monoid(..)) import Data.Proxy import qualified Data.Text as T@@ -39,9 +39,6 @@ import Language.Haskell.TH.Syntax import qualified Pipes as P import System.IO (Handle, hIsEOF, openFile, IOMode(..), withFile)-import Control.Monad (when)-import Data.Maybe (isNothing)-import Control.Monad (void)  type Separator = T.Text @@ -256,7 +253,7 @@                  . T.concat . T.split (not . valid) . toTitle'   where valid c = isAlphaNum c || c == '\'' || c == '_'         toTitle' = foldMap (onHead toUpper) . T.split (not . isAlphaNum)-        onHead f = maybe mempty (uncurry T.cons) . fmap (first f) . T.uncons +        onHead f = maybe mempty (uncurry T.cons) . fmap (first f) . T.uncons         unreserved t           | t `elem` ["Type"] = "Col" <> t           | otherwise = t@@ -300,8 +297,9 @@ colDec prefix colName colTy = (:) <$> mkColTDec colTypeQ colTName'                                   <*> mkColPDec colTName' colTyQ colPName   where colTName = sanitizeTypeName (prefix <> colName)-        colPName = fromMaybe "colDec impossible" $-                   fmap (\(c,t) -> T.cons (toLower c) t) (T.uncons colTName)+        colPName = maybe "colDec impossible"+                         (\(c,t) -> T.cons (toLower c) t)+                         (T.uncons colTName)         colTName' = mkName $ T.unpack colTName         colTyQ = colType colTy         colTypeQ = [t|$(litT . strTyLit $ T.unpack colName) :-> $colTyQ|]@@ -313,8 +311,9 @@ declareColumn colName colTy = (:) <$> mkColTDec colTypeQ colTName'                                   <*> mkColPDec colTName' colTyQ colPName   where colTName = sanitizeTypeName colName-        colPName = fromMaybe "colDec impossible" $-                   fmap (\(c,t) -> T.cons (toLower c) t) (T.uncons colTName)+        colPName = maybe "colDec impossible"+                         (\(c,t) -> T.cons (toLower c) t)+                         (T.uncons colTName)         colTName' = mkName $ T.unpack colTName         colTyQ = return (ConT colTy)         colTypeQ = [t|$(litT . strTyLit $ T.unpack colName) :-> $colTyQ|]