<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#">
<link rel="alternate" type="text/html" href="https://gamma.unpythonic.net/"/>

<title>Jeff Epler's blog</title>
<modified>2025-08-26T13:18:49Z</modified>
<tagline>Photos, electronics, cnc, and more</tagline>
<author><name>Jeff Epler</name><email>jepler@unpythonic.net</email></author>
<entry>
<title>Variations on 'if TYPE_CHECKING'</title>
<issued>2025-08-26T13:18:49Z</issued>
<modified>2025-08-26T13:18:49Z</modified>
<id>https://gamma.unpythonic.net/01756214329</id>
<link rel="alternate" type="text/html" href="https://gamma.unpythonic.net/01756214329"/>
<content type="text/html" mode="escaped">

&lt;p&gt;Suggested by mypy documentation:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from typing import …
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Works in mypy, pyright, pyrefly. Found in setuptool_scm generated &lt;code&gt;__version__.py&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;TYPE_CHECKING = False
if TYPE_CHECKING:
    from typing import …
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Works in mypy, pyright, pyrefly. Best variant for CircuitPython?&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-py&quot;&gt;def const(x): return x
TYPE_CHECKING = const(0)
if TYPE_CHECKING:
    from typing import …
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Works in mypy only. Does not work in pyright, pyrefly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if False:
    from typing import …
&lt;/code&gt;&lt;/pre&gt;

</content>
</entry>
</feed>
