Support for buffers in load_bytes() factory #11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses Bloom load_bytes support for all objects with buffer protocol implemented.
The problem I was trying to solve was:
The
SharedMemory
instance has.buf
member, which ismemoryview
instance. Current Bloom implementation can work only withbytes
to load serialized filter object. It leads to additional memory copy (in addition to one insideload
method.After this PR Bloom filter can be constructed from any object with buffer protocol support, such as memoryview, array, bytearray, numpy array (I guess)
On a side note it bumps Python ABI compatibility requirements to 3.11. From Pyo3 documentation about PyBuffer: