79812340

Date: 2025-11-07 12:40:05
Score: 1
Natty:
Report link

ObjWatch is a Python library for OOP debugging with nested tracing and configurable monitoring of modules, classes, members, methods, functions, globals, and locals, with multi-process support.

import time
import objwatch
from objwatch.wrappers import BaseWrapper


class SampleClass:
    def __init__(self, value):
        self.value = value

    def increment(self):
        self.value += 1
        time.sleep(0.1)

    def decrement(self):
        self.value -= 1
        time.sleep(0.1)


def main():
    obj = SampleClass(10)
    for _ in range(5):
        obj.increment()
    for _ in range(3):
        obj.decrement()


if __name__ == '__main__':
    # Using ObjWatch as a context manager
    with objwatch.ObjWatch(['examples/example_usage.py'], output='./objwatch.log', wrapper=BaseWrapper):
        main() 
Targets:
>>>>>>>>>>
{}
<<<<<<<<<<
Filename targets:
>>>>>>>>>>
examples/example_usage.py
<<<<<<<<<<
Exclude filename targets:
>>>>>>>>>>

<<<<<<<<<<
wrapper 'BaseWrapper' loaded
Starting ObjWatch tracing.
Starting tracing.
   37 run __main__.main <- 
   23 | run __main__.SampleClass.__init__ <- '0':(type)SampleClass, '1':10
   23 | end __main__.SampleClass.__init__ -> None
   25 | run __main__.SampleClass.increment <- '0':(type)SampleClass
   14 | | upd SampleClass.value None -> 10
   14 | | upd SampleClass.value 10 -> 11
   25 | end __main__.SampleClass.increment -> None
   25 | run __main__.SampleClass.increment <- '0':(type)SampleClass
   14 | | upd SampleClass.value 11 -> 12
   25 | end __main__.SampleClass.increment -> None
   25 | run __main__.SampleClass.increment <- '0':(type)SampleClass
   14 | | upd SampleClass.value 12 -> 13
   25 | end __main__.SampleClass.increment -> None
   25 | run __main__.SampleClass.increment <- '0':(type)SampleClass
   14 | | upd SampleClass.value 13 -> 14
   25 | end __main__.SampleClass.increment -> None
   25 | run __main__.SampleClass.increment <- '0':(type)SampleClass
   14 | | upd SampleClass.value 14 -> 15
   25 | end __main__.SampleClass.increment -> None
   27 | run __main__.SampleClass.decrement <- '0':(type)SampleClass
   18 | | upd SampleClass.value 15 -> 14
   27 | end __main__.SampleClass.decrement -> None
   27 | run __main__.SampleClass.decrement <- '0':(type)SampleClass
   18 | | upd SampleClass.value 14 -> 13
   27 | end __main__.SampleClass.decrement -> None
   27 | run __main__.SampleClass.decrement <- '0':(type)SampleClass
   18 | | upd SampleClass.value 13 -> 12
   27 | end __main__.SampleClass.decrement -> None
   37 end __main__.main -> None
Stopping ObjWatch tracing.
Stopping tracing.
Reasons:
  • Contains signature (1):
  • Long answer (-1):
  • Has code block (-0.5):
  • Starts with a question (0.5): is a
  • Low reputation (1):
Posted by: Aeeeeeep