2.28.0
New Functionality
-
The multi-user endpoint now saves user-endpoint standard file streams (aka
stdout
andstderr
) to the UEP'sendpoint.log
. This makes it much easier to identity implementation missteps that affect the early UEP boot process, before the UEP's logging is bootstrapped. -
The SDK
Client
andWebClient
now support using aGlobusApp
for authentication. For standard interactive login flows, users can leave theapp
argument blank when initializing theClient
, or pass in a customUserApp
. For client authentication, users can leave theapp
argument blank and set theGLOBUS_COMPUTE_CLIENT_ID
andGLOBUS_COMPUTE_CLIENT_SECRET
environment variables, or pass in a customClientApp
.For more information on how to use a
GlobusApp
, see the Globus SDK documentation.Users can still pass in a custom
LoginManager
to thelogin_manager
argument, but this is mutually exclusive with theapp
argument.E.g.,
from globus_compute_sdk import Client from globus_sdk.experimental.globus_app import UserApp gcc = Client() # or my_app = UserApp("my-app", client_id="...") gcc = Client(app=my_app)
-
Added a new data serialization strategy,
JSONData
, which serializes/deserializes function args and kwargs via JSON. Usage example:from globus_compute_sdk import Client, Executor from globus_compute_sdk.serialize import JSONData gcc = Client( data_serialization_strategy=JSONData() ) with Executor(<your endpoint UUID>, client=gcc) as gcx: # do something with gcx
Bug Fixes
- We no longer raise an exception if a user defines the
GLOBUS_COMPUTE_CLIENT_ID
environment variable without definingGLOBUS_COMPUTE_SECRET_KEY
. The reverse, however, will still raise an exception.
Removed
- Removed
http_timeout
,funcx_home
, andtask_group_id
arguments toClient
, that were previously deprecated in v2.3.0. (Aug 2023)
Deprecated
- The
WebClient.user_app_name
attribute has been marked for deprecation and will be removed in a future release. Please directly useWebClient.app_name
instead.
Changed
- Bumped
parsl
dependency version to 2024.9.9.