diff options
| author | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:02:42 +0000 |
|---|---|---|
| committer | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:02:42 +0000 |
| commit | 3c0712d3ecac0cf74a88e31324de64c534bed8ad (patch) | |
| tree | 740068da0608dda32f92762fce489b0195f33297 | |
| parent | e1f40bbdd7ba46e51d72389ec17820160fa461b6 (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.py | 18 |
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) |
