Remove some debug spew
[beagle.git] / wrappers / python / beagle.override
blob15694becb88ac10decb22b6958d6a9237ff3a132
1 /* -*- Mode: C; c-basic-offset: 4 -*- */
2 %%
3 headers
4 #include <Python.h>
5 #include <stdio.h>
7 #define NO_IMPORT_PYGOBJECT
8 #include "pygobject.h"
10 #include <beagle/beagle.h>
12 #define BEAGLE_TYPE_HIT       (beagle_hit_get_gtype ())
13 #define BEAGLE_TYPE_PROPERTY  (beagle_property_get_gtype ())
14 #define BEAGLE_TYPE_TIMESTAMP (beagle_timestamp_get_gtype ())
15 #define BEAGLE_TYPE_QUERYABLE_STATUS    (beagle_queryable_status_get_gtype ())
16 #define BEAGLE_TYPE_SCHEDULER_INFORMATION   (beagle_scheduler_information_get_gtype ())
18 GType
19 beagle_hit_get_gtype (void)
21         static GType our_type = 0;
22         if (!our_type)
23                 our_type = g_pointer_type_register_static ("BeagleHit");
24         return our_type;
25
27 GType
28 beagle_timestamp_get_gtype (void)
30         static GType our_type = 0;
31         if (!our_type)
32                 our_type = g_pointer_type_register_static ("BeagleTimestamp");
33         return our_type;
34
36 GType
37 beagle_property_get_gtype (void)
39         static GType our_type = 0;
40         if (!our_type)
41                 our_type = g_pointer_type_register_static ("BeagleProperty");
42         return our_type;
45 GType
46 beagle_queryable_status_get_gtype (void)
48         static GType our_type = 0;
49         if (!our_type)
50                 our_type = g_pointer_type_register_static ("BeagleQueryableStatus");
51         return our_type;
54 GType
55 beagle_scheduler_information_get_gtype (void)
57         static GType our_type = 0;
58         if (!our_type)
59                 our_type = g_pointer_type_register_static ("BeagleSchedulerInformation");
60         return our_type;
63 static PyObject *
64 _helper_wrap_pointer_gslist (GType type, GSList *list)
66     GSList *tmp;
67     PyObject *py_list;
69     if ((py_list = PyList_New(0)) == NULL) {
70         return NULL;
71     }
72     for (tmp = list; tmp != NULL; tmp = tmp->next) {
73         PyObject *obj = pyg_pointer_new (type, tmp->data);
74         PyList_Append(py_list, obj);
75         Py_DECREF(obj);
76     }
77     return py_list;
80 static PyObject *
81 _helper_wrap_string_gslist (GSList *list)
83     GSList *tmp;
84     PyObject *py_list;
86     if ((py_list = PyList_New(0)) == NULL) {
87         return NULL;
88     }
89     for (tmp = list; tmp != NULL; tmp = tmp->next) {
90         PyObject *str_obj =  PyString_FromString ((char*)tmp->data);
92         if (str_obj == NULL) {
93             Py_DECREF(py_list);
94             return NULL;
95         }
96         PyList_Append(py_list, str_obj);
97         Py_DECREF(str_obj);
98     }
99     return py_list;
102 modulename beagle
104 import gobject.GObject as PyGObject_Type
106 ignore-glob
107         beagle_snippet_request_set_query_terms_from_query
109 override beagle_hits_added_response_get_hits noargs
110 static PyObject *
111 _wrap_beagle_hits_added_response_get_hits(PyGObject *self)
113     GSList *list;
115     list = beagle_hits_added_response_get_hits(BEAGLE_HITS_ADDED_RESPONSE (self->obj));
117     return _helper_wrap_pointer_gslist (BEAGLE_TYPE_HIT, list);
120 override beagle_hits_subtracted_response_get_uris noargs
121 static PyObject *
122 _wrap_beagle_hits_subtracted_response_get_uris(PyGObject *self)
124     GSList *list;
126     list = beagle_hits_subtracted_response_get_uris(BEAGLE_HITS_SUBTRACTED_RESPONSE (self->obj));
128     return _helper_wrap_string_gslist (list);
131 override beagle_hit_get_one_property kwargs
132 static PyObject *
133 _wrap_beagle_hit_get_one_property (PyGObject *self, PyObject *args, PyObject *kwargs)
135     static char *kwlist[] = { "key", NULL };
136     char *key;
137     const char *value = NULL;
138     gboolean ret;
140     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s:BeagleHit.get_one_property", kwlist, &key))
141         return NULL;
142     ret = beagle_hit_get_one_property (pyg_pointer_get (self, BeagleHit), key, &value);
143     
144     if (!ret) {
145         /* Dont return exception in the method case */
146         Py_INCREF(Py_None);
147         return Py_None;
148     }
149     
150     return PyString_FromString (value);
153 override beagle_hit_get_properties kwargs
154 static PyObject *
155 _wrap_beagle_hit_get_properties (PyGObject *self, PyObject *args, PyObject *kwargs)
157     static char *kwlist[] = { "key", NULL };
158     char *key;
159     GSList *list;
161     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s:BeagleHit.get_properties", kwlist, &key))
162         return NULL;
163     list = beagle_hit_get_properties (pyg_pointer_get(self, BeagleHit), key);
164     
165     if (list)
166         return _helper_wrap_string_gslist (list);
167     
168     Py_INCREF(Py_None);
169     return Py_None;
172 override beagle_hit_get_all_properties noargs
173 static PyObject *
174 _wrap_beagle_hit_get_all_properties (PyGObject *self)
176     GSList *list;
178     list = beagle_hit_get_all_properties ((BeagleHit *) self->obj);
180     return _helper_wrap_pointer_gslist (BEAGLE_TYPE_PROPERTY, list);
183 override-slot BeagleHit.tp_as_mapping
184 static PyObject *
185 _wrap_beagle_hit_get_one_property_mapping (PyGObject *self, PyObject *item)
187     char *key = NULL;
188     const char *value = NULL;
189     gboolean ret;
191     if (! PyString_Check (item)) {
192             PyErr_SetString(PyExc_TypeError, "key must be a string");
193             return NULL;
194     }
196     key = PyString_AsString (item);
197     ret = beagle_hit_get_one_property ((BeagleHit *) self->obj, key, &value);
198     
199     if (!ret) {
200         PyErr_SetString(PyExc_KeyError, "key doesnt exist or is not single valued");
201         return NULL;
202     }
203     
204     return PyString_FromString (value);
205     
208 static PyMappingMethods _wrap_beagle_hit_tp_as_mapping = {
209     (inquiry) 0,                                            /* number of properties as len (hit) */
210     (binaryfunc) _wrap_beagle_hit_get_one_property_mapping, /* getting value of property as hit [...] */
211     (objobjargproc) 0                                       /* for setting value of property as hit[...] = X*/
214 override beagle_client_new kwargs
215 static int
216 _wrap_beagle_client_new(PyGObject *self, PyObject *args, PyObject *kwargs)
218     static char *kwlist[] = { "client_name", NULL };
219     char *client_name = NULL;
221     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|s:BeagleClient.__init__", kwlist, &client_name))
222         return -1;
223     self->obj = (GObject *)beagle_client_new(client_name);
225     if (!self->obj) {
226         PyErr_SetString(PyExc_RuntimeError, "could not create BeagleClient object");
227         return -1;
228     }
229     pygobject_register_wrapper((PyObject *)self);
230     return 0;
233 override beagle_timestamp_to_unix_time
234 static PyObject *
235 _wrap_beagle_timestamp_to_unix_time (PyGObject *self)
237     time_t t;
238     gboolean ret;
240     ret = beagle_timestamp_to_unix_time ((BeagleTimestamp *) self->obj, &t);
242     if (!ret) {
243         PyErr_SetString(PyExc_ValueError, "timestamp is invalid");
244         return NULL;
245     }
247     return PyInt_FromLong (t);
250 override beagle_scheduler_information_get_pending_tasks noargs
251 static PyObject *
252 _wrap_beagle_scheduler_information_get_pending_tasks (PyGObject *self)
254     GSList *list;
256     list = beagle_scheduler_information_get_pending_tasks ((BeagleSchedulerInformation *) self->obj);
258     return _helper_wrap_string_gslist (list);
261 override beagle_scheduler_information_get_future_tasks noargs
262 static PyObject *
263 _wrap_beagle_scheduler_information_get_future_tasks (PyGObject *self)
265     GSList *list;
267     list = beagle_scheduler_information_get_future_tasks ((BeagleSchedulerInformation *) self->obj);
269     return _helper_wrap_string_gslist (list);
272 override beagle_scheduler_information_get_blocked_tasks noargs
273 static PyObject *
274 _wrap_beagle_scheduler_information_get_blocked_tasks (PyGObject *self)
276     GSList *list;
278     list = beagle_scheduler_information_get_blocked_tasks ((BeagleSchedulerInformation *) self->obj);
280     return _helper_wrap_string_gslist (list);
283 override beagle_daemon_information_response_get_index_status
284 static PyObject *
285 _wrap_beagle_daemon_information_response_get_index_status (PyGObject *self)
287     GSList *list;
289     list = beagle_daemon_information_response_get_index_status ((BeagleDaemonInformationResponse *) self->obj);
291     return _helper_wrap_pointer_gslist (BEAGLE_TYPE_QUERYABLE_STATUS, list);