Performance improvement using in-operator on dicts

Just a small cleanup for the existing occurrences.

Using the in-operator for hash lookups is faster than using .keys()
http://stackoverflow.com/questions/29314269/why-do-key-in-dict-and-key-in-dict-keys-have-the-same-output
This commit is contained in:
Dag Wieers 2016-11-17 15:08:12 +01:00 committed by Brian Coca
parent b79bf14607
commit 1ca4add91c
7 changed files with 15 additions and 15 deletions

View file

@ -149,15 +149,15 @@ def generate_inv_from_api(enterprise_entity,config):
vm_state = False vm_state = False
if not vm_nic == None and vm_state: if not vm_nic == None and vm_state:
if not vm_vapp in inventory.keys(): if vm_vapp not in inventory:
inventory[vm_vapp] = {} inventory[vm_vapp] = {}
inventory[vm_vapp]['children'] = [] inventory[vm_vapp]['children'] = []
inventory[vm_vapp]['hosts'] = [] inventory[vm_vapp]['hosts'] = []
if not vm_vdc in inventory.keys(): if vm_vdc not in inventory:
inventory[vm_vdc] = {} inventory[vm_vdc] = {}
inventory[vm_vdc]['hosts'] = [] inventory[vm_vdc]['hosts'] = []
inventory[vm_vdc]['children'] = [] inventory[vm_vdc]['children'] = []
if not vm_template in inventory.keys(): if vm_template not in inventory:
inventory[vm_template] = {} inventory[vm_template] = {}
inventory[vm_template]['children'] = [] inventory[vm_template]['children'] = []
inventory[vm_template]['hosts'] = [] inventory[vm_template]['hosts'] = []

View file

@ -180,14 +180,14 @@ class BrookInventory:
# Group by project # Group by project
project_group = 'project_%s' % project.name project_group = 'project_%s' % project.name
if project_group in groups.keys(): if project_group in groups:
groups[project_group].append(instance.name) groups[project_group].append(instance.name)
else: else:
groups[project_group] = [instance.name] groups[project_group] = [instance.name]
# Group by status # Group by status
status_group = 'status_%s' % meta['hostvars'][instance.name]['brook_status'] status_group = 'status_%s' % meta['hostvars'][instance.name]['brook_status']
if status_group in groups.keys(): if status_group in groups:
groups[status_group].append(instance.name) groups[status_group].append(instance.name)
else: else:
groups[status_group] = [instance.name] groups[status_group] = [instance.name]
@ -196,7 +196,7 @@ class BrookInventory:
tags = meta['hostvars'][instance.name]['brook_tags'] tags = meta['hostvars'][instance.name]['brook_tags']
for tag in tags: for tag in tags:
tag_group = 'tag_%s' % tag tag_group = 'tag_%s' % tag
if tag_group in groups.keys(): if tag_group in groups:
groups[tag_group].append(instance.name) groups[tag_group].append(instance.name)
else: else:
groups[tag_group] = [instance.name] groups[tag_group] = [instance.name]

View file

@ -609,7 +609,7 @@ class DockerInventory(object):
self.groups[id].append(name) self.groups[id].append(name)
self.groups[name].append(name) self.groups[name].append(name)
if short_id not in self.groups.keys(): if short_id not in self.groups:
self.groups[short_id].append(name) self.groups[short_id].append(name)
self.groups[hostname].append(name) self.groups[hostname].append(name)

View file

@ -2724,7 +2724,7 @@ class GenericBsdIfconfigNetwork(Network):
return [] return []
def merge_default_interface(self, defaults, interfaces, ip_type): def merge_default_interface(self, defaults, interfaces, ip_type):
if not 'interface' in defaults.keys(): if 'interface' not in defaults:
return return
if not defaults['interface'] in interfaces: if not defaults['interface'] in interfaces:
return return
@ -3045,7 +3045,7 @@ class SunOSNetwork(GenericBsdIfconfigNetwork):
def parse_interface_line(self, words, current_if, interfaces): def parse_interface_line(self, words, current_if, interfaces):
device = words[0][0:-1] device = words[0][0:-1]
if device not in interfaces.keys(): if device not in interfaces:
current_if = {'device': device, 'ipv4': [], 'ipv6': [], 'type': 'unknown'} current_if = {'device': device, 'ipv4': [], 'ipv6': [], 'type': 'unknown'}
else: else:
current_if = interfaces[device] current_if = interfaces[device]

View file

@ -268,12 +268,12 @@ class Task(Base, Conditional, Taggable, Become):
else: else:
env = [] env = []
for env_item in value: for env_item in value:
if isinstance(env_item, (string_types, AnsibleUnicode)) and env_item in templar._available_variables.keys(): if isinstance(env_item, (string_types, AnsibleUnicode)) and env_item in templar._available_variables:
env[env_item] = templar.template(env_item, convert_bare=False) env[env_item] = templar.template(env_item, convert_bare=False)
elif isinstance(value, dict): elif isinstance(value, dict):
env = dict() env = dict()
for env_item in value: for env_item in value:
if isinstance(env_item, (string_types, AnsibleUnicode)) and env_item in templar._available_variables.keys(): if isinstance(env_item, (string_types, AnsibleUnicode)) and env_item in templar._available_variables:
env[env_item] = templar.template(value[env_item], convert_bare=False) env[env_item] = templar.template(value[env_item], convert_bare=False)
# at this point it should be a simple string # at this point it should be a simple string

View file

@ -92,13 +92,13 @@ class CallbackModule(CallbackBase):
subject = 'Failed: %s' % attach subject = 'Failed: %s' % attach
body = 'The following task failed for host ' + host + ':\n\n%s\n\n' % attach body = 'The following task failed for host ' + host + ':\n\n%s\n\n' % attach
if 'stdout' in res._result.keys() and res._result['stdout']: if 'stdout' in res._result and res._result['stdout']:
subject = res._result['stdout'].strip('\r\n').split('\n')[-1] subject = res._result['stdout'].strip('\r\n').split('\n')[-1]
body += 'with the following output in standard output:\n\n' + res._result['stdout'] + '\n\n' body += 'with the following output in standard output:\n\n' + res._result['stdout'] + '\n\n'
if 'stderr' in res._result.keys() and res._result['stderr']: if 'stderr' in res._result and res._result['stderr']:
subject = res._result['stderr'].strip('\r\n').split('\n')[-1] subject = res._result['stderr'].strip('\r\n').split('\n')[-1]
body += 'with the following output in standard error:\n\n' + res._result['stderr'] + '\n\n' body += 'with the following output in standard error:\n\n' + res._result['stderr'] + '\n\n'
if 'msg' in res._result.keys() and res._result['msg']: if 'msg' in res._result and res._result['msg']:
subject = res._result['msg'].strip('\r\n').split('\n')[0] subject = res._result['msg'].strip('\r\n').split('\n')[0]
body += 'with the following message:\n\n' + res._result['msg'] + '\n\n' body += 'with the following message:\n\n' + res._result['msg'] + '\n\n'
body += 'A complete dump of the error:\n\n' + self._dump_results(res._result) body += 'A complete dump of the error:\n\n' + self._dump_results(res._result)

View file

@ -104,7 +104,7 @@ def get_docstring(filename, verbose=False):
doc['notes'] = [] doc['notes'] = []
doc['notes'].extend(notes) doc['notes'].extend(notes)
if 'options' not in fragment.keys(): if 'options' not in fragment:
raise Exception("missing options in fragment, possibly misformatted?") raise Exception("missing options in fragment, possibly misformatted?")
for key, value in fragment.items(): for key, value in fragment.items():