mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-04 05:10:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			156 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			156 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#=======================================================================
 | 
						|
 | 
						|
__version__ = '''0.0.01'''
 | 
						|
__sub_version__ = '''20110930190347'''
 | 
						|
__copyright__ = '''(c) Alex A. Naanou 2011'''
 | 
						|
 | 
						|
 | 
						|
#-----------------------------------------------------------------------
 | 
						|
 | 
						|
import time
 | 
						|
import uuid
 | 
						|
import pickle
 | 
						|
import pli.tags.tagset as tagset
 | 
						|
from pli.logictypes import OR, ANY
 | 
						|
 | 
						|
 | 
						|
#-----------------------------------------------------------------------
 | 
						|
#
 | 
						|
# basic data:
 | 
						|
# 	Image:
 | 
						|
# 	{
 | 
						|
# 		'name': NAME,
 | 
						|
# 		'title': TITLE,
 | 
						|
#
 | 
						|
# 		'preview': LINK,
 | 
						|
# 		'original': LINK,
 | 
						|
#
 | 
						|
#
 | 
						|
# 		'tags': [
 | 
						|
# 			TAG, 
 | 
						|
# 			...
 | 
						|
# 		],
 | 
						|
# 		'links': [
 | 
						|
# 			...
 | 
						|
# 		]
 | 
						|
# 	}
 | 
						|
#
 | 
						|
#
 | 
						|
#-----------------------------------------------------------------------
 | 
						|
# basic patterns...
 | 
						|
 | 
						|
##!!!
 | 
						|
IMAGE_ID = ANY
 | 
						|
NAME = ANY
 | 
						|
PATH = ANY
 | 
						|
 | 
						|
LINK_TYPE = OR('preview', 'original', 'image')
 | 
						|
 | 
						|
LINK = {
 | 
						|
	'name': NAME,
 | 
						|
	'path': PATH,
 | 
						|
	'type': LINK_TYPE,
 | 
						|
}
 | 
						|
 | 
						|
IMAGE = {
 | 
						|
	'id': IMAGE_ID,
 | 
						|
	'name': NAME,
 | 
						|
 | 
						|
	'preview': LINK,
 | 
						|
	'original': LINK,
 | 
						|
 | 
						|
	'links': None,
 | 
						|
 | 
						|
	'metadata': None,
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#-----------------------------------------------------------------------
 | 
						|
 | 
						|
index = {
 | 
						|
	'tags': tagset.DictTagSet(),
 | 
						|
	'paths': {},
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
def import_image(path, index):
 | 
						|
	'''
 | 
						|
	'''
 | 
						|
	# create an ID...
 | 
						|
	uid = uuid.uuid1()
 | 
						|
	while uid in index['paths']:
 | 
						|
		uid = uuid.uuid1()
 | 
						|
 | 
						|
	# add file to index...
 | 
						|
	index['paths'][uid] = path
 | 
						|
	index['tags'].tag(uid, 'type:image', 'image')
 | 
						|
 | 
						|
	return uid
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
 | 
						|
	t = index['tags']
 | 
						|
 | 
						|
	t0 = time.time()
 | 
						|
	print 'generating data...',
 | 
						|
 | 
						|
	for i in xrange(500):
 | 
						|
		n = 'moo%05d' % i
 | 
						|
		uid = import_image(n, index)
 | 
						|
		if n[-1] == '0':
 | 
						|
			t.tag(uid, '0')
 | 
						|
		if n[-1] == '5':
 | 
						|
			t.tag(uid, '5')
 | 
						|
		if n.endswith('10'):
 | 
						|
			t.tag(uid, '10')
 | 
						|
 | 
						|
	t1 = time.time()
 | 
						|
	print 'done (%s).' % (t1 - t0)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	t0 = time.time()
 | 
						|
	print 'saving data...',
 | 
						|
 | 
						|
	pickle.dump(index, open('dummy.index', 'w'))
 | 
						|
 | 
						|
	t1 = time.time()
 | 
						|
	print 'done (%s).' % (t1 - t0)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
	t0 = time.time()
 | 
						|
	print 'loading data...',
 | 
						|
 | 
						|
	index = pickle.load(open('dummy.index'))
 | 
						|
 | 
						|
	t1 = time.time()
 | 
						|
	print 'done (%s).' % (t1 - t0)
 | 
						|
 | 
						|
 | 
						|
	from profile import run
 | 
						|
 | 
						|
 | 
						|
	t0 = time.time()
 | 
						|
	print 'getting number of elements...',
 | 
						|
 | 
						|
##	n = len(index['tags'].all('0').objects())
 | 
						|
##	n = len(index['tags'].all('10').objects())
 | 
						|
##	n = len(index['tags'].any('0', '10').objects())
 | 
						|
##	n = len(index['tags'].all('0').none('10').objects())
 | 
						|
##	n = len(index['tags'].all('type:image'))
 | 
						|
	run('''n = len(index['tags'].all('type:image'))''')
 | 
						|
 | 
						|
	t1 = time.time()
 | 
						|
	print 'done (%s).' % (t1 - t0)
 | 
						|
 | 
						|
	print 'and the number is:', n
 | 
						|
	print 'tagset size is:', len(index['tags'])
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#=======================================================================
 | 
						|
#                                            vim:set ts=4 sw=4 nowrap :
 |