Чтобы избежать ошибки рассола, вы должны определить функцию validate
на верхнем уровне модуля или скрипта.
Поскольку функция передается в executor.map
, она может принимать только один аргумент, поэтому пусть этот аргумент будет трехкратным, (h, pci_ids, verbose)
.
def validate(arg):
h, pci_ids, verbose = arg
return validate_hostname(h, pci_ids, verbose)
with ThreadPoolExecutor(max_workers=MAX_THREADS) as executor:
for result in executor.map(validate, [(host, pci_ids, options.verbose)
for host in get_all_hostnames()]):