| 547 | self.save_manifest() |
| 548 | |
| 549 | def save_manifest(self): |
| 550 | sorted_hashed_files = sorted(self.hashed_files.items()) |
| 551 | self.manifest_hash = self.file_hash( |
| 552 | None, ContentFile(json.dumps(sorted_hashed_files).encode()) |
| 553 | ) |
| 554 | payload = { |
| 555 | "paths": dict(sorted_hashed_files), |
| 556 | "version": self.manifest_version, |
| 557 | "hash": self.manifest_hash, |
| 558 | } |
| 559 | if self.manifest_storage.exists(self.manifest_name): |
| 560 | self.manifest_storage.delete(self.manifest_name) |
| 561 | contents = json.dumps(payload).encode() |
| 562 | self.manifest_storage._save(self.manifest_name, ContentFile(contents)) |
| 563 | |
| 564 | def stored_name(self, name): |
| 565 | parsed_name = urlsplit(unquote(name)) |