Spaces:
Runtime error
Runtime error
| import json | |
| from typing import Iterable | |
| class RelikReaderSample: | |
| def __init__(self, **kwargs): | |
| super().__setattr__("_d", {}) | |
| self._d = kwargs | |
| def __getattribute__(self, item): | |
| return super(RelikReaderSample, self).__getattribute__(item) | |
| def __getattr__(self, item): | |
| if item.startswith("__") and item.endswith("__"): | |
| # this is likely some python library-specific variable (such as __deepcopy__ for copy) | |
| # better follow standard behavior here | |
| raise AttributeError(item) | |
| elif item in self._d: | |
| return self._d[item] | |
| else: | |
| return None | |
| def __setattr__(self, key, value): | |
| if key in self._d: | |
| self._d[key] = value | |
| else: | |
| super().__setattr__(key, value) | |
| def to_jsons(self) -> str: | |
| if "predicted_window_labels" in self._d: | |
| new_obj = { | |
| k: v | |
| for k, v in self._d.items() | |
| if k != "predicted_window_labels" and k != "span_title_probabilities" | |
| } | |
| new_obj["predicted_window_labels"] = [ | |
| [ss, se, pred_title] | |
| for (ss, se), pred_title in self.predicted_window_labels_chars | |
| ] | |
| else: | |
| return json.dumps(self._d) | |
| def load_relik_reader_samples(path: str) -> Iterable[RelikReaderSample]: | |
| with open(path) as f: | |
| for line in f: | |
| jsonl_line = json.loads(line.strip()) | |
| relik_reader_sample = RelikReaderSample(**jsonl_line) | |
| yield relik_reader_sample | |