mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # List all resources
 | |
| 
 | |
| import Res
 | |
| from Resources import *
 | |
| 
 | |
| def list1resources():
 | |
| 	ntypes = Res.Count1Types()
 | |
| 	for itype in range(1, 1+ntypes):
 | |
| 		type = Res.Get1IndType(itype)
 | |
| 		print "Type:", `type`
 | |
| 		nresources = Res.Count1Resources(type)
 | |
| 		for i in range(1, 1 + nresources):
 | |
| 			Res.SetResLoad(0)
 | |
| 			res = Res.Get1IndResource(type, i)
 | |
| 			Res.SetResLoad(1)
 | |
| 			info(res)
 | |
| 
 | |
| def listresources():
 | |
| 	ntypes = Res.CountTypes()
 | |
| 	for itype in range(1, 1+ntypes):
 | |
| 		type = Res.GetIndType(itype)
 | |
| 		print "Type:", `type`
 | |
| 		nresources = Res.CountResources(type)
 | |
| 		for i in range(1, 1 + nresources):
 | |
| 			Res.SetResLoad(0)
 | |
| 			res = Res.GetIndResource(type, i)
 | |
| 			Res.SetResLoad(1)
 | |
| 			info(res)
 | |
| 
 | |
| def info(res):
 | |
| 	print res.GetResInfo(), res.SizeResource(), decodeattrs(res.GetResAttrs())
 | |
| 
 | |
| attrnames = {
 | |
| 	resChanged:	'Changed',
 | |
| 	resPreload:	'Preload',
 | |
| 	resProtected:	'Protected',
 | |
| 	resLocked:	'Locked',
 | |
| 	resPurgeable:	'Purgeable',
 | |
| 	resSysHeap:	'SysHeap',
 | |
| }
 | |
| 
 | |
| def decodeattrs(attrs):
 | |
| 	names = []
 | |
| 	for bit in range(16):
 | |
| 		mask = 1<<bit
 | |
| 		if attrs & mask:
 | |
| 			if attrnames.has_key(mask):
 | |
| 				names.append(attrnames[mask])
 | |
| 			else:
 | |
| 				names.append(hex(mask))
 | |
| 	return names
 | |
| 
 | |
| def test():
 | |
| 	print "=== Local resourcess ==="
 | |
| 	list1resources()
 | |
| 	print "=== All resources ==="
 | |
| 	listresources()
 | |
| 
 | |
| if __name__ == '__main__':
 | |
| 	test()
 | 
