[frames | no frames] [show private | hide private]

Module TaskEngine.InstallEngine


Installation Engine

  an abstract engine, that performs the
  key tasks of resolution of dependencies and
  provide a framework for executing tasks that
  will install dependencies.

  key operations

   - resolve all dependencies given current installation

   - empty db resolve all dependencies

  key concepts to information discovery
 
   - package database, container of installed packages

   - package repository, container of available packages

   - package metadata of package to be installed

  key concepts to dependency resolution
  
   - packages structured as a set of nodes

   - nodes organized into a DAG

   - version numbers as distutils.version.StrictVersion

   - versions organized into axis of package node

   - edges as node, version, operator

   - edges not resolved to runtime, to allow for context
     dependent edges
     
  Copyright
    
     @2002 kapil thangavelu <kvthan@wm.edu>
     
  License
  
     GPL
     
  CVS: $Id: InstallEngine.py,v 1.2 2002/10/01 10:55:42 ender Exp $
  
  Thoughts: 
      
      - still need to figure out db/repo interaction
      - which is equiv to integration of version axis.


Classes
Dependency  
DependencyGraph another incomplete and hairbrained dag implementation.
DependencyGraphPool  
DependencyGraphTest  
DependencyTask  
DependencyVersion  
DependencyVersionTests  
InstallEngineTests  
VersionAxis  

Exceptions
DependencyVersionConflict  
InvalidDependencyTask  
InvalidVersionOperator  

Function Summary
  getOperator(op)
  isOperator(op)
  isVersionCompatible(t1, t2)
given two tasks of the same name, determine if they are version compatible based on their dependencies taking into account dependency operators either returns the dtask to use or raises an error.
  test_suite()

Variable Summary
Interface IDependency
Interface IDependencyDatabase
Interface IDependencyRepository
Interface IDependencyTask
Interface IDependencyVersion
Interface Interface
Interface ITask
dict VERSION_OPERATORS

Function Details

getOperator

getOperator(op)

isOperator

isOperator(op)

isVersionCompatible

isVersionCompatible(t1, t2)

given two tasks of the same name, determine if they are version compatible based on their dependencies taking into account dependency operators either returns the dtask to use or raises an error.

test_suite

test_suite()


Variable Details

IDependency

Type:
Interface
Value:
<Interface TaskEngine.InstallEngine.IDependency at 81a6024>            

IDependencyDatabase

Type:
Interface
Value:
<Interface TaskEngine.InstallEngine.IDependencyDatabase at 819afbc>    

IDependencyRepository

Type:
Interface
Value:
<Interface TaskEngine.InstallEngine.IDependencyRepository at 81cd9f4>  

IDependencyTask

Type:
Interface
Value:
<Interface TaskEngine.InstallEngine.IDependencyTask at 8263574>        

IDependencyVersion

Type:
Interface
Value:
<Interface TaskEngine.InstallEngine.IDependencyVersion at 81a5f54>     

Interface

Type:
Interface
Value:
<Interface Interface._Interface.Interface at 820e8dc>                  

ITask

Type:
Interface
Value:
<Interface TaskEngine.Task.ITask at 81de1bc>                           

VERSION_OPERATORS

Type:
dict
Value:
{'<': <built-in function __lt__>,
 '<=': <built-in function __le__>,
 '=': <built-in function __eq__>,
 '>': <built-in function __gt__>,
 '>=': <built-in function __ge__>}                                     

Generated by Epydoc 1.1 on Mon Oct 21 19:45:08 2002 http://epydoc.sf.net