ansible-core 2.17.2rc2__py3-none-any.whl → 2.17.3rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ansible-core might be problematic. Click here for more details.

ansible/config/base.yml CHANGED
@@ -855,8 +855,8 @@ DEFAULT_MODULE_COMPRESSION:
855
855
  env: []
856
856
  ini:
857
857
  - {key: module_compression, section: defaults}
858
- # vars:
859
- # - name: ansible_module_compression
858
+ vars:
859
+ - name: ansible_module_compression
860
860
  DEFAULT_MODULE_NAME:
861
861
  name: Default adhoc module
862
862
  default: command
@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.17.2rc2'
20
+ __version__ = '2.17.3rc1'
21
21
  __author__ = 'Ansible, Inc.'
22
22
  __codename__ = "Gallows Pole"
@@ -173,8 +173,6 @@ def set_selection(module, pkg, question, vtype, value, unseen):
173
173
  if unseen:
174
174
  cmd.append('-u')
175
175
 
176
- if vtype == 'boolean':
177
- value = value.lower()
178
176
  data = ' '.join([pkg, question, vtype, value])
179
177
 
180
178
  return module.run_command(cmd, data=data)
@@ -209,15 +207,17 @@ def main():
209
207
  if vtype is None or value is None:
210
208
  module.fail_json(msg="when supplying a question you must supply a valid vtype and value")
211
209
 
210
+ # ensure we compare booleans supplied to the way debconf sees them (true/false strings)
211
+ if vtype == 'boolean':
212
+ value = to_text(value).lower()
213
+
212
214
  # if question doesn't exist, value cannot match
213
215
  if question not in prev:
214
216
  changed = True
215
217
  else:
216
218
  existing = prev[question]
217
219
 
218
- # ensure we compare booleans supplied to the way debconf sees them (true/false strings)
219
220
  if vtype == 'boolean':
220
- value = to_text(value).lower()
221
221
  existing = to_text(prev[question]).lower()
222
222
  elif vtype == 'password':
223
223
  existing = get_password_value(module, pkg, question, vtype)
ansible/playbook/base.py CHANGED
@@ -589,10 +589,11 @@ class FieldAttributeBase:
589
589
  _validate_variable_keys(ds)
590
590
  return combine_vars(self.vars, ds)
591
591
  elif isinstance(ds, list):
592
+ line_file = getattr(ds, 'ansible_pos', ("unknown", 0))
592
593
  display.deprecated(
593
594
  (
594
595
  'Specifying a list of dictionaries for vars is deprecated in favor of '
595
- 'specifying a dictionary.'
596
+ 'specifying a dictionary. Error occurred in the file: %s, line: %d' % (line_file[0], line_file[1])
596
597
  ),
597
598
  version='2.18'
598
599
  )
@@ -31,7 +31,6 @@ DOCUMENTATION = '''
31
31
 
32
32
  from ansible import constants as C
33
33
  from ansible.errors import AnsibleError, AnsibleAssertionError, AnsibleParserError
34
- from ansible.executor.play_iterator import IteratingStates
35
34
  from ansible.module_utils.common.text.converters import to_text
36
35
  from ansible.playbook.handler import Handler
37
36
  from ansible.playbook.included_file import IncludedFile
@@ -46,12 +45,6 @@ display = Display()
46
45
 
47
46
  class StrategyModule(StrategyBase):
48
47
 
49
- def __init__(self, *args, **kwargs):
50
- super().__init__(*args, **kwargs)
51
-
52
- # used for the lockstep to indicate to run handlers
53
- self._in_handlers = False
54
-
55
48
  def _get_next_task_lockstep(self, hosts, iterator):
56
49
  '''
57
50
  Returns a list of (host, task) tuples, where the task may
@@ -73,52 +66,35 @@ class StrategyModule(StrategyBase):
73
66
  if not state_task_per_host:
74
67
  return [(h, None) for h in hosts]
75
68
 
76
- if self._in_handlers and not any(filter(
77
- lambda rs: rs == IteratingStates.HANDLERS,
78
- (s.run_state for s, dummy in state_task_per_host.values()))
79
- ):
80
- self._in_handlers = False
81
-
82
- if self._in_handlers:
83
- lowest_cur_handler = min(
84
- s.cur_handlers_task for s, t in state_task_per_host.values()
85
- if s.run_state == IteratingStates.HANDLERS
86
- )
87
- else:
88
- task_uuids = [t._uuid for s, t in state_task_per_host.values()]
89
- _loop_cnt = 0
90
- while _loop_cnt <= 1:
91
- try:
92
- cur_task = iterator.all_tasks[iterator.cur_task]
93
- except IndexError:
94
- # pick up any tasks left after clear_host_errors
95
- iterator.cur_task = 0
96
- _loop_cnt += 1
97
- else:
98
- iterator.cur_task += 1
99
- if cur_task._uuid in task_uuids:
100
- break
69
+ task_uuids = {t._uuid for s, t in state_task_per_host.values()}
70
+ _loop_cnt = 0
71
+ while _loop_cnt <= 1:
72
+ try:
73
+ cur_task = iterator.all_tasks[iterator.cur_task]
74
+ except IndexError:
75
+ # pick up any tasks left after clear_host_errors
76
+ iterator.cur_task = 0
77
+ _loop_cnt += 1
101
78
  else:
102
- # prevent infinite loop
103
- raise AnsibleAssertionError(
104
- 'BUG: There seems to be a mismatch between tasks in PlayIterator and HostStates.'
105
- )
79
+ iterator.cur_task += 1
80
+ if cur_task._uuid in task_uuids:
81
+ break
82
+ else:
83
+ # prevent infinite loop
84
+ raise AnsibleAssertionError(
85
+ 'BUG: There seems to be a mismatch between tasks in PlayIterator and HostStates.'
86
+ )
106
87
 
107
88
  host_tasks = []
108
89
  for host, (state, task) in state_task_per_host.items():
109
- if ((self._in_handlers and lowest_cur_handler == state.cur_handlers_task) or
110
- (not self._in_handlers and cur_task._uuid == task._uuid)):
90
+ if cur_task._uuid == task._uuid:
111
91
  iterator.set_state_for_host(host.name, state)
112
92
  host_tasks.append((host, task))
113
93
  else:
114
94
  host_tasks.append((host, noop_task))
115
95
 
116
- # once hosts synchronize on 'flush_handlers' lockstep enters
117
- # '_in_handlers' phase where handlers are run instead of tasks
118
- # until at least one host is in IteratingStates.HANDLERS
119
- if (not self._in_handlers and cur_task.action in C._ACTION_META and
120
- cur_task.args.get('_raw_params') == 'flush_handlers'):
121
- self._in_handlers = True
96
+ if cur_task.action in C._ACTION_META and cur_task.args.get('_raw_params') == 'flush_handlers':
97
+ iterator.all_tasks[iterator.cur_task:iterator.cur_task] = [h for b in iterator._play.handlers for h in b.block]
122
98
 
123
99
  return host_tasks
124
100
 
@@ -310,7 +286,7 @@ class StrategyModule(StrategyBase):
310
286
  final_block = new_block.filter_tagged_tasks(task_vars)
311
287
  display.debug("done filtering new block on tags")
312
288
 
313
- included_tasks.extend(final_block.get_tasks())
289
+ included_tasks.extend(final_block.get_tasks())
314
290
 
315
291
  for host in hosts_left:
316
292
  if host in included_file._hosts:
@@ -2,7 +2,7 @@ DOCUMENTATION:
2
2
  name: any
3
3
  author: Ansible Core
4
4
  version_added: "2.4"
5
- short_description: is any conditions in a list true
5
+ short_description: is any condition in a list true
6
6
  description:
7
7
  - This test checks each condition in a list for truthiness.
8
8
  - Same as the C(any) Python function.
@@ -14,7 +14,7 @@ DOCUMENTATION:
14
14
  required: True
15
15
  EXAMPLES: |
16
16
  varexpression: "{{ 3 == 3 }}"
17
- # are all statements true?
17
+ # is any statement true?
18
18
  {{ [false, booleanvar, varexpression] is any}}
19
19
 
20
20
  RETURN:
ansible/release.py CHANGED
@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.17.2rc2'
20
+ __version__ = '2.17.3rc1'
21
21
  __author__ = 'Ansible, Inc.'
22
22
  __codename__ = "Gallows Pole"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ansible-core
3
- Version: 2.17.2rc2
3
+ Version: 2.17.3rc1
4
4
  Summary: Radically simple IT automation
5
5
  Home-page: https://ansible.com/
6
6
  Author: Ansible, Inc.
@@ -3,7 +3,7 @@ ansible/__main__.py,sha256=EnLcULXNtSXkuJ8igEHPPLBTZKAwqXv4PvMEhvzp2Oo,1430
3
3
  ansible/constants.py,sha256=vRwEcoynqtuKDPKsxKUY94XzrTSV3J0y1slb907DioU,9140
4
4
  ansible/context.py,sha256=oKYyfjfWpy8vDeProtqfnqSmuij_t75_5e5t0U_hQ1g,1933
5
5
  ansible/keyword_desc.yml,sha256=vE9joFgSeHR4Djl7Bd-HHVCrGByRCrTUmWYZ8LKPZKk,7412
6
- ansible/release.py,sha256=gp17b_vVYYHSKDw7ayGuDeJRyZo6bGCRH-pO8Rnz5Sg,835
6
+ ansible/release.py,sha256=UGVEdqMoie0PB34BB5H53SbE26uuyBjT_ssn7gIbh_A,835
7
7
  ansible/_vendor/__init__.py,sha256=2QBeBwT7uG7M3Aw-pIdCpt6XPtHMCpbEKfACYKA7xIg,2033
8
8
  ansible/cli/__init__.py,sha256=fzgR82NIGBH3GujIMehhAaP4KYszn4uztuCaFYRUpGk,28718
9
9
  ansible/cli/adhoc.py,sha256=quJ9WzRzf3dz_dtDGmahNMffqyNVy1jzQCMo21YL5Qg,8194
@@ -26,7 +26,7 @@ ansible/compat/importlib_resources.py,sha256=oCjsu8foADOkMNwRuWiRCjQxO8zEOc-Olc2
26
26
  ansible/compat/selectors.py,sha256=pbI2QH2fT2WAOtmEBbd6Cp2yXyCBbb5TLR7iitqnAkU,1002
27
27
  ansible/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  ansible/config/ansible_builtin_runtime.yml,sha256=nwL_-rqEEmpuSHxZH70pJBiEosDKOPkYIboH3_7LVEY,376076
29
- ansible/config/base.yml,sha256=0NNzzi6KIbeoB2xIjISXCwh4UJr7SbPHSbDhfpg9gdM,85728
29
+ ansible/config/base.yml,sha256=GQIA4_S8F-4xFoiXsNAaTXlvoZes-SC-z6c0rxovl9g,85728
30
30
  ansible/config/manager.py,sha256=MvNZnqHDtz9uda5_ryNvpCv2M3frAl81bvZvgS1lGko,25730
31
31
  ansible/errors/__init__.py,sha256=pJ0Cd87ET5SNut851lrHH8EAoKEal2DdUJYl8yjRd8E,14739
32
32
  ansible/errors/yaml_strings.py,sha256=fKfgD3rC017dyMackTpu-LkvbsdnsfBAKCxMH-fDtIg,3858
@@ -140,7 +140,7 @@ ansible/inventory/host.py,sha256=PDb5OTplhfpUIvdHiP2BckUOB1gUl302N-3sW0_sTyg,503
140
140
  ansible/inventory/manager.py,sha256=45mHgZTAkQ3IjAtrgsNzJXvynC-HIEor-JJE-V3xXN4,29454
141
141
  ansible/module_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
142
  ansible/module_utils/_text.py,sha256=VkWgAnSNVCbTQqZgllUObBFsH3uM4EUW5srl1UR9t1g,544
143
- ansible/module_utils/ansible_release.py,sha256=gp17b_vVYYHSKDw7ayGuDeJRyZo6bGCRH-pO8Rnz5Sg,835
143
+ ansible/module_utils/ansible_release.py,sha256=UGVEdqMoie0PB34BB5H53SbE26uuyBjT_ssn7gIbh_A,835
144
144
  ansible/module_utils/api.py,sha256=DWIuLW5gDWuyyDHLLgGnub42Qa8kagDdkf1xDeLAFl4,5784
145
145
  ansible/module_utils/basic.py,sha256=1BHf9_6SsFlfeTcYlOqOzbnITG3x8galaBcPm8ec6nE,85703
146
146
  ansible/module_utils/connection.py,sha256=q_BdUaST6E44ltHsWPOFOheXK9vKmzaJvP-eQOrOrmE,8394
@@ -287,7 +287,7 @@ ansible/modules/command.py,sha256=t0VvOXUwlgO_5Jv7A0TcrG0O-jIlkfdwEJXsc_S5q8A,13
287
287
  ansible/modules/copy.py,sha256=FE1jKP-VVBTrV_eX2td7FHNhEh-ed_KPGCyrAW1N_gA,32102
288
288
  ansible/modules/cron.py,sha256=beuuoj80saY3B7Gtj7wDYLdFuGnxc94iBczakBZhsKY,26198
289
289
  ansible/modules/deb822_repository.py,sha256=CWgVVSuq45dkHrozG2Yk229FdIdGfaFSmBFBQ3ymANs,15741
290
- ansible/modules/debconf.py,sha256=6zKDjdehURYxMe9YfUDTQn7YQlhS4bm6STGbUm1T17E,9205
290
+ ansible/modules/debconf.py,sha256=XUVgx2Bfxjkeyw15_lYzfqA2EnVOqR2d-i5mfnP7udg,9172
291
291
  ansible/modules/debug.py,sha256=jqFvwGzDkB5NlcxR8vXhHjaakv9Ib_GjGdT2GbKhMhE,2907
292
292
  ansible/modules/dnf.py,sha256=uuOAjuUen70MR2j3CwuVzy-NWJnGHoPukHyuo3Dtqvs,56095
293
293
  ansible/modules/dnf5.py,sha256=6Uc9etp1jz1Tm5dVNkJXfRHyICODi-nsc3pgp1tYCtk,26789
@@ -364,7 +364,7 @@ ansible/parsing/yaml/loader.py,sha256=S3sAX3n2e62yPf0vioedaH5Zxn0Yhypnzh2H2dowte
364
364
  ansible/parsing/yaml/objects.py,sha256=1uhWjfg4KHTYmXTl46xubGDW6yUyKsvgoelPRMFxCRw,10456
365
365
  ansible/playbook/__init__.py,sha256=Gm8oIkn9z9zSBLYXVJiPcXnfLjk1lJXuHP3vRJdQF5U,4740
366
366
  ansible/playbook/attribute.py,sha256=dMrZEhRqwZPU2TbWnEtO3_9tglbO3CEidbVjd7YgluQ,7649
367
- ansible/playbook/base.py,sha256=tqRWWL3z74IrMetrDlv6ZhSj_Er8zkl4QZtnIRbeKIo,33887
367
+ ansible/playbook/base.py,sha256=P-q_DmsFiOSvKcHg0sATFw0mXv5hzSKVIuhauCyDJNQ,34030
368
368
  ansible/playbook/block.py,sha256=ZQgbwzqh6QcxKbjQkWtVII-kSiWeAMPlIh_U75H-TD0,16515
369
369
  ansible/playbook/collectionsearch.py,sha256=tJN4E9m8dRc_6UNki21htiitiVOMj8T4GR1RCArRMqI,2601
370
370
  ansible/playbook/conditional.py,sha256=yqv1fjQEr01myNW7lejWKfCl496IEtvsIUoJ3-eU_XU,4882
@@ -580,12 +580,12 @@ ansible/plugins/strategy/__init__.py,sha256=pjT5mEI3a7N3SgIBXJcjQgpGC527rzddMuBy
580
580
  ansible/plugins/strategy/debug.py,sha256=yMmfT-lQHfR2y9bQcqrSPzqHuWZMo7V9y4ZWOXoboRE,1205
581
581
  ansible/plugins/strategy/free.py,sha256=b7ke-4s9IcHLJWmfP8gYzc_z5n2kI-v3D0YVQBtI4x8,16483
582
582
  ansible/plugins/strategy/host_pinned.py,sha256=GrDDQCtohmmJn3t9VOPb0lUZK_nUWy0s__z5Tq_rHfI,1875
583
- ansible/plugins/strategy/linear.py,sha256=MNsnA1lFOAt9ZCw8Vhvs_lyltPOhM_39DvKnKSEo-_0,19451
583
+ ansible/plugins/strategy/linear.py,sha256=no9JgVrgqoN3SphXE38y3DTK1P9FpB48Qn21ro2qFZU,18394
584
584
  ansible/plugins/terminal/__init__.py,sha256=EqeJpMokRzuUMO66yYErPSyninjqNX0_5r55CEkTc4o,4420
585
585
  ansible/plugins/test/__init__.py,sha256=m-XTUgWU-qSLJoZvHN3A85igElMjhaBJrzCTDrU7zhs,418
586
586
  ansible/plugins/test/abs.yml,sha256=lZA0XP1oBNg___Du6SqNOkDeQC9xIcZpROYV5XJG9bg,764
587
587
  ansible/plugins/test/all.yml,sha256=nEWCy7Uwbml6mAKG7_i4Gs9spU237W3yiXl-fZkHt3Q,701
588
- ansible/plugins/test/any.yml,sha256=JmRW7ytk517g5MzdXsc98wHCgamycCHqkAOH56DsdCE,698
588
+ ansible/plugins/test/any.yml,sha256=urB1M9FK_RXOeN8oJLdMfn884pnB6yv1wC1mdA84_vE,695
589
589
  ansible/plugins/test/change.yml,sha256=Kywm1gznNJRCxfHmbCEp2F5KlSMj5DGC5WKfHbr5_9E,663
590
590
  ansible/plugins/test/changed.yml,sha256=Kywm1gznNJRCxfHmbCEp2F5KlSMj5DGC5WKfHbr5_9E,663
591
591
  ansible/plugins/test/contains.yml,sha256=Tb-rCKkGUo4fSpY3lrAlyjJrzN8H0A2Uv1LN_HMPMQg,1288
@@ -678,12 +678,12 @@ ansible/vars/hostvars.py,sha256=ggUQ5luCajjX7sEvFCHpIuB_stWPRb089cZ3I1v1Vmo,5070
678
678
  ansible/vars/manager.py,sha256=ujVDQXWvy8BihIxGzBPX6fMeUl2AlclkwadKMo6VjSk,38583
679
679
  ansible/vars/plugins.py,sha256=RsRU9fiLcJwPIAyTYnmVZglsiEOMCIgQskflavE-XnE,4546
680
680
  ansible/vars/reserved.py,sha256=kZiQMPvaFin35006gLwDpX16w-9xlu6EaL4LSTKP40U,2531
681
- ansible_core-2.17.2rc2.data/scripts/ansible-test,sha256=dyY2HtRZotRQO3b89HGXY_KnJgBvgsm4eLIe4B2LUoA,1637
681
+ ansible_core-2.17.3rc1.data/scripts/ansible-test,sha256=dyY2HtRZotRQO3b89HGXY_KnJgBvgsm4eLIe4B2LUoA,1637
682
682
  ansible_test/__init__.py,sha256=20VPOj11c6Ut1Av9RaurgwJvFhMqkWG3vAvcCbecNKw,66
683
683
  ansible_test/_data/ansible.cfg,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
684
684
  ansible_test/_data/coveragerc,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
685
685
  ansible_test/_data/completion/docker.txt,sha256=ddsWorTETn1pF9n5coT-tVRC1Hizf9vp6_q0t28S3I0,642
686
- ansible_test/_data/completion/network.txt,sha256=_-mi013-JeufshKMUmykkOmZPw1cVbakIMaAuweHet8,198
686
+ ansible_test/_data/completion/network.txt,sha256=BxVN0UxlVkRUrPi9MBArQOe6nR8exaow0oCAznUdfKQ,100
687
687
  ansible_test/_data/completion/remote.txt,sha256=ICrtjuMS-yKas-5Wg3Fvvxyo1XcqdIfyvCtRgbd60AM,859
688
688
  ansible_test/_data/completion/windows.txt,sha256=LunFLE7xMeoS9TVDuE58nUBVzsz-Wh-9wfL80mGiUmo,147
689
689
  ansible_test/_data/playbooks/posix_coverage_setup.yml,sha256=PgQNVzVTsNmfnu0sT2SAYiWtkMSOppfmh0oVmAsb7TQ,594
@@ -780,7 +780,7 @@ ansible_test/_internal/classification/powershell.py,sha256=i8t8LxG_-wDPpz1VlnvqA
780
780
  ansible_test/_internal/classification/python.py,sha256=pltDeMQEDbtjyG15vAizCvygU8MHrPcqWSobU6z_8YY,13532
781
781
  ansible_test/_internal/cli/__init__.py,sha256=kTB7TfN12k_VJGMXEuOSlu3huruIUTb8UIFkaFyMr_I,1427
782
782
  ansible_test/_internal/cli/actions.py,sha256=D3z2FdpJC1dpQR9Vu1662wW28_iqPpWeAC3rizzjVAA,3366
783
- ansible_test/_internal/cli/compat.py,sha256=IuzgPeiqCd-OTlIEuNiphq3M96d9KNBYWbg42akaVNY,23007
783
+ ansible_test/_internal/cli/compat.py,sha256=U0JGicJeKB7eA0RqX9P_P_P9CZ860u-1EjPtGKXCaqc,23101
784
784
  ansible_test/_internal/cli/completers.py,sha256=ud_lWP3BnwCVKdfnoWA-PozQSiUe_Afr7Z3UkddxrTU,1104
785
785
  ansible_test/_internal/cli/converters.py,sha256=BQNrH93cXDTGVR07PU_0QjYdcaDbH5_lCJE0mdwdEEM,572
786
786
  ansible_test/_internal/cli/environments.py,sha256=jF0qVZcfvW-cNtISEWmZ9Rp8RQQvhKBNR4oCkjQtecc,19956
@@ -979,9 +979,9 @@ ansible_test/config/cloud-config-vultr.ini.template,sha256=XLKHk3lg_8ReQMdWfZzhh
979
979
  ansible_test/config/config.yml,sha256=wb3knoBmZewG3GWOMnRHoVPQWW4vPixKLPMNS6vJmTc,2620
980
980
  ansible_test/config/inventory.networking.template,sha256=bFNSk8zNQOaZ_twaflrY0XZ9mLwUbRLuNT0BdIFwvn4,1335
981
981
  ansible_test/config/inventory.winrm.template,sha256=1QU8W-GFLnYEw8yY9bVIvUAVvJYPM3hyoijf6-M7T00,1098
982
- ansible_core-2.17.2rc2.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
983
- ansible_core-2.17.2rc2.dist-info/METADATA,sha256=fcEQnZdK53l7IwBQgkOphXeEWIs3IQjHcI0688-snI8,6948
984
- ansible_core-2.17.2rc2.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
985
- ansible_core-2.17.2rc2.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
986
- ansible_core-2.17.2rc2.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
987
- ansible_core-2.17.2rc2.dist-info/RECORD,,
982
+ ansible_core-2.17.3rc1.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
983
+ ansible_core-2.17.3rc1.dist-info/METADATA,sha256=r4JiqS44_wwZN5yKavnaP3x1sJ6j6g9ab9IRKX0V5Wg,6948
984
+ ansible_core-2.17.3rc1.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
985
+ ansible_core-2.17.3rc1.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
986
+ ansible_core-2.17.3rc1.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
987
+ ansible_core-2.17.3rc1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.3.0)
2
+ Generator: setuptools (72.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,2 +1 @@
1
1
  ios/csr1000v collection=cisco.ios connection=ansible.netcommon.network_cli provider=aws arch=x86_64
2
- vyos/1.1.8 collection=vyos.vyos connection=ansible.netcommon.network_cli provider=aws arch=x86_64
@@ -93,7 +93,10 @@ class PythonVersionUnspecifiedError(ApplicationError):
93
93
  """A Python version was not specified for a context which is unknown, thus the Python version is unknown."""
94
94
 
95
95
  def __init__(self, context: str) -> None:
96
- super().__init__(f'A Python version was not specified for environment `{context}`. Use the `--python` option to specify a Python version.')
96
+ super().__init__(
97
+ f'Environment `{context}` is unknown. Use a predefined environment instead. '
98
+ f'Alternatively, to use an unknown environment, use the `--python` option to specify a Python version.'
99
+ )
97
100
 
98
101
 
99
102
  class ControllerNotSupportedError(ApplicationError):