<strong>Topics covered in this episode:</strong><br>
<ul>
<li><a href="https://github.com/astral-sh/uv/blob/0.2.35/docs/concepts/python-versions.md?featured_on=pythonbytes"><strong>uv venv</strong></a><a href="https://github.com/astral-sh/uv/blob/0.2.35/docs/concepts/python-versions.md?featured_on=pythonbytes"> </a><a href="https://github.com/astral-sh/uv/blob/0.2.35/docs/concepts/python-versions.md?featured_on=pythonbytes"><strong>--python</strong></a><a href="https://github.com/astral-sh/uv/blob/0.2.35/docs/concepts/python-versions.md?featured_on=pythonbytes"> <strong>& uv python</strong></a></li>
<li><strong><a href="https://docs.python.org/release/3.12.5/whatsnew/changelog.html#python-3-12-5">Python 3.12.5 released</a></strong></li>
<li><strong><a href="https://blog.rxbc.se/posts/compile-and-use-dependencies-for-multiple-python-versions-in-tox/?featured_on=pythonbytes">Compile and use dependencies for multiple Python versions in Tox</a></strong></li>
<li><strong><a href="https://hallofshame.design/collection/?featured_on=pythonbytes">Catalog of Dark Patterns</a></strong></li>
<li><strong>Extras</strong></li>
<li><strong>Joke</strong></li>
</ul><a href='https://www.youtube.com/watch?v=0Sa0z2XXwwk' style='font-weight: bold;'data-umami-event="Livestream-Past" data-umami-event-episode="396">Watch on YouTube</a><br>
<p><strong>About the show</strong></p>
<p>Sponsored by ScoutAPM: <a href="https://pythonbytes.fm/scout"><strong>pythonbytes.fm/scout</strong></a></p>
<p><strong>Connect with the hosts</strong></p>
<ul>
<li>Michael: <a href="https://fosstodon.org/@mkennedy"><strong>@mkennedy@fosstodon.org</strong></a></li>
<li>Brian: <a href="https://fosstodon.org/@brianokken"><strong>@brianokken@fosstodon.org</strong></a></li>
<li>Show: <a href="https://fosstodon.org/@pythonbytes"><strong>@pythonbytes@fosstodon.org</strong></a></li>
</ul>
<p>Join us on YouTube at <a href="https://pythonbytes.fm/stream/live"><strong>pythonbytes.fm/live</strong></a> to be part of the audience. Usually Tuesdays at 10am PT. Older video versions available there too.</p>
<p>Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to <a href="https://pythonbytes.fm/friends-of-the-show">our friends of the show list</a>, we'll never share it. </p>
<p><strong>Brian #1:</strong> <a href="https://github.com/astral-sh/uv/blob/0.2.35/docs/concepts/python-versions.md?featured_on=pythonbytes"><strong>uv venv</strong></a><a href="https://github.com/astral-sh/uv/blob/0.2.35/docs/concepts/python-versions.md?featured_on=pythonbytes"> </a><a href="https://github.com/astral-sh/uv/blob/0.2.35/docs/concepts/python-versions.md?featured_on=pythonbytes"><strong>--python</strong></a><a href="https://github.com/astral-sh/uv/blob/0.2.35/docs/concepts/python-versions.md?featured_on=pythonbytes"> <strong>& uv python</strong></a></p>
<ul>
<li>I was reading this article <a href="https://dev.to/astrojuanlu/python-packaging-is-great-now-uv-is-all-you-need-4i2d?featured_on=pythonbytes">Python Packaging is Great Now:</a><a href="https://dev.to/astrojuanlu/python-packaging-is-great-now-uv-is-all-you-need-4i2d?utm_source=pocket_shared&featured_on=pythonbytes"> </a><a href="https://dev.to/astrojuanlu/python-packaging-is-great-now-uv-is-all-you-need-4i2d?utm_source=pocket_shared&featured_on=pythonbytes"><code>uv</code></a><a href="https://dev.to/astrojuanlu/python-packaging-is-great-now-uv-is-all-you-need-4i2d?utm_source=pocket_shared&featured_on=pythonbytes"> is all you need</a></li>
<li>It’s a little too “look, a silver bullet” for me, but it did point out some cool uv stuff I didn’t know about.
<ul>
<li>uv venv venv --python 3.12 creates a virtual environment with Python 3.12,
<ul>
<li>even if you didn’t have 3.12 installed on your system already.</li>
<li>If it doesn’t work, try adding --python-preference managed</li>
</ul></li>
<li>uv python list shows all the python versions on your computer</li>
<li>There’s quite a few “experimental features”
<ul>
<li><strong>run</strong> Run a command or script (experimental)</li>
<li><strong>init</strong> Create a new project (experimental)</li>
<li><strong>add</strong> Add dependencies to the project (experimental)</li>
<li><strong>remove</strong> Remove dependencies from the project (experimental)</li>
<li><strong>sync</strong> Update the project's environment (experimental)</li>
<li><strong>lock</strong> Update the project's lockfile (experimental)</li>
<li><strong>tree</strong> Display the project's dependency tree (experimental)</li>
<li><strong>tool</strong> Run and manage tools provided by Python packages (experimental)</li>
<li><strong>python</strong> Manage Python versions and installations (experimental)</li>
</ul></li>
</ul></li>
<li>uv add --dev pytest will add pytest to your dev dependencies.</li>
<li>uv tree rocks</li>
<li>uv might not have “solved packaging” (or maybe it might have)
<ul>
<li>but it sure is fun to watch the experimentation of different workflows.</li>
</ul></li>
</ul>
<p><strong>Michael #2:</strong> <a href="https://docs.python.org/release/3.12.5/whatsnew/changelog.html#python-3-12-5">Python 3.12.5 released</a></p>
<ul>
<li>Lots of changes, see the <a href="https://docs.python.org/release/3.12.5/whatsnew/changelog.html#python-3-12-5">release notes</a></li>
</ul>
<p><strong>Brian #3:</strong> <a href="https://blog.rxbc.se/posts/compile-and-use-dependencies-for-multiple-python-versions-in-tox/?featured_on=pythonbytes">Compile and use dependencies for multiple Python versions in Tox</a></p>
<ul>
<li>Viktor Rimark</li>
<li>Cool idea to use the {envname}, which specifies the tox environment, in the name of a requirements-dev.txt file name.</li>
<li>Then add a requirements tox target to generate pip-compile-ed files.</li>
<li>Now I gotta try doing all of this with uv lock</li>
<li>Then we need everyone to mod their tools to comply with <a href="https://peps.python.org/pep-0751/?featured_on=pythonbytes">PEP 571</a>, when/if it’s adopted (covered it last week)</li>
</ul>
<p><strong>Michael #4:</strong> <a href="https://hallofshame.design/collection/?featured_on=pythonbytes">Catalog of Dark Patterns</a></p>
<ul>
<li>Including
<ul>
<li>Bait and Switch</li>
<li>Confirm Shaming</li>
<li>Disguised Ads</li>
<li>Roach Motel</li>
<li>Fake Scarcity</li>
<li>…</li>
</ul></li>
</ul>
<p><strong>Extras</strong> </p>
<p>Brian:</p>
<ul>
<li>Recording of <a href="https://courses.pythontest.com/hello-pytest?featured_on=pythonbytes">Hello, pytest!</a> is done. Editing now. On track for the 19th (or before).</li>
</ul>
<p>Michael:</p>
<ul>
<li><a href="https://www.djangoproject.com/weblog/2024/aug/07/django-51-released/?featured_on=pythonbytes">Django 5.1</a> released</li>
<li><a href="https://blog.python.org/2024/08/python-3130-release-candidate-1-released.html?featured_on=pythonbytes">Python 3.13.0 release candidate 1</a> released</li>
</ul>
<p><strong>Joke:</strong> </p>
<ul>
<li><a href="https://clownstrike.lol/?featured_on=pythonbytes">clownstrike</a>
<ul>
<li><a href="https://arstechnica.com/tech-policy/2024/08/parody-site-clownstrike-refused-to-bow-to-crowdstrikes-bogus-dmca-takedown?featured_on=pythonbytes">ARS Technica article on DMCA for ClownStrike</a></li>
</ul></li>
</ul>
↧