Ho un modulo che decora alcune funzioni chiave con decoratori personalizzati.C'è un modo per entrare in funzioni decorate, saltando codice decoratore
Il debug di queste funzioni con pdb spesso è un po 'un problema, perché ogni volta che passo in una funzione decorata, devo prima passare attraverso il codice decoratore stesso.
Naturalmente potrei semplicemente impostare il debugger in modo che si interrompa all'interno della funzione a cui sono interessato, ma come funzioni chiave vengono chiamate più volte da più posti, quindi di solito preferisco iniziare il debug all'esterno della funzione.
ho cercato di illustrare con il codice, ma non so se questo aiuta:
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()
Quindi, c'è un modo per me di entrare in i_only_care_about_this
da i_am_here
senza passare attraverso i_dont_care_about_this
?
Essenzialmente voglio passare tutto il codice decoratore utilizzando s a (s ) TEP in una data funzione decorato.
Come si suppone PPB sapere che una funzione è decorato e al quale punto è la funzione originale d? Dovresti adattare sia i tuoi decoratori che i PDB per rendere possibile qualcosa di simile. –
Ho pensato che potrebbe esserci un modo in cui la mia conoscenza di come Python gestisce internamente i decoratori è piuttosto limitata. –