v3.46.0
Python Support
- Support Python 3.13. (#1058)
Added
-
Added an initial Globus Compute client class,
globus_sdk.ComputeClient
. (#1071)-
Application errors are raised as a
globus_sdk.ComputeAPIError
. -
A single method,
ComputeClient.get_function
is included initially to get
information about a registered function. -
Compute scopes are defined at
globus_sdk.scopes.ComputeScopes
or
globus_sdk.ComputeClient.scopes
.
-
-
Added the
ComputeClient.register_function()
andComputeClient.delete_function()
methods. (#1085)ComputeClient.register_function()
introduces new data model classes:
ComputeFunctionDocument
andComputeFunctionMetadata
.
-
Added the
TransferClient.set_subscription_id()
method. (#1073) -
Added a new error type,
globus_sdk.ValidationError
, used in certain cases ofValueError
\s caused by invalid content. (#1044)
Removed
- Removed the
skip_error_handling
optional kwarg from theGlobusApp.get_authorizer(...)
method interface. (#1060)
Changed
-
All previously experimental modules have been moved into main module namespaces and are no longer experimental. Aliases will remain in the experimental namespaces with a deprecation warning until SDKv4.
-
Globus Auth Requirement Errors (GAREs) have been moved from
globus_sdk.experimental.auth_requirements_error
toglobus_sdk.gare
. (#1048)-
The primary document type has been renamed from
GlobusAuthRequirementsError
toGARE
. -
The functions provided by this interface have been renamed to use
gare
in their naming:to_gare
,is_gare
,has_gares
, andto_gares
.
-
-
GlobusApps have been moved from
globus_sdk.experimental.globus_app
toglobus_sdk
andglobus_sdk.globus_app
. (#1085) -
LoginFlowManagers have been moved from
globus_sdk.experimental.login_flow_managers
toglobus_sdk.login_flows
. (#1057) -
TokenStorages have been moved from
globus_sdk.experimental.tokenstorage
toglobus_sdk.tokenstorage
. (#1065) -
Consents have been moved from
globus_sdk.experimental.consents
toglobus_sdk.scopes.consents
. (#1047)
-
-
The response classes for OAuth2 token grants now vary by the grant type. For example, a
refresh_token
-type grant now produces aglobus_sdk.OAuthRefreshTokenResponse
. This allows code handling responses to more easily identify which grant type produced a response. (#1051)-
The following new classes have been introduced:
globus_sdk.OAuthRefreshTokenResponse
,globus_sdk.OAuthAuthorizationCodeResponse
, andglobus_sdk.OAuthClientCredentialsResponse
. -
The
RenewingAuthorizer
class is now a generic over the response type which it handles, and the subtypes of authorizers are specialized for their types of responses. e.g.,class RefreshTokenAuthorizer(RenewingAuthorizer[OAuthRefreshTokenResponse])
.
-
-
The mechanisms of token data validation inside of
GlobusApp
are now more modular and extensible. TheValidatingTokenStorage
class does not define built-in validation behaviors, but instead contains a list of validator objects, which can be extended and otherwise altered. (#1061)- These changes allow more validation criteria around token data to be handled within the
ValidatingTokenStorage
. This changes error behaviors to avoid situations in which multiple errors are raised serially by different layers of GlobusApp.
- These changes allow more validation criteria around token data to be handled within the
-
LoginFlowManager
s built withGlobusApp
now generate a more appropriate value forprefill_named_grant
, using the current hostname if possible. (#1075) -
Imports of
globus_sdk.exc
now defer importingrequests
so as to reduce import-time performance impact the library is not needed. (#1044)The following error classes are now lazily loaded even when
globus_sdk.exc
is imported:GlobusConnectionError
,GlobusConnectionTimeoutError
,GlobusTimeoutError
, andNetworkError
.
Fixed
-
Fixed the typing-time attributes of
globus_sdk
so thatmypy
and other type checkers won't erroneously suppress errors about missing attributes. (#1052) -
Fixed the handling of Dependent Token and Refresh Token responses in
TokenStorage
andValidatingTokenStorage
such thatid_token
is only parsed when appropriate. (#1055) -
Fixed a bug where upgrading from access token to refresh token mode in a
GlobusApp
could result in multiple login prompts. (#1060)