mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-29 18:30:09 +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 :
 |