You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My first use of snoop was to compare execution logs for a buggy area of the code between two runs to figure out where their behavior diverged. (A weak form of co-execution I suppose)
But before I could use diff, I had to post process the snoop output to remove the timestamps, obscure the repr's that contain 0x7f267b0a00 style memory addresses, and canonicalize the pathnames in str reprs that contained them as they differed between each execution environment.
It'd be nice to have a way to do a lot of this upfront via parameters to snoop() itself. I propose both of these:
Add the ability to omit timestamps.
Accept a repr post-processing callable.
The latter would allow for hex pointer value matching and cleanup as well as pathname cleanup. A pointer value cleanup only function could be provided as an example. Beyond that it's probably getting individual use case and application specific as to what people need to sanitize to make execution log comparisons easy.
The text was updated successfully, but these errors were encountered:
You can omit timestamps with snoop.install(columns=[]).
For the reprs, you can try cheap_repr.register_repr for specific classes, or monkeypatch my_cheap_repr in the snoop.tracer module to post-process all reprs. But this will affect the output in other ways because these reprs are used to determine if a variable's value has changed.
Alternatively you can subclass snoop.formatting.DefaultFormatter and override format_variable, then snoop.install(formatter_class=MyFormatter).
PySnooper has this feature built in since cool-RR/PySnooper#168, so snoop(normalize=True) should work there.
My first use of snoop was to compare execution logs for a buggy area of the code between two runs to figure out where their behavior diverged. (A weak form of co-execution I suppose)
But before I could use diff, I had to post process the snoop output to remove the timestamps, obscure the repr's that contain 0x7f267b0a00 style memory addresses, and canonicalize the pathnames in str reprs that contained them as they differed between each execution environment.
It'd be nice to have a way to do a lot of this upfront via parameters to snoop() itself. I propose both of these:
The latter would allow for hex pointer value matching and cleanup as well as pathname cleanup. A pointer value cleanup only function could be provided as an example. Beyond that it's probably getting individual use case and application specific as to what people need to sanitize to make execution log comparisons easy.
The text was updated successfully, but these errors were encountered: