Python library and CLI tool to query the Open Exchange Rates API
3b732505fa
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. |
||
---|---|---|
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.