Versions
- 1.4.0 (September 8, 2025)
Updated XML parsing to use iterparse to improve performance.
Fixed a bug in Transaction::get_balance_at_transaction. The function wasn’t including the amount of the transaction you specifie,d just everything leading up to it. It now also calls abs().
- Introduced new methods to the Budget class.
all_periods applies an amount to a given account in the budget over all periods using the indicated action.
estimate estimates the cost for each recurrence period, using the average if specified.
get_budget_accounts filters the given accounts to identify those that are associated with the budget.
get_period_amount gets the period amount of a specific account and index.
set_period_amount sets the amount for a specific period in a specific account.
get_period_index determines the index of the recurrence period that contains the specified date.
clear clears all or specified values based on account and/or index.
- 1.3.0 (April 16, 2025)
Fixed a bug in the Account equality operator: Should be seeing if “other” is an Account, not “object”. Also, the comparison was silently failing, so changed it to raise a NotImplementedError exception.
#35: Generate a py.typed file during packaging process
#36: Modify any calls that use a string path to also accept PathLike.
#33: Add LINQ-like searching for transactions
Updated type-hints to use built-ins instead of the typing module.
- 1.2.0 (December 20, 2024)
BREAKING CHANGE: Changed supported Python versions to 3.9+.
#22: Add get_cleared_balance to TransactionManager.
#23: Add get_all_accounts to Book.
#30: Improved constructors of most objects to accept values instead of relying on users to set properties individually.
#31: Allow for various sorting methods when loading GnuCash documents and adding transactions.
- Added properties to the Transaction class.
- Added methods to the TransactionManager class.
Fixed a bug when loading transactions via SimpleTransaction.
Fixed a bug when parsing slot XML data.
Performance improvement on TransactionManager’s get_balance_at_date.
- 1.1.1 (July 24, 2020)
Bugfixes
- 1.1.0 (May 4, 2020)
BREAKING CHANGE: Only Python 3.6+ supported in favor of variable-level typing.
BREAKING CHANGE: as_xml and from_xml have been removed from most classes.
BREAKING CHANGE: AccountType moved to new enum module.
BREAKING CHANGE: get_starting_balance, get_balance_at_date, get_ending_balance, and minimum_balance_past_date have been removed from the Account class. Please use the methods in the TransactionManager.
BREAKING CHANGE: Subaccount support has been removed from InterestAccount. Please use InterestAccountWithSubaccounts instead in those situations.
BREAKING CHANGE: Book class’s build_file and read_file now require the “file_format” parameter. This should be an object that extends the BaseFileFormat class. See XMLFileFormat, GZipXMLFileFormat, and SqliteFileFormat.
MyPy type annotations added to all function calls and variables.
List of used GUIDs are kept in a set, rather than a list. Thanks to Eric Petersen (peap) for this contribution!
The file_formats package was inaccessable/not provided through the pip installer. Thanks to Eric Petersen (peap) for catching this and providing the fix!
- 1.0.2 (Jan 26, 2019)
Added SimpleTransaction to make transactions with only 2 splits easier to manipulate.
- Added properties to Account.
color
notes
hidden
placeholder
- Added properties to Transaction.
notes
reversed_by
voided
void_time
void_reason
associated_uri
- 1.0.1 (Jan 9, 2019)
Bugfixes
Adding support for ScheduledTransactions.
Adding support for Budgets.
Added method get_subaccount_by_id for retrieving a subaccount by its GUID
- 1.0.0 (Jan 4, 2019)
Initial Release