The laborantin-hs package

[Tags: apache, library, program]

Laborantin is a framework and DSL to run and manage results from scientific experiments. Good targets for Laborantin are experiments that you can run offline such as benchmark and batch analytics.

Writing experiments with Laborantin has at least two advantages over rolling your own scripts. First, Laborantin standardizes the workflow of your experimentations. There is one-way to describe what a project can do, what experiments where already run, how to delete files corresponding to a specific experiment etc. Second, Laborantin builds on years of experience running experiments. Using Laborantin should alleviates common pain points such as querying for experiments, managing dependencies between results

Laborantin's DSL lets you express experiment parameters, setup, teardown, and recovery hooks in a systematic way. In addition, this DSL let you express dependencies on your experiments so that you can run prior experiments or data analyses.

Laborantin comes with a default backend that stores experiment results in a filesystem-hierarchy. Laborantin also comes with a default command-line that let you specify which experiments to run, analyze, or delete.

 ping :: ScenarioDescription EnvIO
 ping = scenario "ping" $ do
   describe "ping to a remote server"
   parameter "destination" $ do
     describe "a destination server (host or ip)"
     values [str "example.com", str "probecraft.net"]
   parameter "packet-size" $ do
     describe "packet size in bytes"
     values [num 50, num 1500]
   run $ do
     (StringParam srv) <- param "destination"
     (StringParam ps) <- param "packet-size"
     liftIO (executePingCommand srv ps) >>= writeResult "raw-result"
     where executePingCommand :: Text -> Rational -> IO (Text)
           executePingCommand host packetSize = ...

 main :: IO ()
 main = defaultMain [ping]

Properties

Versions0.1.0.0, 0.1.1.0, 0.1.1.1, 0.1.1.2, 0.1.1.3, 0.1.2.0, 0.1.3.0, 0.1.4.0, 0.1.5.0, 0.1.5.2
Dependenciesaeson (==0.6.*), base (==4.6.*), bytestring (==0.10.*), cmdlib (>=0.3.5), containers (==0.5.*), directory (==1.2.*), hslogger (==1.2.*), laborantin-hs (>=0.1.1.2), mtl (==2.1.*), old-locale (>=1.0.0.5), parsec (>=3.1.0), random (==1.0.*), split (>=0.2.2), text (==0.11.*), time (>=1.4.0.1), transformers (==0.3.*), uuid (==1.2.*)
LicenseApache-2.0
Authorlucas dicioccio
Maintainerlucas@dicioccio.fr
CategoryExperiment
Home pagehttps://github.com/lucasdicioccio/laborantin-hs
Executableslabor-example
Upload dateSat Dec 14 08:18:21 UTC 2013
Uploaded byLucasDiCioccio
Downloads653 total (51 in last 30 days)

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees