From 5098225bc10d5c6c8edff31f095f5cdbb4688a80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Grali=C5=84ski?= Date: Fri, 10 Aug 2018 13:05:42 +0200 Subject: [PATCH] improvements in challenge creation --- geval.cabal | 2 +- src/GEval/CreateChallenge.hs | 39 +++++++++++++++++++++++++----------- src/GEval/OptionsParser.hs | 6 ++++-- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/geval.cabal b/geval.cabal index 0b4014a..9a1eb97 100644 --- a/geval.cabal +++ b/geval.cabal @@ -1,5 +1,5 @@ name: geval -version: 1.2.3.0 +version: 1.3.0.0 synopsis: Machine learning evaluation tools description: Please see README.md homepage: http://github.com/name/project diff --git a/src/GEval/CreateChallenge.hs b/src/GEval/CreateChallenge.hs index 6043070..4c37ef1 100644 --- a/src/GEval/CreateChallenge.hs +++ b/src/GEval/CreateChallenge.hs @@ -14,20 +14,28 @@ import Control.Exception import Control.Monad.Trans.Resource import Data.String.Here -createChallenge :: FilePath -> GEvalSpecification -> IO () -createChallenge expectedDirectory spec = do +createChallenge :: Bool -> FilePath -> GEvalSpecification -> IO () +createChallenge withDataFiles expectedDirectory spec = do D.createDirectoryIfMissing False expectedDirectory + D.createDirectoryIfMissing False trainDirectory + D.createDirectoryIfMissing False devDirectory + D.createDirectoryIfMissing False testDirectory + createFile (expectedDirectory ".gitignore") $ gitignoreContents createFile (expectedDirectory "README.md") $ readmeMDContents metric testName createFile (expectedDirectory configFileName) $ configContents metrics precision testName - D.createDirectoryIfMissing False trainDirectory - createFile (trainDirectory "train.tsv") $ trainContents metric - D.createDirectoryIfMissing False devDirectory - createFile (devDirectory "in.tsv") $ devInContents metric - createFile (devDirectory "expected.tsv") $ devExpectedContents metric - D.createDirectoryIfMissing False testDirectory - createFile (testDirectory "in.tsv") $ testInContents metric - createFile (testDirectory expectedFile) $ testExpectedContents metric - createFile (expectedDirectory ".gitignore") $ gitignoreContents + if withDataFiles + then + do + createFile (trainDirectory "train.tsv") $ trainContents metric + + createFile (devDirectory "in.tsv") $ devInContents metric + createFile (devDirectory expectedFile) $ devExpectedContents metric + + createFile (testDirectory "in.tsv") $ testInContents metric + createFile (testDirectory expectedFile) $ testExpectedContents metric + + else + return () where metric = gesMainMetric spec metrics = gesMetrics spec precision = gesPrecision spec @@ -564,4 +572,11 @@ testExpectedContents _ = [hereLit|0.11 |] gitignoreContents :: String -gitignoreContents = "*~\n" +gitignoreContents = [hereLit| +*~ +*.swp +*.bak +*.pyc +*.o +.DS_Store +|] diff --git a/src/GEval/OptionsParser.hs b/src/GEval/OptionsParser.hs index ddb3414..cea46a8 100644 --- a/src/GEval/OptionsParser.hs +++ b/src/GEval/OptionsParser.hs @@ -4,7 +4,9 @@ module GEval.OptionsParser (fullOptionsParser, runGEval, runGEvalGetOptions, - getOptions) where + getOptions, + metricReader + ) where import Paths_geval (version) import Data.Version (showVersion) @@ -218,7 +220,7 @@ runGEval''' (Just (MostWorseningFeatures otherOut)) ordering spec = do initChallenge :: GEvalSpecification -> IO () initChallenge spec = case gesExpectedDirectory spec of Nothing -> showInitInstructions - Just expectedDirectory -> createChallenge expectedDirectory spec + Just expectedDirectory -> createChallenge True expectedDirectory spec showInitInstructions = do putStrLn [here|