added .relatedtags(...) to tags.py...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2011-10-04 19:11:18 +04:00
parent 61e9166e18
commit 48574cee03
2 changed files with 26 additions and 6 deletions

View File

@ -1,4 +1,4 @@
[_] 11% general tasks
[_] 14% general tasks
[_] 0% actions:
[_] import
[_] export/build
@ -47,8 +47,9 @@
| this can happen when adding a new object to a tag via an .update(...) method, in-place.
|
| need to use immutable data only.
[_] 0% compleate the new tags module
[_] .relatedtags(...)
[_] 33% compleate the new tags module
[X] .relatedtags(...)
[_] see if we need strict and non-strict .relatedtags(...)
[_] concatinative mode or abbility to build new tagsets from selections
[_] import test images and ratings
[_] importer based on xmpgen

25
tags.py
View File

@ -1,7 +1,7 @@
#=======================================================================
__version__ = '''0.0.01'''
__sub_version__ = '''20111001012751'''
__sub_version__ = '''20111004190928'''
__copyright__ = '''(c) Alex A. Naanou 2011'''
@ -145,8 +145,22 @@ class TagSetWithReverseIndexMixin(AbstractTagSet):
return self._reverse_index.keys()
#------------------------------------------TagSetWithRelatedTagsMixin---
class TagSetWithRelatedTagsMixin(AbstractTagSet):
'''
NOTE: this requires the .tags(...) method.
'''
##!!! should be two modes: strict (all) and non-strict (any)...
def relatedtags(self, *tags):
'''
'''
return self.tags(*self.all(*tags)).difference(tags)
#--------------------------------------------------------------TagSet---
class TagSet(TagSetWithReverseIndexMixin, BasicTagSet):
class TagSet(TagSetWithRelatedTagsMixin, TagSetWithReverseIndexMixin, BasicTagSet):
'''
'''
pass
@ -224,7 +238,8 @@ if __name__ == '__main__':
## ts = TagSetWithObjectIndex()
N = 100000
## N = 100000
N = 1000
obj_tpl = 'image%010d'
def populate_tagset():
@ -263,6 +278,10 @@ if __name__ == '__main__':
print ts.tags(obj_tpl % 0)
print ts.tags(obj_tpl % 10)
print ts.relatedtags('image')
print ts.relatedtags('image', '0')
print ts.relatedtags('10')
print 'selecting (all)...',
t0 = time()