Commit Graph

427 Commits

Author SHA1 Message Date
John Ralls
824b515430 Fix qoflog's comments to reflect a preference for the macros over GLib functions. 2021-09-14 15:59:01 -07:00
John Ralls
74d0630867 Bug 798237 - Logging during XML file loading degrades performance...
significantly

Modify the DEBUG and PINFO macros to return unless qof_log_check is
true. Replace almost all direct calls to g_debug and g_message with
DEBUG and PINFO respectively.

Track the highest logging level sent to qof_log_set_level to provide a
short-circuit return in qof_log_check. Remove setting GNC_MOD_TESTS to
QOF_LOG_DEBUG so that the short-circuit threshold isn't defeated by
always being DEBUG.

Net result: 33% improvement in xml load times.
2021-09-14 15:15:11 -07:00
Christopher Lam
017ab06939 Merge branch 'maint' 2021-09-12 22:44:34 +08:00
Christopher Lam
d0f7daf4cf Revert "[engine.i] QofQueryParamList * args must be freed"
This reverts commit 72a3ebbba3. Freeing
does not apply to all qof_query_* calls.
2021-09-11 15:45:32 +08:00
Christopher Lam
72a3ebbba3 [engine.i] QofQueryParamList * args must be freed 2021-09-11 14:59:18 +08:00
John Ralls
b8552a8070 Fix python transaction test_date on Ubuntu-81.04.
Python3 there is too old for fromisoformat, use direct construction
instead.
2021-09-10 17:01:38 -07:00
John Ralls
fcab298245 Add test for Transaction GetDate() in python bindings.
Pursuant to Bug 798284.
2021-09-10 13:26:59 -07:00
Christopher Lam
140922a37e QofQuery args must be destroyed after qof_query_merge
qof_query_merge returns a new QofQuery; the two merged QofQueries are
not explicitly destroyed.
2021-09-09 19:19:44 +08:00
Christopher Lam
c6d8333811 Merge branch 'maint' 2021-08-27 20:33:31 +08:00
Christopher Lam
37cb886de5 [engine.i] gnc_budget_get_account_period_note to be freed by the caller
amendment to last commit.

this pair of changes was necessary to allow the GValue to be unset.
2021-08-25 09:17:25 +08:00
Christopher Lam
929cb3d0c1 [engine.i] free swigged GList* arg 2021-08-24 00:13:45 +08:00
Christopher Lam
9fc1ac6be1 Merge branch 'maint-guile-changes' into maint #1111 2021-08-20 17:02:19 +08:00
Christopher Lam
9bc44c62e6 [engine.i] free GSList* key_path arg to qof_book_get_option
Addendum to 6c8af6aab need to specify exact typemap target.
2021-08-20 17:01:42 +08:00
Christopher Lam
6c8af6aab1 [engine.i] free GSList* arg to qof_book_get_option 2021-08-20 09:03:37 +08:00
Christopher Lam
c4a0fb468b [srfi64-extras.scm] exit instead of return #t if no failures
due to change in guile-3.0.7 to fix srfi64 bug
2021-08-19 20:56:13 +08:00
Christopher Lam
eafc290034 Merge branch 'maint' 2021-08-12 22:28:58 +08:00
Christopher Lam
de1ad9367a g_free gnc_ctime which returns a new gchar* 2021-08-05 21:42:31 +08:00
Frank H. Ellenberger
b31b8dbd1e Merge PR #1103 into maint 2021-08-04 20:16:14 +02:00
Steven Walter
5f721614ad Remove unneeded .decode() from Invoice*.tex.templ
These values are already str's, don't decode them
2021-08-03 15:59:54 -04:00
Christopher Lam
a3177e8b6b [swig] %newobject to g_free AccountList* functions 2021-08-03 12:14:12 +08:00
Christopher Lam
e0d953bfc8 [swig] %newobject to g_free gchar* functions 2021-08-03 12:14:12 +08:00
Steven Walter
3ed6b4dab9 latex_invoices.py: write takes string not bytes
write() fails if you give it bytes, so don't encode
2021-08-01 22:17:41 -04:00
Steven Walter
ba4852a9da latex_invoices.py: use default locale
Don't hardcode a locale.  Empty string means to use the user's locale
(e.g. $LANG)
2021-08-01 22:17:11 -04:00
Steven Walter
ad3895fa07 latex_invoices.py: don't decode() a str
These functions all return str's not bytes.  Therefore there is no need
to decode them.
2021-08-01 22:16:33 -04:00
John Ralls
90b8fce59f Fix build after merge. 2021-07-31 17:54:29 -07:00
John Ralls
08bf3ec5b0 Merge branch 'maint' 2021-07-30 10:28:57 -07:00
Christopher Lam
9767c86337 [engine.i] some GLists must be freed 2021-07-29 23:56:10 +08:00
John Ralls
6c7f976a65 Make second arg to gnc_glist_to_scm_list const char*
So that C++ won't complain when passed a static string.
2021-07-10 17:29:15 -07:00
John Ralls
81c5ac6689 Remove the incomplete book-currency code.
Not everything from the 6 Book-Currency commits is removed: Switching
the Num and split-action fields and restricting edits of transactions
older than n days were included and those changes are left in place.

Some other partly-implemented features were also part of these commits
and were removed: Options for setting a default capital gains account
and currency, completion of the LIFO cap-gains policy, and creation of
a list of cap-gains policies.

If any of these are to be revived they should each be done in a separate
feature branch and submitted via Github pull request for a code review
before merging; a design discussion on gnucash-devel before restarting
work is also advisable.
2021-07-10 17:29:11 -07:00
luz paz
95f8884892 Fix misc. typos in comments 2021-06-29 08:46:34 +02:00
Christopher Lam
1b4d30b3b1 Merge branch 'maint' 2021-06-22 23:30:20 +08:00
John Ralls
da3bd8ec0e [bindings/guile/test] add SRFI64 test sources to the dist. 2021-06-13 15:25:23 -07:00
Hong Xu
79d5270c9d Fix a variable name typo in Python binding gnc_pricedb_lookup_latest_before_t64
commodit -> commodity
2021-06-13 01:12:59 -07:00
Christopher Lam
b25a444140 Merge branch 'maint' 2021-05-14 21:16:48 +08:00
Christopher Lam
14c523e4f1 [test-engine-extras] augment book data generators
* txn-currency can be specified explicitly instead of currency of
first split
* split memos can be specified

Note test-register.scm gets some changes because the Trans Num field
was erroneously saved into Split Action fields. Now the num field is
only copied into the TransNum field.
2021-04-30 08:55:26 +08:00
Christopher Lam
e6355be755 [test-scm-engine] remove support for functions deprecated in 4.x 2021-04-24 23:34:58 +08:00
Christopher Lam
5ce8f78f77 Merge branch 'maint' 2021-04-24 23:16:22 +08:00
Christopher Lam
5957b3c256 Add scheme backward compatibility functions renamed in #979 2021-04-23 21:20:42 +08:00
John Ralls
49102c7ac2 Python Bindings: Provide a deprecated GncPriceDB.lookup_latest_before_t64.
To avoid breaking user scripts.
2021-04-23 11:56:15 +01:00
Robert Fewell
87285f945e Update gnucash_core.py with gnc-pricedb function name change 2021-04-23 11:56:15 +01:00
John Ralls
490f9a8035 Change the g_log macro calls to QofLog ones so that they don't go to /dev/null. 2021-04-13 16:58:11 -07:00
koldavi
506fd57989
Fix to_string_with_decimal_point_placed
>>> nominator='123456'
A digit is missing in the string returned from to_string_with_decimal_point_placed. The -1 error.
>>> point_place=2
>>> nominator[:-point_place - 1], nominator[-point_place:]
('123', '56')
2021-04-01 13:26:15 +02:00
Christopher Lam
d28ff20ff7 Merge branch 'maint' 2021-03-29 17:29:19 +08:00
Christopher Lam
df457622b5 Merge branch 'python-silent-conversion' of git://github.com/c-holtermann/gnucash into maint 2021-03-27 21:20:37 +08:00
c-holtermann
d3b8a59d7e remove debug information for time conversion 2021-03-27 14:05:21 +01:00
Geert Janssens
1dd426e314 Potentially fix CI test on Arch related to glib and c++ 2021-03-22 12:37:24 +01:00
Christopher Lam
2a2f080813 Merge branch 'maint' 2021-03-18 07:36:40 +08:00
John Ralls
a11065b823 Fix fencepost error in calculating the week_num for POSIX timezone rules.
Fixes CI failure caused by US starting DST in 2021, a year in which
March began on a Monday.
2021-03-15 17:07:16 -07:00
John Ralls
66eca8aab7 Update python/gnucash_business.py to reflect rename of gncOwnerApplyPayment.
Made 3 years ago.
2021-03-14 10:48:30 -07:00
Christopher Lam
87473ed5f9 Merge branch 'maint' 2021-03-12 23:14:51 +08:00
Dong Lin
75209c024f Update price database for imported transactions
When a transaction is added from the ledger, price database is updated properly.
But if the transaction is imported, there is no price db update.

This change adds the proper pricedb update in the import path (qfx/ofx/qif).
Tested with make check
2021-03-09 10:39:56 -08:00
Christopher Lam
165ca498ad Add explanatory note for gnc_add_scheme_deprecated_module test code
The immediate parent commit removes old deprecated scheme
modules. Link to the old modules for example code.
2021-01-30 00:42:42 +08:00
Christopher Lam
bbcffa3eca Remove deprecated scheme modules 2021-01-30 00:42:20 +08:00
Christopher Lam
a9ec496ba9 [utilities] Remove deprecated functions 2021-01-25 22:25:54 +08:00
Christopher Lam
2fa5cba250 Merge branch 'maint' 2021-01-25 22:25:20 +08:00
Christopher Lam
a754289daa [test-scm-utilities] test-end properly
otherwise test failures do not set exit code correctly
2021-01-25 22:24:51 +08:00
Christopher Lam
df30b6da37 [utilities.scm] deprecate unused functions
these functions were never used.
2021-01-24 21:56:34 +08:00
Christopher Lam
ebcb0bc478 [master] remove deprecated scheme functions 2021-01-04 08:46:09 +08:00
Christopher Lam
6df74eb94f [core-utils.scm] typo in guile: use-modules 2021-01-03 16:03:14 +08:00
Christopher Lam
6f9517845a [core-utils] use custom unbound-variable exception printer
When a guile coder uses a variable but omits use-modules, this code
will scan *all* available modules and offer the appropriate module
name.

Before:
Unbound variable: gnc-build-url

After:
Unbound variable: gnc-build-url. Did you forget (use-module (sw_gnc_html))?
2020-12-14 21:54:52 +08:00
Christopher Lam
6927c12292 Bug 798039 - Using 'Consolidate Transactions' option on Consolidate Transaction Report returns Error
because (gnc:module-load "gnucash/html" 0) was meant to load the html
module and was incorrectly assumed to be present in (gnucash report)
module.
2020-12-12 07:44:14 +08:00
Christopher Lam
4910b532e0 [modularise] (gnucash engine) 2020-12-09 06:39:51 +08:00
Christopher Lam
c17ce5251c [modularise] (gnucash core-utils) 2020-12-09 06:39:51 +08:00
Christopher Lam
096be60860 [modularise] (gnucash utilities) 2020-12-09 06:39:51 +08:00
Christopher Lam
da32fb0dae [utilities] simplify addto! 2020-12-04 21:33:31 +08:00
Christopher Lam
82d3bcd394 [core-utils] N_ is identity function
N_ is mapped to the identity function. Previously N_ was defined as a
macro, which is more tricky to export.
2020-12-04 21:33:01 +08:00
Christopher Lam
a1c517b4ba [gnc_scm_to_numeric] create NaN gnc_numeric instead of runtime error
If guile calls a C function which expects gnc_numeric but sends a
non-number, it will create a gnc_numeric_error object. This will allow
error gnc_numeric to be handled elsewhere.

Also the overflow gnc_numeric was incorrectly created.
2020-11-23 21:50:05 +08:00
Christopher Lam
8f32992100 [gnc-engine-guile.c] return #f when gnc_numeric has error
otherwise it'd throw guile div/0 exception
2020-11-23 08:08:27 +08:00
Christopher Lam
6d6eff6b70 Expose ngettext as gnc:ngettext 2020-11-02 22:24:05 +08:00
Christopher Lam
8628ffa957 3/3 [engine.scm] deprecate scheme utility functions 2020-11-01 08:30:56 +08:00
Christopher Lam
25e4efc2b7 [core-utils.scm][API] gnc:string-locale<? gnc:string-locale>?
locale-sensitive string-sorting functions -- currently mirrors guile's
(ice-9 i18n) functions -- may be modified to call C code if guile code
is not reliable.
2020-11-01 08:30:56 +08:00
Geert Janssens
dae2ea8356 Expose C_ function (gettext with context string) to guile code
First use is for the document link short code (L)
2020-09-17 22:20:02 +02:00
Christopher Lam
0d10d1e234 [engine.i] swigify CLEARED-ALL
to be used by trep-engine.scm
2020-09-15 18:30:24 +08:00
Christopher Lam
cbbca47013 [test-engine-extras] Use more efficient gnc:list-flatten 2020-08-19 07:19:38 +08:00
Christopher Lam
f35a26882d Addendnum to ad20f859c -- _ must be exported 2020-08-03 23:26:29 +08:00
Christopher Lam
ad20f859cc [core-utils] define _ for guile-2.2 2020-08-03 07:11:27 +08:00
Hong Xu
e0e77ca39d Add Python example export_account_totals.py
This example exports acount totals of all accounts into a CSV file.

This has been asked before: https://money.stackexchange.com/questions/111786/exporting-account-totals-in-gnucash
2020-08-01 14:47:33 -07:00
Christopher Lam
fe3787c427 [gnc-numeric] use srfi-9 records for :gnc-monetary 2020-07-14 22:48:19 +08:00
Christopher Lam
428c8c501c [guile-3] change _ to G_
In guile-3 _ is a reserved symbol. Change to G_ by guile gettext
convention.
2020-07-12 19:03:26 +08:00
John Ralls
b0b238958e Merge Christoph Holtermann's 'python-sessionOpenMode' into master. 2020-07-06 12:45:07 -07:00
c-holtermann
22f91c407e use same order in comment as in definition of SessionOpenMode enum 2020-07-04 22:26:35 +02:00
c-holtermann
40cfb70fb7 fix SessionOpenMode explanation for SESSION_NORMAL_OPEN 2020-07-04 22:22:16 +02:00
Christopher Lam
851bc7f8d9 deprecations: clarify functions deprecated in 4.x. 2020-06-22 19:53:29 +08:00
Geert Janssens
1d3164bfdb Build depedency fix - build backend libararies before the guile bindings
Compiling our guile scripts will run loaded libraries. One of the libraries to
load is the engine library which expects to find the enabled backends (xml and or dbi).
If those aren't built yet, this will result in error messages printed in the build output.
2020-06-21 21:45:57 +02:00
c-holtermann
3e842a7bf6 use urllib.parse.urlparse to check for xml on python Session init 2020-06-21 16:24:53 +02:00
c-holtermann
b9c6fc2876 add some unittests for python Session
test arguments, deprecated as well as new mode arguments
test creating a session with a new xml file using __init__()
and begin(). Test raising exception when opening nonexistent
file without respective mode setting.
2020-06-21 16:23:32 +02:00
c-holtermann
0434acbe10 reformat two python example scripts with black
use black python code formatter on latex_invoices.py and gncinvoice_jinja.py
2020-06-21 16:23:32 +02:00
c-holtermann
485d8a65b0 decorate Session.begin with default mode argument 2020-06-21 16:23:32 +02:00
c-holtermann
44e61f4df2 enable Session.__init__() to be provided with existing instance or book 2020-06-21 16:23:32 +02:00
c-holtermann
5833c5afcb add unittests for function_class
add tests for some existing function_class functionality.
Add tests for the keyword argument changes.
2020-06-21 16:23:32 +02:00
c-holtermann
17d606e1f8 enable keyword arguments for default_arguments_decorator
default_arguments_decorator until now only allows positional
argument defaults. This adds keyword defaults. The keywords
can be mapped to the positional arguments by optional argument
kargs_pos so interactions between keyword and positional arg
defaults can raise a TypeError. Some more information in
the docstring is included. In addition the docstring of
the wrapped function will be modified to contain information
about the defaults.
2020-06-21 16:23:32 +02:00
c-holtermann
c222503f42 add method decorate_method to function_class.py
ClassFromFunctions.decorate_method() allows to provide positional
and keyword arguments for the decorator call besides the wrapped
method.
2020-06-21 16:23:32 +02:00
c-holtermann
ee77b713c2 update example scripts to SessionOpenMode 2020-06-21 16:23:32 +02:00
c-holtermann
b073dbc5c3 allow keyword arguments for function_class.py
allow keyword arguments for function_class methods
and functions. process_dict_convert_to_instance() is added to
mimic the behavior of the process_list_convert_to_instance()
Derived methods in gnucash_core.py like raise_backend_errors_after_call
get modified to accept being called with keyword args.
Also adds some docstrings.
2020-06-21 16:23:32 +02:00
c-holtermann
4e280b9593 adapt to use of sessionOpenMode in qof_session_begin 2020-06-20 13:40:11 +02:00
c-holtermann
48072f5a4c make SessionOpenMode enum available for python 2020-06-20 11:02:13 +02:00
c-holtermann
ee3342d2b4 introduce python submodule deprecation
the deprecation submodule will house content related to deprecation.
That is general convenience function and functions related to specific
deprecation issues. The latter starts with decorator functions to bridge
the change in qof_session_begin argument change to SessionOpenMode.
2020-06-20 10:40:54 +02:00
Christopher Lam
0b386157a1 [business-core] string-hash doesn't not guarantee unique hash
subtle bug here-- used string-hash to convert guid-string to a number
which is faster to use as hash key. but string-hash does not guarantee
that there are no hash collisions. it is best to use guid string
instead which is guaranteed to uniquely define a split.
2020-06-17 08:08:51 +08:00
John Ralls
b5aeca94b6 Bug 797746 - [reports] German umlauts not escaped
Resume using libintl directly. Guile apparently passes gettext msgstrs
through scm_from_locale_string instead of scm_from_utf8_string.
2020-06-07 10:46:01 -07:00
John Ralls
6a1cb5eecd Replace the three bool parameters to qof_session_begin to an enum.
For clarity. In so doing found the backend behavior a bit inconsistent
so it's modified to do what the enum values indicate.

In the course of changing the various calls I found some implementation
errors in the back end and corrected them.
2020-06-04 14:07:28 -07:00
c-holtermann
0ac59b18b7 make logging accessible from python modules 2020-06-02 21:28:03 +02:00
John Ralls
54859eaf5b Add scm-core-utils as dependency of scm-engine-1.
Fixes build failure reported on gnucash-devel.
2020-06-01 13:43:28 -07:00
Christopher Lam
c434239b7d Upgrade split->owner to gnc:split->owner 2020-05-29 21:32:23 +08:00
c-holtermann
b13f40aeaf remove translation test 2020-05-28 20:55:15 +02:00
c-holtermann
e1701fbdd6 locale is not needed anymore (debug) 2020-05-28 20:42:27 +02:00
c-holtermann
9e678a421e remove debug stuff 2020-05-28 20:31:16 +02:00
c-holtermann
7bf38ef837 test info 2020-05-28 20:29:33 +02:00
c-holtermann
ca21f32249 remove global gettext import 2020-05-28 20:21:31 +02:00
c-holtermann
efe9b4b606 remove debug info 2020-05-28 20:19:39 +02:00
c-holtermann
f788e59318 remove debug stuff (temporarily) 2020-05-28 18:51:01 +02:00
c-holtermann
fc87e275fa further debugging 2020-05-28 18:51:01 +02:00
c-holtermann
8d429d8295 further debugging 2020-05-28 18:51:01 +02:00
c-holtermann
2c09fe4f44 debug on travis 2020-05-28 18:51:01 +02:00
c-holtermann
694e5a26ff add test for gettext 2020-05-28 18:50:55 +02:00
c-holtermann
31d2b3cb44 install gettext 2020-05-28 18:41:34 +02:00
c-holtermann
41dc6ddbe2 implement gettext localization for python
make gnc_path_get_localedir() and GETTEXT_PACKAGE available for python
to access locales. Import gettext module to provide _ as translator
method. Provide null _-method returning english text in case of missing gettext.
Make a lot of messages translatable by adding _-method. Include python
files to create .pot-files.
2020-05-28 18:41:34 +02:00
John Ralls
320db3270b Remove duplicate decl. 2020-05-08 15:59:41 -07:00
John Ralls
8ff5af4c19 Decouple QofBook creation from QofSession.
So that we don't create two books when loading a session.
Step 1 to not having a dirty book when we think we should have no
book at all.
2020-05-08 15:59:41 -07:00
Christopher Lam
14ea5d9751 Merge branch 'maint' 2020-05-04 23:31:21 +08:00
John Ralls
6a3fabc30d Fix test failure for timezones west of the prime meridian.
The previous fix didn't calculate the comparison time correctly and
ended up in the wrong day because the GMT time is before the local time.

In the course of checking the corner-case timezones (Midway and
Kiritimati) I found an error in the GncDateTime calculation of the
neutral time, so fixed that too.
2020-05-02 15:35:13 -07:00
John Ralls
b4177bc60a Fix transaction post_date being set to midnight local.
Reported for Invoices on gnucash-user. Checked all other uses of
xaccTransSetPostDateSecs(), fixed the ones that weren't passing an
already normalized time64. For Invoices change the post_date to also be
normalized so that it stays the same as the transaction post_date. That
also protects it from the displayed date changing depending on timezone.

The python binding invoice post_time test had to be changed to match.
2020-04-30 12:09:22 -07:00
John Ralls
de9ee8dede Merge branch 'maint' 2020-04-25 15:45:59 -07:00
Geert Janssens
bbeb9a2b62 Drop all gnc-module dependencies and includes from compilation units that no longer use it
This also drops the python wrapper for gnc-module. As for the guile wrappers,
python should use other means of loading our shared libraries.

This commit required a few tweaks to the dependency chain as some units
inherited dependency information from gnc-module's public dependency
interface.
2020-04-24 22:16:24 +02:00
Geert Janssens
abf29aa196 Drop the gnc-module wrapper around the test-engine library
It's not adding anything
2020-04-24 21:29:20 +02:00
c-holtermann
0553576c81 restructure info so that python help will display it 2020-04-20 16:07:50 +02:00
c-holtermann
f6cb803192 app_utils needs to be imported to module gnucash to be accessible 2020-04-20 15:23:14 +02:00
Geert Janssens
0cfb40efeb CMake - use configure_file instead of file(COPY ) wherever possible
file(COPY ) will only trigger when the destination file doesn't exist yet.
It won't retrigger on source file changes.
configure_file on the other hand will. To avoid unwanted substitution
attempts this can be invoked with the COPYONLY keyword.
Disadvantage of configure_file is that it will only take one
input file where file(COPY ) can operate on a list of files.
As such the configure_file statement has to be wrapped in a foreach.

A few uses of file(COPY ) can't be replaced as they are setting
file permissions. And the one in make_dist has been kept as that
always operates on an empty directory, hence copying is guaranteed.

The former will monitor the file for updates and copy it again
the latter will only copy the file if it doesn't exist in the destination yet
2020-04-19 21:23:22 +02:00
John Ralls
3ca8fa1229 Merge branch 'maint' 2020-04-13 11:27:14 -07:00
John Ralls
e1b0140357 Fix failed build of python tests and failed test in 3.10 tarball. 2020-04-12 13:43:00 -07:00
John Ralls
882fd22ca1 Merge Christoph Holtermann's 'python-app-utils' into maint. 2020-04-06 12:17:03 -07:00
John Ralls
fdfaca5575 Merge Christoph Holtermann's 'python-session-instance-constructor' into maint. 2020-04-06 12:05:21 -07:00
c-holtermann
e2c37359ef high level python wrappers for app-utils 2020-04-06 07:22:06 +02:00
c-holtermann
4dcdec664a remove whitespace in parentheses (PEP 8) 2020-04-06 07:03:40 +02:00
c-holtermann
43cebedd3d tests for session 2020-04-06 07:03:40 +02:00
c-holtermann
daff201ffb don't allow instance=None for wrapper objects 2020-04-06 07:03:03 +02:00
c-holtermann
0da6b851b0 add instance argument to Session constructor
if Session is used only as a wrapper for an existing session instance
its necessary to be able to pass this instance as an argument
2020-04-02 18:59:16 +02:00
Geert Janssens
e78313147c Cmake - rework gnc_add_scheme_deprecated_module to use keyword parameters
Update all invocations accordingly
2020-03-30 08:41:29 +02:00
Geert Janssens
06ff8a292d Use new keyword parameters for all calls to gnc_add_scheme_test_targets 2020-03-30 08:41:29 +02:00
Geert Janssens
c05281c582 Use new keyword parameters for all calls to gnc_add_scheme_targets 2020-03-30 08:41:29 +02:00
Christopher Lam
1fa5fd0a14 Merge remote-tracking branch 'upstream/maint' 2020-03-14 11:48:10 +08:00
Geert Janssens
ab2edfccf1 quality-of-life improvements for python bindings 2020-03-01 11:00:53 +01:00
andygoblins
08af4ce9bd context manager examples 2020-02-29 17:46:01 -06:00
andygoblins
f1f450cedc make Session a context manager 2020-02-29 17:46:01 -06:00
andygoblins
4502afad4f fix __eq__ in Split and Transaction
Compare guids with .Equal() when comparing Split and Transaction instances.
2020-02-29 17:44:55 -06:00
Christopher Lam
fd76a31104 [utilities] deprecate gnc:substring-replace-from-to
with jqplot gone, no need to use this function anymore.
2020-02-19 06:19:27 +08:00
Christopher Lam
907bff34c3 [gnc-module] clean up deprecation warnings
* use reasonable max-width
* compact code
* use (ice-9 match)
2020-02-09 11:34:43 +08:00
Geert Janssens
ab5b7155af CMake - remove parameter repetition in else() and endif() statements
Fix leftovers after the maint branch merge
2020-02-06 17:01:26 +01:00
Christopher Lam
62c2203d40 Merge branch 'maint' 2020-01-30 20:30:04 +08:00
loftx
7cd2495674 Add Invoice.Unpost() to Python Bindings 2020-01-20 20:26:53 +01:00
Geert Janssens
490b20d2da Merge branch 'maint' 2020-01-17 18:35:30 +01:00
Geert Janssens
45cfb8937a Merge branch 'maint'
Resolves most merge conflicts. The only bit I was unable
to merge from maint into master is the use of match-lambda
in category-barchart.scm. This will have to be redone manually.
2020-01-14 19:56:35 +01:00
Geert Janssens
3b1b78d54c Drop a few left-over references to the deprecated gnc-module scheme wrapper 2019-12-07 21:05:58 +01:00
Geert Janssens
f52c581ddc Merge branch 'dropgml' 2019-12-07 09:15:48 +01:00
Geert Janssens
7f6367410e price quotes - move scm file from bindings to gnucash
This isn't wrapping anything really.
As discussed with John on PR#611
2019-12-06 20:38:21 +01:00
Geert Janssens
88706e5657 bindings/guile - remove gnc-module wrapper
Emit appropriate deprecation warnings in case code tries to invoke the removed functions.
Only for gnc:module-load a more elaborate compat function has
been written which should allow code using this obsolete function
to continue to function. The emitted deprecation warning will
guide the user to update his/her code for future compatibility.
2019-12-06 20:38:21 +01:00
Geert Janssens
d52aa0a0dd app-utils - remove gnc-module boilerplate
app-utils now is an ordinery shared library

A few bits worth mentioning:
1. it's not guile-free just yet, so instead of a gnc_module_load
   your code may have to call scm_c_use_module("gnucash app-utils");
   to expose the scm side of the app-utils api. This call has been
   added to gnucash-bin.c for example
2. while lots of noise in this commit is to rename from gncmodule-app-utils
   to gnc-app-utils, I'll point out the library has also been moved from
   <libdir>/gnucash to <libdir>. This required changes in app-util's
   CMakeLists.txt file for the install side and in the top level
   CMakeLists.txt file for the build directory structure.
3. The C side link module test has been removed as linking an ordinary
   shared library should be considered well tested by the compiler devs.
   The scheme side module load test has been slightly tweaked to no longer
   try to use gnc:module-load, but instead now checks whether the app-utils
   api is properly exposed to scheme after loading it via use-modules.
4. Dropped a completely obsolete README file.
2019-12-06 20:38:21 +01:00
Geert Janssens
0de3dc6bf1 guile/bindings cleanup - only load module gnome-modules when really in use 2019-12-06 20:38:21 +01:00
Geert Janssens
4c77f7670e engine - remove gncmod boilerplate
engine is now an ordinary shared library

This requires a few more places to run gnc_engine_init as
this is no longer done as part of module loading.
2019-12-06 20:38:21 +01:00
Geert Janssens
25cce83f29 gnome-utils - expose wrapped api directly from gnome-utils.scm
With that in place we no longer need to (gnc:module-load "gnucash/gnome-utils" 0)
the gnome-utils gncmodule. An ordinary (use-modules (gnucash gnome-utils)) suffices
2019-12-06 20:38:20 +01:00
Geert Janssens
ee722b85c1 bindings/guile cleanup - fold engine-utilities.scm into engine.scm
It was only exposed via engine.scm anyway and combining them
in one file eliminates one explicit load_extension and sw_engine call.
2019-12-06 20:38:20 +01:00
Geert Janssens
c00bf6bcdb app-utils - expose wrapped api directly from app-utils.scm
With that in place we no longer need to (gnc:module-load "gnucash/app-utils" 0)
the app-utils gncmodule. An ordinary (use-modules (gnucash app-utils)) suffices
2019-12-06 20:38:20 +01:00
Geert Janssens
043c6367a5 gnc-module test updates
- move test modules into a subdirectory on Windows as well
- move the futuremod module into its own subdirectory
  to avoid its load warnings each time gnc_module_init is called
  That also tends to happen when building guile modules.
- remove the log handlers filtering out the futuremodsys warnings
  They didn't match the actual warning signature anyway and
  they're no longer emitted during testing
2019-12-06 19:59:12 +01:00
Geert Janssens
fbd73c83cf gnc-module - move most of scm tests to bindings/guile
This is a first rudimentary separation of gnc-module tests
based on whether they require guile or not. Needs plenty of refinement
which will be applied in followup commits.
2019-12-06 19:59:12 +01:00
Geert Janssens
6eb0ccfa11 gnc-module - move guile wrappers to bindings/guile 2019-12-06 19:59:12 +01:00
Geert Janssens
096a515154 bindings/guile - fix typos in error messages
These were imported verbatim from libgnucash/app-utils/guile-util.c
2019-12-06 19:59:12 +01:00
Geert Janssens
6a3505d01f app-utils - move price-quotes support functions directly into bindings
- wrappers for glib functions go into glib-guile
- engine convenience functions go into gnc-engine-guile
2019-12-06 19:59:12 +01:00
Geert Janssens
d777128e6f app-utils - simplify and move gettext wrappers
1. Instead of creating a C wrapper around gettext to then wrap in
guile, use guile's builtin gettext support directly.

The code still defines the _ and N_ shorthands. However it doesn't
really warant a separate module just for these two shorthands.
Instead define them in core-utils. So all code wanting to use
_ or N_ in guile should now use the (gnucash core-utils) module.

The bulk of this commit is actually deleting the scm-gettext
target and using (gnucash core-utils) instead of (gnucash gettext).

2. As the definition of _ and N_ is removed from app-utils.scm,
the app-utils test for a functional N_ macro has been moved to a
new test file in the guile bindinds tests.

3. The (gnucash gettext) module has been deprecated. Use
(gnucash core-utils) from now on.
2019-12-06 19:59:12 +01:00
Geert Janssens
2e1b9f937b engine - drop guile wrappers for obsolete functions
These were marked deprecated early in the 3.x release cycle.
2019-12-06 19:59:11 +01:00
Geert Janssens
c46c9682eb engine/test - move guile related tests to bindings 2019-12-06 19:59:11 +01:00
Geert Janssens
02511401b7 bindings/guile cosmetic - rename source files for consistency 2019-12-06 19:59:11 +01:00
Geert Janssens
77f669f123 bindings/guile cosmetic - move price-quotes target lower down
This is just a cosmetic. This way the scm targets in the CMakeLists.txt
file are ordered according to their dependencies (targets later in the
file can depend on targets earlier in the file).
2019-12-06 19:59:11 +01:00
Geert Janssens
48f3195e5c bindings - make business-core scm module part of the engine module
There's no reason to expose it as an individual module as what it exports
are support functions for first class engine objects.
2019-12-06 19:59:11 +01:00
Geert Janssens
e940ce8524 engine.scm - a few minor cosmetics
- drop export of non-existing symbol
- add a couple of comments
2019-12-06 19:59:11 +01:00
Geert Janssens
3d4cc63d73 bindings - ensure engine is initialized before any scm code interfaces with it
This is done by invoking gnc_engine_init in the swig initialization routine
2019-12-06 19:59:11 +01:00
Geert Janssens
1c7f835f47 engine - move guile code to bindings/guile
This commit tries to do the minimum necessary to move the guile bits from engine
to bindings/guile. As engine is a very central piece in the software, this unfortunately
still touches many other source files:

- A few helper objects have been squashed together:
  * engine-helpers-guile.[ch] (of which the c part is extracted from engine-helpers.c)
  * gncBusGuile.[ch]
  * gnc-hooks-scm.[ch]
- The initialization function of gncmod-engine no longer initializes the scm bits.
  Any scm code that wants to interact with the engine code now has to load
  the (gnucash engine) scm module, or sometimes (gnucash business-core).
  The bulk of changes in this commit actually is updating all the scm consumers to do so.
- scm-scm target has been removed. Instead (gnucash utilities) is part
  of scm-engine. A few dependency graphs have been updated for this.

More refinements will be in followup commits.
2019-12-06 19:59:11 +01:00
Geert Janssens
49bf27fad5 core-utils - use one command to export all swig wrapped symbols via the (gnucash core-utils) module 2019-12-06 19:59:11 +01:00
Geert Janssens
a6b7eecd81 core-utils - make the swig generated source file dependent on the core-utils headers
That should trigger a regeneration of these swig sources if
any of the header files change.
This is done via a small macro that can be reused for other wrappers as well.

Note
cmake 3.15 introduces a 'FILTER' generator expression
that might allow us to do something like the following:
$<FILTER:$<TARGET_PROPERTY:baselib,SOURCES>,INCLUDE,"*.h[pp]?$">
I toyed briefly with that idea but it currently has two issues:
1. 3.15 is newer than our current minimum cmake requirement, so we can't
   depend in that feature yet.
2. the sources are relative to *their* source directory, which
   is different from the one in which the wrappers are generated
   So they should still be properly transformed into absolute paths
2019-12-06 19:59:11 +01:00
Geert Janssens
a1898daf6c core-utils - move python wrapper code to bindings/python
This makes libgnucash/core-utils completely guile and python free.
2019-12-06 19:59:11 +01:00
Geert Janssens
ad8c388235 core-utils - rework link_libraries and include_directories propagation
By properly marking certain parameters as private or public
we can have cmake work out most of the link_libraries and
include_directoris for other targets dependent on core-utils
2019-12-06 19:59:11 +01:00
Geert Janssens
28fa4c6465 core-utils - move wrapper code to bindings/guile
Note core-utils.i is used by both the guile and the python bindings so
it is moved up to the common bindings directory, while guile
specific changes are in bindings/guile.
2019-12-06 19:59:11 +01:00
Geert Janssens
18093b5e82 core-utils - move guile utils to bindings/guile 2019-12-06 19:59:11 +01:00
Geert Janssens
33e1ff645c Allow to pass include directories to the add_swig_xyz commands
This will be needed when the wrappers no longer live in
the same directory as the objects they are wrapping.
2019-12-06 19:59:11 +01:00
Geert Janssens
e493d42def Introduce gnucash-guile shared library
This (currently empty) library is intented to become
the standard api library for guile code that wants
to use the libgnucash functionality.
2019-12-06 19:59:11 +01:00
Geert Janssens
a0aa105826 libgnucash/scm - move to bindings/guile
A small step in the direction of making libgnucash guile-free.
2019-12-06 19:59:11 +01:00
Geert Janssens
df1f033f41 bindings-python - drop references to gnucash-env
We no longer ship a gnucash-env script, directly use python(3) instead
2019-11-30 13:20:08 +01:00
Andrey Legayev
34c14b44a9
Remove not needed semicolons in Python bindings 2019-11-29 18:32:50 +02:00
luz.paz
65bb60d621 Fix typos for gnuchash/ doc/ bindings/ and misc.
Typos found via `codespell -q 3 -D ~/Projects/codespell/codespell_lib/data/dictionary.txt -S *.po,./po,*.min.js,./ChangeLog*,./NEWS,./doc/README*,./AUTHORS,./libgnucash/tax/us/txf-de*,./data/accounts -L ans,cas,dragable,gae,iff,iif,mut,nd,numer,startd,stoll`
2019-09-13 20:26:03 -04:00
Geert Janssens
15a35e6a3b Housekeeping - replace plenty of http links with https
There are more, but these are most common ones.
There are also a number of urls that don't behave well when https, so those are skipped
At some point I have also started marking non-working URLs as [DEAD LINK], though
that's not a full coverage.
2019-06-06 15:52:30 +02:00
Mike Evans
29416292a9 Remove FIX ME
Since it works fine and I can't remember why I put it in.
2019-05-01 11:46:42 +01:00
John Ralls
fc355958b8 Merge Christoph Holtermann's 'PR-python2to3-rest-api' into maint. 2019-04-14 14:27:53 -07:00
John Ralls
b2f25408d7 Merge Christoff Holtermann's 'PR-python-time64-modifications' into maint 2019-04-14 14:26:35 -07:00
John Ralls
8823f7283f Merge Christoph Holtermann's 'PR-python2to3' into maint. 2019-04-14 14:24:16 -07:00
c-holtermann
0c02866964 PyDate_Check works for date and datetime 2019-04-06 17:13:41 +02:00
c-holtermann
18a2688419 typo 2019-04-06 16:17:58 +02:00
c-holtermann
db9e98a812 also allow datetime.date
Initialisation of some business objects has been done with
datetime.date.today() and it is also mentioned as a possibility
in the source doc. So leave it possible.
2019-04-06 16:10:04 +02:00
c-holtermann
3884e6abf5 unobfuscate get_date method name 2019-04-06 16:09:01 +02:00
c-holtermann
8ba5e552d9 return None object if return value is FALSE 2019-04-06 14:50:29 +02:00
c-holtermann
dafdd702e6 additional author 2019-04-06 14:12:06 +02:00
c-holtermann
79decfb754 deal with functions returning values through arguments 2019-04-06 14:11:55 +02:00
c-holtermann
445ff7e6c9 check for argument type. Also allow int. 2019-04-06 14:11:05 +02:00