Releases: globus/globus-sdk-python
v3.21.0
v3.20.1
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.
-
v3.19.0
-
Added
FlowsClient.update_flow(...)
(#710) -
Support passing "include" as a transfer
filter_rule
method (#712) -
Documentation for client methods has been improved to more consistently format and display examples and other information (#714)
-
The return type of
AuthClient.get_identities
is now correctly annotated as an iterable type,globus_sdk.GetIdentitiesResponse
(#716) -
Make the request-like interface for response objects and errors more uniform. (#715)
-
Both
GlobusHTTPResponse
andGlobusAPIError
are updated to ensure that they have the following properties in common:http_status
,http_reason
,headers
,content_type
,text
-
GlobusAPIError.raw_text
is deprecated in favor oftext
-
GlobusHTTPResponse
andGlobusAPIError
have both gained a new property,binary_content
, which returns the unencoded response data as bytes
-
v3.18.0
-
When users input empty
requested_scopes
values, these are now rejected with a usage error instead of being translated into the default set ofrequested_scopes
-
Behaviors which will change in version 4.0.0 of the
globus-sdk
now emit deprecation warnings. -
Omitting
requested_scopes
or specifying it asNone
is now deprecated and will emit a warning. In version 4, users will always be required to specify their scopes when performing login flows. This applies to the following methods:ConfidentialAppAuthClient.oauth2_client_credentials_tokens
AuthClient.oauth2_start_flow
-
SearchClient.update_entry
andSearchClient.create_entry
are officially deprecated and will emit a warning. These APIs are aliases ofSearchClient.ingest
, but their existence has caused confusion. Users are encouraged to switch toSearchClient.ingest
instead (#695) -
TransferData.add_item
now defaults to omittingrecursive
rather than setting its value toFalse
. This change better matches new Transfer API behaviors which treat the absence of therecursive
flag as meaning autodetect, rather than the previous default ofFalse
. Setting the recursive flag can still have beneficial behaviors, but should not be necessary for many use-cases (#696) -
Fix the type annotation for
max_sleep
on client transports to allowfloat
values (#697) -
ConfidentialAppAuthClient.oauth2_get_dependent_tokens
now supports therefresh_tokens
parameter to enable requests for dependent refresh tokens (#698)
v3.17.0
-
Remove support for python3.6 (#681)
-
Fix a typo in
TransferClient.endpoint_manager_task_successful_transfers
which prevented calls from being made correctly (#683) -
Make
MutableScope.scope_string
a public instance attribute (was_scope_string
) (#687) -
MutableScope
objects can now be used in theoauth2_start_flow
andoauth2_client_credentials_tokens
methods ofAuthClient
classes as part ofrequested_scopes
(#689) -
Globus Groups methods which required enums as arguments now also accept a variety of
Literal
strings in their annotations as well. This is coupled with changes to ensure that strings and enums are always serialized correctly in these cases. (#691)
v3.16.0
-
Fix the Timer code example (#672)
-
New documentation examples for Transfer Task submission in the presence of
ConsentRequired
errors (#673) -
Improved GCS Collection datatype detection to support
collection#1.6.0
andcollection#1.7.0
documents (#675)-
guest_auth_policy_id
is now supported onMappedCollectionDcoument
-
user_message
strings over 64 characters are now supported
-
-
Allow UUID values for the
client_id
parameter toAuthClient
and its subclasses (#676) -
The
session_required_policies
attribute ofAuthorizationInfo
is now parsed as a list of strings when present, andNone
when absent. (#678) -
globus_sdk.ArrayResponse
andglobus_sdk.IterableResponse
are now available as names. Previously, these were only importable fromglobus_sdk.response
(#680) -
ArrayResponse
andIterableResponse
have better error behaviors when the API data does not match their expected types (#680)
v3.15.1
v3.15.0
-
Scope Names can be set explicitly in a
ScopeBuilder
(#641) -
Introduced
ScopeBuilder.scope_names
property (#641) -
Fixed SpecificFlowClient scope string (#641)
-
Improve the
__str__
implementation forOAuthTokenResponse
(#640) -
When
GlobusHTTPResponse
contains a list, calls toget()
will no longer fail with anAttributeError
but will return the default value (None
if unspecified) instead (#644) -
Add support for
interpret_globs
andignore_missing
toDeleteData
(#646) -
A new object,
globus_sdk.LocalGlobusConnectServer
can be used to inspect the local installation of Globus Connect Server (#647)-
The object supports properties for
endpoint_id
anddomain_name
-
This only supports Globus Connect Server version 5
-
-
The filter argument to TransferClient.operation_ls now accepts a list to pass multiple filter params (#652)
-
Fix a bug in the type annotations for transport objects which restricted the size of status code tuples set as classvars (#651)
-
Improvements to
MutableScope
objects (#654)-
MutableScope(...).serialize()
is added, andstr(MutableScope(...))
uses it -
MutableScope.add_dependency
now supportsMutableScope
objects as inputs -
The
optional
argument toadd_dependency
is deprecated.MutableScope(...).add_dependency(MutableScope("foo", optional=True))
can be used to add an optional dependency -
ScopeBuilder.make_mutable
now accepts a keyword argumentoptional
. This allows, for example,TransferScopes.make_mutable("all", optional=True)
-