packages feed

datasets 0.2.1 → 0.2.2

raw patch · 5 files changed

+61/−8 lines, 5 filesdep +microlensdep +wreqdep −HTTPPVP ok

version bump matches the API change (PVP)

Dependencies added: microlens, wreq

Dependencies removed: HTTP

API changes (from Hackage documentation)

+ Numeric.Datasets.Gapminder: Gapminder :: Text -> Int -> Integer -> Text -> Double -> Double -> Gapminder
+ Numeric.Datasets.Gapminder: [continent] :: Gapminder -> Text
+ Numeric.Datasets.Gapminder: [country] :: Gapminder -> Text
+ Numeric.Datasets.Gapminder: [gdpPercap] :: Gapminder -> Double
+ Numeric.Datasets.Gapminder: [lifeExp] :: Gapminder -> Double
+ Numeric.Datasets.Gapminder: [pop] :: Gapminder -> Integer
+ Numeric.Datasets.Gapminder: [year] :: Gapminder -> Int
+ Numeric.Datasets.Gapminder: data Gapminder
+ Numeric.Datasets.Gapminder: gapminder :: Dataset Gapminder
+ Numeric.Datasets.Gapminder: instance Data.Csv.Conversion.FromNamedRecord Numeric.Datasets.Gapminder.Gapminder
+ Numeric.Datasets.Gapminder: instance GHC.Generics.Generic Numeric.Datasets.Gapminder.Gapminder
+ Numeric.Datasets.Gapminder: instance GHC.Read.Read Numeric.Datasets.Gapminder.Gapminder
+ Numeric.Datasets.Gapminder: instance GHC.Show.Show Numeric.Datasets.Gapminder.Gapminder
+ Numeric.Datasets.Iris: instance GHC.Enum.Bounded Numeric.Datasets.Iris.IrisClass
+ Numeric.Datasets.Iris: instance GHC.Enum.Enum Numeric.Datasets.Iris.IrisClass

Files

changelog.md view
@@ -1,3 +1,11 @@+0.2.2++* Enum, bounded instances for IrisClass++* Gapminder dataset++* Use wreq for HTTP and HTTPS requests+ 0.2.1  * Wine quality datasets
datasets.cabal view
@@ -1,5 +1,5 @@ Name:                datasets-Version:             0.2.1+Version:             0.2.2 Synopsis:            Classical data sets for statistics and machine learning Description:         Classical machine learning and statistics datasets from                      the UCI Machine Learning Repository and other sources.@@ -60,6 +60,7 @@                  , Numeric.Datasets.BreastCancerWisconsin                  , Numeric.Datasets.Car                  , Numeric.Datasets.CO2+                 , Numeric.Datasets.Gapminder                  , Numeric.Datasets.Iris                  , Numeric.Datasets.Michelson                  , Numeric.Datasets.Nightingale@@ -73,7 +74,7 @@    Build-depends:                  base                    >= 4.6 && < 5                , cassava-               , HTTP+               , wreq                , hashable                , filepath                , bytestring@@ -84,3 +85,4 @@                , file-embed                , aeson                , time+               , microlens
src/Numeric/Datasets.hs view
@@ -20,7 +20,6 @@  module Numeric.Datasets where -import Network.HTTP import Data.Csv import System.FilePath import System.Directory@@ -32,6 +31,8 @@ import Control.Applicative import Data.Time import Data.Char (ord)+import qualified Network.Wreq as Wreq+import Lens.Micro ((^.))  import Data.Char (toUpper) import Text.Read (readMaybe)@@ -85,15 +86,13 @@ getFileFromSource cacheDir (URL url) = do   createDirectoryIfMissing True cacheDir   let fnm = cacheDir </> "ds" <> show (hash url)-      castRequest :: Request String -> Request BL.ByteString-      castRequest r = Request (rqURI r) (rqMethod r) (rqHeaders r) ""    ex <- doesFileExist fnm   if ex      then BL.readFile fnm      else do-       rsp <- simpleHTTP (castRequest $ getRequest url)-       bs <- getResponseBody rsp+       rsp <- Wreq.get url+       let bs = rsp ^. Wreq.responseBody        BL.writeFile fnm bs        return bs 
+ src/Numeric/Datasets/Gapminder.hs view
@@ -0,0 +1,44 @@+{-# LANGUAGE DeriveGeneric, OverloadedStrings #-}++{-|++Gapminder dataset - Life expectancy, GDP, population every five years per country++Source: <https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv>++More information: https://cran.r-project.org/web/packages/gapminder/gapminder.pdf++-}++module Numeric.Datasets.Gapminder where++import Numeric.Datasets++import Data.Csv+import GHC.Generics+import Control.Applicative+import Data.Text (Text)++data Gapminder = Gapminder+  { country :: Text+  , year :: Int+  , pop :: Integer+  , continent :: Text+  , lifeExp :: Double+  , gdpPercap :: Double+  } deriving (Show, Read, Generic)++instance FromNamedRecord Gapminder where+    parseNamedRecord m = Gapminder <$>+                         m .: "country" <*>+                         m .: "year" <*>+                         (roundIt <$> m .: "pop") <*>+                         m .: "continent" <*>+                         m .: "lifeExp" <*>+                         m .: "gdpPercap"+          where roundIt :: Double -> Integer+                roundIt = round++gapminder :: Dataset Gapminder+gapminder = csvHdrDataset+   $ URL "https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv"
src/Numeric/Datasets/Iris.hs view
@@ -19,7 +19,7 @@   data IrisClass = Setosa | Versicolor | Virginica-  deriving (Show, Read, Eq, Generic)+  deriving (Show, Read, Eq, Generic, Enum, Bounded)  instance FromField IrisClass where   parseField "Iris-setosa" = return Setosa