code: def options(self, group, target=None, defaults=True):
          
          if target is None:
              target = self.path
          if self.groups.get(group, None) is None:
              return None
          if self.parent is None and target and (self is not Store.options()) and defaults:
              root_name = self.__class__.__name__
              replacement = root_name + ('' if len(target) == len(root_name) else '.')
              option_key = target.replace(replacement,'')
              match = Store.options().find(option_key)
              if match is not Store.options():
                  return match.options(group)
              else:
                  return Options()
          elif self.parent is None:
              return self.groups[group]
  
          parent_opts = self.parent.options(group,target, defaults)
          return Options(**dict(parent_opts.kwargs, **self.groups[group].kwargs))
docs: Using inheritance up to the root, get the complete Options
          object for the given node and the specified group.