Releases: globus/globus-sdk-python
v3.13.0
-
Add
connect_params
toSQLiteAdapter
, enabling customization of the sqlite connection (#613) -
Add
FlowsClient.create_flow(...)
(#614) -
Add
globus_sdk.SpecificFlowClient
to manage interactions performed against a specific flow (#616) -
Fix rst formatting for a few nested bullet points in existing changelog (#619)
-
Add support to
FlowsClient.list_flows
for pagination and theorderby
parameter (#621, #622)
v3.12.0
-
Add Mapped Collection policy helper types for constructing
policies
data. (#607)
The following new types are introduced:CollectionPolicies
(the base class for these types)POSIXCollectionPolicies
POSIXStagingCollectionPolicies
GoogleCloudStorageCollectionPolicies
-
Fix bug where
UserCredential
policies were being converted to a string (#608) -
Corrected the Flows service
resource_server
string toflows.globus.org
(#612)
v3.11.0
- Adjust behaviors of
TransferData
andTimerJob
to makeTimerJob.from_transfer_data
work and to defer requesting thesubmission_id
until the task submission call (#602)TransferData
avoids passingnull
for several values when they are omitted, ranging from optional parameters toadd_item
toskip_activation_check
TransferData
andDeleteData
now support usage in which thetransfer_client
parameters isNone
. In these cases, ifsubmission_id
is omitted, it will be omitted from the document, allowing the creation of a partial task submsision document with nosubmission_id
TimerJob.from_transfer_data
will now raise aValueError
if the input document containssubmission_id
orskip_activation_check
TransferClient.submit_transfer
andTransferClient.submit_delete
now check to see if the data being sent contains asubmission_id
. If it does not,get_submission_id
is called automatically and set as thesubmission_id
on the payload. The newsubmission_id
is set on the object passed to these methods, meaning that these methods are now side-effecting.
The newly recommended usage for TransferData
and DeleteData
is to pass the endpoints as named parameters:
# -- for TransferData --
# old usage
transfer_client = TransferClient()
transfer_data = TransferData(transfer_client, ep1, ep2)
# new (recommended) usage
transfer_data = TransferData(source_endpoint=ep1, destination_endpoint=ep2)
# -- for DeleteData --
# old usage
transfer_client = TransferClient()
delete_data = TransferData(transfer_client, ep)
# new (recommended) usage
delete_data = DeleteData(endpoint=ep)
-
Implement
__dir__
for the lazy importer inglobus_sdk
. This enables tab completion in the interpreter and other features with rely upondir(globus_sdk)
(#603) -
Add an initial Globus Flows client class,
globus_sdk.FlowsClient
(#604)globus_sdk.FlowsAPIError
is the error class for this clientFlowsClient.list_flows
is implemented as a method for listing deployed flows, with some of the filtering parameters of this API supported as keyword arguments- The scopes for the Globus Flows API can be accessed via
globus_sdk.scopes.FlowsScopes
orglobus_sdk.FlowsClient.scopes
v3.10.1
v3.10.0
-
Add User Credential methods to
GCSClient
(#582)get_user_credential_list
get_user_credential
create_user_credential
update_user_credential
delete_user_credential
-
Add
connector_id_to_name
helper toGCSClient
to resolve GCS Connector UUIDs to human readable Connector display names (#582) -
Remove nonexistent
monitor_ongoing
scope fromTransferScopes
(#583)
v3.9.0
-
Add helper objects and methods for interacting with Globus Connect Server Storage Gateways (#554)
-
New methods on
GCSClient
:create_storage_gateway
,get_storage_gateway
,get_storage_gateway_list
,update_storage_gateway
,delete_storage_gateway
-
New helper classes for constructing storage gateway documents.
StorageGatewayDocument
is the main one, but alsoPOSIXStoragePolicies
andPOSIXStagingStoragePolicies
are added for declaring the storage gatewaypolicies
field. More policy helpers will be added in future versions.
-
-
Add support for more
StorageGatewayPolicies
documents. (#562) The following types are now available:BlackPearlStoragePolicies
BoxStoragePolicies
CephStoragePolicies
GoogleDriveStoragePolicies
GoogleCloudStoragePolicies
OneDriveStoragePolicies
AzureBlobStoragePolicies
S3StoragePolicies
ActiveScaleStoragePolicies
IrodsStoragePolicies
HPSSStoragePolicies
-
Add
https
scope toGCSCollectionScopeBuilder
(#563) -
Update the fields used to extract
AuthAPIError
messages (#566) -
ScopeBuilder
objects now implement__str__
for easy viewing.
For example,print(globus_sdk.TransferClient.scopes)
(#568) -
Imports from
globus_sdk
are now evaluated lazily via module-level__getattr__
on python 3.7+ (#571)-
This improves the performance of imports for almost all use-cases, in some cases by over 80%
-
The method
globus_sdk._force_eager_imports()
can be used to force non-lazy imports, for latency sensitive applications which wish to control when the time cost of import evaluation is paid. This method is private and is therefore is not covered under theglobus-sdk
's SemVer guarantees, but it is expected to remain stable for the foreseeable future.
-
-
Several improvements to Transfer helper objects (#573)
-
Add
TransferData.add_filter_rule
for adding filter rules (exclude rules) to transfers -
Add
skip_activation_check
as an argument toDeleteData
andTransferData
-
The
sync_level
argument toTransferData
is now annotated more accurately to reject bad strings
-
-
Improve handling of array-style API responses (#575)
-
Response objects now define
__bool__
asbool(data)
. This means thatbool(response)
could beFalse
if the data is{}
,[]
,0
, or other falsey-types. Previously,__bool__
was not defined, meaning it was alwaysTrue
-
globus_sdk.response.ArrayResponse
is a new class which describes responses which are expected to hold a top-level array. It satisfies the sequence protocol, allowing indexing with integers and slices, iteration over the array data, and length checking withlen(response)
-
globus_sdk.GroupsClient.get_my_groups
returns anArrayResponse
, meaning the response data can now be iterated and otherwise used
-
v3.8.0
-
Several changes expose more details of HTTP requests (#551)
GlobusAPIError
has a new propertyheaders
which provides the case-insensitive mapping of header values from the responseGlobusAPIError
andGlobusHTTPResponse
now includehttp_reason
, a string property containing the "reason" from the responseBaseClient.request
andRequestsTransport.request
now have options for setting boolean optionsallow_redirects
andstream
, controlling how requests are processed
-
New tools for working with optional and dependent scope strings (#553)
- A new class is provided for constructing optional and dependent scope strings,
MutableScope
. Import as infrom globus_sdk.scopes import MutableScope
ScopeBuilder
objects provide a method,make_mutable
, which converts from a scope name to aMutableScope
object. See documentation on scopes for usage details
- A new class is provided for constructing optional and dependent scope strings,
v3.7.0
- Add a client for the Timer service (#548)
- Add
TimerClient
class, along withTimerJob
for constructing data to pass to the Timer service for job creation, andTimerAPIError
- Modify
globus_sdk.config
utilities to provide URLs for Actions and Timer services
- Add
- Fix annotations to allow request data to be a string. This is supported at runtime but was missing from annotations. (#549)
v3.6.0
v3.5.0
-
globus_sdk.IdentityMap
can now take a cache as an input. This allows multipleIdentityMap
instances to share the same storage cache. Any mutable mapping type is valid, so the cache can be backed by a database or other storage (#500) -
Add
TransferRequestsTransport
class that does not retry ExternalErrors. This fixes cases in which theTransferClient
incorrectly retried requests (#522) -
Use the "reason phrase" as a failover for stringified API errors with no body (#524)
-
Add support for
include
as a parameter toGroupsClient.get_group
.include
can be a string or iterable of strings (#528) -
Enhance documentation for all of the parameters on methods of
GroupsClient
-
Add a new method to tokenstorage,
SQLiteAdapter.iter_namespaces
, which iterates over all namespaces visible in the token database (#529)