code: def find_flag_groups(h5group, strict=True):
      
      names = []
      for group in h5group:
          try:
              names.append(h5group[group].attrs['name'])
          except KeyError:
              if strict:
                  raise
              continue
      return names
docs: Returns all HDF5 Groups under the given group that contain a flag
  
      The check is just that the sub-group has a ``'name'`` attribute, so its
      not fool-proof by any means.
  
      Parameters
      ----------
      h5group : `h5py.Group`
          the parent group in which to search
  
      strict : `bool`, optional, default: `True`
          if `True` raise an exception for any sub-group that doesn't have a
          name, otherwise just return all of those that do
  
      Raises
      ------
      KeyError
          if a sub-group doesn't have a ``'name'`` attribtue and ``strict=True``