docs: def not_unless(*desired_flags):
      """
      Assert that the decorated function can only be called if the desired_flags
      are active.
  
      Note that, unlike :func:`when`, this does **not** trigger the decorated
      function if the flags match.  It **only** raises an exception if the
      function is called when the flags do not match.
  
      This is primarily for informational purposes and as a guard clause.
      """
      def _decorator(func):
          action_id = _action_id(func)
          short_action_id = _short_action_id(func)
  
          @wraps(func)
          def _wrapped(*args, **kwargs):
              active_flags = get_flags()
              missing_flags = [flag for flag in desired_flags if flag not in active_flags]
              if missing_flags:
                  hookenv.log('%s called before flag%s: %s' % (
                      short_action_id,
                      's' if len(missing_flags) > 1 else '',
                      ', '.join(missing_flags)), hookenv.WARNING)
              return func(*args, **kwargs)
          _wrapped._action_id = action_id
          _wrapped._short_action_id = short_action_id
          return _wrapped
      return _decorator