Source code for ftrack_api.logging

# :coding: utf-8
# :copyright: Copyright (c) 2016 ftrack

from builtins import object
import functools
import warnings

[docs]def deprecation_warning(message): def decorator(function): @functools.wraps(function) def wrapper(*args, **kwargs): warnings.warn(message, PendingDeprecationWarning) return function(*args, **kwargs) return wrapper return decorator
[docs]class LazyLogMessage(object): """A log message that can be evaluated lazily for improved performance. Example:: # Formatting of string will not occur unless debug logging enabled. logger.debug(LazyLogMessage( 'Hello {0}', 'world' )) """
[docs] def __init__(self, message, *args, **kwargs): """Initialise with *message* format string and arguments.""" self.message = message self.args = args self.kwargs = kwargs
def __str__(self): """Return string representation.""" return self.message.format(*self.args, **self.kwargs)