asdf-format/asdf

There is no API for providing `**kwargs` to `Compressor.decompress`

Opened this issue · 0 comments

As discussed here:
braingram/asdf-compression#1 (comment)

Compressor.decompress accept **kwargs:

def decompress(self, data, out, **kwargs):

These are provided during compression.decompress (passed in from the config argument):

len_decoded = decoder.decompress(blocks, out=buffer.data, **config)

However config is not defined during block decompression:

data = mcompression.decompress(fd, used_size, header["data_size"], compression)

To propose a possible solution (to start the conversation) it might be possible to specify decompression_kwargs either per-block or per-codec/label. Something like the following:

asdf.open('test.asdf', decompression_kwargs={0: {...}, 'lz4': {...}, ...})