Merged the wxPy_newswig branch into the HEAD branch (main trunk)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2003-11-12 21:34:20 +00:00
parent eb6a4098a0
commit d14a1e2856
987 changed files with 671143 additions and 783083 deletions

View File

@@ -0,0 +1,133 @@
"""API generator for decorator classes.
"""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id$"
__revision__ = "$Revision$"[11:-2]
import inspect
import os
import sys
import types
header = '''\
"""wxPython decorator classes.
This file is automatically generated, and these are not the real
wxPython classes. These are Python versions for API documentation
purposes only.
Please send corrections, questions, and suggestions to:
Patrick K. O'Brien <pobrien@orbtech.com>
"""
__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
from wxd import Parameters as wx
try:
True
except NameError:
True = 1==1
False = 1==0
'''
modlist = [
'Base',
'Window',
'Frames',
'Accelerators',
'App',
'ClipDragDrop',
'Config',
'Controls',
'DataStructures',
'DateTime',
'Dialogs',
'Drawing',
'Errors',
'EventFunctions',
'Events',
'FileSystem',
'Functions',
'Help',
'ImageHandlers',
'Joystick',
'LayoutConstraints',
'Logging',
'Menus',
'MimeTypes',
'Misc',
'Panel',
'Printing',
'Process',
'SashSplitter',
'Sizers',
'Streams',
'Threading',
'ToolBar',
'Tree',
'Validators',
]
dir = os.path.realpath('api/wx/')
filename = os.path.join(dir, '__init__.py')
def main():
modules = {}
f = file(filename, 'w')
f.write(header)
for modname in modlist:
modules[modname] = __import__(modname, globals())
for modname in modlist:
module = modules[modname]
try:
source = inspect.getsource(module)
except IOError:
print 'No source for', module
else:
# Remove everything up to the first class or function definition.
splitter = '\n\nclass '
parts = source.split(splitter, 1)
if len(parts) == 2:
source = splitter + parts[1]
else:
splitter = '\n\ndef '
parts = source.split(splitter, 1)
if len(parts) == 2:
source = splitter + parts[1]
source = '\n\n\n' + source.strip()
f.write(source)
print 'Writing', modname
f.write('\n')
f.close()
# Add constants and any other missing stuff.
f = file(filename, 'a')
f.write('\n\n## Other Stuff:\n\n')
import wx as old
old = old.__dict__
sys.path.insert(0, dir) # Munge the sys.path so that we can
import __init__ # import the file we just created.
new = __init__.__dict__
l = [(k, v) for (k, v) in old.items() if (not k.startswith('_')
and not k.endswith('Ptr')
and not (k == 'cvar'))]
l.sort()
from wxPython import wx
for key, value in l:
if key not in new:
if (inspect.isclass(value)
or inspect.isroutine(value)
or type(value) is types.InstanceType):
value = repr(value)
text = '%s = %r' % (key, value)
f.write(text + '\n')
print 'Writing', text
f.close()
if __name__ == '__main__':
main()