Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
    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