code: def _compute_chunk_size(self):
          # type: (Descriptor) -> int
          
          if self._src_block_list is not None:
              blen = len(self._src_block_list)
              if blen == 0:
                  # this is a one-shot block blob
                  return self._src_ase.size
              elif blen == 1:
                  return self._src_block_list[0].size
              else:
                  return -1
          else:
              return _MAX_NONBLOCK_BLOB_CHUNKSIZE_BYTES
docs: Compute chunk size given block list
          :param Descriptor self: this
          :rtype: int
          :return: chunk size bytes