Commit graph

57 commits

Author SHA1 Message Date
Brett Smith
71893ace4d tests: Historical tests use more flexible rate matching.
This lets the tests be more flexible about how much precision is used in
rates when appropriate, and makes them ready to parametrize for
Beancount.
2020-05-17 10:44:03 -04:00
Brett Smith
fb2114896d historical: Normalize class instantiation for formatters.
This will make them easier to extend with different price/cost rates,
and to add a Beancount formatter.
2020-05-16 16:56:29 -04:00
Brett Smith
80fd49a98a historical: Introduce --output-format option.
Beancount output will be added here.
2020-05-16 15:07:20 -04:00
Brett Smith
27dbe14b94 config: Accept a source date for displaying rates.
For output formats that can show both a cost and a price,
this will be used to distinguish them.
2020-05-16 14:17:29 -04:00
Brett Smith
9b6d562d46 tests: Stop calling fixtures directly.
Avoid deprecation warnings from pytest.
2020-05-06 14:48:27 -04:00
Brett Smith
a3cc41a5cf tests: Run with oxrlib's decimal context. 2017-12-31 10:04:37 -05:00
Brett Smith
3b732505fa main: Decimal context sets the state of all traps.
This commit started because I noticed in the decimal documentation that
BasicContext doesn't trap decimal.Subnormal, while oxrlib probably should.
The point of this function is to set all the parts of a context that oxrlib
should have to handle currency correctly and safely.  With that motivation,
it makes more sense to set all the traps exactly as we want them, rather
than selectively setting "important" ones: they're all important.
2017-12-31 09:03:05 -05:00
Brett Smith
cb17033279 config: Only try to load the default config file if it exists. 2017-09-07 10:00:56 -04:00
Brett Smith
f7a57ded86 historical: Add comments to explain the precision-finding code. 2017-07-06 10:17:08 -04:00
Brett Smith
d0f5f1547c config: Error out when historical arguments are ambiguous. 2017-06-29 17:18:47 -04:00
Brett Smith
b270db02e8 historical: Ledger conversions show enough rate precision to stay balanced. 2017-06-29 16:54:16 -04:00
Brett Smith
8ab2373ba1 config: Assume abbreviated dates are in the past. 2017-06-22 15:54:24 -04:00
Martin Michlmayr
419f52abe3 Fix typo in variable name 2017-06-13 09:24:18 -04:00
Brett Smith
97222c2f75 setup: New version for recent changes. 2017-06-09 13:22:37 -04:00
Brett Smith
936237eceb config: Nicer determination of default currency for converting/signing.
base defaults to USD more as an API restriction than anything else, so avoid
using it as a default setting.  Instead, use the user's books denomination
or locale setting.
2017-06-09 13:22:12 -04:00
Brett Smith
dfac0cf853 config: Improve wording consistency of date format help. 2017-06-09 13:14:06 -04:00
Brett Smith
baa2e883cd config: historical command accepts just two currency arguments.
This shows the rates between two currencies without converting a specific
amount.
2017-06-09 13:11:16 -04:00
Brett Smith
55f5833aa0 historical: Add a setting to denominate Ledger conversions.
This makes conversion output easier to add to ledgers directly.
2017-06-09 11:06:51 -04:00
Brett Smith
992c91fc90 config: Nicer implementation of date parsing.
Keeps less local state through the function, to reduce the risk of that
state getting inconsistent.
2017-06-08 12:12:49 -04:00
Brett Smith
385a492ae7 config: More flexible date parsing.
* Accept partial dates, filling in the current year and month as needed.
* Accept more separators.
2017-06-08 09:52:47 -04:00
Brett Smith
17ff9a8b71 setup.py: Add oxrlib.commands package. 2017-06-01 14:01:11 -04:00
Brett Smith
0b6edde60c README: Markup fixes throughout. 2017-05-22 11:24:43 -04:00
Brett Smith
c8000a8a74 config: Print usage if no subcommand is given. 2017-05-19 10:21:33 -04:00
Brett Smith
b1fda6a647 config: Touch up historical --help output throughout. 2017-05-19 10:05:53 -04:00
Brett Smith
9be9b07a8d historical: Add Ledger output formatting. 2017-05-18 13:49:05 -04:00
Brett Smith
5b7f2b92a1 rate: Make sure to parse ints as Decimal objects too. 2017-05-18 13:33:32 -04:00
Brett Smith
ec3b9e83f8 historical: Format amounts according to currency convention. 2017-05-17 17:38:45 -04:00
Brett Smith
84bc0c7e84 tests: Rename TestCacheFile to avoid pytest warnings. 2017-05-17 17:33:15 -04:00
Brett Smith
348b82e087 .gitignore: setup.py: Integrate pytest to run tests. 2017-05-17 17:22:39 -04:00
Brett Smith
a6e46b0cca Documentation: Add README and example config. 2017-05-17 16:23:56 -04:00
Brett Smith
63b0ad3c76 Configuration: Improve --help output throughout. 2017-05-17 15:34:51 -04:00
Brett Smith
5fb01151d1 .gitignore: Ignore egg-info. 2017-05-17 15:31:24 -04:00
Brett Smith
8e5cb0642f CacheWriter: Update tests for previous open file change. 2017-05-17 15:29:21 -04:00
Brett Smith
08840e6757 setup.py: Start script. 2017-05-17 14:42:22 -04:00
Brett Smith
cff18d9d96 LICENSE: Add license. 2017-05-17 14:40:50 -04:00
Brett Smith
b49356bcb6 __main__: Start module to run the tool. 2017-05-17 14:40:43 -04:00
Brett Smith
3b5a563ef6 historical: Write results to cache when appropriate. 2017-05-17 12:56:19 -04:00
Brett Smith
7ae8c359e0 CacheFile opens the file immediately.
This is necessary to work correctly with the error-catching logic of LoaderChain.
2017-05-17 12:52:37 -04:00
Brett Smith
cdc748c14f config: Fix type of path passed to cache classes. 2017-05-17 12:52:02 -04:00
Brett Smith
620816fe72 config: Fix date_from type return value. 2017-05-17 12:45:19 -04:00
Brett Smith
f9c045a63e historical: Switch to relative import. 2017-05-17 12:36:04 -04:00
Brett Smith
18f7ea7038 Configuration: Set up CacheWriter. 2017-05-17 12:29:50 -04:00
Brett Smith
351811bb30 LoaderChain: Add should_cache() method. 2017-05-17 12:27:20 -04:00
Brett Smith
08073f752b Configuration: Parse more conversion arguments for historical subcommand. 2017-05-17 11:32:05 -04:00
Brett Smith
667c214e91 historical: Add main code for historical subcommand. 2017-05-17 08:48:40 -04:00
Brett Smith
9d47238245 rate: Add Rate.convert method. 2017-05-16 12:26:32 -04:00
Brett Smith
0120e4ce5a config: Begin Configuration class. 2017-05-16 09:19:37 -04:00
Brett Smith
6a416b162d cache: Add CacheWriter.save_rate method. 2017-05-12 13:48:21 -04:00
Brett Smith
2d482bb7b0 cache: Add CacheWriter class. 2017-05-12 13:27:45 -04:00
Brett Smith
eba27c16ae cache: Refactor out CacheBase from FileCache.
Now we can implement CacheWriter from the same base.
2017-05-12 11:58:35 -04:00