a )gI @s\ddlmZmZmZeZddlmZddlm Z ddl m Z ddl m Z Gddde ZdS) )absolute_importdivisionprint_function) string_types)boolean) ActionBase) isidentifiercs*eZdZdZedZdfdd ZZS) ActionModuleF) aggregatedataper_hostNc s<|durt}tt|||}~iddd}|jjr(|jjdi}t|tsd|jj |ddd}t|tsd|d<d|d<|Sd D]H}|jj|d}|durt|t st |j |dd ||<q|||<q| D]N\}} |j |}t |sd|d<d ||d<|S|j | |d|<qd|d <||d <|S)NFT)r r r r )Z convert_bareZfail_on_undefinedZfailedz/The 'data' option needs to be a dictionary/hashmsg)r r )strictzThe variable name '%s' is not valid. Variables must start with a letter or underscore character, and contain only letters, numbers and underscores.ZchangedZ ansible_stats)dictsuperr runZ_taskargsget isinstanceZ_templartemplateboolritemsr) selftmpZ task_varsresultZstatsr optvalkv __class__D/usr/lib/python3.9/site-packages/ansible/plugins/action/set_stats.pyr!s>        zActionModule.run)NN)__name__ __module__ __qualname__ZTRANSFERS_FILES frozensetZ _VALID_ARGSr __classcell__r!r!rr"r sr N)Z __future__rrrtypeZ __metaclass__Zansible.module_utils.sixrZ)ansible.module_utils.parsing.convert_boolrZansible.plugins.actionrZansible.utils.varsrr r!r!r!r"s