r21215 - gnucash/trunk/src - Add qof queries to python bindings and set PYTHON_PATH in gnucash-env
Geert Janssens
gjanssens at code.gnucash.org
Tue Aug 23 17:20:16 EDT 2011
Author: gjanssens
Date: 2011-08-23 17:20:15 -0400 (Tue, 23 Aug 2011)
New Revision: 21215
Trac: http://svn.gnucash.org/trac/changeset/21215
Modified:
gnucash/trunk/src/base-typemaps.i
gnucash/trunk/src/bin/overrides/Makefile.am
gnucash/trunk/src/bin/overrides/gnucash-env.in
gnucash/trunk/src/optional/python-bindings/gnucash_business.py
gnucash/trunk/src/optional/python-bindings/gnucash_core.i
gnucash/trunk/src/optional/python-bindings/gnucash_core.py
Log:
Add qof queries to python bindings and set PYTHON_PATH in gnucash-env
Patch by Hendrik van Antwerpen
Modified: gnucash/trunk/src/base-typemaps.i
===================================================================
--- gnucash/trunk/src/base-typemaps.i 2011-08-23 12:01:29 UTC (rev 21214)
+++ gnucash/trunk/src/base-typemaps.i 2011-08-23 21:20:15 UTC (rev 21215)
@@ -136,6 +136,28 @@
}
}
+%typemap(in) GSList *, QofQueryParamList * {
+ $1 = NULL;
+ /* Check if is a list */
+ if (PyList_Check($input)) {
+ int i;
+ int size = PyList_Size($input);
+ for (i = size-1; i >= 0; i--) {
+ PyObject *o = PyList_GetItem($input, i);
+ if (PyString_Check(o)) {
+ $1 = g_slist_prepend($1,PyString_AsString(PyList_GetItem($input, i)));
+ } else {
+ PyErr_SetString(PyExc_TypeError, "list must contain strings");
+ g_slist_free($1);
+ return NULL;
+ }
+ }
+ } else {
+ PyErr_SetString(PyExc_TypeError, "not a list");
+ return NULL;
+ }
+}
+
%typemap(out) GList *, CommodityList *, SplitList *, AccountList *, LotList *,
MonetaryList *, PriceList *, EntryList * {
guint i;
@@ -158,6 +180,8 @@
PyList_Append(list, SWIG_NewPointerObj(data, SWIGTYPE_p_GNCLot, 0));
else if (GNC_IS_PRICE(data))
PyList_Append(list, SWIG_NewPointerObj(data, SWIGTYPE_p_GNCPrice, 0));
+ else if (GNC_IS_INVOICE(data))
+ PyList_Append(list, SWIG_NewPointerObj(data, SWIGTYPE_p__gncInvoice, 0));
else if (GNC_IS_ENTRY(data))
PyList_Append(list, SWIG_NewPointerObj(data, SWIGTYPE_p__gncEntry, 0));
else if ($1_descriptor == $descriptor(MonetaryList *))
Modified: gnucash/trunk/src/bin/overrides/Makefile.am
===================================================================
--- gnucash/trunk/src/bin/overrides/Makefile.am 2011-08-23 12:01:29 UTC (rev 21214)
+++ gnucash/trunk/src/bin/overrides/Makefile.am 2011-08-23 21:20:15 UTC (rev 21215)
@@ -35,7 +35,8 @@
-e 's#@-GNC_SCM_INSTALL_DIR-@#${GNC_SCM_INSTALL_DIR}#g' \
-e 's#@-GNC_LIB_INSTALLDIR-@#${libdir}#' \
-e 's#@-GNC_PKGLIB_INSTALLDIR-@#${pkglibdir}#g' \
- -e 's#@-GNC_SCRIPT_OVERRIDE_DIR-@#${gncoverridedir}#g'
+ -e 's#@-GNC_SCRIPT_OVERRIDE_DIR-@#${gncoverridedir}#g' \
+ -e 's#@-GNC_PYTHON_DIR-@#${pythondir}#g'
mv $@.tmp $@
chmod u+x $@
CLEANFILES += gnucash-env
Modified: gnucash/trunk/src/bin/overrides/gnucash-env.in
===================================================================
--- gnucash/trunk/src/bin/overrides/gnucash-env.in 2011-08-23 12:01:29 UTC (rev 21214)
+++ gnucash/trunk/src/bin/overrides/gnucash-env.in 2011-08-23 21:20:15 UTC (rev 21215)
@@ -18,9 +18,12 @@
LD_LIBRARY_PATH="${EXTRA_LIBS}:${LD_LIBRARY_PATH}"
DYLD_LIBRARY_PATH="${EXTRA_LIBS}:${DYLD_LIBRARY_PATH}"
+PYTHONPATH="${PYTHONPATH}:@-GNC_PYTHON_DIR-@"
+
export GNC_MODULE_PATH
export GUILE_LOAD_PATH
export LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH
+export PYTHONPATH
exec "$@"
Modified: gnucash/trunk/src/optional/python-bindings/gnucash_business.py
===================================================================
--- gnucash/trunk/src/optional/python-bindings/gnucash_business.py 2011-08-23 12:01:29 UTC (rev 21214)
+++ gnucash/trunk/src/optional/python-bindings/gnucash_business.py 2011-08-23 21:20:15 UTC (rev 21215)
@@ -42,7 +42,7 @@
GNC_PAYMENT_CASH, GNC_PAYMENT_CARD, \
GNC_DISC_PRETAX, GNC_DISC_SAMETIME, GNC_DISC_POSTTAX, \
GNC_TAXINCLUDED_YES, GNC_TAXINCLUDED_NO, GNC_TAXINCLUDED_USEGLOBAL, \
- GNC_AMT_TYPE_VALUE, GNC_AMT_TYPE_PERCENT
+ GNC_AMT_TYPE_VALUE, GNC_AMT_TYPE_PERCENT, GNC_ID_INVOICE
import datetime
Modified: gnucash/trunk/src/optional/python-bindings/gnucash_core.i
===================================================================
--- gnucash/trunk/src/optional/python-bindings/gnucash_core.i 2011-08-23 12:01:29 UTC (rev 21214)
+++ gnucash/trunk/src/optional/python-bindings/gnucash_core.i 2011-08-23 21:20:15 UTC (rev 21215)
@@ -54,6 +54,8 @@
#include "qofutil.h"
#include "qofid.h"
#include "guid.h"
+#include "qofquery.h"
+#include "qofquerycore.h"
#include "gnc-module/gnc-module.h"
#include "engine/gnc-engine.h"
#include "Transaction.h"
@@ -93,6 +95,10 @@
%include <qofid.h>
+%include <qofquery.h>
+
+%include <qofquerycore.h>
+
/* SWIG doesn't like this macro, so redefine it to simply mean const */
#define G_CONST_RETURN const
%include <guid.h>
@@ -201,6 +207,7 @@
%init %{
qof_log_init();
qof_init();
+qof_query_init();
gnc_module_system_init();
char * no_args[1] = { NULL };
gnc_engine_init(0, no_args);
Modified: gnucash/trunk/src/optional/python-bindings/gnucash_core.py
===================================================================
--- gnucash/trunk/src/optional/python-bindings/gnucash_core.py 2011-08-23 12:01:29 UTC (rev 21214)
+++ gnucash/trunk/src/optional/python-bindings/gnucash_core.py 2011-08-23 21:20:15 UTC (rev 21215)
@@ -655,3 +655,15 @@
}
methods_return_instance(GUID, guid_dict)
+#Query
+from gnucash_core_c import \
+ QOF_QUERY_AND, \
+ QOF_QUERY_OR, \
+ QOF_QUERY_NAND, \
+ QOF_QUERY_NOR, \
+ QOF_QUERY_XOR
+
+class Query(GnuCashCoreClass):
+ pass
+
+Query.add_constructor_and_methods_with_prefix('qof_query_', 'create')
\ No newline at end of file
More information about the gnucash-changes
mailing list