Issue #5170: Fixed regression caused when fixing #5768.
[python.git] / Tools / modulator / EXAMPLE.py
blobb36a5a761c8cfe89378a76cb82cb1435b44d76c8
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
5 # it work.
7 import genmodule
10 # Generate code for a simple object with a method called sample
12 o = genmodule.object()
13 o.name = 'simple object'
14 o.abbrev = 'simp'
15 o.methodlist = ['sample']
16 o.funclist = ['new']
19 # Generate code for an object that looks numberish
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']
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'
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']
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.
45 m = genmodule.module()
46 m.name = 'sample'
47 m.abbrev = 'sample'
48 m.methodlist = ['newsimple', 'newnumberish', 'newott']
49 m.objects = [o, o2, o3]
51 fp = open('EXAMPLEmodule.c', 'w')
52 genmodule.write(fp, m)
53 fp.close()