Skip to content
View alexmojaki's full-sized avatar

Sponsoring

@15r10nk
@bswck
Block or Report

Block or report alexmojaki

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
alexmojaki/README.md

GitHub stats (refresh the page and it should load this time)


love python 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:
⚠️ Tracebacks:
  • stack_data extracts data from stack frames and tracebacks, particularly to display more useful tracebacks than the default.

  • I used stack_data to overhaul tracebacks in IPython, adding several fixes and enhancements. In particular stack_data uses executing (see Magic section) to highlight the precise operation which failed:

    ipython traceback with highlighted operation demo
  • stack_data is also used to show excellent beginner-friendly tracebacks in futurecoder:

    futurecoder traceback
  • 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_eval is also used by stack_data.

✨ Magic:
  • 68 stars executing can 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 executing to overhaul 2.3k stars gruns/icecream and 81 stars pwwang/python-varname, fixing several issues in the process. Both authors made me collaborators, and I've provided plenty of help since.
  • 285 stars sorcery uses executing to provide several surprising magical functions.
java aws ruby kotlin android Other:
  • I use 86 stars gristlabs/asttokens in all the projects mentioned above! I've made many significant contributions to it.

  • 104 stars instant_api is 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.

  • 149 stars s3-stream-upload lets 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)

    SunHours screenshot
  • Quiggles is an Android app written in Kotlin that lets anyone draw beautiful animated patterns with ease. play Watch a quick demo (1:31). (repo)

    Quiggles demo 1 Quiggles demo 2 Quiggles demo 3

(Click title text [not icons] to expand)


profile for Alex Hall at Stack Overflow, Q&A for professional and enthusiast programmers

linkedin email opencollective

(Most logos from icons8, see full credits here)

Pinned

  1. futurecoder futurecoder Public

    100% free and interactive Python course for beginners

    Python 1.2k 125

  2. birdseye birdseye Public

    Graphical Python debugger which lets you easily view the values of all evaluated expressions

    JavaScript 1.6k 73

  3. heartrate heartrate Public

    Simple real time visualisation of the execution of a Python program.

    Python 1.7k 124

  4. snoop snoop Public

    A powerful set of Python debugging tools, based on PySnooper

    Python 1.2k 33

  5. instant_api instant_api Public

    Instantly create an HTTP API with automatic type conversions, JSON RPC, and a Swagger UI. Just add methods!

    Python 130 5

  6. s3-stream-upload s3-stream-upload Public

    Manages streaming of data to AWS S3 without knowing the size beforehand and without keeping it all in memory or writing to disk.

    Java 206 61