def _Dynamic_FetchData(self, request, response, unused_request_id):

    start_index = request.start_index()
    if start_index < 0:
      raise apiproxy_errors.ApplicationError(
          blobstore_service_pb.BlobstoreServiceError.DATA_INDEX_OUT_OF_RANGE)


    end_index = request.end_index()
    if end_index < start_index:
      raise apiproxy_errors.ApplicationError(
          blobstore_service_pb.BlobstoreServiceError.DATA_INDEX_OUT_OF_RANGE)


    fetch_size = end_index - start_index + 1
    if fetch_size > blobstore.MAX_BLOB_FETCH_SIZE:
      raise apiproxy_errors.ApplicationError(
          blobstore_service_pb.BlobstoreServiceError.BLOB_FETCH_SIZE_TOO_LARGE)


    blobkey = request.blob_key()
    info_key = self.ToDatastoreBlobKey(blobkey)
    try:
      datastore.Get(info_key)
    except datastore_errors.EntityNotFoundError:
      raise apiproxy_errors.ApplicationError(
          blobstore_service_pb.BlobstoreServiceError.BLOB_NOT_FOUND)


    blob_file = self.__storage.OpenBlob(blobkey)
    blob_file.seek(start_index)
    response.set_data(blob_file.read(fetch_size))
Create a service/hook
dataset/ETHPy150Open GoogleCloudPlatform/python-compat-runtime/appengine-compat/exported_appengine_sdk/google/appengine/api/blobstore/blobstore_stub.py/BlobstoreServiceStub._Dynamic_FetchData--crossover with--dataset/ETHPy150Open StackStorm/st2contrib/packs/bitbucket/actions/create_service.py/CreateServiceAction.run