13 comments

[ 1.9 ms ] story [ 37.3 ms ] thread
WIP: suggestions most welcome.
Ahh, I never heard about it, but it looks promising.

I will reach out to the author.

Thanks for bringing it to my attention.

For PyTorch, there’s a TorchSnooper. In production, I’ve added both snoop and torchsnooper to flake8 banned modules.
nice, I do something similar with my tests to print out certain vars only when a test fails in order to get more context.
What advantage does this have over a debugger?

(To be fair, in my experience, lots of python users have no idea what a debugger is...)

same thoughts. i kind of get the utility of logging the whole application state without breakpoints or stepping through stuff (but maybe debuggers can also do this?), but my first thought was that this is simpler for folks not used to debuggers
It is not unusual for me to have a for-loop running for a few hours as it is processing thousands of small objects or just a few dozen of large ones. A debugger wouldn't necessarily help me in this case and this decorator would be a little easier to set up than a logger.
ah, yeah, i can see it being useful here.
Lots of people still print debug. That’s ok.
ipdb.set_trace is the best of both worlds
Thanks for the comments.

I don't have anything against debuggers, but I feel more natural to write into the code and this simplifies it.

TBH I haven't tried this or snoop heavily and the project was more of a curiosity of how the internals of python work after I found a relevant SO post.

Honestly I was surprised how easy it was.

If you actually want to use something like this use snoop: https://pypi.org/project/snoop/ it is more feature rich and maintained.

This looks pretty cool. I think this would be faster than using a debugger when doing leetcode / timed puzzles