Skip to content

v3.1.0

Compare
Choose a tag to compare
@stephencpope stephencpope released this 09 May 15:45
· 31 commits to master since this release

General

  • Due to declining support for Python 3.8 across the ecosystem, we have discontinued our support for Python 3.8. It is expected that the client will continue to function until Python 3.8 is End of Life (October 2024), but we can no longer test new releases against this version.

Catalog

  • The Catalog Storage Blob deletion methods have been enhanced to support waiting for completion of the operation. When a blob is deleted, it is removed immediately from the catalog and a background asynchronous task is launched to clean up the contents of the blob from the backing storage. If a blob is deleted and then a new blob with the identical id is immediately created and uploaded before this background task completes, it is possible for the background task to end up deleting the new blob contents. As of this release the Blob instance and class delete methods return a BlobDeletionTaskStatus object which provides a wait_for_completion method which can be used to wait until the background task completes and it is safe to create a new blob with the same id. For the Blob.delete_many method, the wait_for_completion=True parameter can be used to wait for all the supplied blobs to be completely deleted. Note that in the case of the Blob.delete class method, this is a very slight breaking change, as it used to return True or False, and now instead returns a BlobDeletionTaskStatus or None, which have the same truthiness and hence are very likely to behave identically in practical use.