/Tools/modulator/EXAMPLE.py
http://unladen-swallow.googlecode.com/ · Python · 53 lines · 26 code · 7 blank · 20 comment · 0 complexity · 8ce7e36a5aa9cb002bd21d23d35f20cb MD5 · raw file
- #
- # Example input file for modulator if you don't have tk.
- #
- # You may also have to strip some imports out of modulator to make
- # it work.
- import genmodule
- #
- # Generate code for a simple object with a method called sample
- o = genmodule.object()
- o.name = 'simple object'
- o.abbrev = 'simp'
- o.methodlist = ['sample']
- o.funclist = ['new']
- #
- # Generate code for an object that looks numberish
- #
- o2 = genmodule.object()
- o2.name = 'number-like object'
- o2.abbrev = 'nl'
- o2.typelist = ['tp_as_number']
- o2.funclist = ['new', 'tp_repr', 'tp_compare']
- #
- # Generate code for a method with a full complement of functions,
- # some methods, accessible as sequence and allowing structmember.c type
- # structure access as well.
- #
- o3 = genmodule.object()
- o3.name = 'over-the-top object'
- o3.abbrev = 'ot'
- o3.methodlist = ['method1', 'method2']
- o3.funclist = ['new', 'tp_dealloc', 'tp_print', 'tp_getattr', 'tp_setattr',
- 'tp_compare', 'tp_repr', 'tp_hash']
- o3.typelist = ['tp_as_sequence', 'structure']
- #
- # Now generate code for a module that incorporates these object types.
- # Also add the boilerplates for functions to create instances of each
- # type.
- #
- m = genmodule.module()
- m.name = 'sample'
- m.abbrev = 'sample'
- m.methodlist = ['newsimple', 'newnumberish', 'newott']
- m.objects = [o, o2, o3]
- fp = open('EXAMPLEmodule.c', 'w')
- genmodule.write(fp, m)
- fp.close()