Source code for pypeline.core.decors
# -*- coding: utf-8 -*-
# below imports enables python 2 and 3 compatible codes
# requires python-future, install by `pip install future`
from __future__ import (absolute_import, division,
print_function, unicode_literals)
from builtins import *
[docs]def log_scale(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
result = 20 * np.log10(abs(result + 1E-6))
return result
return wrapper
[docs]def partial_return(part='left'):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
size = result.shape[0]
size = size - 1 if size % 2 else size
if part == 'left':
return result[:size / 2 + 1, :]
elif part == 'right':
return result[size / 2:, :]
return wrapper
return decorator
[docs]def proc_along_axis(axis=-1):
def decorator(func):
@functools.wraps(func)
def wrapper(data, *args, **kwargs):
result = np.apply_along_axis(func, axis=axis, *args, **kwargs)
return result
return wrapper
return decorator