[wrapt](https://wrapt.readthedocs.io/en/latest/wrappers.html) has a convenient object proxy class that can be extended to correctly and transparently wrap any objects