From 9269db983d847be7a0cdc9eb2bcc4ebe3066be1c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 11 Jan 2008 00:23:33 +0100 Subject: python/ldb: Add __getitem__ implementation for LdbMessageElement. (This used to be commit e6498a0780dd31dfc623a69432004b606aeaccbe) --- source4/lib/ldb/ldb.i | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'source4/lib/ldb/ldb.i') diff --git a/source4/lib/ldb/ldb.i b/source4/lib/ldb/ldb.i index 57cb6b5f47..0ad628fdf5 100644 --- a/source4/lib/ldb/ldb.i +++ b/source4/lib/ldb/ldb.i @@ -279,10 +279,27 @@ typedef struct ldb_message_element { return ldb_msg_element_from_pyobject(NULL, set_obj, flags, name); } #endif + + PyObject *get(int i) + { + if (i < 0 || i >= $self->num_values) + return Py_None; + + return PyString_FromStringAndSize( + (const char *)$self->values[i].data, + $self->values[i].length); + } + ~ldb_msg_element() { talloc_free($self); } int compare(ldb_msg_element *); } %pythoncode { + def __getitem__(self, i): + ret = self.get(i) + if ret is None: + raise KeyError("no such value") + return ret + def __eq__(self, other): if (isinstance(other, str) and len(set(self)) == 1 and -- cgit