summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2008-04-29 12:02:42 +0000
committerFrederic Peters <fpeters@entrouvert.com>2008-04-29 12:02:42 +0000
commit3c0712d3ecac0cf74a88e31324de64c534bed8ad (patch)
tree740068da0608dda32f92762fce489b0195f33297
parente1f40bbdd7ba46e51d72389ec17820160fa461b6 (diff)
[project @ fpeters@0d.be-20071008094035-jypv3sactdkvkoq7]
setting of list of objects s = lasso.Saml2Assertion() s2 = lasso.Saml2AuthnStatement() s2.sessionIndex = 'plop' s3 = lasso.Saml2AuthnStatement() s3.sessionIndex = 'plop2' s.authnStatement = (s2, s3) print s.dump() <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" SignType="0" SignMethod="0" EncryptionActivated="false" EncryptionSymKeyType="0"> <saml:AuthnStatement SessionIndex="plop"/> <saml:AuthnStatement SessionIndex="plop2"/> </saml:Assertion> Original author: Frederic Peters <fpeters@0d.be> Date: 2007-10-08 11:40:35.875000+02:00
-rw-r--r--bindings/lang_python.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/bindings/lang_python.py b/bindings/lang_python.py
index c0946b99..c71408b9 100644
--- a/bindings/lang_python.py
+++ b/bindings/lang_python.py
@@ -52,6 +52,12 @@ class PythonBinding:
import _lasso
_lasso.init()
+
+def cptrToPy(t, cptr):
+ klass = getattr(lasso, t)
+ o = klass.__new__(klass)
+ o._cptr = cptr
+ return o
'''
def generate_exceptions(self, fd):
@@ -196,16 +202,18 @@ import lasso
if self.is_pygobject(m[0]):
print >> fd, ' t, cptr = _lasso.%s_%s_get(self._cptr)' % (
klassname, mname)
- print >> fd, ' klass = getattr(lasso, t)'
- print >> fd, ' o = klass.__new__(klass)'
- print >> fd, ' o._cptr = cptr'
- print >> fd, ' return o'
+ print >> fd, ' return cptrToPy(t, cptr)'
elif m[0] == 'GList*' and options.get('elem_type') != 'char*':
- print >> fd, ' XXX'
+ print >> fd, ' l = _lasso.%s_%s_get(self._cptr)' % (
+ klassname, mname)
+ print >> fd, ' if not l: return l'
+ print >> fd, ' return tuple([cptrToPy(x[0], x[1]) for x in l])'
else:
print >> fd, ' return _lasso.%s_%s_get(self._cptr)' % (
klassname, mname)
print >> fd, ' def set_%s(self, value):' % mname
+ if m[0] == 'GList*' and options.get('elem_type') != 'char*':
+ print >> fd, ' value = tuple([x._cptr for x in value])'
print >> fd, ' _lasso.%s_%s_set(self._cptr, value)' % (
klassname, mname)
print >> fd, ' %s = property(get_%s, set_%s)' % (mname, mname, mname)