piecash.core.session module¶
-
class
piecash.core.session.
Version
(table_name, table_version)[source]¶ Bases:
sqlalchemy.ext.declarative.api.DeclarativeBase
The declarative class for the ‘versions’ table.
-
table_version
¶ The version for the table
-
-
piecash.core.session.
build_uri
(sqlite_file=None, uri_conn=None, db_type=None, db_user=None, db_password=None, db_name=None, db_host=None, db_port=None)[source]¶ Create the connection string in function of some choices.
Parameters: - sqlite_file (str) – a path to an sqlite3 file (only used if uri_conn is None)
- uri_conn (str) – a sqlalchemy connection string
- db_type (str) – type of database in [“postgres”,”mysql”]
- db_user (str) – username of database
- db_password (str) – password for the use of database
- db_name (str) – name of database
- db_host (str) – host of database
- db_port (str) – port of database
Returns: the connection string
Return type:
-
piecash.core.session.
create_book
(sqlite_file=None, uri_conn=None, currency='EUR', overwrite=False, keep_foreign_keys=False, db_type=None, db_user=None, db_password=None, db_name=None, db_host=None, db_port=None, **kwargs)[source]¶ Create a new empty GnuCash book. If both sqlite_file and uri_conn are None, then an “in memory” sqlite book is created.
Parameters: - sqlite_file (str) – a path to an sqlite3 file (only used if uri_conn is None)
- uri_conn (str) – a sqlalchemy connection string
- currency (str) – the ISO symbol of the default currency of the book
- overwrite (bool) – True if book should be deleted and recreated if it exists already
- keep_foreign_keys (bool) – True if the foreign keys should be kept (may not work at all with GnuCash)
- db_type (str) – type of database in [“postgres”,”mysql”]
- db_user (str) – username of database
- db_password (str) – password for the use of database
- db_name (str) – name of database
- db_host (str) – host of database
- db_port (str) – port of database
Returns: the document as a gnucash session
Return type: GncSession
Raises GnucashException: if document already exists and overwrite is False
-
piecash.core.session.
open_book
(sqlite_file=None, uri_conn=None, readonly=True, open_if_lock=False, do_backup=True, db_type=None, db_user=None, db_password=None, db_name=None, db_host=None, db_port=None, **kwargs)[source]¶ Open an existing GnuCash book
Parameters: - sqlite_file (str) – a path to an sqlite3 file (only used if uri_conn is None)
- uri_conn (str) – a sqlalchemy connection string
- readonly (bool) – open the file as readonly (useful to play with and avoid any unwanted save)
- open_if_lock (bool) – open the file even if it is locked by another user (using open_if_lock=True with readonly=False is not recommended)
- do_backup (bool) – do a backup if the file written in RW (i.e. readonly=False) (this only works with the sqlite backend and copy the file with .{:%Y%m%d%H%M%S}.gnucash appended to it)
Returns: the document as a gnucash session
Return type: GncSession
Raises: - GnucashException – if the document does not exist
- GnucashException – if there is a lock on the file and open_if_lock is False
-
piecash.core.session.
adapt_session
(session, book, readonly)[source]¶ Change the SA session object to add some features.
Parameters: - session – the SA session object that will be modified in place
- book – the gnucash singleton book linked to the SA session
- readonly – True if the session should not allow commits.
Returns: