Loading debian/patches/2to3.patch +495 −0 Original line number Diff line number Diff line Loading @@ -820,3 +820,498 @@ Last-Update: Tue, 10 Sep 2019 20:29:13 +0200 def main(): --- a/Cain.py +++ b/Cain.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/python3 """The script that launches Cain.""" @@ -32,15 +32,15 @@ def main(): errors.append('Consult the documentation available at http://cain.sourceforge.net/.') hasTk = True try: - import Tkinter + import tkinter except: hasTk = False if hasTk: - import tkMessageBox - root = Tkinter.Tk() + import tkinter.messagebox + root = tkinter.Tk() #Tkinter.Label(root, text='\n'.join(errors)).pack() #root.title('Error') - tkMessageBox.showwarning('Error', '\n'.join(errors)) + tkinter.messagebox.showwarning('Error', '\n'.join(errors)) root.mainloop() else: print('\n'.join(errors)) @@ -49,7 +49,7 @@ def main(): # Launch the application. from gui.Application import Application if len(sys.argv) > 2: - print "Warning: Unmatched command line arguments." + print("Warning: Unmatched command line arguments.") app = Application() if len(sys.argv) == 2: #app.readInitialFile(sys.argv[1]) --- a/gui/Preferences.py +++ b/gui/Preferences.py @@ -1,6 +1,6 @@ """Implements the preferences.""" -from PreferencesDialog import PreferencesDialog +from .PreferencesDialog import PreferencesDialog from copy import copy import wx import sys @@ -63,9 +63,9 @@ def main(): preferences.openDialog() app.MainLoop() for category in preferences.data: - print category + print(category) for field in preferences.data[category]: - print ' ', preferences.data[category][field] + print(' ', preferences.data[category][field]) if __name__ == '__main__': main() --- a/gui/Launcher.py +++ b/gui/Launcher.py @@ -24,7 +24,7 @@ def cpuCount(): # http://codeliberates.blogspot.com/2008/05/detecting-cpuscores-in-python.html # Linux, Unix and MacOS: if hasattr(os, "sysconf"): - if os.sysconf_names.has_key("SC_NPROCESSORS_ONLN"): + if "SC_NPROCESSORS_ONLN" in os.sysconf_names: # Linux & Unix: count = os.sysconf("SC_NPROCESSORS_ONLN") if isinstance(count, int) and count > 0: @@ -32,7 +32,7 @@ def cpuCount(): else: # OS X: return int(os.popen2("sysctl -n hw.ncpu")[1].read()) # Windows: - if os.environ.has_key("NUMBER_OF_PROCESSORS"): + if "NUMBER_OF_PROCESSORS" in os.environ: count = int(os.environ["NUMBER_OF_PROCESSORS"]); if count > 0: return count @@ -362,28 +362,28 @@ class LauncherFrame(wx.Frame): self.importTrajectories) def launch(self): - print 'launch' + print('launch') def compile(self): - print 'compile' + print('compile') def stop(self): - print 'stop' + print('stop') def kill(self): - print 'kill' + print('kill') def saveExecutable(self): - print 'saveExecutable' + print('saveExecutable') def exportJobs(self): - print 'exportJobs' + print('exportJobs') def importTrajectories(self): - print 'importTrajectories' + print('importTrajectories') def exportMathematica(self): - print 'exportMathematica' + print('exportMathematica') def getSelectedModelId(self): return '1' --- a/fio/ValueTextParser.py +++ b/fio/ValueTextParser.py @@ -77,21 +77,21 @@ def main(): assert not parser.parse('a', '', '', []) assert not parser.parse('a', 'expression', '', ['a']) - print parser.parseTable([['a', 'expression', '']], []) + print(parser.parseTable([['a', 'expression', '']], [])) assert not parser.errorMessage - print parser.parseTable([['', 'expression', '']], []) + print(parser.parseTable([['', 'expression', '']], [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) - print parser.parseTable([['a', '', '']], []) + print(parser.parseTable([['a', '', '']], [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) - print parser.parseTable([['a', 'expression', ''], ['a', 'expression', '']], - []) + print(parser.parseTable([['a', 'expression', ''], ['a', 'expression', '']], + [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) if __name__ == '__main__': main() --- a/fio/TriggerEventTextParser.py +++ b/fio/TriggerEventTextParser.py @@ -89,28 +89,28 @@ def main(): assert not parser.parse('1', 't>1', 's1=2', '0', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', '', 's1=2', '0', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', 't>1', '', '0', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', 't>1', 's1=2', 'a', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', 't>1', 's1=2', '-1', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') identifiers = [] assert parser.parseTable([['e1', 't>1', 's1=2', '0', '', 'name']], @@ -118,8 +118,8 @@ def main(): assert not parser.parseTable([['e1', 't>1', 's1=2', '0', '', 'name']], identifiers) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') if __name__ == '__main__': main() --- a/fio/ReactionTextParser.py +++ b/fio/ReactionTextParser.py @@ -161,38 +161,38 @@ def main(): assert not parser.parse('1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', '1 + 2 s2', 's3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', 's1 - 2 s2', 's3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', 's1 + 2 s2', '3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', 's1 + 2 s2', 's3 + s4', '1', 'reaction 1', '2.5', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', 's1 + 2 s2', 's3', '1', '', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') # Does not check for negative numbers. assert parser.parse('r1', 's1 + 2 s2', 's3', '1', '-2.5', 'reaction 1', @@ -201,8 +201,8 @@ def main(): assert not parser.parse('r1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], ['r1']) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert parser.parseTable( [['r1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1']], @@ -219,16 +219,16 @@ def main(): [['1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1']], ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parseTable( [['r1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1'], ['r1', 's1 + s2', 's3', '1', '2.5', 'reaction 2']], ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') if __name__ == '__main__': main() --- a/fio/TimeEventTextParser.py +++ b/fio/TimeEventTextParser.py @@ -88,35 +88,35 @@ def main(): assert not parser.parse('1', '1', 's1=2', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', '1', 's1=2', 'name', ['e1']) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', 'a', 's1=2', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', '[a]', 's1=2', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', '1', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') identifiers = [] assert parser.parseTable([['e1', '1', 's1=2', 'name']], identifiers) assert not parser.parseTable([['e1', '1', 's1=2', 'name']], identifiers) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') if __name__ == '__main__': main() --- a/fio/SpeciesTextParser.py +++ b/fio/SpeciesTextParser.py @@ -101,23 +101,23 @@ def main(): assert not parser.parse('a', '', '', 'c1', []) assert not parser.parse('a', '1', '', 'c1', ['a']) - print parser.parseTable([['s1', '100', 'species 1', 'c1']], []) + print(parser.parseTable([['s1', '100', 'species 1', 'c1']], [])) assert not parser.errorMessage - print parser.parseTable([['s1', '100', 'species 1', 'c1'], - ['s2', '200', 'species 2', 'c1']], []) + print(parser.parseTable([['s1', '100', 'species 1', 'c1'], + ['s2', '200', 'species 2', 'c1']], [])) assert not parser.errorMessage - print parser.parseTable([['1', '100', 'species 1', 'c1']], []) + print(parser.parseTable([['1', '100', 'species 1', 'c1']], [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) - print parser.parseTable([['s1', '100', 'species 1', 'c1'], - ['s1', '200', 'species 2', 'c1']], []) + print(parser.parseTable([['s1', '100', 'species 1', 'c1'], + ['s1', '200', 'species 2', 'c1']], [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) - print parser.parseTable([['s1', '100', 'species 1', 'c1']], []) + print(parser.parseTable([['s1', '100', 'species 1', 'c1']], [])) assert not parser.errorMessage if __name__ == '__main__': --- a/fio/readModelText.py +++ b/fio/readModelText.py @@ -48,7 +48,7 @@ def readModelText(input): for n in range(numberOfSpecies): model.species[sid[n]] = Species('', '', initialAmounts[n]) # Read the packed reactions into a list of integers. - data = map(int, input.readline().rstrip().split()) + data = list(map(int, input.readline().rstrip().split())) # The propensity factors. propensityFactors = input.readline().rstrip().split() # Add the reactions. @@ -82,7 +82,7 @@ def readModelText(input): True, propensityFactors[i])) # Return the model. return model - except Exception, error: + except Exception as error: print(error) return None --- a/gui/MainFrame.py +++ b/gui/MainFrame.py @@ -17,19 +17,19 @@ import threading import webbrowser import platform import tempfile -import urllib2 +import urllib.request, urllib.error, urllib.parse -from About import About -from IdentifierListEditor import IdentifierListEditor -from ModelEditor import ModelEditor, EVT_SPECIES_OR_REACTIONS_MODIFIED -from Record import Record -from MethodEditor import MethodEditor -from Launcher import Launcher -from TrajectoriesList import TrajectoriesList -from PlotTimeSeries import closeAll +from .About import About +from .IdentifierListEditor import IdentifierListEditor +from .ModelEditor import ModelEditor, EVT_SPECIES_OR_REACTIONS_MODIFIED +from .Record import Record +from .MethodEditor import MethodEditor +from .Launcher import Launcher +from .TrajectoriesList import TrajectoriesList +from .PlotTimeSeries import closeAll from resourcePath import resourcePath -from DuplicateDialog import DuplicateDialog -from StateModified import EVT_STATE_MODIFIED +from .DuplicateDialog import DuplicateDialog +from .StateModified import EVT_STATE_MODIFIED from fio.SpeciesTextParser import SpeciesTextParser from fio.ReactionTextParser import ReactionTextParser from fio.TimeEventTextParser import TimeEventTextParser @@ -38,7 +38,7 @@ from fio.ParameterTextParser import Para from fio.CompartmentTextParser import CompartmentTextParser from state.State import State import state.simulationMethods as simulationMethods -from messages import UpdateVersionFrame, ScrolledMessageFrame,\ +from .messages import UpdateVersionFrame, ScrolledMessageFrame,\ CompilationError, CompilingMessage, truncatedMessageBox,\ truncatedErrorBox, openWrite @@ -200,7 +200,7 @@ class MainFrame(wx.Frame): def checkVersion(self): try: url = 'http://cain.sourceforge.net/version.txt' - currentVersion = urllib2.urlopen(url, timeout=2).read() + currentVersion = urllib.request.urlopen(url, timeout=2).read() c = currentVersion.split('.') t = self.state.version.split('.') if int(t[0]) < int(c[0]) or \ @@ -1026,7 +1026,7 @@ class MainFrame(wx.Frame): self.state.importStatistics(filename, self.modelId, self.methodId, recordedSpecies) self.updateSimulations() - except Exception, exception: + except Exception as exception: truncatedErrorBox("Problem in importing %s.\n" % filename + str(exception)) self.deleteOutput(self.modelId, self.methodId) @@ -1059,7 +1059,7 @@ class MainFrame(wx.Frame): self.state.importSuiteOfTrajectories(dialog.GetPaths(), self.modelId, self.methodId) - except Exception, exception: + except Exception as exception: truncatedErrorBox("Problem in importing trajectories.\n" + str(exception)) self.updateSimulations() @@ -1088,7 +1088,7 @@ class MainFrame(wx.Frame): if re.search('<sbml', open(filename, 'r').read()): self.importSbml(filename, useMessageBox) return - except Exception, exception: + except Exception as exception: if useMessageBox: truncatedErrorBox('Problem in determining the file type for ' + filename + '.\n' + str(exception)) @@ -1119,7 +1119,7 @@ class MainFrame(wx.Frame): self.filename = filename self.SetTitle(self.title + ' -- ' + self.filename) self.isModified = False - except Exception, exception: + except Exception as exception: if useMessageBox: truncatedErrorBox("Problem in reading %s.\n" % filename + errors + '\n' + str(exception)) @@ -1146,7 +1146,7 @@ class MainFrame(wx.Frame): # Select the model. self.modelsList.selectLast() self.isModified = True - except Exception, exception: + except Exception as exception: if useMessageBox: truncatedErrorBox("Problem in importing %s.\n" % filename + errors + '\n' + str(exception)) @@ -1170,7 +1170,7 @@ class MainFrame(wx.Frame): # Select the model. self.modelsList.selectLast() self.isModified = True - except Exception, exception: + except Exception as exception: if useMessageBox: truncatedErrorBox("Problem in importing text model %s.\n" % filename + '\n' + str(exception)) Loading
debian/patches/2to3.patch +495 −0 Original line number Diff line number Diff line Loading @@ -820,3 +820,498 @@ Last-Update: Tue, 10 Sep 2019 20:29:13 +0200 def main(): --- a/Cain.py +++ b/Cain.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/python3 """The script that launches Cain.""" @@ -32,15 +32,15 @@ def main(): errors.append('Consult the documentation available at http://cain.sourceforge.net/.') hasTk = True try: - import Tkinter + import tkinter except: hasTk = False if hasTk: - import tkMessageBox - root = Tkinter.Tk() + import tkinter.messagebox + root = tkinter.Tk() #Tkinter.Label(root, text='\n'.join(errors)).pack() #root.title('Error') - tkMessageBox.showwarning('Error', '\n'.join(errors)) + tkinter.messagebox.showwarning('Error', '\n'.join(errors)) root.mainloop() else: print('\n'.join(errors)) @@ -49,7 +49,7 @@ def main(): # Launch the application. from gui.Application import Application if len(sys.argv) > 2: - print "Warning: Unmatched command line arguments." + print("Warning: Unmatched command line arguments.") app = Application() if len(sys.argv) == 2: #app.readInitialFile(sys.argv[1]) --- a/gui/Preferences.py +++ b/gui/Preferences.py @@ -1,6 +1,6 @@ """Implements the preferences.""" -from PreferencesDialog import PreferencesDialog +from .PreferencesDialog import PreferencesDialog from copy import copy import wx import sys @@ -63,9 +63,9 @@ def main(): preferences.openDialog() app.MainLoop() for category in preferences.data: - print category + print(category) for field in preferences.data[category]: - print ' ', preferences.data[category][field] + print(' ', preferences.data[category][field]) if __name__ == '__main__': main() --- a/gui/Launcher.py +++ b/gui/Launcher.py @@ -24,7 +24,7 @@ def cpuCount(): # http://codeliberates.blogspot.com/2008/05/detecting-cpuscores-in-python.html # Linux, Unix and MacOS: if hasattr(os, "sysconf"): - if os.sysconf_names.has_key("SC_NPROCESSORS_ONLN"): + if "SC_NPROCESSORS_ONLN" in os.sysconf_names: # Linux & Unix: count = os.sysconf("SC_NPROCESSORS_ONLN") if isinstance(count, int) and count > 0: @@ -32,7 +32,7 @@ def cpuCount(): else: # OS X: return int(os.popen2("sysctl -n hw.ncpu")[1].read()) # Windows: - if os.environ.has_key("NUMBER_OF_PROCESSORS"): + if "NUMBER_OF_PROCESSORS" in os.environ: count = int(os.environ["NUMBER_OF_PROCESSORS"]); if count > 0: return count @@ -362,28 +362,28 @@ class LauncherFrame(wx.Frame): self.importTrajectories) def launch(self): - print 'launch' + print('launch') def compile(self): - print 'compile' + print('compile') def stop(self): - print 'stop' + print('stop') def kill(self): - print 'kill' + print('kill') def saveExecutable(self): - print 'saveExecutable' + print('saveExecutable') def exportJobs(self): - print 'exportJobs' + print('exportJobs') def importTrajectories(self): - print 'importTrajectories' + print('importTrajectories') def exportMathematica(self): - print 'exportMathematica' + print('exportMathematica') def getSelectedModelId(self): return '1' --- a/fio/ValueTextParser.py +++ b/fio/ValueTextParser.py @@ -77,21 +77,21 @@ def main(): assert not parser.parse('a', '', '', []) assert not parser.parse('a', 'expression', '', ['a']) - print parser.parseTable([['a', 'expression', '']], []) + print(parser.parseTable([['a', 'expression', '']], [])) assert not parser.errorMessage - print parser.parseTable([['', 'expression', '']], []) + print(parser.parseTable([['', 'expression', '']], [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) - print parser.parseTable([['a', '', '']], []) + print(parser.parseTable([['a', '', '']], [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) - print parser.parseTable([['a', 'expression', ''], ['a', 'expression', '']], - []) + print(parser.parseTable([['a', 'expression', ''], ['a', 'expression', '']], + [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) if __name__ == '__main__': main() --- a/fio/TriggerEventTextParser.py +++ b/fio/TriggerEventTextParser.py @@ -89,28 +89,28 @@ def main(): assert not parser.parse('1', 't>1', 's1=2', '0', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', '', 's1=2', '0', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', 't>1', '', '0', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', 't>1', 's1=2', 'a', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', 't>1', 's1=2', '-1', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') identifiers = [] assert parser.parseTable([['e1', 't>1', 's1=2', '0', '', 'name']], @@ -118,8 +118,8 @@ def main(): assert not parser.parseTable([['e1', 't>1', 's1=2', '0', '', 'name']], identifiers) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') if __name__ == '__main__': main() --- a/fio/ReactionTextParser.py +++ b/fio/ReactionTextParser.py @@ -161,38 +161,38 @@ def main(): assert not parser.parse('1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', '1 + 2 s2', 's3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', 's1 - 2 s2', 's3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', 's1 + 2 s2', '3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', 's1 + 2 s2', 's3 + s4', '1', 'reaction 1', '2.5', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('r1', 's1 + 2 s2', 's3', '1', '', 'reaction 1', ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') # Does not check for negative numbers. assert parser.parse('r1', 's1 + 2 s2', 's3', '1', '-2.5', 'reaction 1', @@ -201,8 +201,8 @@ def main(): assert not parser.parse('r1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1', ['s1', 's2', 's3'], ['r1']) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert parser.parseTable( [['r1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1']], @@ -219,16 +219,16 @@ def main(): [['1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1']], ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parseTable( [['r1', 's1 + 2 s2', 's3', '1', '2.5', 'reaction 1'], ['r1', 's1 + s2', 's3', '1', '2.5', 'reaction 2']], ['s1', 's2', 's3'], []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') if __name__ == '__main__': main() --- a/fio/TimeEventTextParser.py +++ b/fio/TimeEventTextParser.py @@ -88,35 +88,35 @@ def main(): assert not parser.parse('1', '1', 's1=2', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', '1', 's1=2', 'name', ['e1']) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', 'a', 's1=2', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', '[a]', 's1=2', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') assert not parser.parse('e1', '1', '', 'name', []) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') identifiers = [] assert parser.parseTable([['e1', '1', 's1=2', 'name']], identifiers) assert not parser.parseTable([['e1', '1', 's1=2', 'name']], identifiers) assert parser.errorMessage - print parser.errorMessage - print '' + print(parser.errorMessage) + print('') if __name__ == '__main__': main() --- a/fio/SpeciesTextParser.py +++ b/fio/SpeciesTextParser.py @@ -101,23 +101,23 @@ def main(): assert not parser.parse('a', '', '', 'c1', []) assert not parser.parse('a', '1', '', 'c1', ['a']) - print parser.parseTable([['s1', '100', 'species 1', 'c1']], []) + print(parser.parseTable([['s1', '100', 'species 1', 'c1']], [])) assert not parser.errorMessage - print parser.parseTable([['s1', '100', 'species 1', 'c1'], - ['s2', '200', 'species 2', 'c1']], []) + print(parser.parseTable([['s1', '100', 'species 1', 'c1'], + ['s2', '200', 'species 2', 'c1']], [])) assert not parser.errorMessage - print parser.parseTable([['1', '100', 'species 1', 'c1']], []) + print(parser.parseTable([['1', '100', 'species 1', 'c1']], [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) - print parser.parseTable([['s1', '100', 'species 1', 'c1'], - ['s1', '200', 'species 2', 'c1']], []) + print(parser.parseTable([['s1', '100', 'species 1', 'c1'], + ['s1', '200', 'species 2', 'c1']], [])) assert parser.errorMessage - print parser.errorMessage + print(parser.errorMessage) - print parser.parseTable([['s1', '100', 'species 1', 'c1']], []) + print(parser.parseTable([['s1', '100', 'species 1', 'c1']], [])) assert not parser.errorMessage if __name__ == '__main__': --- a/fio/readModelText.py +++ b/fio/readModelText.py @@ -48,7 +48,7 @@ def readModelText(input): for n in range(numberOfSpecies): model.species[sid[n]] = Species('', '', initialAmounts[n]) # Read the packed reactions into a list of integers. - data = map(int, input.readline().rstrip().split()) + data = list(map(int, input.readline().rstrip().split())) # The propensity factors. propensityFactors = input.readline().rstrip().split() # Add the reactions. @@ -82,7 +82,7 @@ def readModelText(input): True, propensityFactors[i])) # Return the model. return model - except Exception, error: + except Exception as error: print(error) return None --- a/gui/MainFrame.py +++ b/gui/MainFrame.py @@ -17,19 +17,19 @@ import threading import webbrowser import platform import tempfile -import urllib2 +import urllib.request, urllib.error, urllib.parse -from About import About -from IdentifierListEditor import IdentifierListEditor -from ModelEditor import ModelEditor, EVT_SPECIES_OR_REACTIONS_MODIFIED -from Record import Record -from MethodEditor import MethodEditor -from Launcher import Launcher -from TrajectoriesList import TrajectoriesList -from PlotTimeSeries import closeAll +from .About import About +from .IdentifierListEditor import IdentifierListEditor +from .ModelEditor import ModelEditor, EVT_SPECIES_OR_REACTIONS_MODIFIED +from .Record import Record +from .MethodEditor import MethodEditor +from .Launcher import Launcher +from .TrajectoriesList import TrajectoriesList +from .PlotTimeSeries import closeAll from resourcePath import resourcePath -from DuplicateDialog import DuplicateDialog -from StateModified import EVT_STATE_MODIFIED +from .DuplicateDialog import DuplicateDialog +from .StateModified import EVT_STATE_MODIFIED from fio.SpeciesTextParser import SpeciesTextParser from fio.ReactionTextParser import ReactionTextParser from fio.TimeEventTextParser import TimeEventTextParser @@ -38,7 +38,7 @@ from fio.ParameterTextParser import Para from fio.CompartmentTextParser import CompartmentTextParser from state.State import State import state.simulationMethods as simulationMethods -from messages import UpdateVersionFrame, ScrolledMessageFrame,\ +from .messages import UpdateVersionFrame, ScrolledMessageFrame,\ CompilationError, CompilingMessage, truncatedMessageBox,\ truncatedErrorBox, openWrite @@ -200,7 +200,7 @@ class MainFrame(wx.Frame): def checkVersion(self): try: url = 'http://cain.sourceforge.net/version.txt' - currentVersion = urllib2.urlopen(url, timeout=2).read() + currentVersion = urllib.request.urlopen(url, timeout=2).read() c = currentVersion.split('.') t = self.state.version.split('.') if int(t[0]) < int(c[0]) or \ @@ -1026,7 +1026,7 @@ class MainFrame(wx.Frame): self.state.importStatistics(filename, self.modelId, self.methodId, recordedSpecies) self.updateSimulations() - except Exception, exception: + except Exception as exception: truncatedErrorBox("Problem in importing %s.\n" % filename + str(exception)) self.deleteOutput(self.modelId, self.methodId) @@ -1059,7 +1059,7 @@ class MainFrame(wx.Frame): self.state.importSuiteOfTrajectories(dialog.GetPaths(), self.modelId, self.methodId) - except Exception, exception: + except Exception as exception: truncatedErrorBox("Problem in importing trajectories.\n" + str(exception)) self.updateSimulations() @@ -1088,7 +1088,7 @@ class MainFrame(wx.Frame): if re.search('<sbml', open(filename, 'r').read()): self.importSbml(filename, useMessageBox) return - except Exception, exception: + except Exception as exception: if useMessageBox: truncatedErrorBox('Problem in determining the file type for ' + filename + '.\n' + str(exception)) @@ -1119,7 +1119,7 @@ class MainFrame(wx.Frame): self.filename = filename self.SetTitle(self.title + ' -- ' + self.filename) self.isModified = False - except Exception, exception: + except Exception as exception: if useMessageBox: truncatedErrorBox("Problem in reading %s.\n" % filename + errors + '\n' + str(exception)) @@ -1146,7 +1146,7 @@ class MainFrame(wx.Frame): # Select the model. self.modelsList.selectLast() self.isModified = True - except Exception, exception: + except Exception as exception: if useMessageBox: truncatedErrorBox("Problem in importing %s.\n" % filename + errors + '\n' + str(exception)) @@ -1170,7 +1170,7 @@ class MainFrame(wx.Frame): # Select the model. self.modelsList.selectLast() self.isModified = True - except Exception, exception: + except Exception as exception: if useMessageBox: truncatedErrorBox("Problem in importing text model %s.\n" % filename + '\n' + str(exception))