Python library and CLI tool to query the Open Exchange Rates API
c9382a2604
Darnit, I wrote the tests first, and I wrote them right, and then I mixed up the ordering in the code, and somehow I convinced myself the code was the right and the tests were wrong. But no, I had the tests right, this is really what we want. This gets the output to follow the examples from our bookkeeping documentation. |
||
---|---|---|
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.