[GNC] Help with Python interface

Jediator jediator at artemisspace.com
Mon Apr 14 00:21:25 EDT 2025


Piecash only works with older version of GNC database schema (version 
3.0) and it is not updated for years.  Not sure if it would work with 
the latest GNC 5.x schema.  I assume any major release would have some 
schema changes.

-- ND

On 4/13/25 10:55 PM, Geoff wrote:
> Hi Sam
>
> If you haven't done so already, I suggest you switch your storage 
> format from XML to SQL - SQLite works very well.
>
> Then have a good read of the PieCash libraries:
>
> https://github.com/sdementen/piecash
>
> Then use that as a basis to roll your own SQL to search etc.  It's 
> quite straightforward once you get your head around the (intriguing) 
> GnuCash table structures.
>
> I can't help you with the reconciliation logic.
>
> Good luck.
>
>
> Geoff
> =====
>
> On 13/04/2025 9:11 pm, Sam Bull wrote:
>> I'm trying to figure out how to use the Python bindings, but the 
>> documentation is almost
>> non existent. One of the suggestions is to use help() where 
>> everything is documented as
>> "wrapper method for function", so I don't see how that is useful at 
>> all...
>>     (Also, the docs tell me to contact gnucash-devel for further 
>> help, but my email
>> was rejected telling me to contact gnucash-user instead...)
>>
>> I'm trying to import transactions from bank accounts through a custom 
>> API. I can create a
>> session and find the account I want to import transactions to, and I 
>> have some sample code
>> that may work to insert new transactions.
>>
>> I think the things I still need, but can't seem to figure out are:
>>
>>     A way to search for transactions (or splits maybe?) in the 
>> account. I see a method to
>>     search by description, but will probably want to search by a 
>> combination of notes, date
>>     and amount. I could also implement the search myself if I could 
>> figure out a way to get
>>     all (recent) transactions for an account.
>>          This should allow me to avoid importing transactions that 
>> already exist, both
>>     created by the import previously (maybe storing a unique ID in 
>> the notes) or matching
>>     up to a manually created transaction on date/amount.
>>          This can probably also allow the script to learn what the 
>> other splits should be.
>>     e.g. By looking at previous transactions to the same entity, it 
>> can automatically set
>>     the new transactions to point to the same account.
>>         It would probably also make sense to be able to reconcile 
>> transactions. I'm not clear
>>     on what APIs/steps would be needed to reconcile fully. e.g. Can I 
>> initiate a
>>     reconciliation using the account balance and ensuring that the 
>> new account balance in
>>     gnucash matches at the end of the reconciliation, all in a script?
>>
>> Thanks,
>> Sam
>>
>>
>> _______________________________________________
>> gnucash-user mailing list
>> gnucash-user at gnucash.org
>> To update your subscription preferences or to unsubscribe:
>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>> -----
>> Please remember to CC this list on all your replies.
>> You can do this by using Reply-To-List or Reply-All.
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> To update your subscription preferences or to unsubscribe:
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.



More information about the gnucash-user mailing list