Python library and CLI tool to query the Open Exchange Rates API
8dede9d139
This makes sense for a couple of reasons: * The Beancount formatter has "less features" than the Ledger formatter, so this is a more "logical" organization of the hierarchy anyway. Note how this eliminates the need for the BeancountFormatter.__init__ override to turn off Ledger features. * Any future work will probably be focused on the Beancount formatter, so this reduces the amount of code you have to understand and hold in your head to do that. |
||
---|---|---|
oxrlib | ||
tests | ||
.gitignore | ||
LICENSE | ||
oxrlib_example.ini | ||
README.rst | ||
setup.cfg | ||
setup.py |
oxrlib ====== Introduction ------------ oxrlib provides a Python library and CLI tool to query the `Open Exchange Rates API <https://openexchangerates.org/>`_. It emphasizes support for rich data types throughout, and supports caching API results to the filesystem. It currently only supports OXR's "historical" API. Getting started with the CLI tool --------------------------------- oxrlib includes an ``oxrquery`` tool to access the OXR API directly from the command line. By default, it reads your OXR credentials and other common configuration from ``~/.config/oxrlib.ini``. Copy ``oxrlib_example.ini`` from the source to ``~/.config/oxrlib.ini``, then edit that file following the instructions in the comments. Run ``oxrquery --help`` for instructions to use the tool. Getting started with the library -------------------------------- Here's an example of using the Python library, complete with caching results:: from oxrlib import cache, loaders, rate filename_format = '{date}_{base}_rates.json' cache_writer = cache.CacheWriter(DIR_PATH, historical=filename_format) loader = loaders.LoaderChain() loader.add_loader(loaders.FileCache(DIR_PATH, historical=filename_format)) loader.add_loader(loaders.OXRAPIRequest(APP_ID_STRING)) with loader.historical(DATE, BASE_CODE_STRING) as json_response: hist_rate = rate.Rate.from_json_file(json_response) if loader.should_cache(): cache_writer.save_rate(hist_rate) # Rates are available from the hist_rate.rates dict. Running tests ------------- Run ``./setup.py test`` from your checkout directory.