<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Python on Hamilton Kibbe</title>
		<link>https://hamiltonkibbe.com/tags/python/</link>
		<description>Recent content in Python on Hamilton Kibbe</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Fri, 03 Jul 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://hamiltonkibbe.com/tags/python/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>The Robustness Principle and Type Annotations</title>
				<link>https://hamiltonkibbe.com/posts/the-robustness-principle-and-type-annotations/</link>
				<pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate>
				<guid>https://hamiltonkibbe.com/posts/the-robustness-principle-and-type-annotations/</guid>
				<description>&lt;p&gt;This is one of those things that seems obvious, but in my experience is frequently overlooked. I&amp;rsquo;ve had versions of this conversation with several coworkers over the years, so I figured it was worth writing down.&#xA;The idea is that when annotating functions and methods, parameters should accept the widest type that the function or method will work correctly with, and return values should be as concrete as possible. This probably sounds familiar as it is effectively the Robustness Principle (aka Postel&amp;rsquo;s Law):&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
