ddp_utils.browser.results¶
import ddp_utils.browser.results
Structured success, action, and capability results.
- class ddp_utils.browser.results.CapabilityResult(supported: bool, capability: str, backend: str, value: T | None = None, reason: str | None = None, details: dict[str, ~typing.Any]=<factory>)¶
Bases:
Generic[T]Represent a supported value or a precise unsupported capability.
Parameters
Name
Type
Description
supported
bool
Whether the capability is available.
capability
str
Stable capability identifier.
backend
str
Concrete backend identifier.
value
T | None
Capability value when supported.
reason
str | None
Explanation when unsupported.
details
dict[str, Any]
Additional structured diagnostics.
Examples
Return a soft negative CDP result for native process mode:
result = CapabilityResult.unsupported( "cdp", backend="native", reason="Attach through an automation technology first.", )
- classmethod available(capability: str, *, backend: str, value: T, details: dict[str, Any] | None = None) CapabilityResult[T]¶
Create a successful capability result.
Parameters
Name
Type
Description
capability
str
Stable capability identifier.
backend
str
Concrete backend identifier.
value
T
Available capability value.
details
dict[str, Any] | None
Optional structured diagnostics.
Returns
Type
Description
Supported capability result containing
value.Examples
Publish an active CDP facade:
result = CapabilityResult.available( "cdp", backend="playwright-chromium", value=cdp )
- classmethod unsupported(capability: str, *, backend: str, reason: str, details: dict[str, Any] | None = None) CapabilityResult[T]¶
Create a structured unsupported-capability result.
Parameters
Name
Type
Description
capability
str
Stable capability identifier.
backend
str
Concrete backend identifier.
reason
str
Human-readable explanation.
details
dict[str, Any] | None
Optional structured diagnostics.
Returns
Type
Description
Unsupported capability result with no value.
Examples
Explain why a native session has no DOM access:
result = CapabilityResult.unsupported( "dom", backend="native", reason="Native process mode is not attached.", )
- require() T¶
Return the value or raise the corresponding typed capability error.
Returns
Type
Description
T
The supported capability value.
Raises
Exception
Description
The capability is unsupported.
Examples
Require a network facade only where it is available:
network = browser.capabilities.get("network").require()
- class ddp_utils.browser.results.ActionResult(success: bool, value: T | None = None, changed: bool = False, verified: bool = False, error: BrowserError | None = None, details: dict[str, ~typing.Any]=<factory>)¶
Bases:
Generic[T]Represent an action and its verified postcondition.
Parameters
Name
Type
Description
success
bool
Whether the documented action completed successfully.
value
T | None
Optional action result value.
changed
bool
Whether the operation changed observable state.
verified
bool
Whether the postcondition was verified.
error
BrowserError | None
Typed failure captured for non-required operation mode.
details
dict[str, Any]
Structured evidence and backend diagnostics.
Examples
Report a verified element visibility change:
result = ActionResult( success=True, value=element, changed=True, verified=True, )
- require() T | None¶
Return the action value or raise its captured failure.
Returns
Type
Description
T | None
The optional successful action value.
Raises
Exception
Description
The action failed. The captured typed error is re-raised when present; otherwise a generic browser error is created.
Examples
Convert a soft action result into required behavior:
element = browser.human.click(button).require()
- class ddp_utils.browser.results.CollectionActionResult(items: tuple[ActionResult[T], ...])¶
Bases:
Generic[T]Aggregate ordered per-element action results.
Parameters
Name
Type
Description
items
tuple[ActionResult[T], ...]
Ordered results corresponding to the source collection.
Examples
Verify that every collection element was hidden:
result = collection.hide() assert result.success
- property success: bool¶
Return whether every collection action succeeded.
Returns
Truewhen every item succeeded, including an empty collection.Examples
Branch on the aggregate result:
if not result.success: inspect(result.failures)
- property failures: tuple[ActionResult[T], ...]¶
Return only failed item results in source order.
Returns
Tuple containing every failed action result.
Examples
Log per-element failures without losing successful results:
for failure in result.failures: log(failure.error)