code questions

This is used a lot:

        if host_list is None:
            host_list = self.host_list

curious - do you mean 'if nothing has been specified' or if the object
is actually None?

Just trying to distinguish between an empty list or an empty string.

since:

foo =
foo is None

False

foo = ''
foo is None

False

If you're checking for specifically None there, then that's fine -
otherwise we can just do: if not host_list:

I couldn't tell from the context which was desired.

thanks

-sv

It is intended to detects if no argument is passed in to the key value argument and then resets the value to the class default. This is because in a method you can’t default a key value argument to an attribute of the class, as it’s illegal to dereference self there.

–Michael