Source code for swh.objstorage.backends.winery.pools.shard

# Copyright (C) 2021-2026  The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information

import logging

from swh.shard import Shard, ShardCreator

from . import FileBackedPool, ImageReader, ImageWriter

logger = logging.getLogger(__name__)


[docs] class ShardBackedPool(FileBackedPool): """ swh-shard files-backed pool for Winery. """
[docs] def image_open(self, image: str) -> ImageReader: return Shard(self.image_path(image))
[docs] def delete_object(self, shard_name: str, obj_id: bytes) -> None: Shard.delete(self.image_path(shard_name), obj_id)
[docs] def open_writer( self, shard_name: str, nb_objects: int, create_image: bool ) -> ImageWriter: path = self.image_path(shard_name) self.image_create(shard_name) self._zero_image_if_needed(path) return ShardCreator(path, nb_objects)