localscope is a small Python package that disassembles functions to check if they access global variables they shouldn't. I wrote this a few years ago to detect scope bugs which are common in Jupyter notebooks. It's recently come in handy writing jax code (
https://github.com/jax-ml/jax) because it requires pure functions. Thought I'd share.
[1]: https://docs.hhvm.com/hack/contexts-and-capabilities/introdu...