loops/process
helmutm 81d2092e0a removed 'from base import Loops' from __init__.py
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1892 fd906abe-77d9-0310-91a1-e0d9ade77398
2007-08-09 14:32:00 +00:00
..
__init__.py added loops.process - work in progress 2006-07-28 11:24:53 +00:00
configure.zcml reorganize cybertools.process 2006-08-02 19:22:43 +00:00
definition.py reorganize resource stuff - dynamic typing, first type is 'file' 2006-08-07 13:13:31 +00:00
interfaces.py added loops.process - work in progress 2006-07-28 11:24:53 +00:00
README.txt removed 'from base import Loops' from __init__.py 2007-08-09 14:32:00 +00:00
setup.py reorganize cybertools.process 2006-08-02 19:22:43 +00:00
tests.py added loops.process - work in progress 2006-07-28 11:24:53 +00:00

===============================================================
loops - Linked Objects for Organization and Processing Services
===============================================================

  ($Id$)

Note: This package depends on cybertools.knowledge and cybertools.organize.

Let's do some basic set up

  >>> from zope.app.testing.setup import placefulSetUp, placefulTearDown
  >>> site = placefulSetUp(True)

  >>> from zope import component, interface
  >>> from zope.app import zapi

and setup a simple loops site with a concept manager and some concepts
(with all the type machinery, what in real life is done via standard
ZCML setup):

  >>> from cybertools.relation.interfaces import IRelationRegistry
  >>> from cybertools.relation.registry import DummyRelationRegistry
  >>> relations = DummyRelationRegistry()
  >>> component.provideUtility(relations, IRelationRegistry)

  >>> from cybertools.typology.interfaces import IType
  >>> from loops.interfaces import IConcept, ITypeConcept
  >>> from loops.type import ConceptType, TypeConcept
  >>> component.provideAdapter(ConceptType, (IConcept,), IType)
  >>> component.provideAdapter(TypeConcept, (IConcept,), ITypeConcept)

  >>> from loops.interfaces import ILoops
  >>> from loops.setup import ISetupManager
  >>> from loops.process.setup import SetupManager
  >>> component.provideAdapter(SetupManager, (ILoops,), ISetupManager,
  ...                           name='process')

  >>> from loops.base import Loops
  >>> loopsRoot = site['loops'] = Loops()

  >>> from loops.setup import SetupManager
  >>> setup = SetupManager(loopsRoot)
  >>> concepts, resources, views = setup.setup()

We need some type concepts for controlling the meaning of the concepts objects,
these have already been created during setup:

  >>> process = concepts['process']


Manage processes
================

The classes used in this package are just adapters to IConcept.

  >>> from loops.process.definition import Process
  >>> from cybertools.process.interfaces import IProcess
  >>> component.provideAdapter(Process, (IConcept,), IProcess)

We start with creating a process definition.
Note that in order to discern the concepts created
from their typeInterface adapters we here append a 'C' to the name of
the variables:

  >>> from loops.concept import Concept
  >>> myProcessC = concepts['myProcess'] = Concept(u'A Simple Process')
  >>> myProcessC.conceptType = process
  >>> myProcess = IProcess(myProcessC)


Fin de partie
=============

  >>> placefulTearDown()