docs: def update(self):
      """
      Updates the #rules_map dictionary and #skippable_rules list based on the
      #rules list. Must be called after #rules or any of its items have been
      modified. The same rule name may appear multiple times.
  
      # Raises
      TypeError: if an item in the `rules` list is not a rule.
      """
  
      self.rules_map = {}
      self.skippable_rules = []
      for rule in self.rules:
        if not isinstance(rule, Rule):
          raise TypeError('item must be Rule instance', type(rule))
        self.rules_map.setdefault(rule.name, []).append(rule)
        if rule.skip:
          self.skippable_rules.append(rule)