mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
	
	
		
			61 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			61 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()
							 |