| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
- Copy amount quantity before rounding.
- Fix `amount_t::roundto(int)`.
- Transform `balance/testRound` into `balance/testRoundto`.
It was a mix of `round` and `roundto` operation with unclear purpose
and was relying on `in_place_roundto` behavior modifying all copies.
There is no unit tests for balance `round` and `unround` any more.
Closes #2362
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
Co-authored-by: Alexis Hildebrandt <afh@surryhill.net>
|
|
|
| |
Co-authored-by: Alexis Hildebrandt <afh@surryhill.net>
|
| |
|
|
|
|
|
| |
Also, support matching provided hashes against a prefixed of the generated
hash.
|
|
|
|
|
| |
At the moment only "sha512" or "SHA512" is accepted, but this could extend to
more algorithms in the future.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following details of a posting contribute to its hash:
fullname of account
string representation of amount
Each posting hashes contributes to the transaction hash, which is compromised
of:
previous transaction’s hash (as encountered in parsing order)
actual date
optional auxiliary date
optional code
payee
hashes of all postings
Note that this means that changes in the “code” or any of the comments
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Multiprecision rational created from a double value may have large power
of 2 denominator since fractional decimal numbers can not be represented
as binary floating point numbers. It leads to failed assertion when
result is compared to a value converted directly from strings.
Use integer multiprecision arithmetics to round numbers to ensure
proper denominator. Inspired by python gmpy2 package
<https://github.com/aleaxit/gmpy/blob/3e4564ae9d/src/gmpy2_mpq_misc.c#L315>
The change makes `roundto` symmetric for positive/negative arguments.
Halves are rounded to nearest even. Rounded away from zero are discussed
in #1663 and it may be achieved with minimal modification.
- See #2329
- Closes #1983
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the account name is longer than the --account-width (default 36),
the amounts stop aligning:
2023/01/01 Transaction with long account names
Assets:Very:Long:Account:Name:That:Will:Push:The:Amount -10 ABC
Assets:Another:Long:Account:Name:That:Will:Push:The:Amount -10 ABC
Expenses:Short 20 ABC
One can set a larger --account-width, but that is not a great solution
for cases where you have only a few accounts with problematically long
names. Instead, keep the current account width wherever possible, but
when an account name is longer than the account width, account for that
and still align the values:
2023/01/01 Transaction with short account names
Assets:Short -10 ABC
Assets:Short -10 ABC
Expenses:Short 20 ABC
2023/01/01 Transaction with long account names
Assets:Very:Long:Account:Name:That:Will:Push:The:Amount -10 ABC
Assets:Another:Long:Account:Name:That:Will:Push:The:Amount -10 ABC
Expenses:Short 20 ABC
This is similar to hledger's behavior.
|
| |
|
|
|
|
|
|
| |
as "the global configuration variable Py_UnbufferedStdioFlag was
deprecated in Python 3.12 and using PyConfig.buffered_stdio is
recommended instead." — https://peps.python.org/pep-0741/
|
|
|
|
|
|
|
| |
Part of the expr_t::compile() process is to store the current scope, but
In post_t::add_to_value that scope is temporary and on the stack.
Restore the original context after that process is complete.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add failing test for use case
TBH I don't know what I'm doing here, but this seems to fail for the
right reasons enough to reflect the parser bug here.
* Append to the ident on a closing brace ')'
When parsing the automated rule, a scanner reads the line left-to-right
char-by-char. The default behaviour is to append the char under the
cursor to some `ident` string. When the cursor is on a ')', it skips the
default handling and switches into some special handling: it tries to
test the string it's reading if it's one of the keywords it knows, to
select which type of token just got scanned. If what was scanned is not
a known token, it defaults to `token_t::TERM` and returns a new token
with the currently accumulated `ident` as a `token_t::TERM`. Issue is,
since it skipped the appending to do some custom handling, the
`token_t::TERM` will always be without its closing brace. The scanner
needs to append the character under the cursor if it's falling through
to default processing.
* fix test case
- ensure proper spacing for the posting to have an amount
- ensure the posting balances against an account
- the meaning of the number after `->` is the exit code
* undo wrong approach
* consume_next if unbalanced_braces
* how this can be extended
|
|
|
|
| |
Signed-off-by: Michael Cho <michael@michaelcho.dev>
|
| |
|
| |
|
|
|
|
| |
being deprecated as of C++11
|
|
|
|
|
|
|
|
|
|
|
|
| |
The manpage documents `=regex` as equivalent to the `note regex` query
syntax, but the former does not actually work as the parser only handles
an equals sign in the case of `tag type=dining` syntax, and doesn't
handle the case where an equals sign starts a note query.
Fixing this does break queries like `tag type = dining` with spaces
around the equals sign, but that syntax was not intended or documented.
Closes: #2275
|
| |
|
|\
| |
| | |
cmake: Replace add_defitions with superseding alternatives
|
| | |
|
|\ \
| | |
| | | |
Improve support for libedit and readline
|
| |/ |
|
|\ \
| | |
| | | |
cmake: Add -fPIC to compile flags
|
| |/
| |
| |
| |
| |
| | |
when building ledger cli.
Fixes #1913
|
|\ \
| |/
|/| |
Fix compilation errors with NO_ASSERT
|
| | |
|
|\ \
| |/
|/| |
Improve web docs
|
| |
| |
| |
| | |
using pydoc when building web docs.
|
|/
|
|
| |
Closes #2227
|
|\
| |
| | |
Fix bucket transactions with reg --related
|
| |
| |
| |
| |
| |
| | |
This adds a new item flag, `ITEM_INFERRED`, that differentiates
generated items from bucket items. This makes them show up as
related items in reports.
|
|\ \
| |/
|/| |
Cleanup system defines
|
| | |
|
| | |
|
| | |
|
| | |
|