penny-bin 0.6.2.0 → 0.8.0.0
raw patch · 7 files changed
+127/−30 lines, 7 filesdep ~containersdep ~multiargdep ~penny-lib
Dependency ranges changed: containers, multiarg, penny-lib, pretty-show, semigroups
Files
- doc/dependencies.dot +3/−0
- man/penny-fit.1 +31/−1
- man/penny.1 +66/−4
- penny-bin.cabal +19/−23
- penny-main.hs +6/−0
- penny-reconcile.hs +1/−1
- penny-reprint.hs +1/−1
doc/dependencies.dot view
@@ -19,5 +19,8 @@ Zinc -> Liberty; Zinc -> Lincoln; Zinc -> Shield;+ Wheat -> Steel;+ Wheat -> Lincoln;+ Wheat -> Copper; }
man/penny-fit.1 view
@@ -140,7 +140,37 @@ finds a match for a financial institution posting in this way, then it will assign a new U-number tag to the posting. If .B penny-fit-does not find a match, then it will create an entirely new transaction and append it to the end of your ledger.+does not find a match, then it will create an entirely new transaction+and append it to the end of your ledger.++If it is creating an entirely new transaction,+.B penny-fit+will attempt to give the new transaction the same account and payee+information that you have used for similar transactions in the+past. To do this,+.B penny-fit+will first search through the database to find the most recent+financial institution posting that has the same payee as the one of+the new transaction. If one is found,+.B penny-fit+then searches through the postings in your ledger file to find the one+that has the same U-number and account as the old financial+institution posting. If it is found,+.B penny-fit+will assign the payee name found on the posting in the ledger to the+new posting. Also, if the posting found in the ledger has exactly one+sibling posting,+.B penny-fit+will assign the same account name from that sibling to the new+sibling.++You can turn off this automatic assignment of information by using the+.I --no-auto+or +.I -n+option to the+.I merge+command. The result of .I merge
man/penny.1 view
@@ -256,10 +256,27 @@ .SS Operators Each of the options above is a single operand. If you have multiple-operands, you must join them together using operators. These-operators are specified below, from highest to lowest precedence. All+operands, you must join them together using operators. You may use+either infix or reverse polish notation when joining operators (infix+is the default.) When using the+.B --infix+or+.B --rpn+option, the option may appear anywhere within the posting filter+expression.+.+.TP+.B --infix+Use infix operators (default)+.+.TP+.B --rpn+Use reverse polish notation+.+.SS Infix Operators+These are the infix operators, from highest to lowest precedence. All operators are left associative.-+. .TP .BI "--open " expr " --close" Force precedence using parentheses. Enclose a complete expression@@ -290,7 +307,35 @@ or .I expr2 is true.-+.+.SS Reverse polish notation operators+.+When using RPN, each of the operands shown above pushes that operand+onto the stack. Each operand is a predicate; you can assemble these+predicates into larger predicates. Using the+.B --open+or+.B --close+options with RPN is an error.+.+.TP+.B --and+Pops two predicates from the top of the stack, creates a new predicate+which is true only if both predicates are true, and pushes the new+predicate onto the stack.+.+.TP+.B --or+Pops two predicates from the top of the stack, creates a new predicate+which is true if either predicate is true, and pushes the new+predicate onto the stack.+.+.TP+.B --not+Pops one predicate from the top of the stack, creates a new predicate+which is true if the origianl predicate is false, and pushes the new+predicate onto the stack.+. .SS Options affecting patterns These options affect how patterns are interpreted. The order of the@@ -337,6 +382,23 @@ .B --case-sensitive options. +.SH SHOWING EXPRESSIONS AND RESULTS+.+.TP+.B \-\-show\-expression+.+.P+Show the parsed posting filter expression.+.+.TP+.B \-\-verbose-filter+.+.P+Verbosely show the results of running the posting filter.+This will show you each posting, telling you whether the+posting filter accepted or rejected the posting and why.+.+. .SH REMOVING POSTINGS AFTER SORTING AND FILTERING .TP
penny-bin.cabal view
@@ -1,5 +1,5 @@ Name: penny-bin-Version: 0.6.2.0+Version: 0.8.0.0 Cabal-version: >=1.8 Build-Type: Simple License: BSD3@@ -97,14 +97,6 @@ . - * Uses no GHC extensions. However, the code is only tested under GHC- and for all practical purposes it will only run under GHC at this- time because it uses libraries such as Data.Text that are- available only under GHC. Despite this I expect I will continue to- avoid language extensions.-- .- * Tested using QuickCheck. The tests are available in the Git repository that also contains the main library. Not everything is tested, but the tests that exist so far have already rooted@@ -161,9 +153,13 @@ You can install this binary simply by typing "cabal install penny-bin", which will install this binary along with all the necessary dependencies. The penny-bin package also has all- documentation. You will want to start by reading the README file,- which will point you to additional documentation and how to install- it if you wish.+ documentation. Unfortunately running "cabal install" will not+ install the documentation, so you will need to find the downloaded+ archive (usually in+ "$HOME/.cabal/packages/hackage.haskell.org/penny-bin") and unpack it+ to see the documentation. You will want to start by reading the+ README file, which will point you to additional documentation and+ how to install it if you wish. extra-source-files: install-docs@@ -182,7 +178,7 @@ Executable penny Build-depends: base ==4.*,- penny-lib ==0.6.0.0+ penny-lib ==0.8.* Main-is: penny-main.hs GHC-Options: -Wall@@ -195,13 +191,13 @@ Executable penny-selloff Build-depends: base == 4.*,- penny-lib ==0.6.0.0,+ penny-lib ==0.8.*, explicit-exception ==0.1.*,- containers ==0.4.*,- semigroups ==0.8.*,+ containers ==0.5.*,+ semigroups ==0.9.*, text ==0.11.*, parsec ==3.1.*,- multiarg ==0.8.*,+ multiarg ==0.10.*, transformers ==0.3.* Main-is: penny-selloff.hs@@ -215,9 +211,9 @@ Executable penny-diff Build-depends: base ==4.*,- penny-lib ==0.6.0.0,+ penny-lib ==0.8.*, text ==0.11.*,- multiarg ==0.8.*,+ multiarg ==0.10.*, explicit-exception == 0.1.* Main-is: penny-diff.hs@@ -231,8 +227,8 @@ Executable penny-reprint Build-depends: base ==4.*- , penny-lib ==0.6.0.0- , pretty-show ==1.2.*+ , penny-lib ==0.8.*+ , pretty-show ==1.5.* , text ==0.11.* main-is: penny-reprint.hs@@ -243,9 +239,9 @@ Executable penny-reconcile Build-depends: base ==4.*- , penny-lib ==0.6.0.0+ , penny-lib ==0.8.* , text ==0.11.*- , multiarg ==0.8.*+ , multiarg ==0.10.* , explicit-exception ==0.1.* main-is: penny-reconcile.hs
penny-main.hs view
@@ -20,6 +20,12 @@ , colorToFile = False -- ^ Use colors when standard output is not a terminal? + , expressionType = Infix+ -- ^ Use Infix or RPN expressions for the posting filters and for+ -- the filters in the Postings report? Change to @RPN@ if you like+ -- that kind of thing (I find RPN easier to enter; if you're not+ -- familiar with it, you might become a convert.)+ , defaultScheme = Just schemeDark -- ^ Default color scheme. If Nothing, there is no default color -- scheme. If there is no default color scheme and the user does
penny-reconcile.hs view
@@ -85,7 +85,7 @@ ls <- case os of NeedsHelp -> putStrLn help >> exitSuccess DoIt ss -> return ss- led <- C.openStdin ls+ led <- C.open ls let led' = C.mapLedger (C.mapItem id id changeTransaction) led rend = fromJust $ C.ledger groupSpecs led' TIO.putStr rend
penny-reprint.hs view
@@ -24,7 +24,7 @@ main :: IO () main = do as <- getArgs- l <- C.openStdin as+ l <- C.open as case R.ledger groupSpecs l of Nothing -> error "could not render final ledger." Just x -> TIO.putStr x