gump-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ru...@apache.org
Subject cvs commit: jakarta-gump/python/gump model.py __init__.py build.py view.py
Date Mon, 28 Apr 2003 23:43:53 GMT
rubys       2003/04/28 16:43:53

  Modified:    python/gump __init__.py build.py view.py
  Added:       python/gump model.py
  Log:
  Split model out into separate source file
  
  Revision  Changes    Path
  1.5       +5 -293    jakarta-gump/python/gump/__init__.py
  
  Index: __init__.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/__init__.py,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- __init__.py	28 Apr 2003 21:51:38 -0000	1.4
  +++ __init__.py	28 Apr 2003 23:43:52 -0000	1.5
  @@ -298,296 +298,6 @@
       return result
   
   ###############################################################################
  -# Gump Object Model
  -#
  -# All intelligence and functionality is provided in the base classes
  -# above, allowing the actual model to be rather simple and compact.
  -###############################################################################
  -
  -class Workspace(GumpBase):
  -  """Represents a <workspace/> element."""
  -
  -  def init(self):
  -    self.property=Multiple(Property)
  -    self.project=Multiple(Project)
  -    self.module=Multiple(Module)
  -    self.repository=Multiple(Repository)
  -    self.profile=Multiple(Profile)
  -
  -  # provide default elements when not defined in xml
  -  def complete(self):
  -    if not self['banner-image']:
  -      self['banner-image']="http://jakarta.apache.org/images/jakarta-logo.gif"
  -    if not self['banner-link']: self['banner-link']="http://jakarta.apache.org"
  -    if not self.logdir: self.logdir=os.path.join(self.basedir,"log")
  -    if not self.cvsdir: self.cvsdir=os.path.join(self.basedir,"cvs")
  -    if not self.pkgdir: self.pkgdir=self.basedir
  -    if self.deliver:
  -      if not self.scratchdir: self.scratchdir=os.path.join(self.basedir,"scratch")
  -
  -# represents a <profile/> element
  -class Profile(Named):
  -  list={}
  -  def init(self):
  -    self.project=Multiple(Project)
  -    self.module=Multiple(Module)
  -    self.repository=Multiple(Repository)
  -
  -# represents a <module/> element
  -class Module(Named):
  -  list={}
  -  def init(self):
  -    self.cvs=Single()
  -    self.url=Single()
  -    self.description=Single()
  -    self.redistributable=Single()
  -    self.project=Multiple(Project)
  -
  -  # provide default elements when not defined in xml
  -  def complete(self,workspace):
  -    self.srcdir=os.path.join(str(workspace.basedir),self.srcdir or self.name)
  -    for project in self.project:
  -      if not project.module: project.module=self.name
  -
  -# represents a <repository/> element
  -class Repository(Named):
  -  list={}
  -  def init(self):
  -    self['home-page']=Single()
  -    self.title=Single()
  -    self.cvsweb=Single()
  -    self.root=Single(RepositoryRoot)
  -    self.redistributable=Single()
  -
  -# represents a <root/> element within a <repository/> element
  -class RepositoryRoot(GumpBase):
  -  def init(self):
  -    self.method=Single()
  -    self.user=Single()
  -    self.password=Single()
  -    self.hostname=Single()
  -    self.path=Single()
  -
  -# represents a <project/> element
  -class Project(Named):
  -  list={}
  -  def init(self):
  -    self.isComplete=0
  -    self.ant=Single(Ant)
  -    self.script=Single()
  -    self.depend=Multiple(Depend)
  -    self.description=Single()
  -    self.url=Single()
  -    self.option=Multiple(Depend)
  -    self.package=Multiple()
  -    self.jar=Multiple(Jar)
  -    self.home=Single(Home)
  -    self.license=Single()
  -    self.nag=Multiple(Nag)
  -    self.javadoc=Single(Javadoc)
  -    self.junitreport=Single(JunitReport)
  -    self.work=Multiple(Work)
  -    self.mkdir=Multiple(Mkdir)
  -    self.redistributable=Single()
  -
  -  # provide default elements when not defined in xml
  -  def complete(self,workspace):
  -    if self.isComplete: return
  -
  -    # complete properties
  -    if self.ant: self.ant.complete(self)
  -    # compute home directory
  -    if self.home and isinstance(self.home,Single):
  -      if self.home.nested:
  -        srcdir=Module.list[self.module].srcdir
  -        self.home=os.path.normpath(os.path.join(srcdir,self.home.nested))
  -      elif self.home.parent:
  -        self.home=os.path.normpath(os.path.join(workspace.basedir,self.home.parent))
  -    elif not self.home: self.home=os.path.join(workspace.basedir,self.name)
  -
  -    # resolve jars
  -    for jar in self.jar:
  -      if self.home and jar.name:
  -        jar.path=os.path.normpath(os.path.join(self.home,jar.name))
  -
  -    # expand properties
  -    if self.ant: self.ant.expand(self)
  -
  -
  -    # ensure that every project that this depends on is complete
  -    self.isComplete=1
  -    for depend in self.depend+self.option:
  -      project=Project.list.get(depend.project,None)
  -      if project: project.complete(workspace)
  -
  -    # complete properties
  -    if self.ant: self.ant.complete(self)
  -
  -    # inherit dependencies:
  -    self.inheritDependencies()
  -
  -  # Determine if this project has any unsatisfied dependencies left
  -  # on the todo list.
  -  def isReady(self,todo):
  -    for depend in self.depend+self.option:
  -      if Project.list.get(depend.project,None) in todo: return 0
  -    return 1
  -
  -  # add this element and all of it's dependencies to a todo list
  -  def addToTodoList(self,todo):
  -    todo.append(self)
  -    for depend in self.depend+self.option:
  -      project=Project.list[depend.project]
  -      if not project in todo: project.addToTodoList(todo)
  -
  -  # determine if this project is a prereq of any project on the todo list
  -  def isPrereq(self,todo):
  -    for project in todo:
  -      for depend in project.depend+project.option:
  -        if depend.project==self.name: return 1
  -
  -  # determine if this project is a prereq of any project on the todo list
  -  def hasFullDependencyOn(self,name):
  -    for depend in self.depend+self.option:
  -      if depend.project==name and not depend.noclasspath: return 1
  -
  -  # process all inherited dependencies
  -  def inheritDependencies(self):
  -
  -    for d1 in self.depend+self.option:
  -      project=Project.list.get(d1.project,None)
  -      if not project: continue
  -      inherit=d1.inherit
  -      for d2 in project.depend+project.option:
  -        if self.hasFullDependencyOn(d2.project): continue
  -
  -        # include the dependency if:
  -        #   inherit="all"
  -        #   inherit="hard"
  -        #   inherit="runtime" and the matching dependency is listed as runtime
  -        #   if the dependency indicates that the jars are to be inherited
  -        include=0
  -        if inherit=="all" or inherit=="hard":
  -          include=1
  -        elif inherit=="runtime" and d2.runtime:
  -          include=1
  -        elif d2.inherit=="jars":
  -          include=1
  -
  -        # if the dependency is to be inherited, add it to the appropriate list
  -        if include:
  -          if inherit=="hard" or d2 in project.depend:
  -            self.depend.append(d2)
  -          else:
  -            self.option.append(d2)
  -
  -# represents an <ant/> element
  -class Ant(GumpBase):
  -  def init(self):
  -    self.depend=Multiple(Depend)
  -    self.property=Multiple(Property)
  -    self.jvmarg=Multiple()
  -
  -  # expand properties - in other words, do everything to complete the
  -  # entry that does NOT require referencing another project
  -  def expand(self,project):
  -
  -    # convert property elements which reference a project into dependencies
  -    for property in self.property:
  -      if not property.project: continue
  -      if property.project==project.name: continue
  -      if property.reference=="srcdir": continue
  -      if project.hasFullDependencyOn(property.project): continue
  -
  -      depend=Depend({'project':property.project})
  -      if not property.classpath: depend['noclasspath']=Single({})
  -      if property.runtime: depend['runtime']=property.runtime
  -      project.depend.append(depend)
  -
  -    # convert all depend elements into property elements
  -    for depend in self.depend:
  -      property=Property(depend.__dict__)
  -      property['reference']='jarpath'
  -      property['name']=depend.project
  -      self.property.append(property)
  -      project.depend.append(depend)
  -    self.depend=None
  -
  -  # complete the definition - it is safe to reference other projects
  -  # at this point
  -  def complete(self,project):
  -
  -    for property in self.property: property.complete(project)
  -
  -# represents a <nag/> element
  -class Nag(GumpBase):
  -  def init(self):
  -    self.regexp=Multiple()
  -
  -# represents a <javadoc/> element
  -class Javadoc(GumpBase):
  -  def init(self):
  -    self.description=Multiple()
  -
  -# represents a <property/> element
  -class Property(GumpBase):
  -  # provide default elements when not defined in xml
  -  def complete(self,project):
  -    if self.reference=='home':
  -      self.value=Project.list[self.project].home
  -
  -    elif self.reference=='srcdir':
  -      module=Project.list[self.project].module
  -      self.value=Module.list[module].srcdir
  -
  -    elif self.reference=='jarpath':
  -      target=Project.list[self.project]
  -      if self.id:
  -        for jar in target.jar:
  -          if jar.id==self.id:
  -            self.value=jar.path
  -            break
  -        else:
  -          raise str(("jar with id %s was not found in project %s "
  -             "referenced by %s") % (self.id, target.name, project.name))
  -      elif len(target.jar)==1:
  -        self.value=target.jar[0].path
  -      elif len(target.jar)>1:
  -        raise str(("Multiple jars defined by project %s referenced by %s; " +
  -           "an id attribute is required to select the one you want") %
  -           (target.name, project.name))
  -      else:
  -        raise str("Project %s referenced by %s defines no jars as output" %
  -          (target.name, project.name))
  -
  -      module=Project.list[self.project].module
  -      self.value=Module.list[module].srcdir
  -
  -
  -# TODO: set up the below elements with defaults using complete()
  -
  -# represents a <depend/> element
  -class Depend(GumpBase): pass
  -
  -# represents a <description/> element
  -class Description(GumpBase): pass
  -
  -# represents a <home/> element
  -class Home(GumpBase): pass
  -
  -# represents a <jar/> element
  -class Jar(GumpBase): pass
  -
  -# represents a <junitreport/> element
  -class JunitReport(GumpBase): pass
  -
  -# represents a <mkdir/> element
  -class Mkdir(GumpBase): pass
  -
  -# represents a <work/> element
  -class Work(GumpBase): pass
  -
  -###############################################################################
   # Functions
   ###############################################################################
   
  @@ -636,8 +346,10 @@
   
       raise IOError, 'workspace '+file+' not found'
   
  +  from gump.model import Workspace, Module, Project
     workspace=SAXDispatcher(file,'workspace',Workspace).docElement
     workspace.complete()
  +
     for module in Module.list.values(): module.complete(workspace)
     for project in Project.list.values(): project.complete(workspace)
     return workspace
  
  
  
  1.2       +6 -5      jakarta-gump/python/gump/build.py
  
  Index: build.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/build.py,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- build.py	28 Apr 2003 20:27:48 -0000	1.1
  +++ build.py	28 Apr 2003 23:43:52 -0000	1.2
  @@ -9,7 +9,7 @@
     The main thing to do here is to clone dumpDeps to create a
     build() method which executes the appropriate script
     (probably only ant at the moment; would be nice to have
  -  support for maven) for each of the dependencies.        
  +  support for maven) for each of the dependencies.
   """
   
   import os.path
  @@ -17,8 +17,9 @@
   import sys
   import logging
   
  -from gump import load, buildSequence, Workspace, Module, Project
  +from gump import load, buildSequence
   from gump.conf import dir, default
  +from gump.model import Workspace, Module, Project
   
   ###############################################################################
   # Initialize
  @@ -65,7 +66,7 @@
     syncWorkDir( workspace, build_sequence )
   
     # build
  -  return buildProjects( workspace, projectname, project, build_sequence )  
  +  return buildProjects( workspace, projectname, project, build_sequence )
   
   
   def syncWorkDir( workspace, build_sequence ):
  @@ -121,7 +122,7 @@
       if ant:
         target=''
   
  -      # debug info      
  +      # debug info
         if ant.target:
           log.info('   Using ant for build...TARGET: ' + ant.target)
           target = ant.target
  @@ -202,7 +203,7 @@
     if len(sys.argv)>2 :
       ps=sys.argv[2]
     else:
  -    ps=default.project    
  +    ps=default.project
   
     # get parsed workspace definition
     workspace=load(ws)
  
  
  
  1.6       +5 -4      jakarta-gump/python/gump/view.py
  
  Index: view.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/view.py,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- view.py	28 Apr 2003 22:10:43 -0000	1.5
  +++ view.py	28 Apr 2003 23:43:52 -0000	1.6
  @@ -72,9 +72,10 @@
   # http://wxpython.org/
   from wxPython.wx import *
   
  -from gump import load, buildSequence, log, Module, Project
  +from gump import load, buildSequence, log
   from gump.conf import dir, default
   from gump.gen import xmlize
  +from gump.model import Module, Project
   
   class gumpview(wxApp):
     # model
  
  
  
  1.1                  jakarta-gump/python/gump/model.py
  
  Index: model.py
  ===================================================================
  #!/usr/bin/env python
  
  # $Header: /home/cvs/jakarta-gump/python/gump/model.py,v 1.1 2003/04/28 23:43:52 rubys Exp
$
  # $Revision: 1.1 $
  # $Date: 2003/04/28 23:43:52 $
  #
  # ====================================================================
  #
  # The Apache Software License, Version 1.1
  #
  # Copyright (c) 2003 The Apache Software Foundation.  All rights
  # reserved.
  #
  # Redistribution and use in source and binary forms, with or without
  # modification, are permitted provided that the following conditions
  # are met:
  #
  # 1. Redistributions of source code must retain the above copyright
  #    notice, this list of conditions and the following disclaimer.
  #
  # 2. Redistributions in binary form must reproduce the above copyright
  #    notice, this list of conditions and the following disclaimer in
  #    the documentation and/or other materials provided with the
  #    distribution.
  #
  # 3. The end-user documentation included with the redistribution, if
  #    any, must include the following acknowlegement:
  #       "This product includes software developed by the
  #        Apache Software Foundation (http://www.apache.org/)."
  #    Alternately, this acknowlegement may appear in the software itself,
  #    if and wherever such third-party acknowlegements normally appear.
  #
  # 4. The names "The Jakarta Project", "Alexandria", and "Apache Software
  #    Foundation" must not be used to endorse or promote products derived
  #    from this software without prior written permission. For written
  #    permission, please contact apache@apache.org.
  #
  # 5. Products derived from this software may not be called "Apache"
  #    nor may "Apache" appear in their names without prior written
  #    permission of the Apache Group.
  #
  # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  # DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  # ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  # SUCH DAMAGE.
  # ====================================================================
  #
  # This software consists of voluntary contributions made by many
  # individuals on behalf of the Apache Software Foundation.  For more
  # information on the Apache Software Foundation, please see
  # <http://www.apache.org/>.
  
  ###############################################################################
  # Gump Object Model
  #
  # All intelligence and functionality is provided in the base classes
  # above, allowing the actual model to be rather simple and compact.
  ###############################################################################
  
  import os
  from gump import GumpBase, Named, Single, Multiple
  
  class Workspace(GumpBase):
    """Represents a <workspace/> element."""
  
    def init(self):
      self.property=Multiple(Property)
      self.project=Multiple(Project)
      self.module=Multiple(Module)
      self.repository=Multiple(Repository)
      self.profile=Multiple(Profile)
  
    # provide default elements when not defined in xml
    def complete(self):
      if not self['banner-image']:
        self['banner-image']="http://jakarta.apache.org/images/jakarta-logo.gif"
      if not self['banner-link']: self['banner-link']="http://jakarta.apache.org"
      if not self.logdir: self.logdir=os.path.join(self.basedir,"log")
      if not self.cvsdir: self.cvsdir=os.path.join(self.basedir,"cvs")
      if not self.pkgdir: self.pkgdir=self.basedir
      if self.deliver:
        if not self.scratchdir: self.scratchdir=os.path.join(self.basedir,"scratch")
  
  # represents a <profile/> element
  class Profile(Named):
    list={}
    def init(self):
      self.project=Multiple(Project)
      self.module=Multiple(Module)
      self.repository=Multiple(Repository)
  
  # represents a <module/> element
  class Module(Named):
    list={}
    def init(self):
      self.cvs=Single()
      self.url=Single()
      self.description=Single()
      self.redistributable=Single()
      self.project=Multiple(Project)
  
    # provide default elements when not defined in xml
    def complete(self,workspace):
      self.srcdir=os.path.join(str(workspace.basedir),self.srcdir or self.name)
      for project in self.project:
        if not project.module: project.module=self.name
  
  # represents a <repository/> element
  class Repository(Named):
    list={}
    def init(self):
      self['home-page']=Single()
      self.title=Single()
      self.cvsweb=Single()
      self.root=Single(RepositoryRoot)
      self.redistributable=Single()
  
  # represents a <root/> element within a <repository/> element
  class RepositoryRoot(GumpBase):
    def init(self):
      self.method=Single()
      self.user=Single()
      self.password=Single()
      self.hostname=Single()
      self.path=Single()
  
  # represents a <project/> element
  class Project(Named):
    list={}
    def init(self):
      self.isComplete=0
      self.ant=Single(Ant)
      self.script=Single()
      self.depend=Multiple(Depend)
      self.description=Single()
      self.url=Single()
      self.option=Multiple(Depend)
      self.package=Multiple()
      self.jar=Multiple(Jar)
      self.home=Single(Home)
      self.license=Single()
      self.nag=Multiple(Nag)
      self.javadoc=Single(Javadoc)
      self.junitreport=Single(JunitReport)
      self.work=Multiple(Work)
      self.mkdir=Multiple(Mkdir)
      self.redistributable=Single()
  
    # provide default elements when not defined in xml
    def complete(self,workspace):
      if self.isComplete: return
  
      # complete properties
      if self.ant: self.ant.complete(self)
      # compute home directory
      if self.home and isinstance(self.home,Single):
        if self.home.nested:
          srcdir=Module.list[self.module].srcdir
          self.home=os.path.normpath(os.path.join(srcdir,self.home.nested))
        elif self.home.parent:
          self.home=os.path.normpath(os.path.join(workspace.basedir,self.home.parent))
      elif not self.home: self.home=os.path.join(workspace.basedir,self.name)
  
      # resolve jars
      for jar in self.jar:
        if self.home and jar.name:
          jar.path=os.path.normpath(os.path.join(self.home,jar.name))
  
      # expand properties
      if self.ant: self.ant.expand(self)
  
  
      # ensure that every project that this depends on is complete
      self.isComplete=1
      for depend in self.depend+self.option:
        project=Project.list.get(depend.project,None)
        if project: project.complete(workspace)
  
      # complete properties
      if self.ant: self.ant.complete(self)
  
      # inherit dependencies:
      self.inheritDependencies()
  
    # Determine if this project has any unsatisfied dependencies left
    # on the todo list.
    def isReady(self,todo):
      for depend in self.depend+self.option:
        if Project.list.get(depend.project,None) in todo: return 0
      return 1
  
    # add this element and all of it's dependencies to a todo list
    def addToTodoList(self,todo):
      todo.append(self)
      for depend in self.depend+self.option:
        project=Project.list[depend.project]
        if not project in todo: project.addToTodoList(todo)
  
    # determine if this project is a prereq of any project on the todo list
    def isPrereq(self,todo):
      for project in todo:
        for depend in project.depend+project.option:
          if depend.project==self.name: return 1
  
    # determine if this project is a prereq of any project on the todo list
    def hasFullDependencyOn(self,name):
      for depend in self.depend+self.option:
        if depend.project==name and not depend.noclasspath: return 1
  
    # process all inherited dependencies
    def inheritDependencies(self):
  
      for d1 in self.depend+self.option:
        project=Project.list.get(d1.project,None)
        if not project: continue
        inherit=d1.inherit
        for d2 in project.depend+project.option:
          if self.hasFullDependencyOn(d2.project): continue
  
          # include the dependency if:
          #   inherit="all"
          #   inherit="hard"
          #   inherit="runtime" and the matching dependency is listed as runtime
          #   if the dependency indicates that the jars are to be inherited
          include=0
          if inherit=="all" or inherit=="hard":
            include=1
          elif inherit=="runtime" and d2.runtime:
            include=1
          elif d2.inherit=="jars":
            include=1
  
          # if the dependency is to be inherited, add it to the appropriate list
          if include:
            if inherit=="hard" or d2 in project.depend:
              self.depend.append(d2)
            else:
              self.option.append(d2)
  
  # represents an <ant/> element
  class Ant(GumpBase):
    def init(self):
      self.depend=Multiple(Depend)
      self.property=Multiple(Property)
      self.jvmarg=Multiple()
  
    # expand properties - in other words, do everything to complete the
    # entry that does NOT require referencing another project
    def expand(self,project):
  
      # convert property elements which reference a project into dependencies
      for property in self.property:
        if not property.project: continue
        if property.project==project.name: continue
        if property.reference=="srcdir": continue
        if project.hasFullDependencyOn(property.project): continue
  
        depend=Depend({'project':property.project})
        if not property.classpath: depend['noclasspath']=Single({})
        if property.runtime: depend['runtime']=property.runtime
        project.depend.append(depend)
  
      # convert all depend elements into property elements
      for depend in self.depend:
        property=Property(depend.__dict__)
        property['reference']='jarpath'
        property['name']=depend.project
        self.property.append(property)
        project.depend.append(depend)
      self.depend=None
  
    # complete the definition - it is safe to reference other projects
    # at this point
    def complete(self,project):
  
      for property in self.property: property.complete(project)
  
  # represents a <nag/> element
  class Nag(GumpBase):
    def init(self):
      self.regexp=Multiple()
  
  # represents a <javadoc/> element
  class Javadoc(GumpBase):
    def init(self):
      self.description=Multiple()
  
  # represents a <property/> element
  class Property(GumpBase):
    # provide default elements when not defined in xml
    def complete(self,project):
      if self.reference=='home':
        self.value=Project.list[self.project].home
  
      elif self.reference=='srcdir':
        module=Project.list[self.project].module
        self.value=Module.list[module].srcdir
  
      elif self.reference=='jarpath':
        target=Project.list[self.project]
        if self.id:
          for jar in target.jar:
            if jar.id==self.id:
              self.value=jar.path
              break
          else:
            raise str(("jar with id %s was not found in project %s "
               "referenced by %s") % (self.id, target.name, project.name))
        elif len(target.jar)==1:
          self.value=target.jar[0].path
        elif len(target.jar)>1:
          raise str(("Multiple jars defined by project %s referenced by %s; " +
             "an id attribute is required to select the one you want") %
             (target.name, project.name))
        else:
          raise str("Project %s referenced by %s defines no jars as output" %
            (target.name, project.name))
  
        module=Project.list[self.project].module
        self.value=Module.list[module].srcdir
  
  
  # TODO: set up the below elements with defaults using complete()
  
  # represents a <depend/> element
  class Depend(GumpBase): pass
  
  # represents a <description/> element
  class Description(GumpBase): pass
  
  # represents a <home/> element
  class Home(GumpBase): pass
  
  # represents a <jar/> element
  class Jar(GumpBase): pass
  
  # represents a <junitreport/> element
  class JunitReport(GumpBase): pass
  
  # represents a <mkdir/> element
  class Mkdir(GumpBase): pass
  
  # represents a <work/> element
  class Work(GumpBase): pass
  
  
  

Mime
View raw message