Skip to content

deeporigin.drug_discovery.execution

Base class for jobs-centric execution objects (Docking, ABFE, etc.).

Base class for the jobs-centric API.

Provides Execution -- a base class with read-only @property descriptors for system-managed fields and lifecycle state management. Subclasses also expose immutable input fields as read-only properties and compose with mixins (QuoteMixin, SyncExecutableMixin, AsyncExecutableMixin) to build concrete execution types like PocketFinder, Docking, and ABFE.

Attributes

Classes

Execution

Base class for all execution types in the jobs-centric API.

System-managed fields estimate and cost are exposed as read-only properties. Platform execution id is defined on :class:~deeporigin.drug_discovery.execution_mixins.QuoteMixin (typical job classes include that mixin). Subclasses should use the same @property pattern for user-supplied input fields that must not change after construction.

Attributes:

Name Type Description
estimate float | None

Cost estimate in dollars, set by quote().

cost float | None

Actual cost in dollars, set after execution completes.

name str | None

Optional user label; writable until execution id is set, then read-only.

tool_key str

Platform tool key identifying this execution type.

tool_version str

Version of the tool to use.

Attributes

client instance-attribute
client: DeepOriginClient = client
cost property
cost: float | None

Actual cost in dollars, set after execution completes.

This property cannot be set manually.

estimate property
estimate: float | None

Cost estimate in dollars, set by quote(). None until quote() is called.

This property cannot be set manually.

name property writable
name: str | None

Optional user-defined label for this execution.

May be set or changed only while id is unset. After an execution ID exists, name is read-only.

tool_key class-attribute instance-attribute
tool_key: str = ''

Functions

duplicate
duplicate(
    *, client: DeepOriginClient | None = None
) -> Self

Create a fresh copy with the same configuration but no execution state.

Useful after from_id() to re-run the same calculation. The returned instance has no id, status, estimate, or cost — it is ready for quote() / start().

Parameters:

Name Type Description Default
client DeepOriginClient | None

Optional API client for the new instance. Falls back to the current instance's client.

None

Returns:

Type Description
Self

A new instance sharing the same domain-specific configuration.

get_results
get_results(**kwargs: Any) -> Any

Fetch results for this execution from the data platform.

Thin wrapper around :meth:deeporigin.platform.results.Results.get scoped to this execution's compute_job_id. Subclasses that need result-type-specific filtering (e.g. poses, prepared systems) should override this method and call the appropriate Results wrapper directly rather than teaching this base method about those filters.

Parameters:

Name Type Description Default
**kwargs Any

Forwarded verbatim to :meth:~deeporigin.platform.results.Results.get (typically filter_dict, limit, select).

{}

Returns:

Type Description
Any

Result-explorer response dict with data and meta keys.

Raises:

Type Description
ValueError

If the execution has no ID yet.

get_user_logs
get_user_logs(
    *,
    limit: int | None = None,
    offset: int | None = None,
    select: list[str] | None = None,
    with_total_count: bool = False
) -> dict[str, Any] | None

Search data-platform user_logs rows for this execution.

Uses :meth:deeporigin.platform.user_logs.UserLogs.search with compute_job_id set to this execution's platform id (same identifier passed to :meth:get_results as compute_job_id).

When no execution id is assigned yet, returns None without calling the API.

Parameters:

Name Type Description Default
limit int | None

Max rows to return (forwarded to UserLogs.search).

None
offset int | None

Skip offset (forwarded).

None
select list[str] | None

Columns to select (forwarded).

None
with_total_count bool

Request total count from the server (forwarded).

False

Returns:

Type Description
dict[str, Any] | None

The search response dict (typically data / meta), or

dict[str, Any] | None

None if this instance has no execution id yet.