This is the root of a possible circular import that you have solved by moving the ```DummyMonitor``` into this module (which is clearly bad).

I would use ```None``` as default argument value and then do:
```
if monitor is None:
   from performance import DummyMonitor
   monitor = DummyMonitor()
```

in general, it is a good practice to avoid using mutable objects as default argument value.