<strong>Topics covered in this episode:</strong><br>
<ul>
<li><a href="https://wasmer.io/posts/py2wasm-a-python-to-wasm-compiler"><strong>Announcing py2wasm: A Python to Wasm compiler</strong></a></li>
<li><strong>Exploring Python packages with</strong> <a href="https://oven.fming.dev"><strong>Oven</strong></a> <strong>and</strong> <a href="https://pypi-browser.org"><strong>PyPI Browser</strong></a></li>
<li><a href="https://www.youtube.com/watch?v=DLBiJ5kYUFg">PyCharm Local LLM</a></li>
<li><strong>Google shedding Python devs</strong> <strong>(at</strong> <strong>least in the US).</strong></li>
<li><strong>Extras</strong></li>
<li><strong>Joke</strong></li>
</ul><a href='https://www.youtube.com/watch?v=KlLuQ7UT4t8' style='font-weight: bold;'data-umami-event="Livestream-Past" data-umami-event-episode="381">Watch on YouTube</a><br>
<p><strong>About the show</strong></p>
<p>Sponsored by ScoutAPM: <a href="https://pythonbytes.fm/scout">pythonbytes.fm/scout</a></p>
<p><strong>Connect with the hosts</strong></p>
<ul>
<li>Michael: <a href="https://fosstodon.org/@mkennedy"><strong>@[email protected]</strong></a></li>
<li>Brian: <a href="https://fosstodon.org/@brianokken"><strong>@[email protected]</strong></a></li>
<li>Show: <a href="https://fosstodon.org/@pythonbytes"><strong>@[email protected]</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 11am PT. Older video versions available there too.</p>
<p>Finally, if you want an artisanal, hand-crafted digest of every week of </p>
<p>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>Michael #1:</strong> <a href="https://wasmer.io/posts/py2wasm-a-python-to-wasm-compiler"><strong>Announcing py2wasm: A Python to Wasm compiler</strong></a></p>
<ul>
<li>py2wasm converts your Python programs to WebAssembly, running them at 3x faster speeds</li>
<li>thanks to <a href="https://nuitka.net/">Nuitka</a></li>
</ul>
<p><strong>Brian #2:</strong> <strong>Exploring Python packages with</strong> <a href="https://oven.fming.dev"><strong>Oven</strong></a> <strong>and</strong> <a href="https://pypi-browser.org"><strong>PyPI Browser</strong></a></p>
<ul>
<li><a href="https://pypi.org">pypi.org</a> is great, but there are some handy alternatives</li>
<li><a href="https://oven.fming.dev"><strong>Oven</strong></a>
<ul>
<li>Shows how to install stuff with pip, pdm, rye, and poetry</li>
<li>Similar meta and description as PyPI</li>
<li>Includes README.md view (no tables yet, though)</li>
<li>Nice listing of versions</li>
<li>Ability to look at what files are in wheels and tarballs (very cool) </li>
<li>Can deploy yourself. Node/Remix app.</li>
<li>Really slick.</li>
</ul></li>
<li><a href="https://pypi-browser.org">PyPI Browser</a>
<ul>
<li>View versions</li>
<li>View wheel and tarball contents.</li>
<li>Metadata and contents.</li>
<li>No README view</li>
<li>Is a Starlette app that you can deploy on your on with a private registry. So that’s cool.</li>
</ul></li>
</ul>
<p><strong>Michael #3:</strong> <a href="https://www.youtube.com/watch?v=DLBiJ5kYUFg">PyCharm Local LLM</a></p>
<ul>
<li>Pretty awesome full line completer based on a local LLM for PyCharm</li>
<li>Requires PyCharm Professional</li>
<li>An example, given this partial function in Flask:
<pre><code>@blueprint.get('/listing')
def listing():
videos = video_service.all_videos()
</code></pre></li>
</ul>
<p>Typing ret →</p>
<p><img src="https://python-bytes-static.nyc3.digitaloceanspaces.com/llm-complete.png" alt="img" /></p>
<p>That is, typing ret autocompletes to:</p>
<pre><code>return flask.render_template('home/listing.html', videos=videos)
</code></pre>
<p>Which is pretty miraculous, and correct.</p>
<p><strong>Brian #4:</strong> <strong>Google shedding Python devs</strong> <strong>(at</strong> <strong>least in the US).</strong></p>
<ul>
<li><a href="https://techcrunch.com/2024/04/29/google-lays-off-staff-from-flutter-dart-python-weeks-before-its-developer-conference/">Google lays off staff from Flutter, Dart and Python teams weeks before its developer conference</a> - techcrunch</li>
<li><a href="https://www.theregister.com/2024/04/29/google_python_flutter_layoffs/">Python, Flutter teams latest on the Google chopping block</a> - The Register
<ul>
<li>“Despite Alphabet last week <a href="https://www.theregister.com/2024/04/26/register_kettle_ai/">reporting</a> a 57 percent year-on-year jump in net profit to $23.66 billion for calendar Q1, more roles are being expunged as the mega-corp cracks down on costs.”</li>
<li>“As for the Python team, the current positions have <a href="https://social.coop/@Yhg1s/112332127058328855">reportedly</a> been "reduced" in favor of a new team based in Munich.”</li>
</ul></li>
<li>MK: Related and timely: <a href="https://www.wheresyoured.at/the-men-who-killed-google/">How one power-hungry leader destroyed Google search</a></li>
</ul>
<p><strong>Extras</strong> </p>
<p>Brian:</p>
<ul>
<li><a href="https://andrewwegner.com/python-gotcha-strip-functions-unexpected-behavior.html">Python Gotcha: strip, lstrip, rstrip can remove more than expected</a>
<ul>
<li>Reminder: You probably want .removesuffix() and .removeprefix() </li>
</ul></li>
</ul>
<p>Michael:</p>
<ul>
<li><a href="https://lmstudio.ai/blog/llama-3">Using Llama3</a> in <a href="https://lmstudio.ai">LMStudio</a></li>
</ul>
<p><strong>Joke:</strong> <a href="https://devhumor.com/media/broken-system">Broken System</a></p>