cvs commit: gump/python/gump engine.py
ajack 2004/04/10 16:09:29 Modified:python/gump engine.py Log: Tinkering towards: http://issues.apache.org/jira/browse/GUMP-49 Revision ChangesPath 1.99 +10 -1 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.98 retrieving revision 1.99 diff -u -r1.98 -r1.99 --- engine.py 8 Apr 2004 15:00:57 - 1.98 +++ engine.py 10 Apr 2004 23:09:29 - 1.99 @@ -736,6 +736,12 @@ dirs.append(dir) +def setEndTime(self,run): + +logResourceUtilization('Set End Time') +# :TODO: Move this to run +run.getWorkspace().setEndTime() + """ ** @@ -1026,9 +1032,12 @@ elif 'gatherResults'==name: # Gather results.xml from other servers task=GumpTask(name,['preprocess']) +elif 'setEndTime'==name: +# Gather results.xml from other servers +task=GumpTask(name,['preprocess']) elif 'generateResults'==name: # Generate the results.xml for this server/workspace - task=GumpTask(name,['preprocess','loadStatistics','prepareDocumentation']) + task=GumpTask(name,['preprocess','loadStatistics','setEndTime','prepareDocumentation']) else: raise RuntimeError, 'Unknown task name ['+name+']' return task - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/04/08 08:00:57 Modified:python/gump engine.py Log: First attempt at GUMP-3 (don't use http://issues.apache.org/jira/browse/GUMP-3 Revision ChangesPath 1.98 +14 -5 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.97 retrieving revision 1.98 diff -u -r1.97 -r1.98 --- engine.py 6 Apr 2004 18:09:17 - 1.97 +++ engine.py 8 Apr 2004 15:00:57 - 1.98 @@ -227,6 +227,11 @@ # Update all the modules that have CVS repositories for module in list: +if module.isPackaged(): +# Not sure we have anything to do right now +# self.performModulePackageProcessing(module) +continue + if not module.hasCvs() \ and not module.hasSvn() \ and not module.hasJars(): continue @@ -290,7 +295,12 @@ log.debug('--- Synchronizing work directories with sources') for module in list: - + +# Packaged modules override CVS/SVN (so folks can have local +# Gumps that don't build everything). +if module.isPackaged(): +continue + # If no CVS/SVN, nothing to sync if not module.hasCvs() \ and not module.hasSvn(): continue @@ -375,15 +385,14 @@ for project in list: log.debug(' -- Project: #[' + `projectNo` + '] of [' + `projectCount` + '] : ' + project.getName()) - - + # Extract stats (in case we want to do conditional processing) stats=None if project.hasStats(): stats=project.getStats() if project.isPackaged(): -self.performPackageProcessing(run, project, stats) +self.performProjectPackageProcessing(run, project, stats) continue # Do this even if not ok @@ -681,7 +690,7 @@ # Not worth crapping out over... -def performPackageProcessing(self, run, project, stats): +def performProjectPackageProcessing(self, run, project, stats): """Perform Package Processing Actions""" log.debug(' -- Performing Package Processing for : '+ project.getName()) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/04/06 11:09:17 Modified:python/gump engine.py Log: Fixed typo. Revision ChangesPath 1.97 +1 -1 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.96 retrieving revision 1.97 diff -u -r1.96 -r1.97 --- engine.py 6 Apr 2004 17:27:12 - 1.96 +++ engine.py 6 Apr 2004 18:09:17 - 1.97 @@ -139,7 +139,7 @@ if run.getEnvironment().noForrest \ or run.getOptions().isTemplate() \ or run.getOptions().isText() : -if run.getOptions().isTemaplate(): +if run.getOptions().isTemplate(): documenter=TemplateDocumenter() else: documenter=TextDocumenter() - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/31 09:41:42 Modified:python/gump/model project.py propagation.py depend.py python/gump/document forrest.py template/forrest/src/documentation/content/xdocs site.xml python/gump/output xref.py python/gump engine.py Log: 1) Make annotations less verbose. 2) Show 'ids' for project jars 3) Fixed 'type' on maven.properties file 4) Attempted to fix 'affected' to not count repeats Revision ChangesPath 1.70 +5 -11 gump/python/gump/model/project.py Index: project.py === RCS file: /home/cvs/gump/python/gump/model/project.py,v retrieving revision 1.69 retrieving revision 1.70 diff -u -r1.69 -r1.70 --- project.py28 Mar 2004 18:58:05 - 1.69 +++ project.py31 Mar 2004 17:41:41 - 1.70 @@ -272,17 +272,11 @@ if self.affected: return self.affected # Look through all dependees -for dependee in self.getFullDependees(): -project=dependee.getOwnerProject() - +for project in self.getFullDependeeProjectList(): cause=project.getCause() -# # Something caused this some grief -# if cause: -# -# The something was this module or one of its projects -# +# The something was this project if cause == self: self.affected += 1 @@ -300,9 +294,9 @@ dependeeProject=dependee.getOwnerProject() if dependee.isOptional(): -dependeeProject.addWarning("Optional dependency " + self.name + " " + message) +dependeeProject.addInfo("Optional dependency " + self.name + " " + message) else: -dependee.addError("Dependency " + self.name + " " + message) +dependee.addInfo("Dependency " + self.name + " " + message) dependeeProject.changeState(STATE_PREREQ_FAILED,reason,cause) # # We have a potential clash between the + 1.12 +15 -1 gump/python/gump/output/xref.py Index: xref.py === RCS file: /home/cvs/gump/python/gump/output/xref.py,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- xref.py 15 Mar 2004 22:07:07 - 1.11 +++ xref.py 31 Mar 2004 17:41:41 - 1.12 @@ -41,6 +41,7 @@ self.descriptionToProject={} self.outputToProject={} +self.outputIdToProject={} self.descriptorLocationToProject={} @@ -111,12 +112,22 @@ for project in module.getProjects(): if project.hasJars(): for jar in project.getJars(): -jarName=os.path.basename(jar.getName()) +jarName=os.path.basename(jar.getName()) +jarId=jar.getId() or 'No Identifier' + +# Create a list to hold multiple (if needed) if not self.outputToProject.has_key(jarName): self.outputToProject[jarName]=[] + +# Create a list to hold multiple (if needed) +if not self.outputIdToProject.has_key(jarId): +self.outputIdToProject[jarId]=[] +# Store the Project if not project in self.outputToProject[jarName]: self.outputToProject[jarName].append(project) +if not project in self.outputIdToProject[jarId]: +self.outputIdToProject[jarId].append(project) def mapDescriptorLocations(self): for module in self.workspace.getModules(): @@ -149,6 +160,9 @@ def getOutputToProjectMap(self): return self.outputToProject + +def getOutputIdToProjectMap(self): +return self.outputIdToProject def getDescriptorLocationToProjectMap(self): return self.descriptorLocationToProject 1.95 +8 -6 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.94 retrieving revision 1.95 diff -u -r1.94 -r1.95 --- engine.py 24 Mar 2004 15:19:22 - 1.94 +++ engine.p
cvs commit: gump/python/gump engine.py
ajack 2004/03/24 07:19:22 Modified:python/gump/document forrest.py python/gump/model depend.py python/gump engine.py Log: 1) Added 'depth' and 'total depth' to Dependable (a measure of how much stuff is 'below' a given project). 2) Documented these above (no Statistics pages comparing, yet). 3) Create 'DependencyPath', and gather paths between two projects. 4) Document the path from this project to it's "cause" project/module. Revision ChangesPath 1.114 +37 -8 gump/python/gump/document/forrest.py Index: forrest.py === RCS file: /home/cvs/gump/python/gump/document/forrest.py,v retrieving revision 1.113 retrieving revision 1.114 diff -u -r1.113 -r1.114 --- forrest.py19 Mar 2004 23:11:46 - 1.113 +++ forrest.py24 Mar 2004 15:19:22 - 1.114 @@ -1218,6 +1218,9 @@ projectsSection.createParagraph().createRaw(description) +# +# The 'cause' is something upstream. +# if project.cause and not project==project.cause: self.insertTypedLink( project.cause, project, \ document.createNote( "This project failed due to: ")) @@ -1247,6 +1250,12 @@ self.insertLink(project.getModule(),project, \ detailsList.createEntry('Containing Module: ')) +if project.getDependencyDepth(): +detailsList.createEntry('Dependency Depth: ', project.getDependencyDepth()) + +if project.getTotalDependencyDepth(): +detailsList.createEntry('Total Dependency Depth: ', project.getTotalDependencyDepth()) + if project.hasHomeDirectory() and project.isVerboseOrDebug(): detailsList.createEntry('Home Directory: ', project.getHomeDirectory()) @@ -1358,17 +1367,33 @@ depens = 0 depees = 0 -depens += self.documentDependenciesList(dependencySection, "Project Dependencies", \ + +# +# The 'cause' is something upstream. Possibly a project, +# possibly a module (so determine paths to module projects). +# +if project.cause and not project==project.cause: +if isinstance(project.cause, Project): +for path in project.getDependencyPaths(project.cause): +self.documentDependenciesPath(dependencySection, 'Root Cause Dependency Path', \ +path, 0, 1, project, gumpSet) +elif isinstance(project.cause, Module): +for causeProject in project.cause.getProjects(): +for path in project.getDependencyPaths(causeProject): +self.documentDependenciesPath(dependencySection, 'Root Cause Module Dependency Path',\ +path, 0, 1, project, gumpSet) + +depens += self.documentDependenciesList(dependencySection, 'Project Dependencies', \ project.getDirectDependencies(), 0, 0, project, gumpSet) -depees += self.documentDependenciesList(dependencySection, "Project Dependees", \ +depees += self.documentDependenciesList(dependencySection, 'Project Dependees', \ project.getDirectDependees(), 1, 0, project, gumpSet) if project.isVerboseOrDebug(): -self.documentDependenciesList(dependencySection, "Full Project Dependencies",\ +self.documentDependenciesList(dependencySection, 'Full Project Dependencies',\ project.getFullDependencies(), 0, 1, project, gumpSet) -self.documentDependenciesList(dependencySection, "Full Project Dependees", \ +self.documentDependenciesList(dependencySection, 'Full Project Dependees', \ project.getFullDependees(), 1, 1, project, gumpSet) deps = depees + depens @@ -1438,6 +1463,10 @@ if not paths: pathTable.createLine('No ' + title + ' entries') +def documentDependenciesPath(self,xdocNode,title,path,dependees,full,referencingObject,gumpSet): +# :TODO: show start and end? + self.documentDependenciesList(xdocNode,title,path,dependees,full,referencingObject,gumpSet) + def documentDependenciesList(self,xdocNode,title,dependencies,dependees,full,referencingObject,gumpSet): totalDeps=0 @@ -1598,7 +1627,7 @@ stream.seek(0) xml
cvs commit: gump/python/gump engine.py
ajack 2004/03/16 21:00:15 Modified:python/gump engine.py Log: Check for pre-existence of directories in
cvs commit: gump/python/gump engine.py
ajack 2004/03/16 15:19:04 Modified:python/gump engine.py Log: Allow a check task... Revision ChangesPath 1.89 +3 -1 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.88 retrieving revision 1.89 diff -u -r1.88 -r1.89 --- engine.py 16 Mar 2004 21:04:46 - 1.88 +++ engine.py 16 Mar 2004 23:19:04 - 1.89 @@ -157,7 +157,6 @@ workspace.writeXMLToFile(default.merge) workspace.setMergeFile(default.merge) - """ ** @@ -983,6 +982,9 @@ task=GumpTask(name,['preprocess','loadStatistics']) elif 'build'==name: # Build using Ant|Maven|... +task=GumpTask(name,['preprocess','loadStatistics']) +elif 'check'==name: +# Check metadata task=GumpTask(name,['preprocess','loadStatistics']) elif 'prepareDocumentation'==name: # Prepare documentation (e.g. create forest templates) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/12 16:17:40 Modified:python/gump/model project.py stats.py repository.py python/gump/document forrest.py documenter.py python/gump/utils tools.py sync.py python/gump/output statsdb.py python/gump engine.py Log: 1) Made sure not duplicate FOG calculations. 2) Do forrest to a staging area, then sync to public [minimal missing pages, but cleanest] 3) Clean up forrest sites/work once published. Revision ChangesPath 1.63 +4 -8 gump/python/gump/model/project.py Index: project.py === RCS file: /home/cvs/gump/python/gump/model/project.py,v retrieving revision 1.62 retrieving revision 1.63 diff -u -r1.62 -r1.63 --- project.py9 Mar 2004 19:57:06 - 1.62 +++ project.py13 Mar 2004 00:17:39 - 1.63 @@ -304,6 +304,7 @@ def getReports(self): return self.reports + def getFOGFactor(self): return self.getStats().getFOGFactor() @@ -1222,11 +1223,6 @@ """Statistics Holder""" def __init__(self,projectName): Statistics.__init__(self,projectName) - -def getFOGFactor(self): -good=self.successes -bad=(self.failures+self.prereqs) or 1 -return good/bad def getKeyBase(self): return 'project:'+ self.name 1.13 +6 -4 gump/python/gump/model/stats.py Index: stats.py === RCS file: /home/cvs/gump/python/gump/model/stats.py,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- stats.py 12 Mar 2004 16:10:39 - 1.12 +++ stats.py 13 Mar 2004 00:17:39 - 1.13 @@ -94,7 +94,9 @@ self.lastUpdated=0 def getFOGFactor(self): -return (float(self.successes) / (float(self.failures) + float(self.prereqs))) +good=self.successes +bad=(self.failures+self.prereqs) or 1 +return float(good)/float(bad) def getLastUpdated(self): return (self.lastUpdated) 1.9 +3 -6 gump/python/gump/model/repository.py Index: repository.py === RCS file: /home/cvs/gump/python/gump/model/repository.py,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- repository.py 20 Jan 2004 21:55:23 - 1.8 +++ repository.py 13 Mar 2004 00:17:39 - 1.9 @@ -171,9 +171,6 @@ """Statistics Holder""" def __init__(self,repositoryName): Statistics.__init__(self,repositoryName) - -def getFOGFactor(self): -return (self.successes / (self.failures - self.prereqs)) def getKeyBase(self): return 'repository:'+ self.name 1.105 +66 -63gump/python/gump/document/forrest.py Index: forrest.py === RCS file: /home/cvs/gump/python/gump/document/forrest.py,v retrieving revision 1.104 retrieving revision 1.105 diff -u -r1.104 -r1.105 --- forrest.py12 Mar 2004 18:55:24 - 1.104 +++ forrest.py13 Mar 2004 00:17:40 - 1.105 @@ -67,7 +67,6 @@ import os import sys import logging -import shutil from string import lower,replace from xml.sax.saxutils import escape @@ -79,7 +78,7 @@ from gump.document.resolver import * from gump.utils import * from gump.utils.xmlutils import xmlize -from gump.utils.tools import syncDirectories,copyDirectories +from gump.utils.tools import syncDirectories,copyDirectories,wipeDirectoryTree from gump.model import * from gump.model.stats import * from gump.model.project import AnnotatedPath, ProjectStatistics @@ -104,24 +103,31 @@ def getResolverForRun(self,run): return self.resolver -def documentRun(self, run): +def prepareRun(self, run): -log.debug('--- Documenting Results') +log.debug('--- Prepare for Documenting Results') workspace=run.getWorkspace() gumpSet=run.getGumpSet() # Seed with default/site skins/etc. self.prepareForrest(workspace) - - # Document... + +def documentRun(self, run): + +log.debug('--- Documenting Results') + +workspace=run.getWorkspace() +gumpSet=run.getGumpSet() + +# Document... self.documentWorkspace(run,workspace,gumpSet) if gumpSet.isFull(): self.documentStatistics(run,workspace,gumpSet) self.documentXRef(run,workspace,gumpSet) # Launch
cvs commit: gump/python/gump engine.py
ajack 2004/03/12 08:51:56 Modified:python/gump engine.py Log: NEed to import stats to get to the constants. Revision ChangesPath 1.84 +1 -0 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.83 retrieving revision 1.84 diff -u -r1.83 -r1.84 --- engine.py 12 Mar 2004 16:10:39 - 1.83 +++ engine.py 12 Mar 2004 16:51:56 - 1.84 @@ -22,6 +22,7 @@ from gump.model.module import Module from gump.model.project import Project from gump.model.depend import ProjectDependency +from gump.model.stats import * from gump.model.state import * from gump.net.cvs import * - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/12 08:10:39 Modified:python/gump/document forrest.py xdoc.py python/gump/model stats.py template/forrest/src/documentation/content/xdocs site.xml python/gump engine.py Log: 1) Allow 'TAB' not to be mapped to underscore 2) Create _fixes pages showing recent changes to success (with description) 3) Added description paragraph to _todos (the opposite of 2). Revision ChangesPath 1.102 +141 -8gump/python/gump/document/forrest.py Index: forrest.py === RCS file: /home/cvs/gump/python/gump/document/forrest.py,v retrieving revision 1.101 retrieving revision 1.102 diff -u -r1.101 -r1.102 --- forrest.py12 Mar 2004 14:47:48 - 1.101 +++ forrest.py12 Mar 2004 16:10:39 - 1.102 @@ -500,6 +500,9 @@ totalAffected=0 projectsSection=document.createSection('Projects with issues...') +projectsSection.createParagraph("""These are the project that need 'fixing'. +This page helps Gumpmeisters (and others) locate the main areas to focus attention. +The count of affected indicates relative importance of fixing this project.""") projectsTable=projectsSection.createTable(['Name','Affected',\ 'Dependees', \ 'Duration\nin state','Project State']) @@ -543,6 +546,66 @@ 'Total Affected Projects: ' + str(totalAffected)) document.serialize() + +# +# -- +# +# project_fixes.xml -- Projects w/ fixes in build order +# +document=XDocDocument('Project Fixes', \ +self.resolver.getFile(workspace,'project_fixes')) +self.documentSummary(document, workspace.getProjectSummary()) + +totalAffected=0 + +projectsSection=document.createSection('Projects with fixes...') +projectsSection.createParagraph("""These are the projects that were 'fixed' (state changed to success) within %s runs. +This page helps Gumpmeisters (and others) observe community progress. +""" % INSIGNIFICANT_DURATION) + +projectsTable=projectsSection.createTable(['Name','Affected',\ +'Dependees', \ +'Duration\nin state','Project State']) +pcount=0 +for project in sortedProjectList: +if not gumpSet.inProjectSequence(project): continue + +if not project.getState()==STATE_SUCCESS or \ +not project.getStats().sequenceInState < INSIGNIFICANT_DURATION: +continue + +pcount+=1 + +# +# Determine the number of projects this module (or it's projects) +# cause not to be run. +# +affected=project.determineAffected() +totalAffected += affected + +# How long been like this +seq=stats=project.getStats().sequenceInState + +projectRow=projectsTable.createRow() +projectRow.createComment(project.getName()) + +self.insertLink(project,workspace,projectRow.createData()) + +projectRow.createData(affected) + +projectRow.createData( project.getFullDependeeCount()) + +projectRow.createData(seq) + +self.insertStateIcon(project,workspace,projectRow.createData()) + +if not pcount: +projectsTable.createLine('None') +else: +projectsSection.createParagraph( +'Total Affected Projects: ' + str(totalAffected)) + +document.serialize() # # -- @@ -553,7 +616,10 @@ self.resolver.getFile(workspace,'module_todos'),) self.documentSummary(document, workspace.getProjectSummary()) -modulesSection=document.createSection('Modules with TODOs') +modulesSection=document.createSection('Modules with TODOs') +modulesSection.createParagraph("""These are the modules that need 'fixing', or contained projects that need fixing. +This page helps Gumpmeisters (and others) locate the main areas to focus attention. +The count of affected indicates relative importance of fixing this
cvs commit: gump/python/gump engine.py build.py
ajack 2004/03/12 06:21:00 Modified:python/gump engine.py build.py Log: Allow build to run standalone w/o loading stats Revision ChangesPath 1.82 +41 -11gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.81 retrieving revision 1.82 diff -u -r1.81 -r1.82 --- engine.py 11 Mar 2004 16:13:50 - 1.81 +++ engine.py 12 Mar 2004 14:21:00 - 1.82 @@ -391,6 +391,33 @@ ** """ +def build(self,run,all=1): + +# +# Load the statistics (so we can use them during +# other operations). +# +#logResourceUtilization('Before load statistics') +#self.loadStatistics(run) + +# +# Run the build commands +# +logResourceUtilization('Before build') +if all: +self.buildAll(run) +else: +self.buildProjects(run) + +# Return an exit code based off success +# :TODO: Move onto run +if run.getWorkspace().isSuccess(): +result = SUCCESS +else: +result = FAILED + +return result + def buildAll(self,run): """ Build a GumpRun's Full Project Stack """ @@ -426,28 +453,31 @@ # Extract stats (in case we want to do conditional processing) -stats=project.getStats() +stats=None +if project.hasStats(): +stats=project.getStats() if project.isPackaged(): -self.performPackageProcessing( run, project, stats) +self.performPackageProcessing(run, project, stats) continue # Do this even if not ok -self.performPreBuild( run, project, stats ) +self.performPreBuild(run, project, stats) wasBuilt=0 if project.okToPerformWork(): log.debug(' -- Building: [' + `projectNo` + '] ' + project.getName()) # Turn on --verbose or --debug if failing ... -if (not STATE_SUCCESS == stats.currentState) and \ -not project.isVerboseOrDebug(): -if stats.sequenceInState > 5: -project.addInfo('Enable "debug" output, due to error.') -project.setDebug(1) -else: -project.addInfo('Enable "verbose" output, due to error.') -project.setVerbose(1) +if stats: +if (not STATE_SUCCESS == stats.currentState) and \ +not project.isVerboseOrDebug(): +if stats.sequenceInState > 5: +project.addInfo('Enable "debug" output, due to error.') +project.setDebug(1) +else: +project.addInfo('Enable "verbose" output, due to error.') +project.setVerbose(1) # # Get the appropriate build command... 1.42 +2 -5 gump/python/gump/build.py Index: build.py === RCS file: /home/cvs/gump/python/gump/build.py,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- build.py 8 Mar 2004 22:28:08 - 1.41 +++ build.py 12 Mar 2004 14:21:00 - 1.42 @@ -65,11 +65,8 @@ # #Perform this integration run... # -if '*' in args: -result = engine.buildAll(run) -else: -result = engine.buildProjects(run) - +result = engine.build(run, '*' in args) + # log.info('Gump Build complete. Exit code:' + str(result)) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/11 08:13:51 Modified:python/gump/utils work.py launcher.py tools.py sync.py python/gump/document forrest.py python/gump/model depend.py python/gump/net mailer.py python/gump engine.py Log: Minor tweaks (mainly documentation) Revision ChangesPath 1.11 +7 -7 gump/python/gump/utils/work.py Index: work.py === RCS file: /home/cvs/gump/python/gump/utils/work.py,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- work.py 9 Mar 2004 19:57:06 - 1.10 +++ work.py 11 Mar 2004 16:13:50 - 1.11 @@ -173,17 +173,17 @@ self.command=command self.result=result -def overview(self,lines=50): +def overview(self,lines=50,wrapLen=0,eol=None,marker=None): overview=TimedWorkItem.overview(self) overview += self.command.overview() if self.result: overview += "-\n" -overview+=self.result.tail(lines) +overview+=self.result.tail(lines,wrapLen,eol,marker) overview += "-\n" return overview -def tail(self,lines=50): -return self.result.tail(lines) +def tail(self,lines=50,wrapLen=0,eol=None,marker=None): +return self.result.tail(lines,wrapLen,eol,marker) def clone(self): return CommandWorkItem(self.type,self.command,self.result,self.message) 1.14 +5 -5 gump/python/gump/utils/launcher.py Index: launcher.py === RCS file: /home/cvs/gump/python/gump/utils/launcher.py,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- launcher.py 4 Mar 2004 17:26:09 - 1.13 +++ launcher.py 11 Mar 2004 16:13:50 - 1.14 @@ -296,10 +296,10 @@ return overview -def tail(self,lines): +def tail(self,lines,wrapLen=0,eol=None,marker=None): if self.output: from gump.utils.tools import tailFileToString -tail = tailFileToString(self.output,lines) +tail = tailFileToString(self.output,lines,wrapLen,eol,marker) else: tail = "No output\n" 1.17 +19 -9 gump/python/gump/utils/tools.py Index: tools.py === RCS file: /home/cvs/gump/python/gump/utils/tools.py,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- tools.py 9 Mar 2004 19:57:06 - 1.16 +++ tools.py 11 Mar 2004 16:13:50 - 1.17 @@ -207,7 +207,7 @@ if annotatable: transferAnnotations(sync, annotatable) -def tailFile(file,lines): +def tailFile(file,lines,wrapLen=0,eol=None,marker=None): """ Return the last N lines of a file as a list """ taillines=[] try: @@ -217,14 +217,24 @@ o=open(file, 'r') line=o.readline() -while line: +size=0 +while line: +# +# Wrap if requested +# +if wrapLen: +wline=wrapLine(line,eol,marker,wrapLen) +else: +wline=line + # Store the lines -taillines.append(line) +taillines.append(wline) # But dump any before 'lines' -size=len(taillines) +size+=len(wline) if size > lines: del taillines[0:(size-lines)] +size=len(taillines) # Read next... line=o.readline() @@ -236,8 +246,8 @@ return taillines -def tailFileToString(file,lines): -return "".join(tailFile(file,lines)) +def tailFileToString(file,lines,wrapLen=0,eol=None,marker=None): +return "".join(tailFile(file,lines,wrapLen,eol,marker)) if __name__=='__main__': 1.4 +5 -5 gump/python/gump/utils/sync.py Index: sync.py === RCS file: /home/cvs/gump/python/gump/utils/sync.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- sync.py 9 Mar 2004 19:57:06 - 1.3 +++ sync.py 11 Mar 2004 16:13:50 - 1.4 @@ -93
cvs commit: gump/python/gump engine.py
ajack 2004/03/09 15:20:33 Modified:python/gump/document resolver.py python/gump engine.py Log: Try again (hope I get it this time, I'm out of time today...) Revision ChangesPath 1.16 +4 -4 gump/python/gump/document/resolver.py Index: resolver.py === RCS file: /home/cvs/gump/python/gump/document/resolver.py,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- resolver.py 28 Feb 2004 00:08:49 - 1.15 +++ resolver.py 9 Mar 2004 23:20:32 - 1.16 @@ -346,7 +346,7 @@ if not root: root=self.rootDir if not os.path.exists(root): log.debug('Make directory : [' + root + ']') -os.mkdir(root) +os.makedirs(root) for p in path: root=os.path.join(root,p) if not os.path.exists(root): 1.80 +4 -3 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.79 retrieving revision 1.80 diff -u -r1.79 -r1.80 --- engine.py 9 Mar 2004 21:13:18 - 1.79 +++ engine.py 9 Mar 2004 23:20:32 - 1.80 @@ -370,9 +370,10 @@ if module.okToPerformWork(): -sourcedir = os.path.abspath(os.path.join(workspace.getCvsDirectory(), \ -module.name)) # todo allow override -destdir = os.path.abspath(workspace.getBaseDirectory()) +sourcedir = os.path.abspath( \ +os.path.join(workspace.getCvsDirectory(), \ +module.name)) # todo allow override +destdir = module.getSourceDirectory() # Perform the sync... try: - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/09 13:13:18 Modified:python/gump/model workspace.py python/gump engine.py Log: Removed last trace of rsync... Revision ChangesPath 1.32 +3 -9 gump/python/gump/model/workspace.py Index: workspace.py === RCS file: /home/cvs/gump/python/gump/model/workspace.py,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- workspace.py 1 Mar 2004 18:58:00 - 1.31 +++ workspace.py 9 Mar 2004 21:13:18 - 1.32 @@ -125,7 +125,6 @@ # # Set to true if not found, see checkEnvironment # - self.noRSync=0 self.noForrest=0 self.noMaven=0 self.noRuper=0 @@ -634,7 +633,6 @@ # #These ought set a switch.. # -#rsync or cp #forrest (for documentation) # self.checkExecutable('env','',0) @@ -663,10 +661,6 @@ not self.checkExecutable('maven','--version',0,0,'check_maven'): self.noMaven=1 self.addWarning('"maven" command not found, no Maven builds') - -if not self.checkExecutable('rsync','-help',0): -self.noRSync=1 -self.addWarning('"rsync" command not found, so attempting recursive copy "cp -R"') if not self.checkExecutable('pgrep','-help',0): self.noPGrep=1 1.79 +1 -2 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.78 retrieving revision 1.79 diff -u -r1.78 -r1.79 --- engine.py 9 Mar 2004 19:57:06 - 1.78 +++ engine.py 9 Mar 2004 21:13:18 - 1.79 @@ -356,8 +356,7 @@ module.setUpdated(cmdResult.hasOutput()) def syncWorkDirs( self, run ): -"""copy the raw module (project) materials from source to work dir - (hopefully using rsync, cp is fallback) """ +"""copy the raw module (project) materials from source to work dir""" workspace = run.getWorkspace() - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/08 16:20:51 Modified:python/gump engine.py Log: Display package listings even if no license (indent problem) Revision ChangesPath 1.77 +15 -21gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.76 retrieving revision 1.77 diff -u -r1.76 -r1.77 --- engine.py 8 Mar 2004 22:28:08 - 1.76 +++ engine.py 9 Mar 2004 00:20:51 - 1.77 @@ -766,25 +766,20 @@ # directories outputs.append(licensePath) -# -# List all directories that should've contained -# outputs, to see what is there. -# -dirs=[] -dircnt=0 -listed=0 -for output in outputs: -dir=os.path.dirname(output) -if not dir in dirs: -dircnt += 1 -if os.path.exists(dir): -listDirectoryToFileHolder(project,dir,\ -FILE_TYPE_PACKAGE, - 'list_'+project.getName()+'_dir'+str(dircnt)+'_'+os.path.basename(dir)) -dirs.append(dir) -listed += 1 -else: -project.addError("No such directory (where package output is expected) : " + dir) +# +# List all directories that should've contained +# outputs, to see what is there. +# +dirs=[] +dircnt=0 +for output in outputs: +dir=os.path.dirname(output) +if not dir in dirs: +dircnt += 1 +listDirectoryToFileHolder(project,dir,\ +FILE_TYPE_PACKAGE, + 'list_'+project.getName()+'_dir'+str(dircnt)+'_'+os.path.basename(dir)) +dirs.append(dir) """ @@ -826,8 +821,7 @@ # # Load stats (and stash onto projects) # -db.loadStatistics(workspace) - +db.loadStatistics(workspace) """ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/07 16:27:50 Modified:python/gump engine.py Log: Set stats before trying ot use it... Revision ChangesPath 1.75 +4 -3 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.74 retrieving revision 1.75 diff -u -r1.74 -r1.75 --- engine.py 7 Mar 2004 22:22:35 - 1.74 +++ engine.py 8 Mar 2004 00:27:50 - 1.75 @@ -419,12 +419,13 @@ log.debug(' -- Project: #[' + `projectNo` + '] of [' + `projectCount` + '] : ' + project.getName()) -if project.isPackaged(): -self.performPackageProcessing( run, project, stats) -continue # Extract stats (in case we want to do conditional processing) stats=project.getStats() + +if project.isPackaged(): +self.performPackageProcessing( run, project, stats) +continue # Do this even if not ok self.performPreBuild( run, project, stats ) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/07 14:22:36 Modified:python/gump/model project.py object.py python/gump/document forrest.py python/gump/utils tools.py file.py python/gump engine.py Log: Minor tweaks... Revision ChangesPath 1.61 +15 -11gump/python/gump/model/project.py Index: project.py === RCS file: /home/cvs/gump/python/gump/model/project.py,v retrieving revision 1.60 retrieving revision 1.61 diff -u -r1.60 -r1.61 --- project.py5 Mar 2004 23:42:22 - 1.60 +++ project.py7 Mar 2004 22:22:35 - 1.61 @@ -283,7 +283,7 @@ return self.getModule().getMetadataViewUrl() def getViewUrl(self): -# :TODO: if a basedir the offset? +# :TODO: if a basedir then offset? return self.getModule().getViewUrl() def addJar(self,jar): @@ -855,8 +855,10 @@ # # Allow ant-level debugging... # -if debug: cmd.addParameter('-debug') -if verbose: cmd.addParameter('-verbose') +if self.getWorkspace().isDebug() or self.isDebug() or debug: +cmd.addParameter('-debug') +if self.getWorkspace().isVerbose() or self.isVerbose() or verbose: +cmd.addParameter('-verbose') # #This sets the *defaults*, a workspace could override them. @@ -934,8 +936,10 @@ # # Allow maven-level debugging... # -if debug: cmd.addParameter('--debug') -if verbose: cmd.addParameter('--exception') +if self.getWorkspace().isDebug() or self.isDebug() or debug: +cmd.addParameter('--debug') +if self.getWorkspace().isVerbose() or self.isVerbose() or verbose: +cmd.addParameter('--exception') # # Suppress downloads @@ -994,11 +998,11 @@ cmd.addPrefixedParameter('-X','bootclasspath/p',bootclasspath,':') # -# Allow ant-level debugging... +# Allow script-level debugging... # -if self.getWorkspace().isDebug() or debug: +if self.getWorkspace().isDebug() or self.isDebug() or debug: cmd.addParameter('-debug') -if self.getWorkspace().isVerbose() or verbose: +if self.getWorkspace().isVerbose() or self.isVerbose() or verbose: cmd.addParameter('-verbose') return cmd 1.20 +14 -5 gump/python/gump/model/object.py Index: object.py === RCS file: /home/cvs/gump/python/gump/model/object.py,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- object.py 1 Mar 2004 18:58:00 - 1.19 +++ object.py 7 Mar 2004 22:22:35 - 1.20 @@ -168,6 +168,9 @@ # The XML model self.xml=xml + self.debug=None + self.verbose=None + self.completionPerformed=0 def isComplete(self): @@ -176,11 +179,17 @@ def setComplete(self,complete): self.completionPerformed=complete +def setDebug(self,debug): +self.debug=debug + def isDebug(self): -return self.xml.debug +return self.debug or self.xml.debug +def setVerbose(self,verbose): +self.verbose=verbose + def isVerbose(self): -return self.xml.verbose +return self.verbose or self.xml.verbose def dump(self, indent=0, output=sys.stdout): """ Display the contents of this object """ 1.93 +8 -5 gump/python/gump/document/forrest.py Index: forrest.py === RCS file: /home/cvs/gump/python/gump/document/forrest.py,v retrieving revision 1.92 retrieving revision 1.93 diff -u -r1.92 -r1.93 --- forrest.py5 Mar 2004 23:42:22 - 1.92 +++ forrest.py7 Mar 2004 22:22:35 - 1.93 @@ -504,7 +504,8 @@ projectsSection=document.createSection('Projects with issues...') projectsTable=projectsSection.createTable(['Name','Affected',\ -'Duration\nin state','Project State','Elapsed']) +'Dependencies', \ +'Duration\nin state','Project State']) pcount=0 for project in sortedProjectList: if not gumpSet.inSequence(project): continue @@ -531,10 +532,12 @@ self.insertLink(project,workspace,projectRow.createData()) projectRow.cre
cvs commit: gump/python/gump engine.py
ajack 2004/03/03 12:32:14 Modified:python/gump engine.py Log: 1) More formatting for 'results on other servers'. 2) Exclude gumpy.lock and gumpy.log 3) Tweaks to gumpy.py (i.e. add --check) Revision ChangesPath 1.72 +10 -5 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.71 retrieving revision 1.72 diff -u -r1.71 -r1.72 --- engine.py 3 Mar 2004 01:02:25 - 1.71 +++ engine.py 3 Mar 2004 20:32:14 - 1.72 @@ -762,17 +762,20 @@ def checkModules(self,run): # Check all the modules -for module in run.getGumpSet().getModules(): +list=run.getGumpSet().getModules() +moduleCount=len(list) +moduleNo=1 +for module in list: + +log.info(' -- Module: #[' + `moduleNo` + '] of [' + `moduleCount` + '] : ' + module.getName()) + module.changeState(STATE_SUCCESS) +moduleNo+=1 def checkProjects(self,run): list=run.getGumpSet().getProjects() # Check all projects -log.debug('Total Project CheckList:'); -for p in list: -log.debug(' To Check : ' + p.name) - projectCount=len(list) projectNo=1 for project in list: @@ -788,6 +791,8 @@ if not project.okToPerformWork(): log.warn('Failed to check project #[' + `projectNo` + '] [' + project.getName() + '], state:' \ + project.getStateDescription()) + +projectNo+=1 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/02 17:02:26 Modified:python/gump engine.py Log: Check isn't critical to the LSD run, but patch it anyway... Revision ChangesPath 1.71 +5 -4 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.70 retrieving revision 1.71 diff -u -r1.70 -r1.71 --- engine.py 3 Mar 2004 00:49:52 - 1.70 +++ engine.py 3 Mar 2004 01:02:25 - 1.71 @@ -751,10 +751,6 @@ def checkWorkspace(self,run): """ Check a GumpRun's Projects """ workspace=run.getWorkspace() - -log.debug('Total Project CheckList:'); -for p in list: -log.debug(' To Check : ' + p.name) log.debug('--- Building work directories with sources') @@ -772,6 +768,11 @@ def checkProjects(self,run): list=run.getGumpSet().getProjects() # Check all projects + +log.debug('Total Project CheckList:'); +for p in list: +log.debug(' To Check : ' + p.name) + projectCount=len(list) projectNo=1 for project in list: - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/01 13:28:00 Modified:python/gump/results resulter.py python/gump/document forrest.py python/gump/test/resources/full1 profile.xml python/gump engine.py Added: python/gump/test/resources/full1 server2.xml Log: Working out the result bugs. Revision ChangesPath 1.7 +2 -4 gump/python/gump/results/resulter.py Index: resulter.py === RCS file: /home/cvs/gump/python/gump/results/resulter.py,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- resulter.py 1 Mar 2004 20:47:02 - 1.6 +++ resulter.py 1 Mar 2004 21:28:00 - 1.7 @@ -149,8 +149,7 @@ # moduleResults = self.getResultsForAllServers(module) -if moduleResults: -module.setServerResults(moduleResults) +module.setServerResults(moduleResults) # Add projects for project in module.getProjects(): @@ -161,8 +160,7 @@ # projectResults = self.getResultsForAllServers(project) -if projectResults: -project.setServerResults(projectResults) +project.setServerResults(projectResults) def generateResults(self,where=None): """ Generate a results file """ 1.88 +4 -4 gump/python/gump/document/forrest.py Index: forrest.py === RCS file: /home/cvs/gump/python/gump/document/forrest.py,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- forrest.py1 Mar 2004 18:58:00 - 1.87 +++ forrest.py1 Mar 2004 21:28:00 - 1.88 @@ -1389,7 +1389,7 @@ serverRow=serversTable.createRow() serverResults=None -if isinstance(linkable,Resultable): +if isinstance(linkable,Resultable) and linkable.hasServerResults(): serverResults=linkable.getServerResults() for server in servers: 1.9 +2 -1 gump/python/gump/test/resources/full1/profile.xml Index: profile.xml === RCS file: /home/cvs/gump/python/gump/test/resources/full1/profile.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- profile.xml 24 Feb 2004 19:32:28 - 1.8 +++ profile.xml 1 Mar 2004 21:28:00 - 1.9 @@ -16,7 +16,8 @@ - + + 1.1 gump/python/gump/test/resources/full1/server2.xml Index: server2.xml === Server 2 http://gump.apache.org 1.68 +1 -2 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.67 retrieving revision 1.68 diff -u -r1.67 -r1.68 --- engine.py 1 Mar 2004 20:09:52 - 1.67 +++ engine.py 1 Mar 2004 21:28:00 - 1.68 @@ -146,8 +146,7 @@ # logResourceUtilization('Before generate results') gatherResults(run) - - + # Update Statistics/Results on full runs if run.getGumpSet().isFull(): - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/01 12:09:52 Modified:python/gump engine.py Log: Apparently even when I test locally I miss bugs thing, like importing a function to call. Don't ask me how... Revision ChangesPath 1.67 +1 -1 gump/python/gump/engine.py Index: engine.py === RCS file: /home/cvs/gump/python/gump/engine.py,v retrieving revision 1.66 retrieving revision 1.67 diff -u -r1.66 -r1.67 --- engine.py 1 Mar 2004 18:58:01 - 1.66 +++ engine.py 1 Mar 2004 20:09:52 - 1.67 @@ -32,7 +32,7 @@ from gump.output.statsdb import * from gump.output.repository import JarRepository from gump.output.nag import nag -from gump.results.resulter import generateResults +from gump.results.resulter import gatherResults,generateResults from gump.syndication.syndicator import syndicate - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: gump/python/gump engine.py
ajack 2004/03/01 10:58:01 Modified:python/gump/model project.py state.py module.py property.py workspace.py object.py python/gump/document forrest.py python/gump/results resulter.py model.py python/gump/utils tools.py profile gump.xml python/gump engine.py Log: 1) Tinkering w/ adding a Tracker [one day will link to] 2) Results ... 2.1) Gathering results from other servers [downloading/parsing results.xml] 2.2) Generating results.xml for this server 3) Making 'catDirectoryToFileHolder' do a directory listing also, for debugging. Revision ChangesPath 1.58 +8 -4 gump/python/gump/model/project.py Index: project.py === RCS file: /home/cvs/gump/python/gump/model/project.py,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- project.py29 Feb 2004 19:16:19 - 1.57 +++ project.py1 Mar 2004 18:58:00 - 1.58 @@ -66,6 +66,7 @@ from gump.model.state import * from gump.model.object import ModelObject, NamedModelObject, Jar,\ +Resultable, \ Mkdir, Delete, JunitReport, Work from gump.model.stats import Statable, Statistics from gump.model.property import Property @@ -178,10 +179,13 @@ return os.pathsep.join(self.getSimpleClasspathList()) -class Project(NamedModelObject, Statable): +class Project(NamedModelObject, Statable, Resultable): """A single project""" def __init__(self,xml,workspace): NamedModelObject.__init__(self,xml.getName(),xml,workspace) + + Statable.__init__(self) + Resultable.__init__(self) # Navigation self.module=None # Module has to claim ownership 1.12 +24 -3 gump/python/gump/model/state.py Index: state.py === RCS file: /home/cvs/gump/python/gump/model/state.py,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- state.py 17 Feb 2004 21:54:20 - 1.11 +++ state.py 1 Mar 2004 18:58:00 - 1.12 @@ -148,6 +148,19 @@ REASON_BUILD_TIMEDOUT : "BuildTimedOut", REASON_MISSING_OUTPUTS : "MissingBuildOutputs" } +namedReasonCode = { "NotSet" : REASON_UNSET, +"CompletePackageInstall" : REASON_PACKAGE, +"BadPackageInstallation" : REASON_PACKAGE_BAD, +"CircularDependency" : REASON_CIRCULAR, +"ConfigurationFailed" : REASON_CONFIG_FAILED, +"UpdateFailed" : REASON_UPDATE_FAILED, +"SynchronizeFailed" : REASON_SYNC_FAILED, +"Pre-BuildFailed" : REASON_PREBUILD_FAILED, +"BuildFailed" : REASON_BUILD_FAILED, +"Post-BuildFailed" : REASON_POSTBUILD_FAILED, +"BuildTimedOut" : REASON_BUILD_TIMEDOUT, +"MissingBuildOutputs" : REASON_MISSING_OUTPUTS } + reasonCodeDescriptions = { REASON_UNSET : "Not Set", REASON_PACKAGE : "Complete Package Install", REASON_PACKAGE_BAD : "Bad Package Installation", @@ -166,6 +179,14 @@ def reasonDescription(reasonCode): return reasonCodeDescriptions.get(reasonCode,'Unknown Reason:' + str(reasonCode)) + +def reasonForName(name): +return namedReasonCode.get(name,STATE_UNSET) + +def getStatePairFromNames(stateName,reasonName): +state=stateForName(stateName) +reason=reasonForName(reasonName) +return StatePair(state,reason) class StatePair: """Contains a State Plus Reason""" 1.34 +8 -5 gump/python/gump/model/module.py Index: module.py === RCS file: /home/cvs/gump/python/gump/model/module.py,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- module.py 23 Feb 2004 20:55:08 - 1.33 +++ module.py 1 Mar 2004 18:58:00 - 1.34 @@ -67,7 +67,7 @@ from gump.model.state import * from gump.model.stats import Statable, Statistics from gump.model.project import * -from gump.model.object import NamedModelObject +from gump.model.object import NamedModelObject, Resultable from gump.utils import getIndent from gump.utils.note import transferAnnotations, Annotatable @@ -192,11 +192,14 @@ unnamedModule.complete(workspace) return unnamedModule -class Module(NamedModelObject, Statable): +class Module(NamedModelObject, St