ddp_utils.browser.backends.base¶
import ddp_utils.browser.backends.base
Abstract contracts implemented by every browser backend.
- class ddp_utils.browser.backends.base.BackendSession(*args, **kwargs)¶
Bases:
ProtocolMinimum lifecycle exposed by a concrete backend session.
Examples
Close a backend session without knowing its technology:
if not session.closed: session.close()
- property descriptor: BackendDescriptor¶
Return the immutable descriptor for this backend session.
Returns
Backend identity and capability descriptor.
Examples
Inspect the concrete provider selected by configuration:
print(session.descriptor.provider)
- property native: Any¶
Return the explicit backend-native escape-hatch object.
Returns
Native driver, page, process handle, or backend session object.
Examples
Use a backend-specific operation intentionally:
native = session.native
- property closed: bool¶
Return whether this backend session is closed.
Returns
Trueafter owned resources have been released.Examples
Avoid scheduling work on a closed session:
if session.closed: return
- close() None¶
Release every resource owned by this backend session exactly once.
Examples
Close explicitly when a context manager is not used:
session.close()
- class ddp_utils.browser.backends.base.BrowserBackend¶
Bases:
ABCTechnology adapter that creates backend sessions for validated config.
Examples
Backend selection remains outside business logic:
backend = registry.resolve(config) session = backend.start(config)
- abstract property descriptor: BackendDescriptor¶
Return static backend identity and potential capabilities.
Returns
Descriptor for this backend implementation.
Examples
Display the selected concrete provider:
print(backend.descriptor.provider)
- capability(capability: BrowserCapability | str) CapabilityResult[BrowserCapability]¶
Return a structured capability result for this backend.
Parameters
Name
Type
Description
capability
BrowserCapability | str
Capability enum or normalized name.
Returns
Type
Description
Supported result containing the normalized capability, or an unsupported result with remediation context.
Raises
Exception
Description
The capability name is unknown.
Examples
Check CDP support without raising:
result = backend.capability("cdp") if not result.supported: print(result.reason)
- abstractmethod start(config: BrowserConfig) BackendSession¶
Create or attach a concrete backend session.
Parameters
Name
Type
Description
config
Validated neutral browser configuration.
Returns
Type
Description
Started backend session owning its lifecycle resources.
Raises
Exception
Description
The config does not target this backend.
Startup or attachment fails.
Examples
Start a selected backend with validated project configuration:
session = backend.start(config)