Spaces:
Runtime error
Runtime error
Download data/parser/from_mrp/abstract_parser.py from ltg/ssa-perin: direct link, hf CLI and curl.
- Browser
- Download file 1.58 kB
-
https://huggingface.co/spaces/ltg/ssa-perin/resolve/main/data/parser/from_mrp/abstract_parser.py
- Command line
-
hf download hf://spaces/ltg/ssa-perin/data/parser/from_mrp/abstract_parser.py
-
curl -L -o abstract_parser.py https://huggingface.co/spaces/ltg/ssa-perin/resolve/main/data/parser/from_mrp/abstract_parser.py
1.58 kB
| #!/usr/bin/env python3 | |
| # coding=utf-8 | |
| import torch | |
| from data.parser.json_parser import example_from_json | |
| class AbstractParser(torch.utils.data.Dataset): | |
| def __init__(self, fields, data, filter_pred=None): | |
| super(AbstractParser, self).__init__() | |
| self.examples = [example_from_json(d, fields) for _, d in sorted(data.items())] | |
| if isinstance(fields, dict): | |
| fields, field_dict = [], fields | |
| for field in field_dict.values(): | |
| if isinstance(field, list): | |
| fields.extend(field) | |
| else: | |
| fields.append(field) | |
| if filter_pred is not None: | |
| make_list = isinstance(self.examples, list) | |
| self.examples = filter(filter_pred, self.examples) | |
| if make_list: | |
| self.examples = list(self.examples) | |
| self.fields = dict(fields) | |
| # Unpack field tuples | |
| for n, f in list(self.fields.items()): | |
| if isinstance(n, tuple): | |
| self.fields.update(zip(n, f)) | |
| del self.fields[n] | |
| def __getitem__(self, i): | |
| item = self.examples[i] | |
| processed_item = {} | |
| for (name, field) in self.fields.items(): | |
| if field is not None: | |
| processed_item[name] = field.process(getattr(item, name), device=None) | |
| return processed_item | |
| def __len__(self): | |
| return len(self.examples) | |
| def get_examples(self, attr): | |
| if attr in self.fields: | |
| for x in self.examples: | |
| yield getattr(x, attr) | |