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)













