[Checkins] SVN: lovely.relation/trunk/src/lovely/relation/ allow
None to be used for data relation properties
Juergen Kartnaller
juergen at kartnaller.at
Thu Sep 13 02:38:36 EDT 2007
Log message for revision 79608:
allow None to be used for data relation properties
Changed:
U lovely.relation/trunk/src/lovely/relation/dataproperty.py
U lovely.relation/trunk/src/lovely/relation/dataproperty.txt
U lovely.relation/trunk/src/lovely/relation/property.py
-=-
Modified: lovely.relation/trunk/src/lovely/relation/dataproperty.py
===================================================================
--- lovely.relation/trunk/src/lovely/relation/dataproperty.py 2007-09-12 21:55:28 UTC (rev 79607)
+++ lovely.relation/trunk/src/lovely/relation/dataproperty.py 2007-09-13 06:38:35 UTC (rev 79608)
@@ -82,8 +82,11 @@
val.source = inst
self._manager.setTargetRelations(inst, v, self._relType)
if self._ordered:
- inst.__dict__['_o_' + self._name] = \
- list(self._manager.tokenizeValues(value, 'relations'))
+ if value is not None:
+ values = list(self._manager.tokenizeValues(value, 'relations'))
+ else:
+ values = []
+ inst.__dict__['_o_' + self._name] = values
def __get__(self, inst, klass):
if inst is None:
Modified: lovely.relation/trunk/src/lovely/relation/dataproperty.txt
===================================================================
--- lovely.relation/trunk/src/lovely/relation/dataproperty.txt 2007-09-12 21:55:28 UTC (rev 79607)
+++ lovely.relation/trunk/src/lovely/relation/dataproperty.txt 2007-09-13 06:38:35 UTC (rev 79608)
@@ -93,6 +93,8 @@
We can bind it :
+ >>> doc1.teaser is None
+ True
>>> doc1.teaser = rel1
>>> doc1.teaser is rel1
True
@@ -136,10 +138,16 @@
>>> doc1.teaser is rel1
True
+ >>> doc1.teaser = None
+ >>> doc1.teaser is None
+ True
+
Use of lists
------------
+ >>> doc1.chapters
+ []
>>> chapter1 = Chapter(u'Chapter One')
>>> chapterRel1 = Document.chapters.new(chapter1)
>>> chapterRel1
@@ -158,3 +166,7 @@
>>> chapter2.document
<document u'Doc One'>
+ >>> doc1.chapters = None
+ >>> doc1.chapters
+ []
+
Modified: lovely.relation/trunk/src/lovely/relation/property.py
===================================================================
--- lovely.relation/trunk/src/lovely/relation/property.py 2007-09-12 21:55:28 UTC (rev 79607)
+++ lovely.relation/trunk/src/lovely/relation/property.py 2007-09-13 06:38:35 UTC (rev 79608)
@@ -111,13 +111,14 @@
def setTargetRelations(self, source, relations, relType):
util = self.util
- if not self.seqOut:
- relations = [relations]
- targets = [rel.target for rel in relations]
- if targets is not None:
+ if relations is not None:
+ if not self.seqOut:
+ relations = [relations]
+ targets = [rel.target for rel in relations]
newTargetTokens = list(util.relationIndex.tokenizeValues(
targets, 'targets'))
else:
+ relations = []
newTargetTokens = []
sourceToken = util.relationIndex.tokenizeValues([source],
'sources').next()
@@ -132,7 +133,6 @@
'relations': relType,
'targets': tt})
util.remove(rel.next())
- rels = [(rel.target, rel) for rel in relations]
for token, rel in zip(newTargetTokens, relations):
if token in addTT:
util.add(rel)
More information about the Checkins
mailing list