-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathlaborantin-hs.cabal
106 lines (101 loc) · 3.95 KB
/
laborantin-hs.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
-- Initial laborantin-hs.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
name: laborantin-hs
version: 0.1.6.0
synopsis: an experiment management framework
description:
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 were already run, how to delete files corresponding to a specific
experiment, etc. Second, Laborantin builds on years of experience running
experiments. Using Laborantin should alleviate common pain points such as
querying for experiments, managing dependencies between results, etc.
.
Laborantin's DSL lets you express experiment parameters,
setup, teardown, and recovery hooks in a systematic way.
In addition, the DSL lets 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]
homepage: https://github.com/lucasdicioccio/laborantin-hs
license: Apache-2.0
license-file: LICENSE
author: lucas dicioccio
maintainer: [email protected]
-- copyright:
category: Experiment
build-type: Simple
extra-source-files: README.md
cabal-version: >=1.10
library
exposed-modules: Laborantin, Laborantin.DSL, Laborantin.Implementation, Laborantin.Types, Laborantin.CLI, Laborantin.Query
other-modules: Laborantin.Query.Parse, Laborantin.Query.Interpret
other-extensions: FlexibleContexts, OverloadedStrings, TupleSections
build-depends:
base >=4.6 && <4.9,
transformers >=0.3 && <0.5,
mtl >=2.1 && <2.3,
containers >=0.5 && <0.6,
text >= 0.11 && <1.3,
bytestring >=0.10 && <0.11,
aeson >=0.7 && <0.9,
uuid >=1.3 && <1.4,
directory >=1.2 && <1.3,
random >=1.0 && <1.2,
hslogger >=1.2 && <1.3,
filepath >=1.0 && <1.5,
split >= 0.2.2,
time >= 1.4.0.1,
parsec >= 3.1.0,
old-locale >=1.0.0.5,
async >= 2.0.1.0,
optparse-applicative >= 0.11.0 && < 0.12
-- hs-source-dirs:
default-language: Haskell2010
executable labor-example
main-is: main.hs
ghc-options: -Wall
hs-source-dirs: examples
build-depends:
base >=4.6 && <4.9,
transformers >=0.3 && <0.5,
mtl >=2.1 && <2.3,
containers >=0.5 && <0.6,
text >=0.11 && <1.3,
bytestring >=0.10 && <0.11,
aeson >=0.6 && <0.9,
uuid >=1.3 && <1.4,
directory >=1.2 && <1.3,
random >=1.0 && <1.2,
hslogger >=1.2 && <1.3,
split >= 0.2.2,
laborantin-hs >= 0.1.5.1,
optparse-applicative >= 0.11.0 && < 0.12
default-language: Haskell2010