Skip to content

Jobs

Result and handle types returned from asynchronous Table operations (backfill_async, refresh_async).

geneva.jobs.types.Job

In-progress job handle returned by backfill_async / refresh_async. Wraps a JobFuture and builds a typed JobResult on completion. Reach the wrapped future via future for executor-specific state.

future

future: JobFuture

The underlying executor-specific future.

table_name

table_name: str

column_names

column_names: list[str]

job_id

job_id: str

status

status: str

done

done(timeout: float | None = None) -> bool

result

result(timeout: float | None = None) -> JobResult

Block until completion and return the typed result.

Raises:

  • RuntimeError
    if the job failed or was cancelled.
    

    TimeoutError if timeout elapsed before completion.

geneva.jobs.types.JobResult

Completed-job metadata. Base type for operation-specific results.

*_source fields record the origin of the resolved value: "explicit" (caller-supplied), "@udf" (snapshot from @udf(manifest=...)), "deployment-default" (phalanx ConfigMap), "context" (legacy conn.context(...)), or None if unset.

job_id

job_id: str

status

status: str

table_name

table_name: str

launched_at

launched_at: Optional[datetime] = None

completed_at

completed_at: Optional[datetime] = None

cluster_name

cluster_name: Optional[str] = None

cluster_source

cluster_source: Optional[str] = None

manifest_id

manifest_id: Optional[str] = None

manifest_source

manifest_source: Optional[str] = None

geneva.jobs.types.BackfillJobResult

Bases: JobResult

Result of a Table.backfill invocation. Per-column UDF identity and counters live in columns, keyed by column name. Single-column backfills produce a one-entry map.

columns

columns: dict[str, UdfResult] = field(factory=dict)

geneva.jobs.types.RefreshJobResult

Bases: JobResult

Result of a Table.refresh invocation.

new_source_fragments

new_source_fragments: int = 0

rows_refreshed

rows_refreshed: int = 0

geneva.jobs.types.UdfResult

udf_name

udf_name: Optional[str] = None

udf_version

udf_version: Optional[str] = None

rows_processed

rows_processed: int = 0

rows_skipped

rows_skipped: int = 0