Report
Report
evo.blockmodels.typed.report.Report
A typed wrapper for block model report specifications.
Reports provide resource estimation summaries for block models. They calculate tonnages, grades, and metal content grouped by categories (e.g., geological domains).
Example usage:
# Create a report from a block model
report = await block_model.create_report(ReportSpecificationData(
name="Resource Report",
columns=[ReportColumnSpec(column_name="Au", output_unit_id="g/t")],
categories=[ReportCategorySpec(column_name="domain")],
mass_unit_id="t",
density_value=2.7,
density_unit_id="t/m3",
))
# Pretty-print shows BlockSync link
report
# Get the latest result
result = await report.get_latest_result()
df = result.to_dataframe()
id
id: UUID
The unique identifier of the report specification.
name
name: str
The name of the report.
description
description: str | None
The description of the report.
block_model_uuid
block_model_uuid: UUID
The UUID of the block model this report is for.
revision
revision: int
The revision number of the report specification.
__init__
__init__(
context: IContext,
block_model_uuid: UUID,
specification: ReportSpecificationWithLastRunInfo | ReportSpecificationWithJobUrl,
block_model_name: str | None = None,
) -> None
Initialize a Report instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
context | IContext | The context containing environment, connector, and cache. | required |
block_model_uuid | UUID | The UUID of the block model this report is for. | required |
specification | ReportSpecificationWithLastRunInfo | ReportSpecificationWithJobUrl | The report specification from the API. | required |
block_model_name | str | None | The name of the block model (for display purposes). | None |
create
create(
context: IContext,
block_model_uuid: UUID,
data: ReportSpecificationData,
column_id_map: dict[str, UUID],
fb: IFeedback = NoFeedback,
block_model_name: str | None = None,
) -> Report
Create a new report specification.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
context | IContext | The context containing environment, connector, and cache. | required |
block_model_uuid | UUID | The UUID of the block model to create the report for. | required |
data | ReportSpecificationData | The report specification data. | required |
column_id_map | dict[str, UUID] | Mapping of column names to their UUIDs in the block model. | required |
fb | IFeedback | Optional feedback interface for progress reporting. | NoFeedback |
block_model_name | str | None | The name of the block model (for display purposes). | None |
Returns:
| Type | Description |
|---|---|
Report | A Report instance representing the created report. |
run
run(version_uuid: UUID | None = None, fb: IFeedback = NoFeedback) -> ReportResult
Run the report to generate a new result.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
version_uuid | UUID | None | Optional specific version UUID to run the report on. If None, runs on the latest version. | None |
fb | IFeedback | Optional feedback interface for progress reporting. | NoFeedback |
Returns:
| Type | Description |
|---|---|
ReportResult | The generated report result. |
refresh
refresh(fb: IFeedback = NoFeedback, timeout_seconds: float = 120.0, poll_interval_seconds: float = 2.0) -> ReportResult
Get the most recent result for this report, waiting if necessary.
If no results exist yet (e.g., report is still running), this method will poll until a result is available or the timeout is reached.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fb | IFeedback | Optional feedback interface for progress reporting. | NoFeedback |
timeout_seconds | float | Maximum time to wait for results (default 120 seconds). | 120.0 |
poll_interval_seconds | float | Time between polling attempts (default 2 seconds). | 2.0 |
Returns:
| Type | Description |
|---|---|
ReportResult | The latest report result. |
Raises:
| Type | Description |
|---|---|
TimeoutError | If no results are available within the timeout period. |
list_results
list_results(limit: int = 50, fb: IFeedback = NoFeedback) -> list[ReportResult]
List all results for this report.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
limit | int | Maximum number of results to return. | 50 |
fb | IFeedback | Optional feedback interface for progress reporting. | NoFeedback |
Returns:
| Type | Description |
|---|---|
list[ReportResult] | List of report results, ordered newest first. |