summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/wx-3.0-msw/wx/py/PySlices.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/wx-3.0-msw/wx/py/PySlices.py')
-rw-r--r--lib/python2.7/site-packages/wx-3.0-msw/wx/py/PySlices.py100
1 files changed, 100 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/wx-3.0-msw/wx/py/PySlices.py b/lib/python2.7/site-packages/wx-3.0-msw/wx/py/PySlices.py
new file mode 100644
index 0000000..d47c900
--- /dev/null
+++ b/lib/python2.7/site-packages/wx-3.0-msw/wx/py/PySlices.py
@@ -0,0 +1,100 @@
+#!/usr/bin/env python2
+"""PySlices is a python block code editor / shell and namespace browser application."""
+
+# The next two lines, and the other code below that makes use of
+# ``__main__`` and ``original``, serve the purpose of cleaning up the
+# main namespace to look as much as possible like the regular Python
+# shell environment.
+import __main__
+original = __main__.__dict__.keys()
+
+__author__ = "Patrick K. O'Brien <pobrien@orbtech.com> / "
+__author__ += "David N. Mashburn <david.n.mashburn@gmail.com>"
+__cvsid__ = "$Id: PySlices.py 36607 2005-12-30 23:02:03Z RD $" # Hmmm...
+__revision__ = "$Revision: 36607 $"[11:-2] #Hmmm...
+
+import wx
+import os
+
+class App(wx.App):
+ """PySlices standalone application."""
+
+ def __init__(self, filename=None):
+ self.filename = filename
+ import wx
+ wx.App.__init__(self, redirect=False)
+
+
+ def OnInit(self):
+ import os
+ import wx
+ from wx import py
+
+ self.SetAppName("pyslices")
+ confDir = wx.StandardPaths.Get().GetUserDataDir()
+ if not os.path.exists(confDir):
+ os.mkdir(confDir)
+ fileName = os.path.join(confDir, 'config')
+ self.config = wx.FileConfig(localFilename=fileName)
+ self.config.SetRecordDefaults(True)
+
+ self.frame = py.crustslices.CrustSlicesFrame(config=self.config, dataDir=confDir,
+ filename=self.filename)
+## self.frame.startupFileName = os.path.join(confDir,'pycrust_startup')
+## self.frame.historyFileName = os.path.join(confDir,'pycrust_history')
+ self.frame.Show()
+ self.SetTopWindow(self.frame)
+ return True
+
+
+'''
+The main() function needs to handle being imported, such as with the
+pycrust script that wxPython installs:
+
+ #!/usr/bin/env python2
+
+ from wx.py.PySlices import main
+ main()
+'''
+
+def main(filename=None):
+ """The main function for the PySlices program."""
+ # Cleanup the main namespace, leaving the App class.
+ import sys
+ if not filename and len(sys.argv) > 1:
+ filename = sys.argv[1]
+ if filename:
+ filename = os.path.realpath(filename)
+
+ import __main__
+ md = __main__.__dict__
+ keepers = original
+ keepers.append('App')
+ keepers.append('filename')
+ for key in md.keys():
+ if key not in keepers:
+ del md[key]
+ # Create an application instance.
+ app = App(filename=filename)
+ # Mimic the contents of the standard Python shell's sys.path.
+ import sys
+ if sys.path[0]:
+ sys.path[0] = ''
+ # Add the application object to the sys module's namespace.
+ # This allows a shell user to do:
+ # >>> import sys
+ # >>> sys.app.whatever
+ sys.app = app
+ del sys
+ # Cleanup the main namespace some more.
+ if md.has_key('App') and md['App'] is App:
+ del md['App']
+ if md.has_key('filename') and md['filename'] is filename:
+ del md['filename']
+ if md.has_key('__main__') and md['__main__'] is __main__:
+ del md['__main__']
+ # Start the wxPython event loop.
+ app.MainLoop()
+
+if __name__ == '__main__':
+ main()