<strong>Topics covered in this episode:</strong><br>
<ul>
<li><strong><a href="https://micro.webology.dev/2024/12/14/new-project-to.html?featured_on=pythonbytes">New project to shorten django-admin to django because we are not monsters</a></strong></li>
<li><strong><a href="https://github.com/adamghill/django-unicorn?featured_on=pythonbytes">django-unicorn</a>: The magical reactive component framework for Django <img src="https://paper.dropboxstatic.com/static/img/ace/emoji/2728.png?version=8.0.0" alt="sparkles" /></strong></li>
<li><strong><a href="https://nedbatchelder.com/blog/202412/testing_some_tidbits.html?featured_on=pythonbytes">Testing some tidbits</a></strong></li>
<li><strong><a href="https://blog.jetbrains.com/pycharm/2024/12/the-state-of-python/?featured_on=pythonbytes">The State of Python 2024 article</a></strong></li>
<li><strong>Extras</strong></li>
<li><strong>Joke</strong></li>
</ul><a href='https://www.youtube.com/watch?v=y1_HzSE83jc' style='font-weight: bold;'data-umami-event="Livestream-Past" data-umami-event-episode="414">Watch on YouTube</a><br>
<p><strong>About the show</strong></p>
<p>Sponsored by us! Support our work through:</p>
<ul>
<li>Our <a href="https://training.talkpython.fm/?featured_on=pythonbytes"><strong>courses at Talk Python Training</strong></a></li>
<li><a href="https://courses.pythontest.com/p/the-complete-pytest-course?featured_on=pythonbytes"><strong>The Complete pytest Course</strong></a></li>
<li><a href="https://www.patreon.com/pythonbytes"><strong>Patreon Supporters</strong></a></li>
</ul>
<p><strong>Connect with the hosts</strong></p>
<ul>
<li>Michael: <a href="https://fosstodon.org/@mkennedy"><strong>@mkennedy@fosstodon.org</strong></a> <strong>/</strong> <a href="https://bsky.app/profile/mkennedy.codes?featured_on=pythonbytes"><strong>@mkennedy.codes</strong></a> <strong>(bsky)</strong></li>
<li>Brian: <a href="https://fosstodon.org/@brianokken"><strong>@brianokken@fosstodon.org</strong></a> <strong>/</strong> <a href="https://bsky.app/profile/brianokken.bsky.social?featured_on=pythonbytes"><strong>@brianokken.bsky.social</strong></a></li>
<li>Show: <a href="https://fosstodon.org/@pythonbytes"><strong>@pythonbytes@fosstodon.org</strong></a> <strong>/</strong> <a href="https://bsky.app/profile/pythonbytes.fm"><strong>@pythonbytes.fm</strong></a> <strong>(bsky)</strong></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 <strong>Monday</strong> 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://micro.webology.dev/2024/12/14/new-project-to.html?featured_on=pythonbytes">New project to shorten django-admin to django because we are not monsters</a></p>
<ul>
<li>Jeff Tripplet has created <a href="https://github.com/jefftriplett/django-cli-no-admin?featured_on=pythonbytes">django-cli-no-admin</a> to shorten django-admin to just django.</li>
<li>“One of the biggest mysteries in Django is why I have to run django-admin from my terminal instead of just running django. Confusingly, django-admin has nothing to do with Django’s admin app.”</li>
<li>Instead of typing things like: django-admin startproject mysite projectname</li>
<li>We can type the shorter: django startproject mysite projectname</li>
<li>I love this kind of developer speedup / comfort improvements</li>
<li>And yes, Jeff wants Django to eventually include this as the default way to run the command line utilities.</li>
</ul>
<p><strong>Michael #2:</strong> <a href="https://github.com/adamghill/django-unicorn?featured_on=pythonbytes">django-unicorn</a>: The magical reactive component framework for Django <img src="https://paper.dropboxstatic.com/static/img/ace/emoji/2728.png?version=8.0.0" alt="sparkles" /></p>
<ul>
<li>Add modern site functionality: Quickly add in simple interactions to regular Django templates without learning a new templating language.</li>
<li>Skip the JavaScript build tools</li>
<li>No API required: Skip creating a bunch of serializers and just use Django.</li>
</ul>
<p><strong>Brian #3:</strong> <a href="https://nedbatchelder.com/blog/202412/testing_some_tidbits.html?featured_on=pythonbytes">Testing some tidbits</a></p>
<ul>
<li>Ned Batchelder</li>
<li>Different ways to test to see if a string has only 0 or 1 in it.</li>
<li>And also, a way to check all the different ways to make sure they work.</li>
<li>Fun post, and I learned about
<ul>
<li>cleandoc - a way to strip leading blank space and maintain code block indentation
<ul>
<li>I usually use textwrap.dedent()</li>
</ul></li>
<li>partition - splitting strings based on a substring</li>
<li>Using | to pass imports to eval() - I don't use eval much.</li>
</ul></li>
<li>However, no pytest! </li>
<li>Here’s a way to check all this with pytest:
<ul>
<li><a href="https://pythontest.com/pytest/testing-tidbits-pytest/?featured_on=pythonbytes">Testing some tidbits with pytest</a></li>
</ul></li>
</ul>
<p><strong>Michael #4:</strong> <a href="https://blog.jetbrains.com/pycharm/2024/12/the-state-of-python/?featured_on=pythonbytes">The State of Python 2024 article</a></p>
<ol>
<li>Python usage with other languages drops as general adoption grows</li>
<li>41% of Python developers have under 2 years of experience</li>
<li>Python learning expands through diverse channels</li>
<li>The Python 2 vs. 3 divide is in the distant past</li>
<li>Flask, Django, and FastAPI remain top Python web frameworks</li>
<li>Most Python web apps run on hyperscale clouds</li>
<li>Containers over VMs over hardware</li>
<li>uv takes Python packaging by storm</li>
</ol>
<p><strong>Extras</strong> </p>
<p>Brian:</p>
<ul>
<li>More Django: <a href="https://draculatheme.com/django-admin?featured_on=pythonbytes">Dracula Theme for Django Admin</a></li>
</ul>
<p>Michael:</p>
<ul>
<li><a href="https://zen-browser.app/?featured_on=pythonbytes">Zen Browser update</a></li>
<li><a href="https://bsky.app/profile/did:plc:u4qsxlhzx76gwoyj4xvtxbuf/post/3lcye7a5flk2d?featured_on=pythonbytes">Office refresh</a></li>
<li><a href="https://blobs.pythonbytes.fm/transcripts-in-player.webp">Transcripts</a> (in some players)</li>
</ul>
<p><img src="https://blobs.pythonbytes.fm/transcripts-in-player.webp" alt="" /></p>
<p><strong>Joke:</strong></p>
<ul>
<li><a href="https://bsky.app/profile/mbetm.bsky.social/post/3lcl6qoo43c2q?featured_on=pythonbytes">Volkswagen, passing all the tests </a></li>
</ul>
↧