From 5f5a200ce1dea951a9b0f7b7c24314898f51863d Mon Sep 17 00:00:00 2001 From: helmutm Date: Fri, 26 May 2006 07:48:08 +0000 Subject: [PATCH] renamed Position to RequirementProfile git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1228 fd906abe-77d9-0310-91a1-e0d9ade77398 --- knowledge/README.txt | 15 +++++++-------- knowledge/element.py | 1 - knowledge/interfaces.py | 17 ++++++++--------- knowledge/{position.py => requirement.py} | 8 +++----- 4 files changed, 18 insertions(+), 23 deletions(-) rename knowledge/{position.py => requirement.py} (85%) diff --git a/knowledge/README.txt b/knowledge/README.txt index b03af6d..08400ae 100644 --- a/knowledge/README.txt +++ b/knowledge/README.txt @@ -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 - diff --git a/knowledge/element.py b/knowledge/element.py index 244b1af..e743312 100644 --- a/knowledge/element.py +++ b/knowledge/element.py @@ -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): diff --git a/knowledge/interfaces.py b/knowledge/interfaces.py index ec0c340..4cffe4f 100644 --- a/knowledge/interfaces.py +++ b/knowledge/interfaces.py @@ -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. """ - - diff --git a/knowledge/position.py b/knowledge/requirement.py similarity index 85% rename from knowledge/position.py rename to knowledge/requirement.py index 7f52ab1..d57efee 100644 --- a/knowledge/position.py +++ b/knowledge/requirement.py @@ -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]