I'mNed Batchelder, a Python software developer and community organizer.
- My personal site isnedbatchelder.com.
- I'm an organizer ofBoston Python.
- I'm a member of thePython Docs Editorial Board.
You canfind me at:
- Mastodon:@nedbat@nedbat.com.
- Bluesky:nedbat.com.
- Libera IRC: nedbat in#python.
- Discord: nedbat in thePython Discord.
My latestblog posts:
- EdText, 9 Feb
edtext is a utility inspired by the ed editor for selecting and manipulating lines of text.(read..) - Testing: exceptions and caches, 25 Jan
Nicer ways to test exceptions and to test cached function results.(read..) - No more .html, 2 Jan
My site used to have URLs ending with .html. Not anymore.(read..) - Generating data shapes with Hypothesis, 21 Dec
I used Hypothesis to generate random data structure schemas, and then generate random data using them. I learned a lot along the way.(read..) - andmany more..
I maintain a fewPython packages, including:
- Coverage.py: The code coverage tool for Python
- Cog: Small bits of Python computation for static files
- Scriv: Changelog management tool
- Dinghy: A GitHub activity digest tool
- WatchGHA: Live display of current GitHub action runs
I've also made a few informal projects, some mathy art, and some small utilities:
- pkgsample, an simple example of how to package a Python project.
- edtext, a utility for selecting and manipulating text using ed-inspired addressing.Blog post.
- Truchet images explores Truchet tiles and rendering images with them.Blog post.
- Flourish is a harmonograph explorer.Blog post andlive site.
- Stilted is a toy PostScript implementation.Blog post.
- Gefilte Fish is a Python-based DSL for writing Gmail filters.Blog post.
- Pydoctor shows details of your Python environment for troubleshooting.
- Aptus is a Mandelbrot toy.
This is aMarkdown page with embedded Python code rendered withcog.See my blog postCogged GitHub profile for details.
Updated at 2026-02-16 03:28 UTC
PinnedLoading
Something went wrong, please refresh the page to try again.
If the problem persists, check theGitHub status page orcontact support.
If the problem persists, check theGitHub status page orcontact support.
Uh oh!
There was an error while loading.Please reload this page.












