| 
														
															@@ -1191,13 +1191,9 @@ class Repository: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         except KeyError: 
														 | 
														
														 | 
														
															         except KeyError: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             pass 
														 | 
														
														 | 
														
															             pass 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else: 
														 | 
														
														 | 
														
															         else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            self.segments[segment] -= 1 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            size = self.io.read(segment, offset, id, read_data=False) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            self.storage_quota_use -= size 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            self.compact[segment] += size 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            segment, size = self.io.write_delete(id) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            self.compact[segment] += size 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            self.segments.setdefault(segment, 0) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # note: doing a delete first will do some bookkeeping, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            # like updating the shadow_index, quota, ... 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            self._delete(id, segment, offset) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         segment, offset = self.io.write_put(id, data) 
														 | 
														
														 | 
														
															         segment, offset = self.io.write_put(id, data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.storage_quota_use += len(data) + self.io.put_header_fmt.size 
														 | 
														
														 | 
														
															         self.storage_quota_use += len(data) + self.io.put_header_fmt.size 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.segments.setdefault(segment, 0) 
														 | 
														
														 | 
														
															         self.segments.setdefault(segment, 0) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1221,6 +1217,10 @@ class Repository: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         except KeyError: 
														 | 
														
														 | 
														
															         except KeyError: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             raise self.ObjectNotFound(id, self.path) from None 
														 | 
														
														 | 
														
															             raise self.ObjectNotFound(id, self.path) from None 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.shadow_index.setdefault(id, []).append(segment) 
														 | 
														
														 | 
														
															         self.shadow_index.setdefault(id, []).append(segment) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        self._delete(id, segment, offset) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    def _delete(self, id, segment, offset): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        # common code used by put and delete 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.segments[segment] -= 1 
														 | 
														
														 | 
														
															         self.segments[segment] -= 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         size = self.io.read(segment, offset, id, read_data=False) 
														 | 
														
														 | 
														
															         size = self.io.read(segment, offset, id, read_data=False) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.storage_quota_use -= size 
														 | 
														
														 | 
														
															         self.storage_quota_use -= size 
														 |