def from_json(cls, json_input): allowed_values = [] for allowed_value in json_input['allowed_values']: if allowed_value['type'] == 'anyvalue': allowed_values.append(AnyValue()) elif allowed_value['type'] == 'novalue': allowed_values.append(NoValue()) elif allowed_value['type'] == 'valuesreference': allowed_values.append(ValuesReference.from_json(allowed_value)) elif allowed_value['type'] == 'allowedvalue': allowed_values.append(AllowedValue.from_json(allowed_value)) json_input_copy = deepcopy(json_input) json_input_copy['allowed_values'] = allowed_values json_input_copy['uoms'] = [ basic.UOM(uom.get('uom')) for uom in json_input.get('uoms', []) ] data = json_input_copy.pop('data', None) uom = json_input_copy.pop('uom', None) metadata = json_input_copy.pop('metadata', []) json_input_copy.pop('type') json_input_copy.pop('any_value', None) json_input_copy.pop('values_reference', None) instance = cls(**json_input_copy) instance.metadata = [Metadata.from_json(d) for d in metadata] instance.data = data if uom: instance.uom = basic.UOM(uom['uom']) return instance
def from_json(cls, json_output): instance = cls( identifier=json_output['identifier'], title=json_output.get('title'), abstract=json_output.get('abstract'), keywords=json_output.get('keywords', []), workdir=json_output.get('workdir'), metadata=[ Metadata.from_json(data) for data in json_output.get('metadata', []) ], data_format=Format( schema=json_output['data_format'].get('schema'), extension=json_output['data_format'].get('extension'), mime_type=json_output['data_format']['mime_type'], encoding=json_output['data_format'].get('encoding')), supported_formats=[ Format(schema=infrmt.get('schema'), extension=infrmt.get('extension'), mime_type=infrmt['mime_type'], encoding=infrmt.get('encoding')) for infrmt in json_output['supported_formats'] ], mode=json_output.get('mode', MODE.NONE)) instance.as_reference = json_output.get('asreference', False) if json_output.get('file'): instance.file = json_output['file'] return instance
def from_json(cls, json_input): instance = cls( identifier=json_input['identifier'], title=json_input.get('title'), abstract=json_input.get('abstract'), keywords=json_input.get('keywords', []), workdir=json_input.get('workdir'), metadata=[Metadata.from_json(data) for data in json_input.get('metadata', [])], data_format=Format( schema=json_input['data_format'].get('schema'), extension=json_input['data_format'].get('extension'), mime_type=json_input['data_format']['mime_type'], encoding=json_input['data_format'].get('encoding') ), supported_formats=[ Format( schema=infrmt.get('schema'), extension=infrmt.get('extension'), mime_type=infrmt['mime_type'], encoding=infrmt.get('encoding') ) for infrmt in json_input['supported_formats'] ], mode=json_input.get('mode', MODE.NONE) ) instance.as_reference = json_input.get('asreference', False) if json_input.get('file'): instance.file = json_input['file'] elif json_input.get('href'): instance.url = json_input['href'] elif json_input.get('data'): instance.data = json_input['data'] return instance
def from_json(cls, json_input): instance = cls( identifier=json_input['identifier'], title=json_input['title'], abstract=json_input['abstract'], crss=json_input['crss'], keywords=json_input['keywords'], metadata=[Metadata.from_json(data) for data in json_input.get('metadata', [])], dimensions=json_input['dimensions'], workdir=json_input['workdir'], mode=json_input['mode'], min_occurs=json_input['min_occurs'], max_occurs=json_input['max_occurs'], ) instance.data = json_input['bbox'] return instance
def from_json(cls, json_input): instance = cls( identifier=json_input['identifier'], title=json_input['title'], abstract=json_input['abstract'], crss=json_input['crss'], keywords=json_input['keywords'], metadata=[Metadata.from_json(data) for data in json_input.get('metadata', [])], dimensions=json_input['dimensions'], workdir=json_input['workdir'], mode=json_input['mode'], min_occurs=json_input['min_occurs'], max_occurs=json_input['max_occurs'], ) instance.ll = json_input['bbox'][0] instance.ur = json_input['bbox'][1] return instance
def from_json(cls, json_input): allowed_values = [] for allowed_value in json_input['allowed_values']: if allowed_value['type'] == 'anyvalue': allowed_values.append(AnyValue()) elif allowed_value['type'] == 'novalue': allowed_values.append(NoValue()) elif allowed_value['type'] == 'valuesreference': allowed_values.append(ValuesReference()) elif allowed_value['type'] == 'allowedvalue': allowed_values.append( AllowedValue(allowed_type=allowed_value['allowed_type'], value=allowed_value['value'], minval=allowed_value['minval'], maxval=allowed_value['maxval'], spacing=allowed_value['spacing'], range_closure=allowed_value['range_closure'])) json_input['allowed_values'] = allowed_values json_input['uoms'] = [ basic.UOM(uom.get('uom')) for uom in json_input.get('uoms', []) ] data = json_input.pop('data', None) uom = json_input.pop('uom', None) metadata = json_input.pop('metadata', []) json_input.pop('type') json_input.pop('any_value', None) json_input.pop('values_reference', None) instance = cls(**json_input) instance.metadata = [Metadata.from_json(d) for d in metadata] instance.data = data if uom: instance.uom = basic.UOM(uom['uom']) return instance
def from_json(cls, json_input): allowed_values = [] for allowed_value in json_input['allowed_values']: if allowed_value['type'] == 'anyvalue': allowed_values.append(AnyValue()) elif allowed_value['type'] == 'novalue': allowed_values.append(NoValue()) elif allowed_value['type'] == 'valuesreference': allowed_values.append(ValuesReference()) elif allowed_value['type'] == 'allowedvalue': allowed_values.append(AllowedValue( allowed_type=allowed_value['allowed_type'], value=allowed_value['value'], minval=allowed_value['minval'], maxval=allowed_value['maxval'], spacing=allowed_value['spacing'], range_closure=allowed_value['range_closure'] )) json_input['allowed_values'] = allowed_values json_input['uoms'] = [basic.UOM(uom.get('uom')) for uom in json_input.get('uoms', [])] data = json_input.pop('data', None) uom = json_input.pop('uom', None) metadata = json_input.pop('metadata', []) json_input.pop('type') json_input.pop('any_value', None) json_input.pop('values_reference', None) instance = cls(**json_input) instance.metadata = [Metadata.from_json(d) for d in metadata] instance.data = data if uom: instance.uom = basic.UOM(uom['uom']) return instance