Skip to main content

Utility to fetch and add current ASX prices to one or more gnucash files.

Project description

GNUCASH-ASX-FETCH

This is a command line utility to fetch and update ASX share prices to one or more GnuCash XML files. It takes multiple path arguments: one of more GnuCash files, or directories. If a directory is given then it updates all the GnuCash files in that directory. It can not update any GnuCash files that are currently open so will generate an error message for those files. A new price entry is added for each ASX share existing in the file each time you run it. Open the GnuCash price database editor for a file to view, edit, or remove the new entries added.

For example, to update the share prices of all the ASX shares in all the GnuCash files in the current directory type:

$ gnucash-asx-fetch .

:warning: This utility overwrites your GnuCash file[s] so be sure to save copies at least the first time you try using it.

Note it only updates GnuCash XML files, not GnuCash sqlite files. It silently skips GnuCash backup and log files. This utility should work on any modern Linux platform and has been developed against GnuCash v4.4.

MOTIVATION

GnuCash uses the Finance::Quote module to update share prices but I have found it fragile over the short time I have been using GnuCash. E.g. At the time I created this utility, ASX price fetches via Finance::Quote have not worked for more than 3 months as per this bug.

Fetching prices from ASX is actually quite easy and this utility uses a simple approach. By merely requiring the user to not have the file open at the time the prices are updated, it can avoid the awkward interface with Finance::Quote and GnuCash completely, and merely write directly to the XML file.

If you like this utility then you may be interested in another utility I created to facilitate working with multiple GnuCash files.

USAGE

usage: gnucash-asx-fetch [-h] [-i] [-q] path [path ...]

Utility to fetch and add current ASX prices to one or more gnucash files.

positional arguments:
  path               directories or files to update

optional arguments:
  -h, --help         show this help message and exit
  -i, --ignore-open  silently ignore any files currently open
  -q, --quiet        suppress message output

See the latest documentation and code at https://github.com/bulletmark/gnucash-asx-fetch.

INSTALLATION

Python 3.6 or later is required.

Note gnucash-asx-fetch is on PyPI so you can just type the following to install or upgrade:

$ sudo pip3 install -U gnucash-asx-fetch

Arch Linux users can install gnucash-asx-fetch from the AUR. Alternately, do the following to install from the source repository.

$ git clone http://github.com/bulletmark/gnucash-asx-fetch
$ cd gnucash-asx-fetch

# Install globally ..
$ sudo pip3 install -U .

UPGRADE

$ cd gnucash-asx-fetch  # Source dir, as above
$ git pull

$ sudo pip3 install -U .

REMOVAL

$ sudo pip3 uninstall gnucash-asx-fetch

LICENSE

Copyright (C) 2020 Mark Blakeney. This program is distributed under the terms of the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at http://www.gnu.org/licenses/ for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gnucash-asx-fetch-1.3.tar.gz (5.2 kB view hashes)

Uploaded Source

Built Distribution

gnucash_asx_fetch-1.3-py3-none-any.whl (7.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page