(self, key, data, cache, complete)
| 1152 | self.evictions += 1 |
| 1153 | |
| 1154 | def add_entry(self, key, data, cache, complete): |
| 1155 | transformed = self.transform(key, data) |
| 1156 | if not cache: |
| 1157 | return transformed |
| 1158 | packed = self.pack(transformed) |
| 1159 | pkey = self.prefixed_key(key, complete=complete) |
| 1160 | file = self.key_filename(pkey) |
| 1161 | try: |
| 1162 | with open(file, "wb") as fd: |
| 1163 | fd.write(packed) |
| 1164 | except OSError as os_error: |
| 1165 | try: |
| 1166 | safe_unlink(file) |
| 1167 | except FileNotFoundError: |
| 1168 | pass # open() could have failed as well |
| 1169 | if os_error.errno == errno.ENOSPC: |
| 1170 | self.enospc += 1 |
| 1171 | self.backoff() |
| 1172 | else: |
| 1173 | raise |
| 1174 | else: |
| 1175 | self.size += len(packed) |
| 1176 | self.cache.add(pkey) |
| 1177 | if self.size > self.size_limit: |
| 1178 | self.backoff() |
| 1179 | return transformed |
| 1180 | |
| 1181 | def log_instrumentation(self): |
| 1182 | logger.debug( |
no test coverage detected