2 # Example input file for modulator if you don't have tk.
4 # You may also have to strip some imports out of modulator to make
10 # Generate code for a simple object with a method called sample
12 o
= genmodule
.object()
13 o
.name
= 'simple object'
15 o
.methodlist
= ['sample']
19 # Generate code for an object that looks numberish
21 o2
= genmodule
.object()
22 o2
.name
= 'number-like object'
24 o2
.typelist
= ['tp_as_number']
25 o2
.funclist
= ['new', 'tp_repr', 'tp_compare']
28 # Generate code for a method with a full complement of functions,
29 # some methods, accessible as sequence and allowing structmember.c type
30 # structure access as well.
32 o3
= genmodule
.object()
33 o3
.name
= 'over-the-top object'
35 o3
.methodlist
= ['method1', 'method2']
36 o3
.funclist
= ['new', 'tp_dealloc', 'tp_print', 'tp_getattr', 'tp_setattr',
37 'tp_compare', 'tp_repr', 'tp_hash']
38 o3
.typelist
= ['tp_as_sequence', 'structure']
41 # Now generate code for a module that incorporates these object types.
42 # Also add the boilerplates for functions to create instances of each
45 m
= genmodule
.module()
48 m
.methodlist
= ['newsimple', 'newnumberish', 'newott']
49 m
.objects
= [o
, o2
, o3
]
51 fp
= open('EXAMPLEmodule.c', 'w')
52 genmodule
.write(fp
, m
)