lib,cli: Export Text.Tabular from Text.Tabular.AsciiWide, clean up import lists.

This commit is contained in:
Stephen Morgan 2021-04-22 16:25:02 +10:00 committed by Simon Michael
parent fc7df75f43
commit 0e59fee251
9 changed files with 39 additions and 29 deletions

View File

@ -84,7 +84,6 @@ import Hledger.Data.Dates
import Hledger.Data.Posting import Hledger.Data.Posting
import Hledger.Data.Amount import Hledger.Data.Amount
import Hledger.Data.Valuation import Hledger.Data.Valuation
import Text.Tabular
import Text.Tabular.AsciiWide import Text.Tabular.AsciiWide
sourceFilePath :: GenericSourcePos -> FilePath sourceFilePath :: GenericSourcePos -> FilePath

View File

@ -46,8 +46,7 @@ import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.Builder as TB import qualified Data.Text.Lazy.Builder as TB
--import System.Console.CmdArgs.Explicit as C --import System.Console.CmdArgs.Explicit as C
--import Lucid as L --import Lucid as L
import Text.Tabular as T import Text.Tabular.AsciiWide as Tab
import Text.Tabular.AsciiWide as T
import Hledger.Data import Hledger.Data
import Hledger.Utils import Hledger.Utils
@ -293,8 +292,8 @@ budgetReportAsTable
(PeriodicReport spans rows (PeriodicReportRow _ coltots grandtot grandavg)) = (PeriodicReport spans rows (PeriodicReportRow _ coltots grandtot grandavg)) =
addtotalrow $ addtotalrow $
Table Table
(T.Group NoLine $ map Header accts) (Tab.Group NoLine $ map Header accts)
(T.Group NoLine $ map Header colheadings) (Tab.Group NoLine $ map Header colheadings)
(map rowvals rows) (map rowvals rows)
where where
colheadings = map (reportPeriodName balancetype_ spans) spans colheadings = map (reportPeriodName balancetype_ spans) spans

View File

@ -61,8 +61,8 @@ import Text.Printf (printf)
import Hledger.Utils.Parse import Hledger.Utils.Parse
import Hledger.Utils.Regex (toRegex', regexReplace) import Hledger.Utils.Regex (toRegex', regexReplace)
import Text.Tabular (Header(..), Properties(..)) import Text.Tabular.AsciiWide
import Text.Tabular.AsciiWide (Align(..), TableOpts(..), textCell, renderRow) (Align(..), Header(..), Properties(..), TableOpts(..), textCell, renderRow)
import Text.WideString (charWidth, strWidth) import Text.WideString (charWidth, strWidth)

View File

@ -76,8 +76,8 @@ import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.Builder as TB import qualified Data.Text.Lazy.Builder as TB
import Hledger.Utils.Test ((@?=), test, tests) import Hledger.Utils.Test ((@?=), test, tests)
import Text.Tabular (Header(..), Properties(..)) import Text.Tabular.AsciiWide
import Text.Tabular.AsciiWide (Align(..), TableOpts(..), textCell, renderRow) (Align(..), Header(..), Properties(..), TableOpts(..), renderRow, textCell)
import Text.WideString (WideBuilder(..), wbToText, wbUnpack, charWidth, textWidth) import Text.WideString (WideBuilder(..), wbToText, wbUnpack, charWidth, textWidth)

View File

@ -4,7 +4,22 @@
{-# LANGUAGE CPP #-} {-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE OverloadedStrings #-}
module Text.Tabular.AsciiWide where module Text.Tabular.AsciiWide
( module Text.Tabular
, TableOpts(..)
, render
, renderTable
, renderTableB
, renderRow
, renderRowB
, Cell(..)
, Align(..)
, emptyCell
, textCell
, cellWidth
) where
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Data.Default (Default(..)) import Data.Default (Default(..))

View File

@ -268,7 +268,6 @@ import qualified Data.Text.Lazy.Builder as TB
import Data.Time (fromGregorian) import Data.Time (fromGregorian)
import System.Console.CmdArgs.Explicit as C import System.Console.CmdArgs.Explicit as C
import Lucid as L import Lucid as L
import Text.Tabular as Tab
import Text.Tabular.AsciiWide as Tab import Text.Tabular.AsciiWide as Tab
import Hledger import Hledger

View File

@ -34,7 +34,6 @@ import Hledger
import Hledger.Read.CsvReader (CSV, CsvRecord, printCSV) import Hledger.Read.CsvReader (CSV, CsvRecord, printCSV)
import Hledger.Cli.CliOptions import Hledger.Cli.CliOptions
import Hledger.Cli.Utils import Hledger.Cli.Utils
import Text.Tabular (Header(..), Properties(..))
import Text.Tabular.AsciiWide import Text.Tabular.AsciiWide
registermode = hledgerCommandMode registermode = hledgerCommandMode

View File

@ -25,8 +25,7 @@ import qualified Data.Text as T
import qualified Data.Text.Lazy.IO as TL import qualified Data.Text.Lazy.IO as TL
import System.Console.CmdArgs.Explicit as CmdArgs import System.Console.CmdArgs.Explicit as CmdArgs
import Text.Tabular as Tbl import Text.Tabular.AsciiWide as Tab
import Text.Tabular.AsciiWide as Ascii
import Hledger import Hledger
import Hledger.Cli.CliOptions import Hledger.Cli.CliOptions
@ -145,14 +144,14 @@ roi CliOpts{rawopts_=rawopts, reportspec_=rspec@ReportSpec{rsOpts=ReportOpts{..}
, T.pack $ printf "%0.2f%%" $ smallIsZero twr ] , T.pack $ printf "%0.2f%%" $ smallIsZero twr ]
let table = Table let table = Table
(Tbl.Group NoLine (map (Header . T.pack . show) (take (length tableBody) [1..]))) (Tab.Group NoLine (map (Header . T.pack . show) (take (length tableBody) [1..])))
(Tbl.Group DoubleLine (Tab.Group DoubleLine
[ Tbl.Group SingleLine [Header "Begin", Header "End"] [ Tab.Group SingleLine [Header "Begin", Header "End"]
, Tbl.Group SingleLine [Header "Value (begin)", Header "Cashflow", Header "Value (end)", Header "PnL"] , Tab.Group SingleLine [Header "Value (begin)", Header "Cashflow", Header "Value (end)", Header "PnL"]
, Tbl.Group SingleLine [Header "IRR", Header "TWR"]]) , Tab.Group SingleLine [Header "IRR", Header "TWR"]])
tableBody tableBody
TL.putStrLn $ Ascii.render prettyTables id id id table TL.putStrLn $ Tab.render prettyTables id id id table
timeWeightedReturn showCashFlow prettyTables investmentsQuery trans mixedAmountValue (OneSpan spanBegin spanEnd valueBeforeAmt valueAfter cashFlow pnl) = do timeWeightedReturn showCashFlow prettyTables investmentsQuery trans mixedAmountValue (OneSpan spanBegin spanEnd valueBeforeAmt valueAfter cashFlow pnl) = do
let valueBefore = unMix valueBeforeAmt let valueBefore = unMix valueBeforeAmt
@ -213,12 +212,12 @@ timeWeightedReturn showCashFlow prettyTables investmentsQuery trans mixedAmountV
unitPrices = add initialUnitPrice unitPrices' unitPrices = add initialUnitPrice unitPrices'
unitBalances = add initialUnits unitBalances' unitBalances = add initialUnits unitBalances'
TL.putStr $ Ascii.render prettyTables id id T.pack TL.putStr $ Tab.render prettyTables id id T.pack
(Table (Table
(Tbl.Group NoLine (map (Header . showDate) dates)) (Tab.Group NoLine (map (Header . showDate) dates))
(Tbl.Group DoubleLine [ Tbl.Group SingleLine [Header "Portfolio value", Header "Unit balance"] (Tab.Group DoubleLine [ Tab.Group SingleLine [Header "Portfolio value", Header "Unit balance"]
, Tbl.Group SingleLine [Header "Pnl", Header "Cashflow", Header "Unit price", Header "Units"] , Tab.Group SingleLine [Header "Pnl", Header "Cashflow", Header "Unit price", Header "Units"]
, Tbl.Group SingleLine [Header "New Unit Balance"]]) , Tab.Group SingleLine [Header "New Unit Balance"]])
[ [value, oldBalance, pnl, cashflow, prc, udelta, balance] [ [value, oldBalance, pnl, cashflow, prc, udelta, balance]
| value <- map showDecimal valuesOnDate | value <- map showDecimal valuesOnDate
| oldBalance <- map showDecimal (0:unitBalances) | oldBalance <- map showDecimal (0:unitBalances)
@ -243,10 +242,10 @@ internalRateOfReturn showCashFlow prettyTables (OneSpan spanBegin spanEnd valueB
when showCashFlow $ do when showCashFlow $ do
printf "\nIRR cash flow for %s - %s\n" (showDate spanBegin) (showDate (addDays (-1) spanEnd)) printf "\nIRR cash flow for %s - %s\n" (showDate spanBegin) (showDate (addDays (-1) spanEnd))
let (dates, amounts) = unzip totalCF let (dates, amounts) = unzip totalCF
TL.putStrLn $ Ascii.render prettyTables id id id TL.putStrLn $ Tab.render prettyTables id id id
(Table (Table
(Tbl.Group NoLine (map (Header . showDate) dates)) (Tab.Group NoLine (map (Header . showDate) dates))
(Tbl.Group SingleLine [Header "Amount"]) (Tab.Group SingleLine [Header "Amount"])
(map ((:[]) . T.pack . showMixedAmount) amounts)) (map ((:[]) . T.pack . showMixedAmount) amounts))
-- 0% is always a solution, so require at least something here -- 0% is always a solution, so require at least something here

View File

@ -27,7 +27,7 @@ import Data.Time.Calendar (Day, addDays)
import System.Console.CmdArgs.Explicit as C import System.Console.CmdArgs.Explicit as C
import Hledger.Read.CsvReader (CSV, printCSV) import Hledger.Read.CsvReader (CSV, printCSV)
import Lucid as L hiding (value_) import Lucid as L hiding (value_)
import Text.Tabular as Tab import Text.Tabular.AsciiWide as Tab
import Hledger import Hledger
import Hledger.Cli.Commands.Balance import Hledger.Cli.Commands.Balance