My cog tool has been having a resurgence of late: a number of people are discovering it’s useful to run a little bit of Python code inside otherwise static files.
It took cog 17 years to become an overnight success :)
(first posted Feb 2004: nedbatchelder.com/blog/200402/co…)
Hynek Schlawack used it to de-duplicate his pyproject.toml:
As a test balloon, I’ve switched structlog from setup.py to flit w/ pyproject.toml in combination with @nedbat’s cog to maintain some deduplication. I think I like it! Sharp tools that do one thing well FTW.
Automator extraordinaire Simon Willison started using it to keep docs up to date:
I’ve been solving so many documentation problems with @nedbat’s cog tool recently - it’s fantastic for keeping documentation automatically up-to-date, in Markdown or rST)
Here’s a new page of sqlite-utils docs showing --help for every CLI command! sqlite-utils.datasette.io/en/latest/cli-… pic.twitter.com/8tyfyfe7AT

Brett Cannon even called it trendy!
A quick, public thanks to @nedbat for creating Cog; I did the “trendy” thing and used Cog to automate the README for the Python Launcher for Unix (instead of using my home-grown solution). Makes editing the README simple again! Move to using cog for maintaining the README
Of course, some people were using it before it was cool.
With all this buzz(!), Tobias Macey invited me on podcast.__init__ to talk about it: Episode 347: Generate Your Text Files With Python Using Cog. It was fun to talk about this little tool I wrote nearly 18 years ago that has been plugging away all this time, and is now being re-discovered.
Even I am finding new uses for cog. I started using it to keep coverage.py docs up to date, I built my crazy over-engineered GitHub profile (source) with it, and I even used it on the source file of this blog post to pull in the tweets!





Comments
Add a comment: