Пример #1
0
    def get_layer(self, base_name: str, layer_name: LayerEnum) -> Layer:
        if base_name in self.layers and layer_name in self.layers[base_name]:
            layer = self.layers[base_name][layer_name]
            if layer:
                return layer

        layer_dict = self.read_layers_file(base_name, layer_name.value)
        if layer_dict:
            layer = Layer.parse_obj(layer_dict)
        else:
            layer = Layer(annotation_type=layer_name)
        self.layers[base_name][layer_name] = layer
        return layer
Пример #2
0
def update_base_layer(pecha_id, base_name, new_base, layers):
    pecha = get_pecha(pecha_id)
    old_base = pecha.get_base(base_name)
    pecha.base[base_name] = new_base
    pecha.save_base()

    updater = Blupdate(old_base, new_base)
    for layer in layers:
        update_ann_layer(layer, updater)
        pecha.save_layer(
            base_name, layer["annotation_type"].value, Layer.parse_obj(layer)
        )
    return layers
Пример #3
0
 def index(self) -> Layer:
     if self._index:
         return self._index
     self._index = Layer.parse_obj(self.read_index_file())
     return self._index