+"""PyWrap is a command line utility that runs a wxPython program with
+additional runtime-tools, such as PyCrust."""
-"""Renamer stub: provides a way to drop the wx prefix from wxPython objects."""
+__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
+__cvsid__ = "$Id$"
+__revision__ = "$Revision$"[11:-2]
-from wx import _rename
-from wxPython.py import PyWrap
-_rename(globals(), PyWrap.__dict__, modulename='py.PyWrap')
-del PyWrap
-del _rename
+import wx
+from wx import py
+
+import os
+import sys
+
+def wrap(app):
+ wx.InitAllImageHandlers()
+ frame = py.crust.CrustFrame()
+ frame.SetSize((750, 525))
+ frame.Show(True)
+ frame.shell.interp.locals['app'] = app
+ app.MainLoop()
+
+def main(modulename=None):
+ sys.path.insert(0, os.curdir)
+ if not modulename:
+ if len(sys.argv) < 2:
+ print "Please specify a module name."
+ raise SystemExit
+ modulename = sys.argv[1]
+ if modulename.endswith('.py'):
+ modulename = modulename[:-3]
+ module = __import__(modulename)
+ # Find the App class.
+ App = None
+ d = module.__dict__
+ for item in d.keys():
+ try:
+ if issubclass(d[item], wx.App):
+ App = d[item]
+ except (NameError, TypeError):
+ pass
+ if App is None:
+ print "No App class was found."
+ raise SystemExit
+ app = App()
+ wrap(app)
if __name__ == '__main__':
main()