I love Python, metaprogramming, and making programming easier.
My main project is futurecoder, a platform for self-learning Python for beginners. It depends on a lot of my other work on GitHub, most of which is mentioned below.
I'm an expert at extracting obscure but useful information from Python:
🐛 Debuggers:
-
birdseyeis a unique and powerful debugger that lets you see the value of every individual expression:(Click thumbnails to expand them)
-
snoopis a simple convenient debugger that logs everything a function is doing:It's based on
cool-RR/PySnooperfor which I made many major contributions and am a collaborator. -
heartratevisualises execution in real time:
⚠️ Tracebacks:
-
stack_dataextracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default. -
I used
stack_datato overhaul tracebacks in IPython, adding several fixes and enhancements. In particularstack_datausesexecuting(see Magic section) to highlight the precise operation which failed:
-
stack_datais also used to show excellent beginner-friendly tracebacks in futurecoder:
-
I added an integration for the Sentry Python client to provide more information in tracebacks in error reports. It uses my library
pure_eval, which evaluates simple expressions such as attributes while guaranteeing that no potentially problematic code is executed.pure_evalis also used bystack_data.
✨ Magic:
executingcan find the exact operation being executed by a frame. This is the only library that allows doing this reliably as it is a very hard problem. Many others have tried and failed.- I used
executingto overhaulgruns/icecreamandpwwang/python-varname, fixing several issues in the process. Both authors made me collaborators, and I've provided plenty of help since. sorceryusesexecutingto provide several surprising magical functions.
Other:
-
I use
gristlabs/asttokensin all the projects mentioned above! I've made many significant contributions to it. -
instant_apiis more metaprogramming, but based on type hints. It lets you instantly create a Flask API with automatic type conversions, JSON RPC, and a Swagger UI. No other library makes this so convenient. Inspired by FastAPI. -
s3-stream-uploadlets you efficiently stream large amounts of data to AWS S3 in Java. -
SunHours is a SketchUp plugin written in Ruby used by architects around the world to analyse and visualise how much sunlight hits a surface. (repo)
-
Quiggles is an Android app written in Kotlin that lets anyone draw beautiful animated patterns with ease.
Watch a quick demo (1:31). (repo)
(Click title text [not icons] to expand)













