| 4 | |
| 5 | |
| 6 | class ParserConfigSchema(ma.Schema): |
| 7 | |
| 8 | class Meta: |
| 9 | unknown = ma.INCLUDE |
| 10 | |
| 11 | source = ma.fields.String() |
| 12 | edge = ma.fields.String(load_default=None) |
| 13 | target = ma.fields.String(load_default=None) |
| 14 | custom_parser_vals = ma.fields.Dict(keys=ma.fields.String(), values=ma.fields.String()) |
| 15 | |
| 16 | @ma.pre_load |
| 17 | def check_edge_target(self, in_data, **_): |
| 18 | if all(k in in_data.keys() for k in ['edge', 'target']) \ |
| 19 | and (in_data['edge'] is None) and (in_data['target'] is not None): |
| 20 | raise ma.ValidationError('Target provided without an edge.') |
| 21 | return in_data |
| 22 | |
| 23 | @ma.post_load() |
| 24 | def build_parserconfig(self, data, **_): |
| 25 | return ParserConfig(**data) |
| 26 | |
| 27 | @ma.pre_dump() |
| 28 | def remove_nones(self, data, **_): |
| 29 | data.source = data.source or '' |
| 30 | data.edge = data.edge or '' |
| 31 | data.target = data.target or '' |
| 32 | data.custom_parser_vals = data.custom_parser_vals or {} |
| 33 | return data |
| 34 | |
| 35 | |
| 36 | class ParserConfig(BaseObject): |
no outgoing calls
no test coverage detected