| 
					
				 | 
			
			
				@@ -284,12 +284,10 @@ class Item(PropDict): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     part = PropDict._make_property('part', int) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def get_size(self, hardlink_masters=None, memorize=False, compressed=False, from_chunks=False, consider_ids=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def get_size(self, memorize=False, compressed=False, from_chunks=False, consider_ids=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Determine the (uncompressed or compressed) size of this item. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        :param hardlink_masters: If given, the size of hardlink slaves is computed via the hardlink master's chunk list, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        otherwise size will be returned as 0. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :param memorize: Whether the computed size value will be stored into the item. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :param compressed: Whether the compressed or uncompressed size will be returned. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :param from_chunks: If true, size is computed from chunks even if a precomputed value is available. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -309,31 +307,14 @@ class Item(PropDict): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             # no precomputed (c)size value available, compute it: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 chunks = getattr(self, 'chunks') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                having_chunks = True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             except AttributeError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                having_chunks = False 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                # this item has no (own) chunks list, but if this is a hardlink slave 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                # and we know the master, we can still compute the size. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if hardlink_masters is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    chunks = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        master = getattr(self, 'source') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    except AttributeError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        # not a hardlink slave, likely a directory or special file w/o chunks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        chunks = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        # hardlink slave, try to fetch hardlink master's chunks list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        # todo: put precomputed size into hardlink_masters' values and use it, if present 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        chunks, _ = hardlink_masters.get(master, (None, None)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if chunks is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if consider_ids is not None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 size = sum(getattr(ChunkListEntry(*chunk), attr) for chunk in chunks if chunk.id in consider_ids) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 size = sum(getattr(ChunkListEntry(*chunk), attr) for chunk in chunks) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             # if requested, memorize the precomputed (c)size for items that have an own chunks list: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if memorize and having_chunks: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if memorize: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 setattr(self, attr, size) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |