Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to blosc2; add Python 3.12 support #719

Merged
merged 3 commits into from
Apr 22, 2024

Conversation

danielballan
Copy link
Member

@danielballan danielballan commented Apr 17, 2024

The library blosc2 is evidently superseding blosc, which has not published a release since 2022 and has yet to publish Python 3.12-compatible wheels. This is blocking Tiled support for Python 3.12.

Blosc2 claims to be fully backward-compatible with Blosc1-serialized bytes. I'd like to verify that old tiled clients can talk to new tiled servers before we merge.

As an aside, while looking into this I noticed that distributed dropped support for blosc. Someday it would be good to evaluate how much value we are deriving from this dependency, but I'm inclined to keep it for now.

@danielballan danielballan marked this pull request as ready for review April 19, 2024 16:13
@danielballan
Copy link
Member Author

I'd like to verify that old tiled servers can talk to new tiled clients before we merge.

Looks good, as advertised 👍

if modules_available("blosc"):
import blosc

# The choice of settings here is cribbed from distributed.protocol.compression.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cargo-culted these settings from dask.distributed in the first place without any benchmarking. They aren't directly transferrable to blsoc2, so I have reverted to just going with the defaults for now until we have time to benchmark.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to retain this TODO as a comment or as a low-priority github issue?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. Done #724

if modules_available("blosc"):
import blosc

# The choice of settings here is cribbed from distributed.protocol.compression.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to retain this TODO as a comment or as a low-priority github issue?

@danielballan danielballan merged commit da26a26 into bluesky:main Apr 22, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants