@wraps(func)
def inner(*args, **kwargs):
    session = None
if not 'session' in kwargs:
    session = that.db.Session()
kwargs['session'] = session
result = func(*args, **kwargs)
if session:
    session.close()
return result
return inner
Методы украшения Python с переменным количеством позиционных аргументов и необязательным аргументом