code: def get_data(self, datatype, mode, disp):
          
  
          # Imports
          import os
          from ..const import EnumDispDirection as _E_DD
          from ..const import EnumAnharmRepoData
          from ..error import RepoError as RErr
  
          # Must be valid mode
          if not (mode >=0 and isinstance(mode, int)):
              raise ValueError("Mode must be a non-negative integer")
          ## end if
  
          # Must be a valid disp direction
          if not disp in _E_DD:
              raise ValueError("'{0}' is not a valid " +
                      "displacement enum value".format(disp))
          ## end if
  
          # Must be a valid data type
          if not datatype in EnumAnharmRepoData:
              raise ValueError("'{0}' is not a valid " +
                      "repository data type enum value".format(datatype))
          ## end if
  
          # Get the appropriate geom group name
          if disp == _E_DD.NO_DISP:
              grpname = self.G_geom_ref
          else:
              grpname = self.F_mode_fmt % \
                                      (mode, self.dircode[disp])
          ## end if
  
          # Get the group, complaining if repo not bound
          try:
              grp = self._repo.get(grpname)
          except AttributeError:
              raise RErr(RErr.STATUS,
                          "Cannot load; no repository open", "")
          ## end try
  
          # If succeeded, check if group not found
          if grp is None:
              raise RErr(RErr.GROUP,
                      "Group '" + grpname + "' not found",
                      self.fname)
          ## end if
  
          # Group found, try loading the data object; complain if not found
          try:
              out_data = grp.get(datatype).value
          except AttributeError:
              raise RErr(RErr.DATA,
                      "Dataset '" + datatype + "' not found",
                      self.fname)
          ## end try
  
          # Return as-is (h5py creates NumPy arrays of appropriate dimensions)
          return out_data
docs: .. todo:: docstring for get_data