summaryrefslogtreecommitdiffstats
path: root/bindings/lang_python.py
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2008-04-29 12:01:34 +0000
committerFrederic Peters <fpeters@entrouvert.com>2008-04-29 12:01:34 +0000
commit02644ef15b19f60e69d33d4e28bbfdfb77fb16d1 (patch)
tree2533ebd7210ff6f558b6e056576ce64f6e7af9d3 /bindings/lang_python.py
parent951991f4f8ebf309d9cb2f8499c63fd44e3869eb (diff)
downloadlasso-02644ef15b19f60e69d33d4e28bbfdfb77fb16d1.tar.gz
lasso-02644ef15b19f60e69d33d4e28bbfdfb77fb16d1.tar.xz
lasso-02644ef15b19f60e69d33d4e28bbfdfb77fb16d1.zip
[project @ fpeters@0d.be-20071005114857-u95fr7hqt6ze2qp9]
create constructor for _new functions and class methods for _new_from_dump methods Original author: Frederic Peters <fpeters@0d.be> Date: 2007-10-05 13:48:57.345000+02:00
Diffstat (limited to 'bindings/lang_python.py')
-rw-r--r--bindings/lang_python.py27
1 files changed, 25 insertions, 2 deletions
diff --git a/bindings/lang_python.py b/bindings/lang_python.py
index 729d3b00..9a49ee65 100644
--- a/bindings/lang_python.py
+++ b/bindings/lang_python.py
@@ -55,6 +55,31 @@ _lasso.init()
print >> fd, ''
return
+ methods = clss.methods[:]
+ # constructor(s)
+ method_prefix = 'lasso_' + format_as_underscored(klassname) + '_'
+ for m in self.binding_data.functions:
+ if m.name == method_prefix + 'new':
+ args = oargs = ', '.join([x[1] for x in m.args[1:]])
+ if oargs:
+ oargs = ', ' + oargs
+ print >> fd, ' def __init__(self%s):' % oargs
+ print >> fd, ' self._cptr = _lasso.%s(%s)' % (
+ m.name[6:], args)
+ print >> fd, ''
+
+ for m in self.binding_data.functions:
+ if m.name == method_prefix + 'new_from_dump':
+ print >> fd, ' @classmethod'
+ print >> fd, ' def newFromDump(cls, dump):'
+ print >> fd, ' obj = cls()'
+ print >> fd, ' obj._cptr = _lasso.%s(dump)' % m.name[6:]
+ print >> fd, ' if obj._cptr is None:'
+ print >> fd, ' raise "XXX"'
+ print >> fd, ''
+ elif m.name == method_prefix + 'new_full':
+ pass
+
# create properties for members
for m in clss.members:
mname = format_as_python(m[1])
@@ -68,7 +93,6 @@ _lasso.init()
print >> fd, ''
# first pass on methods, getting accessors
- methods = clss.methods[:]
for m in clss.methods:
if not ('_get_' in m.name and len(m.args) == 1):
continue
@@ -92,7 +116,6 @@ _lasso.init()
print >> fd, ''
# second pass on methods, real methods
- method_prefix = 'lasso_' + format_as_underscored(klassname) + '_'
for m in methods:
if m.name.endswith('_new') or m.name.endswith('_new_from_dump') or \
m.name.endswith('_new_full'):