code: def partition_read(
          self,
          session,
          table,
          key_set,
          transaction=None,
          index=None,
          columns=None,
          partition_options=None,
          retry=google.api_core.gapic_v1.method.DEFAULT,
          timeout=google.api_core.gapic_v1.method.DEFAULT,
          metadata=None,
      ):
          if "partition_read" not in self._inner_api_calls:
              self._inner_api_calls[
                  "partition_read"
              ] = google.api_core.gapic_v1.method.wrap_method(
                  self.transport.partition_read,
                  default_retry=self._method_configs["PartitionRead"].retry,
                  default_timeout=self._method_configs["PartitionRead"].timeout,
                  client_info=self._client_info,
              )
          request = spanner_pb2.PartitionReadRequest(
              session=session,
              table=table,
              key_set=key_set,
              transaction=transaction,
              index=index,
              columns=columns,
              partition_options=partition_options,
          )
          if metadata is None:
              metadata = []
          metadata = list(metadata)
          try:
              routing_header = [("session", session)]
          except AttributeError:
              pass
          else:
              routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata(
                  routing_header
              )
              metadata.append(routing_metadata)
          return self._inner_api_calls["partition_read"](
              request, retry=retry, timeout=timeout, metadata=metadata
          )