renamed Position to RequirementProfile
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1228 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
parent
cc1b0e4585
commit
5f5a200ce1
4 changed files with 18 additions and 23 deletions
|
@ -39,17 +39,17 @@ Now we create a person that knows about basic Python programming:
|
|||
>>> john = Knowing()
|
||||
>>> john.knows(pyBasics)
|
||||
|
||||
Next we have a position that requires knowledge in object-oriented
|
||||
Next we have a requirement profile for knowledge in object-oriented
|
||||
programming with Python:
|
||||
|
||||
>>> from cybertools.knowledge.position import Position
|
||||
>>> pos01 = Position()
|
||||
>>> pos01.requires(pyOo)
|
||||
>>> from cybertools.knowledge.requirement import RequirementProfile
|
||||
>>> req01 = RequirementProfile()
|
||||
>>> req01.requires(pyOo)
|
||||
|
||||
Now we can ask what knowledge john is lacking if he would like to take
|
||||
the position offered:
|
||||
a position with the requirement profile:
|
||||
|
||||
>>> missing = john.getMissingKnowledge(pos01)
|
||||
>>> missing = john.getMissingKnowledge(req01)
|
||||
>>> missing
|
||||
(<...KnowledgeElement...>, <...KnowledgeElement...>)
|
||||
|
||||
|
@ -69,10 +69,9 @@ provide some of the knowledge needed:
|
|||
So that we are now able to find out what john has to study in order to
|
||||
fulfill the position offered:
|
||||
|
||||
>>> prov = list(john.getProvidersNeeded(pos01))
|
||||
>>> prov = list(john.getProvidersNeeded(req01))
|
||||
>>> len(prov)
|
||||
2
|
||||
>>> [d[0] for k, d in prov] == [doc01, doc02]
|
||||
True
|
||||
|
||||
|
||||
|
|
|
@ -37,7 +37,6 @@ class KnowledgeElement(object):
|
|||
self._children = set()
|
||||
self._dependents = set()
|
||||
self._knowers = set()
|
||||
self._requiringPositions = set()
|
||||
self._providers = set()
|
||||
|
||||
def setParent(self, obj):
|
||||
|
|
|
@ -84,21 +84,22 @@ class IKnowing(Interface):
|
|||
that constitute the knowledge of this object.
|
||||
"""
|
||||
|
||||
def getMissingKnowledge(position):
|
||||
def getMissingKnowledge(profile):
|
||||
""" Return a tuple of knowledge elements that this object
|
||||
is missing for fulfilling the position given.
|
||||
is missing for fulfilling the requirement profile given.
|
||||
"""
|
||||
|
||||
def getProvidersNeeded(position):
|
||||
def getProvidersNeeded(profile):
|
||||
""" Return a tuple of tuples: Each tuple has as its first element
|
||||
a requirement of the position, the second element is a tuple
|
||||
a requirement of the profile, the second element is a tuple
|
||||
of the knowledge providers providing this knowledge
|
||||
((requirement, (provider, ...,)), ...).
|
||||
"""
|
||||
|
||||
|
||||
class IPosition(Interface):
|
||||
""" A position requires a certain knowledge.
|
||||
class IRequirementProfile(Interface):
|
||||
""" A collection of certain knowledge e.g. needed to work on certain
|
||||
position or for a certain task.
|
||||
"""
|
||||
|
||||
def getRequirements():
|
||||
|
@ -110,7 +111,7 @@ class IPosition(Interface):
|
|||
object requires.
|
||||
"""
|
||||
|
||||
def removeKnowledge(element):
|
||||
def removeRequirement(element):
|
||||
""" Remove the element given from the collection of elements
|
||||
this object requires.
|
||||
"""
|
||||
|
@ -135,5 +136,3 @@ class IKnowledgeProvider(Interface):
|
|||
this object provides.
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -23,12 +23,12 @@ $Id$
|
|||
"""
|
||||
|
||||
from zope.interface import implements
|
||||
from cybertools.knowledge.interfaces import IPosition
|
||||
from cybertools.knowledge.interfaces import IRequirementProfile
|
||||
|
||||
|
||||
class Position(object):
|
||||
class RequirementProfile(object):
|
||||
|
||||
implements(IPosition)
|
||||
implements(IRequirementProfile)
|
||||
|
||||
def __init__(self):
|
||||
self._requirements = {}
|
||||
|
@ -38,9 +38,7 @@ class Position(object):
|
|||
|
||||
def requires(self, obj):
|
||||
self._requirements[obj] = True
|
||||
obj._requiringPositions.add(self)
|
||||
|
||||
def removeRequirement(self, obj):
|
||||
del self._requirements[obj]
|
||||
del obj._requiringPositions[self]
|
||||
|
Loading…
Add table
Reference in a new issue