class_docstr: Surface image, usually containing meshes & data for both hemispheres.
code: def __post_init__(self) -> None:
      _check_data_consistent_shape(self.data)
      _check_data_and_mesh_compat(self.mesh, self.data)
      total_n_vertices = sum(
          mesh_part.n_vertices for mesh_part in self.mesh.values()
      )
      first_data_shape = list(self.data.values())[0].shape
      self.shape = (*first_data_shape[:-1], total_n_vertices)
  
imports: from __future__ import annotations
  import abc
  import dataclasses
  import pathlib
  from typing import Dict
  import numpy
  from nilearn.experimental.surface import _io
label_desc: Use image node_id 1 for calling the SurfaceImage obj's underlying member method code with example usage: obj.__post_init__() without return types