summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* use system FindPython if newerAndy Clayton2020-05-186-2/+6
| | | | | Avoid needing to keep our copy updated and only keep it as a fallback for when system cmake is not new enough.
* Fix some typosMartin Michlmayr2020-05-163-3/+3
|
* Fix: library path issueHenrik Pingel2020-05-131-0/+1
|
* docs: mark expressions as suchMartin Michlmayr2020-05-121-3/+3
|
* docs: fix definition of format string "d"Martin Michlmayr2020-05-111-1/+1
|
* docs: add has_meta() to the manualMartin Michlmayr2020-05-111-0/+5
|
* docs: add description for "tag regex"Martin Michlmayr2020-05-111-0/+1
|
* docs: fix some typosMartin Michlmayr2020-05-113-4/+4
|
* docs: add missing parameters for has_meta and metaMartin Michlmayr2020-05-111-2/+2
|
* Improve testcase for issue #1894 slightlyMartin Michlmayr2020-05-091-3/+8
|
* Add regression tests for issue #1894Rahix2020-05-092-0/+37
| | | | | | Add tests for wrong behavior caused by commit 49b07a1c1948 ("Correction to the way parens are parsed in query expressions") which was reverted with commit 869302ae9ce3. The bug report was issue #1894.
* Revert "Correction to the way parens are parsed in query expressions"John Wiegley2020-05-072-47/+9
| | | | This reverts commit 49b07a1c19489547b859d61fbc5c240aff224dda.
* Improve conditional for exclusive optionsMartin Michlmayr2020-05-071-1/+1
|
* Release 3.2.0Martin Michlmayr2020-05-013-6/+6
|
* Update NEWS for 3.2Martin Michlmayr2020-05-011-5/+35
|
* Remove python/server.py and minified jqueryMartin Michlmayr2020-04-3015-614/+0
| | | | | | | | | | | | python/server.py is currently broken. Moreover, it uses jquery and we distribute a minified jquery under python/res. Some distros don't like minified code without the full source code due to license concerns. Since python/server.py is broken and not very useful, let's just remove it, which in turns let's us remove the minified jquery. Fixes #1759
* update macports dependencies for python 3Andy Clayton2020-04-292-4/+4
|
* remove +universal for macports instructionsAndy Clayton2020-04-291-3/+3
| | | | | Missed the readme in a413a072. +universal does not seem to work on recent mac versions.
* Remove contrib/ParseCcStmtMartin Michlmayr2020-04-283-353/+0
| | | | | | | This tool has limited usefulness and depends on CSVReader.cs whose license is not 100% clear. Fixes #1758
* Ensure that apply directives have an argumentMartin Michlmayr2020-04-272-0/+22
| | | | | | | | The directive `apply account` and similar directives (fixed, year...) require an argument. Ensure that an argument is given. Fixes #553 Fixes #1854
* Fix buffer overflow when evaluating pricing dateSarah Jamie Lewis2020-04-271-0/+4
|
* Increase the error display text limitJohn Wiegley2020-04-261-1/+1
|
* Add two (for the moment undocumented) functions:John Wiegley2020-04-232-0/+25
| | | | | | | | | | | | | | | | | | | | - commodity_price(NAME, DATE) - set_commodity_price(NAME, DATE) Using these two I am able to compute rate of return over a period of transactions, taking additional deposits and withdrawals into account, using the following automated transactions: P 2019-12-31 12:00:00 ROI $1.00 2020-01-01 Start of record (ROI) 0 ROI = expr date >= [2020/01/01] && account =~ /Broker:Cash$/ and any(account =~ /Assets:Checking/) (ROI) (1 ROI * (amount / commodity_price(1 ROI, date))) = expr date >= [2020/01/01] && account =~ /:Capital:/ (ROI) (set_commodity_price(1 ROI, date, ((commodity_price(1 ROI, date) * account("ROI").amount) - amount) / account("ROI").amount) || 0 ROI)
* fix CI with brew changing to python 3.8Andy Clayton2020-04-091-0/+2
| | | | Brew changed boost-python3 to 3.8 but that isn't on the path by default.
* Update URL for ISO codesMartin Michlmayr2020-04-081-1/+1
|
* fix: Fix #543 by tracking an account's real balanceDaraul2020-04-058-7/+127
| | | | | | | | | | | | | | Without these changes, whether an account's balance is virtual or real is not considered when asserting it's balance. This lead to situations where the user must consider their virtual postings when attemping to assert the real balance of the account. See test/regress/543_a.test for that testcase, taken from the original issue. This commit also includes other, fringe, situations that I noticed while working on the fix. It essentially just adds a separate attribute to the account class(?) that hold's the account's "real" balance, which is only updated when the user attempts an assertion on a real account. The virtual account's balance is updated the way it always was.
* fix macports dependencies on 10.14+Andy Clayton2020-04-041-8/+8
| | | | | | | | | | 10.14+ does not support universal builds: Error: python27 cannot be installed for the configured universal_archs 'x86_64 i386' because the arch(s) 'i386' are not supported. From https://trac.macports.org/ticket/57369#comment:6 You just can't install ports universal on Mojave, so don't try to do so. Don't specify +universal on the command line
* Make explicit option a no-opCandyAngel2020-04-037-33/+8
| | | | Fixes #1877
* use built-in cmake precompiled header support when availableAndy Clayton2020-04-022-3/+13
| | | | | | | | | | | | | Ledger supports precompiling headers as a build speed optimization. This is provided via a custom add_pch_rule macro. Similar functionality is now built-in to CMake starting with the 3.16 release in November 2019. Let's use this when available to fix #1774 and start towards not needing to maintain our own implementation. I originally considered removing the macro fallback but in my tests it saves enough build time that I think it is worth keeping for now. Fixes #1774
* Document --average-lot-prices optionMartin Michlmayr2020-03-312-0/+7
|
* Update python-dev dependencyMartin Michlmayr2020-03-281-2/+2
| | | | | Update python-dev dependency, although arguably it could be dropped since libboost-python-dev depends on it already.
* Update default.nix to match more closely what nixpkgs is usingJohn Wiegley2020-03-271-24/+33
|
* Update default.nix to match what nixpkgs is usingJohn Wiegley2020-03-271-19/+23
|
* Look up annotated amounts within balances by their displayed nameJohn Wiegley2020-03-272-2/+35
|
* Compare price annotations using their textual renderingJohn Wiegley2020-03-271-1/+3
|
* Add an assertion to src/xact.ccJohn Wiegley2020-03-271-0/+2
|
* Simple whitespace fixJohn Wiegley2020-03-271-1/+1
|
* Add link to Babel documentationMartin Michlmayr2020-03-271-3/+4
| | | | Fixes #1690
* require passing Python3 CIAndy Clayton2020-03-271-4/+0
|
* py3: ensure python output is not lostAndy Clayton2020-03-263-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unbuffer python's stdio to avoid output getting stuck in buffer when stdout is not a TTY. Normally buffers are flushed by `Py_Finalize` but Boost has a long-standing issue preventing the proper shutdown of the interpreter with `Py_Finalize` when embedded [1]. This applies the same fix as 139beba but to any ledger usage rather than only the test suite. I removed `PYTHONUNBUFFERED=1` from tests as there is no expectation that users should need to have this set for ledger to function. For example without this fix piping ledger into cat usually loses any output (unless the output is large enough to cause the buffer to flush): $ ./ledger -f "test/baseline/feat-value_py3.test" reg <class 'bool'> True [...] $ ./ledger -f "test/baseline/feat-value_py3.test" reg | cat $ Interestingly `--verify` causes `python_interpreter_t` to be destroyed -- it doesn't appear to be otherwise -- which does call `Py_Finalize`. As expected this fixes the issue but can also crash due to the boost issue mentioned above: $ ./ledger -f "test/baseline/feat-value_py3.test" --verify reg <class 'bool'> True [...] Segmentation fault (core dumped) $ ./ledger -f "test/baseline/feat-value_py3.test" --verify reg | cat <class 'bool'> True [...] $ 1. https://www.boost.org/doc/libs/1_62_0/libs/python/doc/html/tutorial/tutorial/embedding.html
* py3: fix builtin ledger module for python commandAndy Clayton2020-03-261-13/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With python3 the `python` ledger command wound up loading the ledger module shared library rather than using the builtin module as intended. This resulted in duplicated initialization and crashing on cleanup. It was also visible as duplicate converter warnings when importing ledger: $ ./ledger --no-pager python Python 3.7.5 (default, Nov 20 2019, 09:21:52) [...] >>> import ledger /usr/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: to-Python converter for boost::posix_time::ptime already registered; second conversion method ignored. [...] /usr/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: to-Python converter for ledger::xact_t already registered; second conversion method ignored. [...] >>> ledger <module 'ledger' from '/home/q/src/ledger/ledger.so'> >>> exit() Segmentation fault (core dumped) After this change: Python 3.7.5 (default, Nov 20 2019, 09:21:52) [...] >>> import ledger >>> ledger <module 'ledger' (built-in)> >>> exit() $ Switches to PyImport_AppendInittab from python::detail::init_module because 1) that is what the boost docs and examples show and 2) init_module appears to be undocumented and not intended for outside use. Fixes #1867
* fix python3 command (argv) wchar_t conversionAndy Clayton2020-03-261-4/+6
| | | | | | | | | | Ensure strings passed to Py_Main have a terminating null character by including the extra character allocated for terminating null in the size passed to mbstowcs. Fix argv index so all arguments are not copied to argv[0]. Fixes potential buffer overflow due to passing argv[0] as destination with argv[i + 1] src and size to mbstowcs.
* Revert expected test time value to correct valueAndy Clayton2020-03-251-1/+1
| | | | | | This was changed to be specific to the author's local TZ in 139beba. With the test TZ override fixed, revert this back to the value that is correct across all environments (including travis).
* fix setting TZ in testsAndy Clayton2020-03-252-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was regressed in 139beba which set `PYTHONUNBUFFERED` to fix other test issues. When setting multiple environment variables in this way they need to be delimited with semicolons rather than spaces. As it is `PYTHONUNBUFFERED` is being set to `1 TZ=America/Chicago`. The CMake docs are not as clear about this as they probably should be. This can be verified by throwing together a CTestTestfile.cmake: add_test(incorrect_env "printenv" "PYTHONUNBUFFERED" "TZ") set_tests_properties(incorrect_env PROPERTIES ENVIRONMENT "PYTHONUNBUFFERED=1 TZ=America/Chicago") add_test(correct_env "printenv" "PYTHONUNBUFFERED" "TZ") set_tests_properties(correct_env PROPERTIES ENVIRONMENT "PYTHONUNBUFFERED=1;TZ=America/Chicago") When run with `ctest -V`: 1: Test command: /usr/bin/printenv "PYTHONUNBUFFERED" "TZ" 1: Environment variables: 1: PYTHONUNBUFFERED=1 TZ=America/Chicago 1: Test timeout computed to be: 10000000 1: 1 TZ=America/Chicago 1/2 Test #1: incorrect_env ....................***Failed 0.00 sec test 2 Start 2: correct_env 2: Test command: /usr/bin/printenv "PYTHONUNBUFFERED" "TZ" 2: Environment variables: 2: PYTHONUNBUFFERED=1 2: TZ=America/Chicago 2: Test timeout computed to be: 10000000 2: 1 2: America/Chicago 2/2 Test #2: correct_env ...................... Passed 0.00 sec
* docs: mention ! as an alternative to notMartin Michlmayr2020-03-191-1/+1
|
* docs: avoid confusion about types of operatorsMartin Michlmayr2020-03-191-1/+1
| | | | Fixes #1868
* Update branch informationMartin Michlmayr2020-03-111-3/+1
| | | | Thanks to Daraul Harris for pointing out this out-of-date info.
* Specify namespace of uintmax_takater2020-03-033-6/+6
| | | | | | | This fixes #1833 for me. @jwiegley said it's reasonable change, and nobody else took action so here it goes. The patch is the same as proposed originally, modulo whitespace.
* Allow building dependencies on ubuntu-eoanDaraul2020-01-221-1/+18
|
* fix #1850: segfault when using ledger printTobias Pankrath2020-01-081-1/+1
|