1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-04-15 07:10:56 +01:00

utils/log: add indentcontext

Add indentcontext context manager to save having to add try/finally
clauses around indenting code just to ensure dedenting.
This commit is contained in:
sergei Trofimov 2018-04-30 13:13:57 +01:00 committed by Marc Bonnici
parent c1a0f842d0
commit ecc68ee367
5 changed files with 14 additions and 17 deletions

View File

@ -945,12 +945,9 @@ class JobGenerator(object):
def add_section(self, section, workloads): def add_section(self, section, workloads):
new_node = self.root_node.add_section(section) new_node = self.root_node.add_section(section)
log.indent() with log.indentcontext():
try:
for workload in workloads: for workload in workloads:
new_node.add_workload(workload) new_node.add_workload(workload)
finally:
log.dedent()
def add_workload(self, workload): def add_workload(self, workload):
self.root_node.add_workload(workload) self.root_node.add_workload(workload)

View File

@ -38,12 +38,9 @@ class JobSpecSource(object):
def _log_self(self): def _log_self(self):
logger.debug('Creating {} node'.format(self.kind)) logger.debug('Creating {} node'.format(self.kind))
log.indent() with log.indentcontext():
try:
for key, value in self.config.iteritems(): for key, value in self.config.iteritems():
logger.debug('"{}" to "{}"'.format(key, value)) logger.debug('"{}" to "{}"'.format(key, value))
finally:
log.dedent()
class WorkloadEntry(JobSpecSource): class WorkloadEntry(JobSpecSource):

View File

@ -626,8 +626,7 @@ class PluginLoader(object):
def _discover_in_module(self, module): # NOQA pylint: disable=too-many-branches def _discover_in_module(self, module): # NOQA pylint: disable=too-many-branches
self.logger.debug('Checking module %s', module.__name__) self.logger.debug('Checking module %s', module.__name__)
log.indent() with log.indentcontext():
try:
for obj in vars(module).itervalues(): for obj in vars(module).itervalues():
if inspect.isclass(obj): if inspect.isclass(obj):
if not issubclass(obj, Plugin): if not issubclass(obj, Plugin):
@ -647,9 +646,6 @@ class PluginLoader(object):
self.logger.warning(e) self.logger.warning(e)
else: else:
raise e raise e
finally:
log.dedent()
pass
def _add_found_plugin(self, obj): def _add_found_plugin(self, obj):
""" """

View File

@ -239,12 +239,9 @@ class ResourceResolver(object):
self.logger.debug('Loading getter {}'.format(gettercls.name)) self.logger.debug('Loading getter {}'.format(gettercls.name))
getter = self.loader.get_plugin(name=gettercls.name, getter = self.loader.get_plugin(name=gettercls.name,
kind="resource_getter") kind="resource_getter")
log.indent() with log.indentcontext():
try:
getter.initialize() getter.initialize()
getter.register(self) getter.register(self)
finally:
log.dedent()
self.getters.append(getter) self.getters.append(getter)
def register(self, source, priority=SourcePriority.local): def register(self, source, priority=SourcePriority.local):

View File

@ -21,6 +21,7 @@ import os
import string import string
import subprocess import subprocess
import threading import threading
from contextlib import contextmanager
import colorama import colorama
@ -148,6 +149,15 @@ def dedent():
_indent_level -= 1 _indent_level -= 1
@contextmanager
def indentcontext():
indent()
try:
yield
finally:
dedent()
def set_indent_level(level): def set_indent_level(level):
global _indent_level global _indent_level
old_level = _indent_level old_level = _indent_level