benchling_sdk.helpers.transaction_manager module¶

class AbortTransactionCall¶

Bases: typing_extensions.Protocol

Provide an interface for aborting an uncommitted transaction.

__init__(*args, **kwargs)¶
class AppendRowsCall¶

Bases: typing_extensions.Protocol

Provide an interface for appending rows to an existing transaction.

__init__(*args, **kwargs)¶
class CommitTransactionCall¶

Bases: typing_extensions.Protocol

Provide an interface for committing a transaction.

__init__(*args, **kwargs)¶
class CreateTransactionCall¶

Bases: typing_extensions.Protocol

Provide an interface for creating a new transaction.

__init__(*args, **kwargs)¶
class TransactionManager¶

Bases: contextlib.AbstractContextManager

Manage transactions in Benchling in a generic way across various implementations.

Implements a Python context manager, managing state for a Benchling transaction. Upon exit, the transaction manager will automatically attempt to commit the transaction. If an error is encountered, it will instead abort the transaction and re-raise the error.

__init__(create_transaction_call: CreateTransactionCall, commit_transaction_call: CommitTransactionCall, abort_transaction_call: AbortTransactionCall, append_row_call: AppendRowsCall)¶

Initialize TransactionManager.

Parameters
  • create_transaction_call – A function for creating a transaction

  • commit_transaction_call – A function for committing a transaction

  • abort_transaction_call – A function for aborting a transaction

  • append_row_call – A function for appending a row to an existing transaction

abort() → str¶

Abort the transaction in progress.

append(row: Any) → List[str]¶

Append a single row to an existing transaction and return the full list of pending rows.

commit() → str¶

Commit the transaction in progress.

extend(rows: Iterable[Any]) → List[str]¶

Append multiple rows to an existing transaction and return the full list of pending rows.