Source code for gigl.src.subgraph_sampler.lib.ingestion_protocol
from typing import Optional, Protocol
from gigl.common import Uri
from gigl.src.common.types import AppliedTaskIdentifier
from gigl.src.common.types.pb_wrappers.gbml_config import GbmlConfigPbWrapper
[docs]
class BaseIngestion(Protocol):
"""
Users should implement this protocol for their ingestion into GraphDB.
"""
[docs]
def ingest(
self,
gbml_config_pb_wrapper: GbmlConfigPbWrapper,
resource_config_uri: Uri,
applied_task_identifier: AppliedTaskIdentifier,
custom_worker_image_uri: Optional[
str
] = None, # TODO: (abatra2-sc): Can we make ingestion more generic? i.e not require dataflow image
) -> None:
"""
This function runs the ingestion process. Should perform the operations needed to ingest all data into GraphDB
in preperation for running subgraph sampler queries.
"""
...
[docs]
def clean_up(self) -> None:
"""
This function runs after the ingestion process. It can be used to perform any operation needed such as
closing connections, cleaning up temporary files, etc.
"""
...