ansible-core 2.17.4rc1__py3-none-any.whl → 2.17.5rc1__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/cli/galaxy.py CHANGED
@@ -490,12 +490,31 @@ class GalaxyCLI(CLI):
490
490
  ignore_errors_help = 'Ignore errors during installation and continue with the next specified ' \
491
491
  'collection. This will not ignore dependency conflict errors.'
492
492
  else:
493
- args_kwargs['help'] = 'Role name, URL or tar file'
493
+ args_kwargs['help'] = 'Role name, URL or tar file. This is mutually exclusive with -r.'
494
494
  ignore_errors_help = 'Ignore errors and continue with the next specified role.'
495
495
 
496
+ if self._implicit_role:
497
+ # might install both roles and collections
498
+ description_text = (
499
+ 'Install roles and collections from file(s), URL(s) or Ansible '
500
+ 'Galaxy to the first entry in the config COLLECTIONS_PATH for collections '
501
+ 'and first entry in the config ROLES_PATH for roles. '
502
+ 'The first entry in the config ROLES_PATH can be overridden by --roles-path '
503
+ 'or -p, but this will result in only roles being installed.'
504
+ )
505
+ prog = 'ansible-galaxy install'
506
+ else:
507
+ prog = f"ansible-galaxy {galaxy_type} install"
508
+ description_text = (
509
+ 'Install {0}(s) from file(s), URL(s) or Ansible '
510
+ 'Galaxy to the first entry in the config {1}S_PATH '
511
+ 'unless overridden by --{0}s-path.'.format(galaxy_type, galaxy_type.upper())
512
+ )
496
513
  install_parser = parser.add_parser('install', parents=parents,
497
514
  help='Install {0}(s) from file(s), URL(s) or Ansible '
498
- 'Galaxy'.format(galaxy_type))
515
+ 'Galaxy'.format(galaxy_type),
516
+ description=description_text,
517
+ prog=prog,)
499
518
  install_parser.set_defaults(func=self.execute_install)
500
519
 
501
520
  install_parser.add_argument('args', metavar='{0}_name'.format(galaxy_type), nargs='*', **args_kwargs)
@@ -548,8 +567,12 @@ class GalaxyCLI(CLI):
548
567
  'This does not apply to collections in remote Git repositories or URLs to remote tarballs.'
549
568
  )
550
569
  else:
551
- install_parser.add_argument('-r', '--role-file', dest='requirements',
552
- help='A file containing a list of roles to be installed.')
570
+ if self._implicit_role:
571
+ install_parser.add_argument('-r', '--role-file', dest='requirements',
572
+ help='A file containing a list of collections and roles to be installed.')
573
+ else:
574
+ install_parser.add_argument('-r', '--role-file', dest='requirements',
575
+ help='A file containing a list of roles to be installed.')
553
576
 
554
577
  r_re = re.compile(r'^(?<!-)-[a-zA-Z]*r[a-zA-Z]*') # -r, -fr
555
578
  contains_r = bool([a for a in self._raw_args if r_re.match(a)])
@@ -66,14 +66,18 @@ class AnsibleError(Exception):
66
66
  from ansible.parsing.yaml.objects import AnsibleBaseYAMLObject
67
67
 
68
68
  message = [self._message]
69
+
70
+ # Add from previous exceptions
71
+ if self.orig_exc:
72
+ message.append('. %s' % to_native(self.orig_exc))
73
+
74
+ # Add from yaml to give specific file/line no
69
75
  if isinstance(self.obj, AnsibleBaseYAMLObject):
70
76
  extended_error = self._get_extended_error()
71
77
  if extended_error and not self._suppress_extended_error:
72
78
  message.append(
73
79
  '\n\n%s' % to_native(extended_error)
74
80
  )
75
- elif self.orig_exc:
76
- message.append('. %s' % to_native(self.orig_exc))
77
81
 
78
82
  return ''.join(message)
79
83
 
@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.17.4rc1'
20
+ __version__ = '2.17.5rc1'
21
21
  __author__ = 'Ansible, Inc.'
22
22
  __codename__ = "Gallows Pole"
@@ -1557,7 +1557,7 @@ class AnsibleModule(object):
1557
1557
  # Similar to shutil.copy(), but metadata is copied as well - in fact,
1558
1558
  # this is just shutil.copy() followed by copystat(). This is similar
1559
1559
  # to the Unix command cp -p.
1560
- #
1560
+
1561
1561
  # shutil.copystat(src, dst)
1562
1562
  # Copy the permission bits, last access time, last modification time,
1563
1563
  # and flags from src to dst. The file contents, owner, and group are
@@ -1598,6 +1598,7 @@ class AnsibleModule(object):
1598
1598
  dest_stat = os.stat(b_dest)
1599
1599
  os.chown(b_src, dest_stat.st_uid, dest_stat.st_gid)
1600
1600
  shutil.copystat(b_dest, b_src)
1601
+ os.utime(b_src, times=(time.time(), time.time()))
1601
1602
  except OSError as e:
1602
1603
  if e.errno != errno.EPERM:
1603
1604
  raise
@@ -1659,8 +1660,10 @@ class AnsibleModule(object):
1659
1660
  b_tmp_dest_name, context, False)
1660
1661
  try:
1661
1662
  tmp_stat = os.stat(b_tmp_dest_name)
1662
- if keep_dest_attrs and dest_stat and (tmp_stat.st_uid != dest_stat.st_uid or tmp_stat.st_gid != dest_stat.st_gid):
1663
- os.chown(b_tmp_dest_name, dest_stat.st_uid, dest_stat.st_gid)
1663
+ if keep_dest_attrs:
1664
+ if dest_stat and (tmp_stat.st_uid != dest_stat.st_uid or tmp_stat.st_gid != dest_stat.st_gid):
1665
+ os.chown(b_tmp_dest_name, dest_stat.st_uid, dest_stat.st_gid)
1666
+ os.utime(b_tmp_dest_name, times=(time.time(), time.time()))
1664
1667
  except OSError as e:
1665
1668
  if e.errno != errno.EPERM:
1666
1669
  raise
ansible/modules/dnf5.py CHANGED
@@ -638,7 +638,7 @@ class Dnf5Module(YumDnf):
638
638
  results = []
639
639
  if self.names == ["*"] and self.state == "latest":
640
640
  goal.add_rpm_upgrade(settings)
641
- elif self.state in {"install", "present", "latest"}:
641
+ elif self.state in {"installed", "present", "latest"}:
642
642
  upgrade = self.state == "latest"
643
643
  for spec in self.names:
644
644
  if is_newer_version_installed(base, spec):
@@ -671,7 +671,7 @@ class Dnf5Module(YumDnf):
671
671
  if transaction.get_problems():
672
672
  failures = []
673
673
  for log_event in transaction.get_resolve_logs():
674
- if log_event.get_problem() == libdnf5.base.GoalProblem_NOT_FOUND and self.state in {"install", "present", "latest"}:
674
+ if log_event.get_problem() == libdnf5.base.GoalProblem_NOT_FOUND and self.state in {"installed", "present", "latest"}:
675
675
  # NOTE dnf module compat
676
676
  failures.append("No package {} available.".format(log_event.get_spec()))
677
677
  else:
ansible/playbook/base.py CHANGED
@@ -18,7 +18,7 @@ from ansible import context
18
18
  from ansible.errors import AnsibleError, AnsibleParserError, AnsibleUndefinedVariable, AnsibleAssertionError
19
19
  from ansible.module_utils.six import string_types
20
20
  from ansible.module_utils.parsing.convert_bool import boolean
21
- from ansible.module_utils.common.text.converters import to_text, to_native
21
+ from ansible.module_utils.common.text.converters import to_text
22
22
  from ansible.parsing.dataloader import DataLoader
23
23
  from ansible.playbook.attribute import Attribute, FieldAttribute, ConnectionFieldAttribute, NonInheritableFieldAttribute
24
24
  from ansible.plugins.loader import module_loader, action_loader
@@ -560,14 +560,14 @@ class FieldAttributeBase:
560
560
  setattr(self, name, value)
561
561
  except (TypeError, ValueError) as e:
562
562
  value = getattr(self, name)
563
- raise AnsibleParserError("the field '%s' has an invalid value (%s), and could not be converted to %s. "
564
- "The error was: %s" % (name, value, attribute.isa, e), obj=self.get_ds(), orig_exc=e)
563
+ raise AnsibleParserError(f"the field '{name}' has an invalid value ({value!r}), and could not be converted to {attribute.isa}.",
564
+ obj=self.get_ds(), orig_exc=e)
565
565
  except (AnsibleUndefinedVariable, UndefinedError) as e:
566
566
  if templar._fail_on_undefined_errors and name != 'name':
567
567
  if name == 'args':
568
- msg = "The task includes an option with an undefined variable. The error was: %s" % (to_native(e))
568
+ msg = "The task includes an option with an undefined variable."
569
569
  else:
570
- msg = "The field '%s' has an invalid value, which includes an undefined variable. The error was: %s" % (name, to_native(e))
570
+ msg = f"The field '{name}' has an invalid value, which includes an undefined variable."
571
571
  raise AnsibleParserError(msg, obj=self.get_ds(), orig_exc=e)
572
572
 
573
573
  self._finalized = True
ansible/playbook/task.py CHANGED
@@ -72,7 +72,7 @@ class Task(Base, Conditional, Taggable, CollectionSearch, Notifiable, Delegatabl
72
72
 
73
73
  async_val = NonInheritableFieldAttribute(isa='int', default=0, alias='async')
74
74
  changed_when = NonInheritableFieldAttribute(isa='list', default=list)
75
- delay = NonInheritableFieldAttribute(isa='int', default=5)
75
+ delay = NonInheritableFieldAttribute(isa='float', default=5)
76
76
  failed_when = NonInheritableFieldAttribute(isa='list', default=list)
77
77
  loop = NonInheritableFieldAttribute(isa='list')
78
78
  loop_control = NonInheritableFieldAttribute(isa='class', class_type=LoopControl, default=LoopControl)
ansible/release.py CHANGED
@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.17.4rc1'
20
+ __version__ = '2.17.5rc1'
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.4rc1
3
+ Version: 2.17.5rc1
4
4
  Summary: Radically simple IT automation
5
5
  Home-page: https://ansible.com/
6
6
  Author: Ansible, Inc.
@@ -3,14 +3,14 @@ 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=h1iqa3a1m652guMiR4N2-7RyXcnVwVbd6nbxEtKgbww,835
6
+ ansible/release.py,sha256=c7vcGzBDnDadztzq2xlMiK0pQX3nIlQBF-wewYaCIJI,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
10
10
  ansible/cli/config.py,sha256=54IEhW7pH5bpWB7u1abEh-4zjU2xqhB0nQi5dHGBZSY,22663
11
11
  ansible/cli/console.py,sha256=GOdaJfy0NtBIo4HUom4V4VrcrmLiBYcaSBZgbmAP9Ss,21987
12
12
  ansible/cli/doc.py,sha256=WM-LAlsVREtyppuYKQDF3E6EDnhtRsrGItQSxXz1rjI,69662
13
- ansible/cli/galaxy.py,sha256=E9llaIyZEbfFl9j2SEbu74Gghpt6x6Egz1CwtqPw_2g,95494
13
+ ansible/cli/galaxy.py,sha256=lMiaP2WuBPMh2Ba3RTe4ZFK0HcPbUlsjInzrn5-G5NY,96867
14
14
  ansible/cli/inventory.py,sha256=bVT2FRQLSab_vDqw_vTMLpxzd2HYW1KDslsEb6gqFSI,16771
15
15
  ansible/cli/playbook.py,sha256=d0x_X0BXjxYjPJ-qc6JcyGxR6IzxdvnSjoT4tUtaGKQ,10865
16
16
  ansible/cli/pull.py,sha256=twr9xvQS6a4omlOxmvNyuenonVYJVR-4ZxclLzl-AuA,17286
@@ -28,7 +28,7 @@ ansible/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  ansible/config/ansible_builtin_runtime.yml,sha256=nwL_-rqEEmpuSHxZH70pJBiEosDKOPkYIboH3_7LVEY,376076
29
29
  ansible/config/base.yml,sha256=4iotRTO8gAW_A19yBmYJAet1NIIulPbLA1b8TscyzbQ,85728
30
30
  ansible/config/manager.py,sha256=MvNZnqHDtz9uda5_ryNvpCv2M3frAl81bvZvgS1lGko,25730
31
- ansible/errors/__init__.py,sha256=pJ0Cd87ET5SNut851lrHH8EAoKEal2DdUJYl8yjRd8E,14739
31
+ ansible/errors/__init__.py,sha256=uN28L8f7qEWqeL86VkwIrkfMsk8U1XkBDxC9rTukYwo,14832
32
32
  ansible/errors/yaml_strings.py,sha256=fKfgD3rC017dyMackTpu-LkvbsdnsfBAKCxMH-fDtIg,3858
33
33
  ansible/executor/__init__.py,sha256=mRvbCJPA-_veSG5ka3v04G5vsarLVDeB3EWFsu6geSI,749
34
34
  ansible/executor/action_write_locks.py,sha256=Up2n3cwFCr4T4IvttHpe3QOxRBF_9NgWJ1tFm9CHpfM,1915
@@ -140,9 +140,9 @@ 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=h1iqa3a1m652guMiR4N2-7RyXcnVwVbd6nbxEtKgbww,835
143
+ ansible/module_utils/ansible_release.py,sha256=c7vcGzBDnDadztzq2xlMiK0pQX3nIlQBF-wewYaCIJI,835
144
144
  ansible/module_utils/api.py,sha256=DWIuLW5gDWuyyDHLLgGnub42Qa8kagDdkf1xDeLAFl4,5784
145
- ansible/module_utils/basic.py,sha256=G5gg2b4L6y8u4J7pCRkoAAsIz8rabuAPB4ThFu2wvaY,85920
145
+ ansible/module_utils/basic.py,sha256=UcDamm_6bkL3HXxKvQcSUlzDOHkIlvd8AYGuqJNmZeI,86113
146
146
  ansible/module_utils/connection.py,sha256=q_BdUaST6E44ltHsWPOFOheXK9vKmzaJvP-eQOrOrmE,8394
147
147
  ansible/module_utils/errors.py,sha256=cOVAUZaQTeYaSGhKnYsT3L8vshayQHbCXzkT6HIVi_o,3345
148
148
  ansible/module_utils/json_utils.py,sha256=2WuR79zOoVVP4zo8iztwzE_k2JdXawpWh855YhdPIDU,3403
@@ -290,7 +290,7 @@ ansible/modules/deb822_repository.py,sha256=CWgVVSuq45dkHrozG2Yk229FdIdGfaFSmBFB
290
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
- ansible/modules/dnf5.py,sha256=6Uc9etp1jz1Tm5dVNkJXfRHyICODi-nsc3pgp1tYCtk,26789
293
+ ansible/modules/dnf5.py,sha256=bbPlc-K-I0NZzCwn3Ke12FUcQu-A8H4S7_gmlxXDgZg,26793
294
294
  ansible/modules/dpkg_selections.py,sha256=rBH3A2lr6DB6qGlF3fF2716QU4jMSqC6EjikYffTtOI,2782
295
295
  ansible/modules/expect.py,sha256=J7IsU3OvBOeK8YtSWKkQKTfgmnWs2OSP_ntyj3UjmvM,9367
296
296
  ansible/modules/fail.py,sha256=95z8jFyVaizwwupSce04kj1wwnOmbM0ooUX7mXluoyU,1659
@@ -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=P-q_DmsFiOSvKcHg0sATFw0mXv5hzSKVIuhauCyDJNQ,34030
367
+ ansible/playbook/base.py,sha256=0NGh_1B4CxgqVlqTVZm6m8eVrTEBH9z7f1hk6AkKFos,33918
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
@@ -380,7 +380,7 @@ ansible/playbook/play_context.py,sha256=w5P-lAyN1cr01JgSLw8tnYy4QsSyDFLzbSy_ehuc
380
380
  ansible/playbook/playbook_include.py,sha256=hr3N_yV4unjhiC2IIdchY0TPSARwlv0SXH9bIsIrbaA,7493
381
381
  ansible/playbook/role_include.py,sha256=NCgDHtXlOltJ0XXSgGTTxDVrLC6IBe_d9SgNGXtsI20,7575
382
382
  ansible/playbook/taggable.py,sha256=PfbiQhDDafwKja2yIknJTEAHPspb7tPmCRDEO_8gmvY,3165
383
- ansible/playbook/task.py,sha256=VxFZY5gyAfhe40GTscpMy7f5Z6iLfTTCceGDUwpaKFU,21754
383
+ ansible/playbook/task.py,sha256=j5TbfZ27IDr1sSJDps1SVZfDWznzNyYJCO9heIeEZSM,21756
384
384
  ansible/playbook/task_include.py,sha256=RHqzspHMA7wuIswDd6szZYCymXiVqWlF1Jil_2yRMz4,5244
385
385
  ansible/playbook/role/__init__.py,sha256=HSvzDNMq8DtNG4jQvZe1UAkR42vyj8Qt1ScgRBZ2MYE,29697
386
386
  ansible/playbook/role/definition.py,sha256=ZKs9FI3kqJETFHMh-8lOH6xGY_g2siuTxYgQj5VkcDk,9550
@@ -678,7 +678,7 @@ 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.4rc1.data/scripts/ansible-test,sha256=dyY2HtRZotRQO3b89HGXY_KnJgBvgsm4eLIe4B2LUoA,1637
681
+ ansible_core-2.17.5rc1.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
@@ -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.4rc1.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
983
- ansible_core-2.17.4rc1.dist-info/METADATA,sha256=ZGJlKw5k4Qja8N5t4yuvA0dZixCy2n99lGETpuWsHpc,6948
984
- ansible_core-2.17.4rc1.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
985
- ansible_core-2.17.4rc1.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
986
- ansible_core-2.17.4rc1.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
987
- ansible_core-2.17.4rc1.dist-info/RECORD,,
982
+ ansible_core-2.17.5rc1.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
983
+ ansible_core-2.17.5rc1.dist-info/METADATA,sha256=u86L4PahjzzUvQjRXR6qEE-GkuW6NkQSRRIzFfI4wec,6948
984
+ ansible_core-2.17.5rc1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
985
+ ansible_core-2.17.5rc1.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
986
+ ansible_core-2.17.5rc1.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
987
+ ansible_core-2.17.5rc1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (72.1.0)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5