Frames 0.1.4 → 0.1.6
raw patch · 6 files changed
+38/−27 lines, 6 filesdep +directorydep ~http-clientdep ~pipesdep ~readable
Dependencies added: directory
Dependency ranges changed: http-client, pipes, readable, template-haskell, text, transformers, vector
Files
- CHANGELOG.md +5/−0
- Frames.cabal +9/−5
- benchmarks/BenchDemo.hs +1/−2
- data/GetData.hs +21/−19
- demo/Plot.hs +1/−0
- src/Frames.hs +1/−1
CHANGELOG.md view
@@ -1,3 +1,8 @@+# 0.1.6++Re-export `Frames.CSV.declareColumn` from `Frames`. This makes it much+easier to manually define column types.+ # 0.1.4 Use `microlens` instead of `lens-family-core` for demos.
Frames.cabal view
@@ -1,5 +1,5 @@ name: Frames-version: 0.1.4+version: 0.1.6 synopsis: Data frames For working with tabular data files description: User-friendly, type safe, runtime efficient tooling for working with tabular data deserialized from@@ -48,7 +48,7 @@ TypeOperators, ConstraintKinds, StandaloneDeriving, UndecidableInstances, ScopedTypeVariables, OverloadedStrings- build-depends: base >=4.7 && <4.10,+ build-depends: base >=4.8 && <4.10, ghc-prim >=0.3 && <0.6, primitive >= 0.6 && < 0.7, text >= 1.1.1.0,@@ -68,7 +68,7 @@ buildable: False main-is: GetData.hs if flag(demos)- build-depends: base, bytestring, http-client, zip-archive+ build-depends: base, bytestring, http-client >= 0.4.3, zip-archive, directory hs-source-dirs: data default-language: Haskell2010 ghc-options: -Wall@@ -118,7 +118,8 @@ pipes >= 4.1.5 && < 4.3 hs-source-dirs: demo default-language: Haskell2010- ghc-options: -O2 -fllvm+ ghc-options: -O2+ -- ghc-options: -O2 -fllvm executable tutorial if !flag(demos)@@ -143,7 +144,10 @@ pipes >= 4.1.5 && < 4.3 hs-source-dirs: benchmarks default-language: Haskell2010- ghc-options: -O2 -fllvm+ -- ghc-options: -O2++ -- Use opt and llc found on PATH rather than the GHC settings file+ ghc-options: -O2 -pgmlo opt -pgmlc llc -fllvm -- A demonstration of dealing with missing data. Provided for source -- code and experimentation rather than a useful executable.
benchmarks/BenchDemo.hs view
@@ -2,9 +2,8 @@ -- | Demonstration of streaming data processing. Try building with -- cabal (@cabal build benchdemo@), then running in bash with -- something like,--- +-- -- @$ /usr/bin/time -l dist/build/benchdemo/benchdemo 2>&1 | head -n 4@-import Control.Applicative import qualified Control.Foldl as F import Frames import Pipes.Prelude (fold)
data/GetData.hs view
@@ -3,38 +3,40 @@ import qualified Data.ByteString.Lazy.Char8 as B import Data.Maybe (fromJust) import Network.HTTP.Client+import System.Directory (createDirectoryIfMissing) getPrestige :: IO ()-getPrestige = withManager defaultManagerSettings $ \m ->- httpLbs req m >>=- B.writeFile "data/prestige.csv" . responseBody- where Just req = parseUrl "http://vincentarelbundock.github.io/Rdatasets/csv/car/Prestige.csv"+getPrestige = do m <- newManager defaultManagerSettings+ httpLbs req m >>=+ B.writeFile "data/prestige.csv" . responseBody+ where Just req = parseUrlThrow "http://vincentarelbundock.github.io/Rdatasets/csv/car/Prestige.csv" getFLinsurance :: IO ()-getFLinsurance = withManager defaultManagerSettings $ \m -> - httpLbs req m >>=- B.writeFile "data/FL2.csv"- . B.map fixup . fromEntry . fromJust- . findEntryByPath "FL_insurance_sample.csv"- . toArchive- . responseBody+getFLinsurance = do m <- newManager defaultManagerSettings+ httpLbs req m >>=+ B.writeFile "data/FL2.csv"+ . B.map fixup . fromEntry . fromJust+ . findEntryByPath "FL_insurance_sample.csv"+ . toArchive+ . responseBody where fixup '\r' = '\n' fixup c = c- Just req = parseUrl "http://spatialkeydocs.s3.amazonaws.com/FL_insurance_sample.csv.zip"+ Just req = parseUrlThrow "http://spatialkeydocs.s3.amazonaws.com/FL_insurance_sample.csv.zip" getAdultIncome :: IO ()-getAdultIncome = withManager defaultManagerSettings $ \m ->- httpLbs req m >>=- B.writeFile "data/adult.csv"- . B.append colNames- . responseBody- where Just req = parseUrl "http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"+getAdultIncome = do m <- newManager defaultManagerSettings+ httpLbs req m >>=+ B.writeFile "data/adult.csv"+ . B.append colNames+ . responseBody+ where Just req = parseUrlThrow "http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data" colNames = "age, workclass, fnlwgt, education, education-num, \ \marital-status, occupation, relationship, race, sex, \ \capital-gain, capital-loss, hours-per-week, \ \native-country\n" main :: IO ()-main = do getPrestige+main = do createDirectoryIfMissing False "data"+ getPrestige getFLinsurance getAdultIncome
demo/Plot.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE DataKinds, FlexibleContexts, TemplateHaskell #-}+module Main where import qualified Data.Vector.Unboxed as V import Diagrams.Backend.Rasterific import Diagrams (dims2D, width, height)
src/Frames.hs view
@@ -25,7 +25,7 @@ import Frames.Col ((:->)(..)) import Frames.ColumnUniverse import Frames.CoRec (Field, onField, onCoRec)-import Frames.CSV (readTable, readTableMaybe, readTable', +import Frames.CSV (readTable, readTableMaybe, readTable', declareColumn, tableType, tableTypes, tableType', tableTypes') import Frames.Exploration import Frames.Frame