| 176 | |
| 177 | @attr.s(frozen=True) |
| 178 | class MetadataFiles(object): |
| 179 | metadata = attr.ib() # type: DistMetadataFile |
| 180 | _additional_metadata_files = attr.ib(default=()) # type: Tuple[Text, ...] |
| 181 | _read_function = attr.ib(default=None) # type: Optional[Callable[[Text], bytes]] |
| 182 | |
| 183 | def metadata_file_rel_path(self, metadata_file_name): |
| 184 | # type: (Text) -> Optional[Text] |
| 185 | for rel_path in self._additional_metadata_files: |
| 186 | if os.path.basename(rel_path) == metadata_file_name: |
| 187 | return rel_path |
| 188 | return None |
| 189 | |
| 190 | def read(self, metadata_file_name): |
| 191 | # type: (Text) -> Optional[bytes] |
| 192 | rel_path = self.metadata_file_rel_path(metadata_file_name) |
| 193 | if rel_path is None or self._read_function is None: |
| 194 | return None |
| 195 | return self._read_function(rel_path) |
| 196 | |
| 197 | def render_description(self, metadata_file_name): |
| 198 | # type: (Text) -> str |
| 199 | rel_path = self.metadata_file_rel_path(metadata_file_name) |
| 200 | return self.metadata.render_metadata_file_description( |
| 201 | rel_path |
| 202 | or "{metadata_file_name} not found".format(metadata_file_name=metadata_file_name) |
| 203 | ) |
| 204 | |
| 205 | |
| 206 | class MetadataType(Enum["MetadataType.Value"]): |
no outgoing calls
no test coverage detected