docs: def expand_variables(self, variables):
          """Expand variables in policy data.
  
          Updates the policy data in-place.
          """
          # format string values returns a copy
          updated = utils.format_string_values(self.data, **variables)
  
          # Several keys should only be expanded at runtime, perserve them.
          if 'member-role' in updated.get('mode', {}):
              updated['mode']['member-role'] = self.data['mode']['member-role']
  
          # Update ourselves in place
          self.data = updated
          # Reload filters/actions using updated data, we keep a reference
          # for some compatiblity preservation work.
          m = self.resource_manager
          self.resource_manager = self.load_resource_manager()
  
          # XXX: Compatiblity hack
          # Preserve notify action subject lines which support
          # embedded jinja2 as a passthrough to the mailer.
          for old_a, new_a in zip(m.actions, self.resource_manager.actions):
              if old_a.type == 'notify' and 'subject' in old_a.data:
                  new_a.data['subject'] = old_a.data['subject']