benchling_sdk.errors module

Specialized Exception classes.

exception AppSessionClosedError

Bases: benchling_sdk.errors.ExtendedBenchlingErrorBase

An error indicating a Benchling App session was already closed when attempting an API update.

classmethod error_matcher() ResponseErrorMatcher[AppSessionClosedError]

Create an instance of ResponseErrorMatcher matching AppSessionClosedError.

exception BenchlingError

Bases: Exception

An error resulting from communicating with the Benchling API.

This could be an error returned from the API intentionally (e.g., 400 Bad Request) or an unexpected transport error (e.g., 502 Bad Gateway)

The json attribute is present if the API response provided a deserializable JSON body as part of the error description. It will be None if the response could not be parsed as JSON.

The content attribute is any unparsed content returned as part of the response body.

Instead of extending this class directly, prefer extending ExtendedBenchlingErrorBase.

__init__(status_code: int, headers: MutableMapping[str, str], json: Optional[Dict[str, str]], content: Optional[bytes], parsed: Union[None, ForbiddenError, NotFoundError, BadRequestError, BadRequestErrorBulk, ConflictError]) None
content: Optional[bytes]
classmethod from_response(response: benchling_api_client.v2.types.Response) BenchlingError

Create a BenchlingError from a generated Response.

headers: MutableMapping[str, str]
json: Optional[Dict[str, str]]
parsed: Union[None, ForbiddenError, NotFoundError, BadRequestError, BadRequestErrorBulk, ConflictError]
status_code: int
exception DataFrameInProgressError

Bases: Exception

An error for Benchling data frames for unavailable data operations on a DataFrame in progress.

__init__(message: str) None
message: str
exception ExtendedBenchlingErrorBase

Bases: abc.ABC, benchling_sdk.errors.BenchlingError

Extended Benchling Error.

Prefer using this class instead of extending BenchlingError directly.

Forces subclasses to implement useful helpers.

content: Optional[bytes]
abstract classmethod error_matcher() ResponseErrorMatcher[benchling_sdk.errors.ExtendedError]

Create an instance of ResponseErrorMatcher matching an exception extending BenchlingError.

headers: MutableMapping[str, str]
json: Optional[Dict[str, str]]
parsed: Union[None, ForbiddenError, NotFoundError, BadRequestError, BadRequestErrorBulk, ConflictError]
status_code: int
exception InvalidDataFrameError

Bases: Exception

A general error related to Benchling DataFrames.

__init__(message: str) None
message: str
exception RegistrationError

Bases: Exception

An error relating to Benchling registration.

__init__(message: Optional[str] = None, errors: Optional[Dict[Any, Any]] = None, task_status: Optional[AsyncTaskStatus] = None) None
errors: Optional[Dict[Any, Any]] = None
classmethod from_task(task: AsyncTask) RegistrationError

Create a RegistrationError from a failed AsyncTask.

message: Optional[str] = None
task_status: Optional[AsyncTaskStatus] = None
class ResponseErrorMatcher

Bases: Generic[benchling_sdk.errors.E]

Response Error Matcher.

Raise a more specific Benchling Error if the HTTP response matches specific conditions.

__init__(error_type: Type[benchling_sdk.errors.E], matcher: ResponseMatcher)

Init Response Error Matcher.

raise_on_match(response: benchling_api_client.v2.types.Response) None

Raise error_type if the response matches some defined condition.

class ResponseMatcher

Bases: Protocol

Callable for checking if a Response matches specified conditions.

__init__(*args, **kwargs)
exception WaitForTaskExpiredError

Bases: Exception

An error indicating an AsyncTask did not complete in the time allotted for polling.

__init__(message: str, task: AsyncTask) None
message: str
task: AsyncTask
raise_for_status(response: benchling_api_client.v2.types.Response, error_matchers: Optional[Iterable[ResponseErrorMatcher[benchling_sdk.errors.E]]] = None) None

Evaluate a Response for a successful HTTP status code or raise a BenchlingError.

Custom error_matchers may be passed to raise more specific types of BenchlingError in a few specialized cases.

If multiple matchers are specified, it’s recommended that the caller provide an ordered Iterable such as List, with the more specific matchers first in the collection. Specifying a broader exception earlier in the collection, with a more narrow exception later, may cause the broader exception to be returned first.