diff --git a/swh/indexer/fossology_license.py b/swh/indexer/fossology_license.py --- a/swh/indexer/fossology_license.py +++ b/swh/indexer/fossology_license.py @@ -9,6 +9,7 @@ from typing import Any, Dict, List, Optional, Union from swh.model import hashutil +from swh.model.model import Revision from .indexer import ContentIndexer, ContentPartitionIndexer, write_to_temp from swh.indexer.storage.interface import PagedResult, Sha1 @@ -83,7 +84,7 @@ self.working_directory = self.config["workdir"] def index( - self, id: Union[bytes, Dict], data: Optional[bytes] = None, **kwargs + self, id: Union[bytes, Dict, Revision], data: Optional[bytes] = None, **kwargs ) -> Dict[str, Any]: """Index sha1s' content and store result. diff --git a/swh/indexer/indexer.py b/swh/indexer/indexer.py --- a/swh/indexer/indexer.py +++ b/swh/indexer/indexer.py @@ -20,6 +20,7 @@ from swh.objstorage.exc import ObjNotFoundError from swh.indexer.storage import get_indexer_storage, INDEXER_CFG_KEY, PagedResult, Sha1 from swh.model import hashutil +from swh.model.model import Revision from swh.core import utils @@ -233,7 +234,7 @@ return [] def index( - self, id: Union[bytes, Dict], data: Optional[bytes] = None, **kwargs + self, id: Union[bytes, Dict, Revision], data: Optional[bytes] = None, **kwargs ) -> Dict[str, Any]: """Index computation for the id and associated raw data. diff --git a/swh/indexer/metadata.py b/swh/indexer/metadata.py --- a/swh/indexer/metadata.py +++ b/swh/indexer/metadata.py @@ -147,7 +147,7 @@ - if multiple file detected -> translation needed at revision level Args: - rev (dict): revision artifact from storage + rev: revision model object from storage Returns: dict: dictionary representing a revision_intrinsic_metadata, with @@ -159,14 +159,14 @@ """ result = { - "id": rev["id"], + "id": rev.id, "indexer_configuration_id": self.tool["id"], "mappings": None, "metadata": None, } try: - root_dir = rev["directory"] + root_dir = rev.directory dir_ls = list(self.storage.directory_ls(root_dir, recursive=False)) if [entry["type"] for entry in dir_ls] == ["dir"]: # If the root is just a single directory, recurse into it @@ -176,8 +176,7 @@ files = [entry for entry in dir_ls if entry["type"] == "file"] detected_files = detect_metadata(files) (mappings, metadata) = self.translate_revision_intrinsic_metadata( - detected_files, - log_suffix="revision=%s" % hashutil.hash_to_hex(rev["id"]), + detected_files, log_suffix="revision=%s" % hashutil.hash_to_hex(rev.id), ) result["mappings"] = mappings result["metadata"] = metadata diff --git a/swh/indexer/mimetype.py b/swh/indexer/mimetype.py --- a/swh/indexer/mimetype.py +++ b/swh/indexer/mimetype.py @@ -8,6 +8,7 @@ from typing import Any, Optional, Dict, List, Union from swh.indexer.storage.interface import PagedResult, Sha1 +from swh.model.model import Revision from .indexer import ContentIndexer, ContentPartitionIndexer @@ -64,7 +65,7 @@ CONFIG_BASE_FILENAME = "indexer/mimetype" # type: Optional[str] def index( - self, id: Union[bytes, Dict], data: Optional[bytes] = None, **kwargs + self, id: Union[bytes, Dict, Revision], data: Optional[bytes] = None, **kwargs ) -> Dict[str, Any]: """Index sha1s' content and store result.