Comments (9)
It make things easy to write a log analyser
It sounds like you might prefer using something like https://github.com/ionelmc/python-hunter. Or just writing your own function for sys.settrace
.
from pysnooper.
Which versions of PySnooper and Python? And what OS?
from pysnooper.
python 3.10, PySnooper 1.2.0, all platforms
from pysnooper.
Ah, it's possible that I have just caused this bug with this most recent version. I'll look into it.
from pysnooper.
If you're interested in writing a failing test case, that'll be helpful.
from pysnooper.
commit a PR to fix this issue.
from pysnooper.
Can you explain why there should be a return
line when an exception is raised? Can you explain what practical problem it causes that this line doesn't exist?
from pysnooper.
Can you explain why there should be a return line when an exception is raised?
No matter exception raised or not, all return
event should be recorded because it really happened.
Additionally it make things easy to write a log analyser as the call-return
pairs are balanced.
Can you explain what practical problem it causes that this line doesn't exist?
For log readable, consider below example:
import pysnooper
def bar(a, b):
return a + b
def baz():
try:
x = 'hi' + 1 # exception here!
return 1
except:
raise
finally: # <-do something and output
a=1
b=2
c=a+b
foo()
return -1
def foo():
r = bar(2, 3)
print(r)
return [8]
@pysnooper.snoop(depth=9, normalize=True)
def main():
try:
baz()
except:
pass
main()
if return 18
was not recorded, athough it can, but will spend more time to find that the code ran to and returned from line 18
.
from pysnooper.
@yantaozhao Sorry, I'm not seeing the practical usage here. It actually sounds misleading to write "return" when a function exited because of an exception rather than returned a value. I'm not sure what your use case is, but it sounds like it's a very niche use case that's not worth compromising for.
from pysnooper.
Related Issues (20)
- Snoop recursively, but only in my code. HOT 2
- print value of a claas var HOT 1
- [feature request] Add command line color output for Windows HOT 7
- SOURCE IS UNAVAILABLE HOT 8
- Feature request: python -m pysnooper user_script.py HOT 4
- Compatibility issue with Debugger in Visual Studio Code HOT 2
- Print("come") HOT 1
- compatiblity with python 3.12 HOT 7
- No variable output from the last line HOT 3
- Can not install it in Kaggle platform HOT 1
- new features request/discussion HOT 2
- Add Callback HOT 1
- Fix the CI HOT 4
- Deactivate all snooping except explicitly specified "watch"es HOT 3
- snoop entire file or program HOT 3
- Evaluate using `sys.monitoring` to make PySnooper faster
- [feature] only trace functions in specific files HOT 1
- about using multiprocessing
- Please add support for async functions HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pysnooper.