[GNC-dev] Finance::Quote get_features() and GnuCash

Vincent Lucarelli vincent.lucarelli at gmail.com
Sat Jan 21 11:43:12 EST 2023


Hi,

We have an experimental function in Finance::Quote called get_features() that returns a perl hash that provides information on 
quote_modules - list of sources for stock quotes + a list of any required parameters (such as an API key) the module requires
quote_methods - a single module or list of modules to try in a specific order
currency_modules - list of sources for currency information if FQ is required to convert quotes from one currency to another

The current version of FQ just uses AlphaVantage for currency conversion and users must specify an AlphaVantage API through either an environment variable or through GnuCash Settings.

With this experimental FQ function, GnuCash could 
Solicit API keys in Settings to centralize where users setup FQ
Expose currecy_modules to users so they could use alternatives to AlphaVantage
Reduce issues on platforms like macOS where setting GnuCash environment variables is not straight-forward nor survivors GnuCash upgrades

It looks like there are three touch points for FQ in GnuCash
GUI: Tools > Security Editor > Add
I’m not clear on what the “Unknown” list is, but the Single is for “modules” and Multiple is for “methods”
One approach to simplify this is to just have a list of “methods” and in the list indicate which modules the method uses
GUI: gnucash > Settings… > Online Quotes
This currently only asks for an AlphaVantage API Key
The additional information from get_features() would allow expanding these preferences to include any API key + control over currency conversion
finance-quote-wrapper
The API key info + currency preferences from the GUI will need to be routed through here (I think?)
Is this also used to populate the lists in Security Editor

Potential Changes to GunCash (listed in the order I think I would try to implement)
Expand Settings… > Online Quotes to solicit all FQ parameters & route info to finance-quote-wrapper
Use information from get_features to better populate Security Editor > Add and potential simplify GUI
Expand Settings… > Online Quotes to expose currency features to users

Looking for missing touch points, feedback on potential changes, and pointers to GnuCash-FQ interactions that are more complicated than I presented here.

Best,

Vince


More information about the gnucash-devel mailing list