v3.20.0
-
Implemented
FlowsClient.get_run(...)
(#721) -
Implemented
FlowsClient.get_run_logs(...)
(#722) -
Implemented
SpecificFlowClient.resume_run(...)
(#723) -
Behavior has changed slightly specifically for
TimerAPIError
. When parsing fails, thecode
will beError
and themessages
will be empty. Thedetail
field will be treated as theerrors
array for these errors when it is present and contains an array of objects. -
ConsentRequiredInfo
now acceptsrequired_scope
(singular) containing a single string as an alternative torequired_scopes
. However, it will parse both formats into arequired_scopes
list. (#726) -
FlowsClient.list_flows
now supports passing a non-string iterable of
strings toorderby
in order to indicate multiple orderings (#730) -
Support
pathlib.Path
objects as filenames for the JSON and sqlite token storage adapters. (#734) -
Several
TransferClient
methods,TransferData
, andDeleteData
now support thelocal_user
,source_local_user
, anddestination_local_user
parameters (#736) -
The TransferRequestsTransport will no longer automatically retry errors with a code of EndpointError
-
Fix pagination on iterable gcs client routes (#738, #739)
-
GCSClient.get_storage_gateway_list
-
GCSClient.get_role_list
-
GCSClient.get_collection_list
-
GCSClient.get_user_credential_list
-
-
Error parsing in the SDK has been enhanced to better support JSON:API and related error formats with multiple sub-errors. Several attributes are added or changed. For most SDK users, the changes will be completely transparent or a minor improvement. (#725)
-
Error parsing now attempts to detect the format of the error data and will parse JSON:API data differently from non-JSON:API data. Furthermore, parsing is stricter about the expectations about fields and their types. JSON:API parsing now has its own distinct parsing path, followed only when the JSON:API mimetype is present.
-
A new attribute is added to API error objects,
errors
. This is a list of subdocuments parsed from the error data, especially relevant for JSON:API errors and similar formats. See the ErrorSubdocument documentation for details. -
A new attribute is now present on API error objects,
messages
. This is a list of messages parsed from the error data, for errors with multiple messages. When there is only one message,messages
will only contain one item. -
The
message
field is now an alias for a joined string ofmessages
. Assigning a string tomessage
is supported for error subclasses, but is deprecated. -
message
will now beNone
when no messages can be parsed from the error data. Previously, the default formessage
would be an alias fortext
. -
All error types now support
request_id
as an attribute, but it will default toNone
for errors which do not include arequest_id
. -
An additional field is checked by default for error message data,
title
. This is useful when errors containtitle
but nodetail
field. The extraction of messages from errors has been made stricter, especially in the JSON:API case. -
The
code
field of errors will no longer attempt to parse only the firstcode
from multiple sub-errors. Instead,code
will first parse a top-levelcode
field, and then fallback to checking if all sub-errors have the samecode
value. The result is that certain errors which would populate a non-defaultcode
value no longer will, but thecode
will also no longer be misleading when multiple errors with different codes are present in an error object. -
The
code
field of an error may now beNone
. This is specifically possible when the error format is detected to be known as JSON:API and there is nocode
present in any responses.
-