Есть ли способ перейти к декорированным функциям, минуя код декоратора

У меня есть модуль, который украшает некоторые ключевые функции пользовательскими декораторами.

Отладка этих функций с помощью pdb часто доставляет определенные неудобства, потому что каждый раз, когда я вхожу в декорированную функцию, мне сначала приходится выполнять код самого декоратора.

Конечно, я мог бы просто настроить отладчик так, чтобы он прерывал интересующую меня функцию, но как ключевые функции они вызываются много раз из многих мест, поэтому я обычно предпочитаю начинать отладку вне функции.

Я попытался проиллюстрировать это кодом, но не знаю, поможет ли это:

def i_dont_care_about_this(fn):
    @functiontools.wraps(fn)
    def wrapper(*args, **kwargs):
        return fn(*args, **kwargs)
    return wrapper

@i_dont_care_about_this
def i_only_care_about_this():
    # no use to set pdb here

def i_am_here():
    import pdb; pdb.set_trace()
    i_only_care_about_this()

Итак, есть ли способ перейти в i_only_care_about_thisиз i_am_here, не проходя через i_dont_care_about_this?

По сути, я хочу пропустить весь код декоратора при использовании шагов с по(с)в заданной декорированной функции.

10
задан Chris 2 May 2012 в 12:07
поделиться