docs: def module_add(self, ev, path=None):
          """
          Register for python module change events.  If there is a module change, the
          task will be notified with a call t.event(action).
      """
          log = self._params.get('log', self._discard)
          key = ev.get_key()
          if key is None:
              raise TaskError(name, "Attempt to register python module event with no key available")
          log.debug("Adding path %r for task %r, action %s", path, ev.get_name(), ev._handler_name)
          self._watch_modules.add(key, command_path=path)
          self._module_event_map[key] = ev