|
1 # |
|
2 # Example input file for modulator if you don't have tk. |
|
3 # |
|
4 # You may also have to strip some imports out of modulator to make |
|
5 # it work. |
|
6 |
|
7 import genmodule |
|
8 |
|
9 # |
|
10 # Generate code for a simple object with a method called sample |
|
11 |
|
12 o = genmodule.object() |
|
13 o.name = 'simple object' |
|
14 o.abbrev = 'simp' |
|
15 o.methodlist = ['sample'] |
|
16 o.funclist = ['new'] |
|
17 |
|
18 # |
|
19 # Generate code for an object that looks numberish |
|
20 # |
|
21 o2 = genmodule.object() |
|
22 o2.name = 'number-like object' |
|
23 o2.abbrev = 'nl' |
|
24 o2.typelist = ['tp_as_number'] |
|
25 o2.funclist = ['new', 'tp_repr', 'tp_compare'] |
|
26 |
|
27 # |
|
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. |
|
31 # |
|
32 o3 = genmodule.object() |
|
33 o3.name = 'over-the-top object' |
|
34 o3.abbrev = 'ot' |
|
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'] |
|
39 |
|
40 # |
|
41 # Now generate code for a module that incorporates these object types. |
|
42 # Also add the boilerplates for functions to create instances of each |
|
43 # type. |
|
44 # |
|
45 m = genmodule.module() |
|
46 m.name = 'sample' |
|
47 m.abbrev = 'sample' |
|
48 m.methodlist = ['newsimple', 'newnumberish', 'newott'] |
|
49 m.objects = [o, o2, o3] |
|
50 |
|
51 fp = open('EXAMPLEmodule.c', 'w') |
|
52 genmodule.write(fp, m) |
|
53 fp.close() |