Source code for fastscore.schema


class SchemaMetadata(object):
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        return self._name

[docs]class Schema(object): """ An Avro schema. It can be created direct """ def __init__(self, name, source=None, model_manage=None): self._name = name self.source = source self._mm = model_manage @property def name(self): """ A schema name. """ return self._name @property def source(self): """ A schema source, e.g. {'type': 'array', 'items': 'int'}. """ return self._source @source.setter def source(self, source): self._source = source
[docs] def update(self, model_manage=None): """ Saves the schema to Model Manage. :param model_manage: The Model Manage instance to use. If None, the Model Manage instance must have been provided when then schema was created. """ if model_manage == None and self._mm == None: raise FastScore("Schema '%s' not associated with Model Manage" % self.name) if self._mm == None: self._mm = model_manage return self._mm.save_schema(self)
[docs] def verify(self, engine): """ Asks the engine the check the schema. :returns: id of the loaded schema. The identifier can be used to validate data records: >>> engine = connect.lookup('engine') >>> sid = schema.verify(engine) >>> engine.validate_data(sid, rec) """ return engine.verify_schema(self)