Skip to content

bovine_process.types

ProcessingItem dataclass

Represents an entity being processed

Parameters:

Name Type Description Default
submitter str

actor_id of the person submitting the item

required
data dict

item being processed

required
meta dict

used to store data between processing steps

field(default_factory=dict)
Source code in bovine_process/bovine_process/types.py
@dataclass
class ProcessingItem:
    """Represents an entity being processed

    :param submitter: actor_id of the person submitting the item
    :param data: item being processed
    :param meta: used to store data between processing steps
    """

    submitter: str
    data: dict
    meta: dict = field(default_factory=dict)

    @property
    def submitter_domain(self):
        return urlparse(self.submitter).netloc

    def object_id(self):
        object_id = self.data.get("id")

        if object_id is None:
            object_id = f"remote://{str(uuid.uuid4())}"
            self.data["id"] = object_id

        return object_id

    def dump(self):
        logger.error(">>>> ITEM from %s <<<<", self.submitter)
        logger.error("data: %s", json.dumps(self.data))
        logger.error("meta: %s", json.dumps(self.meta))
        logger.error("   ")