| 897 | ) |
| 898 | |
| 899 | def __init__(self, format, repository, manifest, key, *, iec=False, deleted=False): |
| 900 | static_data = {} | self.FIXED_KEYS # here could be stuff on repo level, above archive level |
| 901 | super().__init__(format, static_data) |
| 902 | self.repository = repository |
| 903 | self.manifest = manifest |
| 904 | self.key = key |
| 905 | self.name = None |
| 906 | self.id = None |
| 907 | self._archive = None |
| 908 | self.deleted = deleted # True if we want to deal with deleted archives. |
| 909 | self.iec = iec |
| 910 | self.format_keys = {f[1] for f in Formatter().parse(format)} |
| 911 | self.call_keys = { |
| 912 | "hostname": partial(self.get_meta, "hostname", ""), |
| 913 | "username": partial(self.get_meta, "username", ""), |
| 914 | "comment": partial(self.get_meta, "comment", ""), |
| 915 | "command_line": partial(self.get_meta, "command_line", ""), |
| 916 | "size": partial(self.get_meta, "size", 0), |
| 917 | "nfiles": partial(self.get_meta, "nfiles", 0), |
| 918 | "start": self.get_ts_start, |
| 919 | "end": self.get_ts_end, |
| 920 | "tags": self.get_tags, |
| 921 | } |
| 922 | self.used_call_keys = set(self.call_keys) & self.format_keys |
| 923 | |
| 924 | def get_item_data(self, archive_info, jsonline=False): |
| 925 | self.name = archive_info.name |