mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Use list comprehensions for efficiency
For loops can be inefficient, particularly when doing a dot command with them. https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Loops and https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Avoiding_dots... This patch makes use of list comprehensions to be as efficient as possible while still retaining order. Efficiency was lost a bit when switching away from sets() but this gains some of it back.
This commit is contained in:
parent
191be7b951
commit
23720ff19d
1 changed files with 2 additions and 8 deletions
|
@ -133,11 +133,7 @@ class Inventory(object):
|
|||
# exclude hosts not in a subset, if defined
|
||||
if self._subset:
|
||||
subset = self._get_hosts(self._subset)
|
||||
new_hosts = []
|
||||
for h in hosts:
|
||||
if h in subset and h not in new_hosts:
|
||||
new_hosts.append(h)
|
||||
hosts = new_hosts
|
||||
hosts = [ h for h in hosts if h in subset ]
|
||||
|
||||
# exclude hosts mentioned in any restriction (ex: failed hosts)
|
||||
if self._restriction is not None:
|
||||
|
@ -183,9 +179,7 @@ class Inventory(object):
|
|||
elif p.startswith("&"):
|
||||
hosts = [ h for h in hosts if h in that ]
|
||||
else:
|
||||
for h in that:
|
||||
if h not in hosts:
|
||||
hosts.append(h)
|
||||
hosts.extend([ h for h in that if h not in hosts ])
|
||||
|
||||
return hosts
|
||||
|
||||
|
|
Loading…
Reference in a new issue