packages feed

orgstat 0.1.2 → 0.1.3

raw patch · 19 files changed

+162/−170 lines, 19 filesdep ~basedep ~log-warperdep ~universum

Dependency ranges changed: base, log-warper, universum

Files

CHANGES.md view
@@ -1,3 +1,9 @@+0.1.3+=====++* Updated universum to 1.7.1, universum to 0.8.0. Switched to nightly/ghc-8.2.1.++ 0.1.2 ===== 
orgstat.cabal view
@@ -1,5 +1,5 @@ name:                orgstat-version:             0.1.2+version:             0.1.3 synopsis:            Statistics visualizer for org-mode license:             GPL-3 license-file:        LICENSE@@ -27,9 +27,10 @@                      , OrgStat.Outputs.Types                      , OrgStat.Util                      , OrgStat.WorkMonad+                     , Paths_orgstat   build-depends:       aeson >= 0.11.2.0                      , attoparsec-                     , base >=4.9 && <4.10+                     , base >=4.9 && <4.11                      , boxes >= 0.1.4                      , bytestring                      , colour >= 2.3.3@@ -44,14 +45,14 @@                      , hashable >= 1.2.4.0                      , lens >= 4.14                      , linear-                     , log-warper >= 1.3.1+                     , log-warper >= 1.7.1                      , mtl >= 2.2.1                      , optparse-simple                      , orgmode-parse >= 0.2.0                      , text >= 1.2.2.1                      , time >= 1.6.0.1                      , turtle >= 1.2.8-                     , universum >= 0.6.1+                     , universum >= 0.8.0                      , yaml >= 0.8.21.1   hs-source-dirs:      src   default-language:    Haskell2010@@ -74,7 +75,8 @@  executable orgstat   main-is:             Main.hs-  build-depends:       base >=4.9 && <4.10+  other-modules:       Paths_orgstat+  build-depends:       base >=4.9 && <4.11                      , bytestring                      , directory                      , exceptions@@ -99,7 +101,7 @@                      , GlobalSpec   build-depends:       HUnit >= 1.3.1.2                      , QuickCheck-                     , base >=4.9 && <4.10+                     , base >=4.9 && <4.11                      , colour >= 2.3.3                      , hspec                      , orgstat
src/OrgStat/Ast.hs view
@@ -21,11 +21,10 @@        , mergeClocks        ) where -import           Control.Lens (ASetter', makeLenses)-import           Data.Time    (LocalTime, NominalDiffTime, diffUTCTime, localTimeToUTC,-                               localTimeToUTC, utc)+import Control.Lens (ASetter', makeLenses)+import Data.Time (LocalTime, NominalDiffTime, diffUTCTime, localTimeToUTC, localTimeToUTC, utc) -import           Universum+import Universum  ---------------------------------------------------------------------------- -- Types
src/OrgStat/CLI.hs view
@@ -5,10 +5,9 @@        , parseCommonArgs        ) where -import           Universum+import Universum -import           Options.Applicative.Simple (Parser, help, long, metavar, strOption,-                                             switch)+import Options.Applicative.Simple (Parser, help, long, metavar, strOption, switch)  -- | Read-only arguments that inner application needs (in contrast to, -- say, logging severity).
src/OrgStat/Config.hs view
@@ -16,21 +16,20 @@        , OrgStatConfig (..)        ) where -import           Data.Aeson            (FromJSON (..), Value (Object, String), withObject,-                                        withText, (.!=), (.:), (.:?))-import           Data.Aeson.Types      (typeMismatch)-import           Data.Default          (def)-import           Data.List.NonEmpty    (NonEmpty)-import qualified Data.Text             as T-import           Data.Time             (LocalTime)-import           Data.Time.Format      (defaultTimeLocale, parseTimeM)-import           Universum+import Data.Aeson (FromJSON (..), Value (Object, String), withObject, withText, (.!=), (.:), (.:?))+import Data.Aeson.Types (typeMismatch)+import Data.Default (def)+import Data.List.NonEmpty (NonEmpty)+import qualified Data.Text as T+import Data.Time (LocalTime)+import Data.Time.Format (defaultTimeLocale, parseTimeM)+import Universum -import           OrgStat.Outputs.Types (BlockParams, SummaryParams (..), TimelineParams,-                                        bpMaxLength, bpUnicode, tpBackground,-                                        tpColumnHeight, tpColumnWidth, tpLegend, tpTopDay)-import           OrgStat.Scope         (AstPath (..), ScopeModifier (..))-import           OrgStat.Util          (parseColour, (??~))+import OrgStat.Outputs.Types (BlockParams, SummaryParams (..), TimelineParams, bpMaxLength,+                              bpUnicode, tpBackground, tpColumnHeight, tpColumnWidth, tpLegend,+                              tpTopDay)+import OrgStat.Scope (AstPath (..), ScopeModifier (..))+import OrgStat.Util (parseColour, (??~))  -- | Exception type for everything bad that happens with config, -- starting from parsing to logic errors.
src/OrgStat/Helpers.hs view
@@ -8,25 +8,21 @@        , resolveOutput        ) where -import           Universum+import Universum -import           Control.Lens                (at, views, (.=))-import qualified Data.List.NonEmpty          as NE-import           Data.Time                   (LocalTime (..), TimeOfDay (..), addDays,-                                              getZonedTime, toGregorian,-                                              zonedTimeToLocalTime)-import           Data.Time.Calendar          (addGregorianMonthsRollOver)-import           Data.Time.Calendar.WeekDate (toWeekDate)+import Control.Lens (at, views, (.=))+import qualified Data.List.NonEmpty as NE+import Data.Time (LocalTime (..), TimeOfDay (..), addDays, getZonedTime, toGregorian,+                  zonedTimeToLocalTime)+import Data.Time.Calendar (addGregorianMonthsRollOver)+import Data.Time.Calendar.WeekDate (toWeekDate) -import           OrgStat.Ast                 (Org (..), cutFromTo, mergeClocks, orgTitle)-import           OrgStat.Config              (ConfDate (..), ConfOutput (..),-                                              ConfRange (..), ConfReport (..),-                                              ConfScope (..), ConfigException (..),-                                              OrgStatConfig (..))-import           OrgStat.IO                  (readOrgFile)-import           OrgStat.Scope               (applyModifiers)-import           OrgStat.WorkMonad           (WorkM, wcConfig, wdReadFiles,-                                              wdResolvedReports, wdResolvedScopes)+import OrgStat.Ast (Org (..), cutFromTo, mergeClocks, orgTitle)+import OrgStat.Config (ConfDate (..), ConfOutput (..), ConfRange (..), ConfReport (..),+                       ConfScope (..), ConfigException (..), OrgStatConfig (..))+import OrgStat.IO (readOrgFile)+import OrgStat.Scope (applyModifiers)+import OrgStat.WorkMonad (WorkM, wcConfig, wdReadFiles, wdResolvedReports, wdResolvedScopes)   -- | Converts config range to a pair of 'UTCTime', right bound not inclusive.
src/OrgStat/IO.hs view
@@ -7,21 +7,21 @@        , readConfig        ) where -import qualified Base             as Base-import qualified Data.ByteString  as BS-import qualified Data.Text        as T-import qualified Data.Text.IO     as TIO-import           Data.Yaml        (decodeEither)-import           System.Directory (doesFileExist)-import           System.FilePath  (takeBaseName, takeExtension)-import           System.Wlog      (WithLogger, logDebug)-import           Turtle           (ExitCode (..), procStrict)-import           Universum+import qualified Base as Base+import qualified Data.ByteString as BS+import qualified Data.Text as T+import qualified Data.Text.IO as TIO+import Data.Yaml (decodeEither)+import System.Directory (doesFileExist)+import System.FilePath (takeBaseName, takeExtension)+import System.Wlog (WithLogger, logDebug)+import Turtle (ExitCode (..), procStrict)+import Universum -import           OrgStat.Ast      (Org)-import           OrgStat.Config   (ConfigException (ConfigParseException), OrgStatConfig)-import           OrgStat.Parser   (runParser)-import           OrgStat.Util     (dropEnd)+import OrgStat.Ast (Org)+import OrgStat.Config (ConfigException (ConfigParseException), OrgStatConfig)+import OrgStat.Parser (runParser)+import OrgStat.Util (dropEnd)  data OrgIOException     = OrgIOException Text
src/OrgStat/Logic.hs view
@@ -6,23 +6,21 @@        ( runOrgStat        ) where -import           Universum+import Universum -import           Control.Lens      (views)-import qualified Data.Text         as T-import           Data.Time         (defaultTimeLocale, formatTime, getZonedTime)-import           System.Directory  (createDirectoryIfMissing)-import           System.FilePath   ((</>))-import           System.Wlog       (logDebug, logInfo)-import           Turtle            (shell)+import Control.Lens (views)+import qualified Data.Text as T+import Data.Time (defaultTimeLocale, formatTime, getZonedTime)+import System.Directory (createDirectoryIfMissing)+import System.FilePath ((</>))+import System.Wlog (logDebug, logInfo)+import Turtle (shell) -import           OrgStat.CLI       (CommonArgs (..))-import           OrgStat.Config    (ConfOutput (..), ConfOutputType (..),-                                    OrgStatConfig (..))-import           OrgStat.Helpers   (resolveOutput, resolveReport)-import           OrgStat.Outputs   (genBlockOutput, genSummaryOutput, processTimeline,-                                    tpColorSalt, writeReport)-import           OrgStat.WorkMonad (WorkM, wcCommonArgs, wcConfig)+import OrgStat.CLI (CommonArgs (..))+import OrgStat.Config (ConfOutput (..), ConfOutputType (..), OrgStatConfig (..))+import OrgStat.Helpers (resolveOutput, resolveReport)+import OrgStat.Outputs (genBlockOutput, genSummaryOutput, processTimeline, tpColorSalt, writeReport)+import OrgStat.WorkMonad (WorkM, wcCommonArgs, wcConfig)  -- | Main application logic. runOrgStat :: WorkM ()
src/OrgStat/Outputs.hs view
@@ -4,8 +4,8 @@        ( module Exports        ) where -import           OrgStat.Outputs.Block    as Exports-import           OrgStat.Outputs.Class    as Exports-import           OrgStat.Outputs.Summary  as Exports-import           OrgStat.Outputs.Timeline as Exports-import           OrgStat.Outputs.Types    as Exports+import OrgStat.Outputs.Block as Exports+import OrgStat.Outputs.Class as Exports+import OrgStat.Outputs.Summary as Exports+import OrgStat.Outputs.Timeline as Exports+import OrgStat.Outputs.Types as Exports
src/OrgStat/Outputs/Block.hs view
@@ -5,16 +5,15 @@        ( genBlockOutput        ) where -import           Universum-import           Unsafe                 (unsafeLast)+import Universum+import Unsafe (unsafeLast) -import qualified Data.Text              as T-import           Text.PrettyPrint.Boxes (center1, hsep, left, render, right, text, vcat)+import qualified Data.Text as T+import Text.PrettyPrint.Boxes (center1, hsep, left, render, right, text, vcat) -import           OrgStat.Ast            (Org, filterHasClock, orgSubtrees, orgTitle,-                                         orgTotalDuration)-import           OrgStat.Outputs.Types  (BlockOutput (..), BlockParams (..))-import           OrgStat.Util           (dropEnd, timeF)+import OrgStat.Ast (Org, filterHasClock, orgSubtrees, orgTitle, orgTotalDuration)+import OrgStat.Outputs.Types (BlockOutput (..), BlockParams (..))+import OrgStat.Util (dropEnd, timeF)  data BlockFrames = BlockFrames     { bfAngle1     :: Text
src/OrgStat/Outputs/Class.hs view
@@ -4,15 +4,14 @@        ( ReportOutput (..)        ) where -import           Universum+import Universum -import qualified Data.Text.IO          as T-import qualified Diagrams.Backend.SVG  as DB-import qualified Diagrams.Prelude      as D-import           System.FilePath       (replaceExtension)+import qualified Data.Text.IO as T+import qualified Diagrams.Backend.SVG as DB+import qualified Diagrams.Prelude as D+import System.FilePath (replaceExtension) -import           OrgStat.Outputs.Types (BlockOutput (..), SummaryOutput (..),-                                        TimelineOutput (..))+import OrgStat.Outputs.Types (BlockOutput (..), SummaryOutput (..), TimelineOutput (..))  -- | Things that reporters output an what we can do with them. class ReportOutput a where
src/OrgStat/Outputs/Summary.hs view
@@ -4,17 +4,17 @@        ( genSummaryOutput        ) where -import           Universum+import Universum -import           Control.Lens                     (views)+import Control.Lens (views) import qualified Data.Attoparsec.ByteString.Char8 as A -import           OrgStat.Ast                      (filterHasClock, orgTotalDuration)-import           OrgStat.Config                   (confReports, crName)-import           OrgStat.Helpers                  (resolveReport)-import           OrgStat.Outputs.Types            (SummaryOutput (..), SummaryParams (..))-import           OrgStat.Util                     (timeF)-import           OrgStat.WorkMonad                (WorkM, wcConfig)+import OrgStat.Ast (filterHasClock, orgTotalDuration)+import OrgStat.Config (confReports, crName)+import OrgStat.Helpers (resolveReport)+import OrgStat.Outputs.Types (SummaryOutput (..), SummaryParams (..))+import OrgStat.Util (timeF)+import OrgStat.WorkMonad (WorkM, wcConfig)   -- | Tokenizes summary template string.
src/OrgStat/Outputs/Timeline.hs view
@@ -8,22 +8,20 @@        ( processTimeline        ) where -import           Data.Colour.CIE       (luminance)-import           Data.List             (lookup, nub)-import qualified Data.Text             as T-import           Data.Time             (Day, DiffTime, LocalTime (..), defaultTimeLocale,-                                        formatTime, timeOfDayToTime)-import           Diagrams.Backend.SVG  (B)-import qualified Diagrams.Prelude      as D+import Data.Colour.CIE (luminance)+import Data.List (lookup, nub)+import qualified Data.Text as T+import Data.Time (Day, DiffTime, LocalTime (..), defaultTimeLocale, formatTime, timeOfDayToTime)+import Diagrams.Backend.SVG (B)+import qualified Diagrams.Prelude as D import qualified Prelude-import           Text.Printf           (printf)-import           Universum+import Text.Printf (printf)+import Universum -import           OrgStat.Ast           (Clock (..), Org (..), orgClocks, traverseTree)-import           OrgStat.Outputs.Types (TimelineOutput (..), TimelineParams, tpBackground,-                                        tpColorSalt, tpColumnHeight, tpColumnWidth,-                                        tpLegend, tpTopDay)-import           OrgStat.Util          (addLocalTime, hashColour)+import OrgStat.Ast (Clock (..), Org (..), orgClocks, traverseTree)+import OrgStat.Outputs.Types (TimelineOutput (..), TimelineParams, tpBackground, tpColorSalt,+                              tpColumnHeight, tpColumnWidth, tpLegend, tpTopDay)+import OrgStat.Util (addLocalTime, hashColour)   
src/OrgStat/Outputs/Types.hs view
@@ -21,13 +21,13 @@        , BlockOutput (..)        ) where -import           Universum+import Universum -import           Control.Lens         (makeLenses)+import Control.Lens (makeLenses) -import           Data.Default         (Default (..))-import           Diagrams.Backend.SVG (B)-import qualified Diagrams.Prelude     as D+import Data.Default (Default (..))+import Diagrams.Backend.SVG (B)+import qualified Diagrams.Prelude as D  ---------------------------------------------------------------------------- -- Timeline
src/OrgStat/Parser.hs view
@@ -6,17 +6,17 @@        , runParser        ) where -import           Universum+import Universum -import           Control.Exception    (Exception)+import Control.Exception (Exception) import qualified Data.Attoparsec.Text as A-import qualified Data.OrgMode.Parse   as O-import qualified Data.OrgMode.Types   as O-import qualified Data.Text            as T-import           Data.Time            (LocalTime (..), TimeOfDay (..), fromGregorian)-import           Data.Time.Calendar   ()+import qualified Data.OrgMode.Parse as O+import qualified Data.OrgMode.Types as O+import qualified Data.Text as T+import Data.Time (LocalTime (..), TimeOfDay (..), fromGregorian)+import Data.Time.Calendar () -import           OrgStat.Ast          (Clock (..), Org (..))+import OrgStat.Ast (Clock (..), Org (..))  ---------------------------------------------------------------------------- -- Exceptions
src/OrgStat/Scope.hs view
@@ -13,14 +13,13 @@        , applyModifiers        ) where -import qualified Base                 as Base-import           Control.Lens         (to)-import           Control.Monad.Except (throwError)-import qualified Data.Text            as T-import           Universum+import qualified Base as Base+import Control.Lens (to)+import Control.Monad.Except (throwError)+import qualified Data.Text as T+import Universum -import           OrgStat.Ast          (Org, atDepth, orgClocks, orgSubtrees, orgTags,-                                       orgTitle, traverseTree)+import OrgStat.Ast (Org, atDepth, orgClocks, orgSubtrees, orgTags, orgTitle, traverseTree)  -- | Path in org AST is just a list of paths, head ~ closer to tree -- root.
src/OrgStat/Util.hs view
@@ -12,19 +12,18 @@        , timeF        ) where -import           Control.Lens     (ASetter, ix)-import           Data.Aeson.TH    (defaultOptions)-import           Data.Aeson.Types (Options, fieldLabelModifier)-import           Data.Char        (isLower, toLower)-import           Data.Colour      (Colour)-import           Data.Colour.CIE  (luminance)-import           Data.Colour.SRGB (RGB (..), sRGB24, toSRGBBounded)-import           Data.Hashable    (hashWithSalt)-import           Data.List        (nub)-import           Data.List        ((!!))-import           Data.Time        (LocalTime (..), NominalDiffTime, addUTCTime,-                                   localTimeToUTC, utc, utcToLocalTime)-import           Universum+import Control.Lens (ASetter, ix)+import Data.Aeson.TH (defaultOptions)+import Data.Aeson.Types (Options, fieldLabelModifier)+import Data.Char (isLower, toLower)+import Data.Colour (Colour)+import Data.Colour.CIE (luminance)+import Data.Colour.SRGB (RGB (..), sRGB24, toSRGBBounded)+import Data.Hashable (hashWithSalt)+import Data.List (nub)+import Data.List ((!!))+import Data.Time (LocalTime (..), NominalDiffTime, addUTCTime, localTimeToUTC, utc, utcToLocalTime)+import Universum  -- | JSON/Yaml TH modifier. Each field of type "aoeuKek" turns into -- "kek". Placed here because it can't be defined near json TH
src/OrgStat/WorkMonad.hs view
@@ -14,15 +14,15 @@        , runWorkM        ) where -import           Universum+import Universum -import           Control.Lens   (makeLenses)-import           Data.Default   (Default (def))-import qualified System.Wlog    as W+import Control.Lens (makeLenses)+import Data.Default (Default (def))+import qualified System.Wlog as W -import           OrgStat.Ast    (Org)-import           OrgStat.CLI    (CommonArgs)-import           OrgStat.Config (OrgStatConfig)+import OrgStat.Ast (Org)+import OrgStat.CLI (CommonArgs)+import OrgStat.Config (OrgStatConfig)  -- | Read-only app configuration. data WorkConfig = WorkConfig@@ -63,7 +63,7 @@                )  instance W.HasLoggerName WorkM where-    getLoggerName = pure $ W.LoggerName "OrgStat"+    askLoggerName = pure $ W.LoggerName "OrgStat"     modifyLoggerName _ = identity  runWorkM :: MonadIO m => WorkConfig -> WorkM a -> m a
src/cli/Main.hs view
@@ -3,20 +3,19 @@  module Main where -import           Data.Version               (showVersion)-import           Options.Applicative.Simple (Parser, help, long, metavar, simpleOptions,-                                             strOption, switch, value)-import           Paths_orgstat              (version)-import           System.Directory           (getHomeDirectory)-import           System.FilePath            ((</>))-import           System.Wlog                (Severity (..), consoleOutB, lcTermSeverity,-                                             logDebug, logError, setupLogging)-import           Universum+import Data.Version (showVersion)+import Options.Applicative.Simple (Parser, help, long, metavar, simpleOptions, strOption, switch,+                                   value)+import Paths_orgstat (version)+import System.Directory (getHomeDirectory)+import System.FilePath ((</>))+import System.Wlog (Severity (..), logDebug, logError, setupLogging, termSeveritiesOutB)+import Universum -import           OrgStat.CLI                (CommonArgs, parseCommonArgs)-import           OrgStat.IO                 (readConfig)-import           OrgStat.Logic              (runOrgStat)-import           OrgStat.WorkMonad          (WorkConfig (..), runWorkM)+import OrgStat.CLI (CommonArgs, parseCommonArgs)+import OrgStat.IO (readConfig)+import OrgStat.Logic (runOrgStat)+import OrgStat.WorkMonad (WorkConfig (..), runWorkM)  data Args = Args     { configPath :: !FilePath@@ -52,7 +51,7 @@ main = do     args@Args{..} <- getNodeOptions =<< getHomeDirectory     let sev = if debug then Debug else Info-    setupLogging Nothing $ consoleOutB & lcTermSeverity .~ Just sev+    setupLogging Nothing $ termSeveritiesOutB (one sev)     config <- readConfig configPath     runWorkM (WorkConfig config commonArgs) $ do         logDebug $ "Just started with options: " <> show args