<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Tooling on Indented Block</title><link>https://indentedblock.com/tags/tooling/</link><description>Recent content in Tooling on Indented Block</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 25 Aug 2026 11:35:25 -0400</lastBuildDate><atom:link href="https://indentedblock.com/tags/tooling/index.xml" rel="self" type="application/rss+xml"/><item><title>Python Logging Done Right</title><link>https://indentedblock.com/posts/python-logging/</link><pubDate>Tue, 25 Aug 2026 11:35:25 -0400</pubDate><guid>https://indentedblock.com/posts/python-logging/</guid><description>A practical guide to the logging module: loggers, handlers, formatters, and levels, plus real patterns for structured logs, configuration, and avoiding the mistakes that make logs useless.</description></item><item><title>Building a CLI Tool in Python: Publishing to PyPI</title><link>https://indentedblock.com/posts/cli-tool-part-3/</link><pubDate>Wed, 19 Aug 2026 13:51:25 -0400</pubDate><guid>https://indentedblock.com/posts/cli-tool-part-3/</guid><description>Part 3 of a series on building a real Python CLI tool: versioning, building wheels and sdists, and publishing to PyPI with twine and trusted publishing.</description></item><item><title>Building a CLI Tool in Python: Config Files &amp; Packaging</title><link>https://indentedblock.com/posts/cli-tool-part-2/</link><pubDate>Wed, 05 Aug 2026 13:43:33 -0400</pubDate><guid>https://indentedblock.com/posts/cli-tool-part-2/</guid><description>Part 2 of a series on building a real Python CLI tool: persisting data to a proper config directory, atomic file writes, and packaging with pyproject.toml.</description></item><item><title>Building a CLI Tool in Python: Structure &amp; Typer</title><link>https://indentedblock.com/posts/cli-tool-part-1/</link><pubDate>Tue, 04 Aug 2026 08:38:50 -0400</pubDate><guid>https://indentedblock.com/posts/cli-tool-part-1/</guid><description>Part 1 of a series on building a real Python CLI tool: project layout, argument parsing with Typer, subcommands, and the structure that keeps a growing tool maintainable.</description></item></channel></rss>