code: def bus_remove_match_action(self, rule, func, user_data, error = None) :
          "removes a message filter previously installed with bus_add_match_action."
          rulekey = format_rule(rule)
          rule = unformat_rule(rule)
          self._match_actions[rulekey].actions.remove(_MatchActionEntry._Action(func, user_data))
          if len(self._match_actions[rulekey].actions) == 0 :
              self.bus_remove_match(rulekey, error) # shouldn’t fail!
              del self._match_actions[rulekey]
              if len(self._match_actions) == 0 :
                  self.remove_filter(self._rule_action_match, Nonef bus_remove_match_action(self, rule, func, user_data, error = None) :
          "removes a message filter previously installed with bus_add_match_action."
          rulekey = format_rule(rule)
          rule = unformat_rule(rule)
          self._match_actions[rulekey].actions.remove(_MatchActionEntry._Action(func, user_data))
          if len(self._match_actions[rulekey].actions) == 0 :
              self.bus_remove_match(rulekey, error) # shouldn’t fail!
              del self._match_actions[rulekey]
              if len(self._match_actions) == 0 :
                  self.remove_filter(self._rule_action_match, None)
docs: removes a message filter previously installed with bus_add_match_action.