docs: def idatdecomp(self, lenient=False, max_length=0):
          """Iterator that yields decompressed ``IDAT`` strings."""
          # Currently, with no max_length paramter to decompress, this
          # routine will do one yield per IDAT chunk.  So not very
          # incremental.
          d = zlib.decompressobj()
          # Each IDAT chunk is passed to the decompressor, then any
          # remaining state is decompressed out.
          for data in self.idat(lenient):
              # :todo: add a max_length argument here to limit output
              # size.
              yield bytearray(d.decompress(data))
          yield bytearray(d.flush())