The Python static compiler compiled by wxPython and pychecker is used to find the py script errors and open source code in the compiler. It is shared with pythoner. I hope this article will help you, let's join in the Python world.
The Code is as follows:
- def OnBuildOne(self, event):
- if self.paths.count != 0:
- self.Report.AppendText(self.CompileInfoHead("File"))
- path = self.paths[self.List.GetSelection()]
- print "Building " + path + " ..."
- try:
- py_compile.compile(path, None, None)
- except py_compile.PyCompileError, ex:
- print ex
- self.Report.AppendText("=-- Build Finished.\n\n")
-
-
- def OnBuildAll(self, event):
- if self.paths.count != 0:
- self.Report.AppendText(self.CompileInfoHead("File(s)"))
- for path in self.paths:
- print "Building " + path + " ..."
- try:
- py_compile.compile(path, None, None)
- except py_compile.PyCompileError, ex:
- print ex
- self.Report.AppendText("=-- Build Finished.\n\n")
-
-
- def OnBuildDirectory(self, event):
- dlg = wxDirDialog(self, "Select a directory for build", self.cfg[2])
- if dlg.ShowModal() == wxID_OK:
- path = dlg.GetPath()
- self.Report.AppendText(self.CompileInfoHead("Directory:", path))
- compile_dir(path, 10, None, 1, None)
- self.Report.AppendText("=-- Build Finished.\n\n")
- self.cfg[2] = dlg.GetPath()
-
- dlg.Destroy()
-
-
- def OnAbout(self, event):
- dlg = wxMessageDialog(self, "Present by Dracula 2005\n"
- "Build 2005.05.05\n", "About",
- wxOK | wxICON_INFORMATION)
- dlg.ShowModal()
- dlg.Destroy()
-
-
- def OnResize(self, event):
- sizeClient = self.GetClientSize()
- self.List.SetSize(sizeClient)
- sizeList = self.List.GetClientSize()
- self.Report.SetSize(wxSize(sizeClient.width, sizeClient.height-sizeList.height))
-
-
- def OnClose(self, event):
- try:
- f = open("config.cfg", "w")
- f.write(self.cfg[0])
- if self.cfg[0][-1] != '\n':
- f.write("\n")
- f.write(self.cfg[1])
- if self.cfg[1][-1] != '\n':
- f.write("\n")
- f.write(self.cfg[2])
- f.close()
- except IOError:
- pass
-
- sys.path = self.save_sys_path[:]
-
- self.timer.Stop()
- del self.timer
- del self.icon
- self.Destroy()
-
-
- def OnQuit(self, event):
- self.Close(true)
-
-
- def PyCheck(self, argv):
- argv2 = ['pychecker']
- argv2.append(argv)
- pychecker.checker2.main(argv2)
- #reload(pychecker.checker2)
-
-
- def AddPath(self, path):
- curdir = path
- system_dir = curdir + '\\data\\script'
- system_core_dir = curdir + '\\data\\script\\core'
- subsystem_dir = curdir + '\\data\\subsystem'
- subsystem_trashbin_dir = curdir + '\\data\\subsystem\\trashbin'
-
- sys.path = self.save_sys_path[:]
- sys.path.append(curdir)
- sys.path.append(system_dir)
- sys.path.append(system_core_dir)
- sys.path.append(subsystem_dir)
- sys.path.append(subsystem_trashbin_dir)
-
-
- def CompileInfoHead(self, str1, str2=""):
- return "=-- %s %s Compile %s %s ...\n" % (self.Date(), self.Time(), str1, str2)
-
-
- def Error(self, error):
- self.Report.AppendText(error)
-
-
- def Output(self, info):
- self.Report.AppendText(info)
-
-
- def Date(self):
- t = time.localtime(time.time())
- strDate = time.strftime("%Y.%m.%d", t)
- return strDate
-
-
- def Time(self):
- t = time.localtime(time.time())
- strTime = time.strftime("%I:%M:%S", t)
- return strTime
-
-
- def Notify(self):
- self.statusbar.SetStatusText(self.Date() + " " + self.Time(), 1)
-
-
- class MyApp(wxApp):
- def OnInit(self):
- self.frame = MyFrame(NULL, -1, "cd2Py Compiler")
- self.frame.Show(true)
- return true
- cd2Py = MyApp(0)
- import sys
- class errCatcher:
- def __init__(self):
- pass
- def write(self, stuff):
- cd2Py.frame.Error(stuff)
- class outCatcher:
- def __init__(self):
- passdef write(self, stuff):
- cd2Py.frame.Output(stuff)
- sys.stderr = errCatcher()
- sys.stdout = outCatcher()
- cd2Py.MainLoop()
- How to embed Python into C ++ applications?
- In-depth discussion of Ruby and Python syntax comparison
- Introduction to Python
- Python Learning Experience: version, IDE selection and coding Solutions
- Analysis of Python GIL and thread security