Decompress *data*, returning uncompressed bytes if possible, or b'' otherwise.
data
A bytes-like object, Zstandard data to be decompressed.
max_length
Maximum size of returned data. When it is negative, the size of
output buffer is unlimited. When it is nonnegative, returns at
most max_length bytes of decompressed data.
If *max_length* is nonnegative, returns at most *max_length* bytes
of decompressed data. If this limit is reached and further output
can be produced, *self.needs_input* will be set to ``False``. In
this case, the next call to *decompress()* may provide *data* as b''
to obtain more of the output.
If all of the input data was decompressed and returned (either
because this was less than *max_length* bytes, or because
*max_length* was negative), *self.needs_input* will be set to True.
Attempting to decompress data after the end of a frame is reached
raises an EOFError. Any data found after the end of the frame is
ignored and saved in the self.unused_data attribute.