PyCoder’s Weekly
2024-03-26T19:30:00+00:00
https://pycoders.com/
PyCoder’s Weekly
Issue #622 (March 26, 2024)
https://pycoders.com/issues/622
2024-03-26T19:30:00+00:00
<p> <span>#622 – MARCH 26, 2024</span><br> <span><a href="https://pycoders.com/issues/622/feed">View in Browser »</a></span> </p> <p><a href="https://pycoders.com"><img alt="The PyCoder’s Weekly Logo" src="https://cdn.pycoders.com/37bdf31dc645f968ffb90196e5d38ff5" style="max-width: 100%;"></a></p> <hr> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12449/feed" target="_blank">Build a Python Turtle Game: Space Invaders Clone</a></h3> <p style="margin-bottom: 0;"> In this step-by-step tutorial, you’ll use Python’s turtle module to write a Space Invaders clone. You’ll learn about techniques used in animations and games, and consolidate your knowledge of key Python topics.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12449/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12442/feed" target="_blank">Getting Help (In Python)</a></h3> <p style="margin-bottom: 0;"> When trying to remember just where <code>sleep()</code> was in the Python standard library, Ishaan stumbled through the built-in help and learned how to use it to answer just these kinds of questions.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12442/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">ISHAAN ARORA</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12415/feed" target="_blank">Reporting Appsec Risk up to Your CISO Body</a></h3> <a href="https://pycoders.com/link/12415/feed" target="_blank"><img style="float:right; margin-left: 16px; margin-top: 7px; width: 17%;" src="https://cdn.pycoders.com/1772f532693d9dba1509bc4f8f05a9a7" alt></a> <p style="margin-bottom: 0;"> Master concise risk reporting for a stronger partnership with your CISO. Translate technical jargon into actionable insights for your CISO with Snyk’s guide on strategies on how to <a href="https://pycoders.com/link/12415/feed" target="_blank">bridge visibility gaps and provide meaningful risk reports →</a><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12415/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">SNYK.IO</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12431/feed" target="_blank">Every Dunder Method in Python</a></h3> <p style="margin-bottom: 0;"> Ever wonder just how many special methods there are in Python? This post explains all of Python’s 100+ dunder methods and 50+ dunder attributes.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12431/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">TREY HUNNER</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12433/feed" target="_blank">PyOhio 2024 Announced</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12433/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYOHIO</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12420/feed" target="_blank">Django REST Framework 3.15</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12420/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">DRF</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12446/feed" target="_blank">EuroPython 2024: Community Voting Is Now Live!</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12446/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">EUROPYTHON</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12429/feed" target="_blank">Python 3.10.14, 3.9.19, and 3.8.19 Security Releases</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12429/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">CPYTHON DEV BLOG</a></span> </p> </div> <h2>Discussions</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12422/feed" target="_blank">Ideas: Make <code>super()</code> Work in a Class Definition</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12422/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYTHON DISCUSS</a></span> </p> </div> <h2>Articles & Tutorials</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12430/feed" target="_blank">SQLite and SQLAlchemy in Python: Beyond Flat Files</a></h3> <p style="margin-bottom: 0;"> In this video course, you’ll learn how to store and retrieve data using Python, SQLite, and SQLAlchemy as well as with flat files. Using SQLite with Python brings with it the additional benefit of accessing data with SQL. By adding SQLAlchemy, you can work with data in terms of objects and methods.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12430/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;">course</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12418/feed" target="_blank">Why Programming Languages Need a Style Czar</a></h3> <p style="margin-bottom: 0;"> The more flexible the language, the more likely you’re going to have a variety of styles in the code. The larger the project the harder it is to manage. This opinion piece explains why having someone dictate how code should look at the language level can be valuable.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12418/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">ADAM GORDON BELL</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12416/feed" target="_blank">Elevate Your Python Coding Game with 250 Pythonic Tips!</a></h3> <a href="https://pycoders.com/link/12416/feed" target="_blank"><img style="float:right; margin-left: 16px; margin-top: 7px; width: 17%;" src="https://cdn.pycoders.com/1ff4edc46112de01eec1545e45887abf" alt></a> <p style="margin-bottom: 0;"> Discover how to write elegant, efficient Python code with our FREE eBook “Pybites Python Tips”. From basics to advanced techniques, these 250 actionable insights will transform your coding approach. <a href="https://pycoders.com/link/12416/feed" target="_blank">Perfect for Pythonistas aiming for mastery →</a><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12416/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYBITES</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12440/feed" target="_blank">Python Basics Exercises: Dictionaries</a></h3> <p style="margin-bottom: 0;"> One of the most useful data structures in Python is the dictionary. In this video course, you’ll practice working with Python dictionaries, see how dictionaries differ from lists and tuples, and define and use dictionaries in your own code.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12440/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;">course</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12436/feed" target="_blank">The (Hidden) Danger of Notebooks in Production</a></h3> <p style="margin-bottom: 0;"> An opinion piece on the perils of utilizing notebooks in a production system. It highlights some of their inherent challenges and presents an alternative approach where notebooks can co-exist with a production system.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12436/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">CHASE GRECO</a> • Shared by Chase Greco</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12443/feed" target="_blank">MVC in Python Web Apps: Explained With Lego</a></h3> <p style="margin-bottom: 0;"> This tutorial conceptually explains the Model-View-Controller (MVC) pattern in Python web apps using Lego bricks. Finally understand this important architecture to streamline your web development process.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12443/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12419/feed" target="_blank">Parsing URLs in Python</a></h3> <p style="margin-bottom: 0;"> Correctly parsing a URL can be tough, in fact the built-in Python functions aren’t fully compliant with the RFC. This post talks about how that is, and a library that gets it right.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12419/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">TYLER KENNEDY</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12417/feed" target="_blank">Rapid Prototyping in Python</a></h3> <p style="margin-bottom: 0;"> This post talks about using Python as a prototyping language for more complex projects in other languages. Rather than write pseudo-code, write actual code to test your ideas.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12417/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">AMJITH</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12424/feed" target="_blank">Go, Python, Rust, and Production AI Applications</a></h3> <p style="margin-bottom: 0;"> Sameer talks about his use of Go, Python, and Rust, and how their approaches effect your application’s safety, along with how that impacts coding for AI systems.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12424/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">SAMEER AJMANI</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12448/feed" target="_blank">20 Django Packages That I Use in Every Project</a></h3> <p style="margin-bottom: 0;"> An opinionated list of Django third-party packages that Will (author of Django for Beginners) uses to add features to his Django web projects.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12448/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">WILL VINCENT</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12447/feed" target="_blank">The Wrong Way to Speed Up Your Code With Numba</a></h3> <p style="margin-bottom: 0;"> Numba can make your numeric code faster, but only if you use it right. Learn what “right” means and what to avoid.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12447/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">ITAMAR TURNER-TRAURING</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12427/feed" target="_blank">4 Ways to Correct Grammar With Python</a></h3> <p style="margin-bottom: 0;"> This tutorial explains various methods for checking and correcting English language grammatical errors using Python.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12427/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">DEEPANSHU BHALLA</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12439/feed" target="_blank">State of WASI Support for CPython: March 2024</a></h3> <p style="margin-bottom: 0;"> Progress on WASI and CPython continues. Brett gives a summary of changes since last year’s post.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12439/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">BRETT CANNON</a></span> </p> </div> <h2>Projects & Code</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12432/feed" target="_blank">likeprogramming: A Python Superset With Slang</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12432/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/STARINGISPOLITE</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12444/feed" target="_blank">wifi-heat-mapper: Benchmark Wi-Fi Networks</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12444/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/NISCHAY-PRO</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12445/feed" target="_blank">Slightly Simplified Subprocesses</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12445/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/POMPONCHIK</a> • Shared by Evgeniy Blinov</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12435/feed" target="_blank">hancho: A Simple, Pleasant Build System in Python</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12435/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/AAPPLEBY</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12421/feed" target="_blank">flect: Python Framework for Full-Stack Web Applications</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12421/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/CHAOYINGZ</a></span> </p> </div> <h2>Events</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12438/feed" target="_blank">Weekly Real Python Office Hours Q&A (Virtual)</a></h3> <p style="margin-bottom: 0;"> March 27, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12438/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REALPYTHON.COM</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12426/feed" target="_blank">SPb Python Drinkup</a></h3> <p style="margin-bottom: 0;"> March 28, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12426/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MEETUP.COM</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12423/feed" target="_blank">PyCamp Spain 2024</a></h3> <p style="margin-bottom: 0;"> March 29 to April 2, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12423/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYCAMP.ES</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12441/feed" target="_blank">PyLadies Amsterdam</a></h3> <p style="margin-bottom: 0;"> March 29, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12441/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MEETUP.COM</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12428/feed" target="_blank">PythOnRio Meetup</a></h3> <p style="margin-bottom: 0;"> March 30, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12428/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYTHON.ORG.BR</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12434/feed" target="_blank">PyCon Lithuania 2024</a></h3> <p style="margin-bottom: 0;"> April 2 to April 7, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12434/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYCON.LT</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12437/feed" target="_blank">PyCascades 2024</a></h3> <p style="margin-bottom: 0;"> April 5 to April 9, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12437/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYCASCADES.COM</a></span> </p> </div> <hr> <p>Happy Pythoning!<br>This was PyCoder’s Weekly Issue #622.<br><a href="https://pycoders.com/issues/622/feed">View in Browser »</a></p> <img src="https://pycoders.com/issues/622/open/feed" width="1" height="1" alt>
<hr />
<p><em>[ Subscribe to 🐍 PyCoder’s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week <a href="https://pycoders.com/?utm_source=pycoders&utm_medium=feed&utm_campaign=footer">>> Click here to learn more</a> ]</em></p>
Issue #621 (March 19, 2024)
https://pycoders.com/issues/621
2024-03-19T19:30:00+00:00
<p> <span>#621 – MARCH 19, 2024</span><br> <span><a href="https://pycoders.com/issues/621/feed">View in Browser »</a></span> </p> <p><a href="https://pycoders.com"><img alt="The PyCoder’s Weekly Logo" src="https://cdn.pycoders.com/37bdf31dc645f968ffb90196e5d38ff5" style="max-width: 100%;"></a></p> <hr> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12396/feed" target="_blank">Visualizing Data in Python With Seaborn</a></h3> <p style="margin-bottom: 0;"> In this tutorial, you’ll learn how to use the Python seaborn library to produce statistical data analysis plots to allow you to better visualize your data. You’ll learn how to use both its traditional classic interface and more modern objects interface.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12396/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12386/feed" target="_blank">Does Python Have Pointers?</a></h3> <p style="margin-bottom: 0;"> Depending on how you’re using the term “pointer” changes the answer to the question. Read on to better understand the programming terminology and whether Python has pointers.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12386/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">NED BATCHELDER</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12413/feed" target="_blank">GPT Pilot Is an OSS Dev Tool That Builds Apps From Scratch by Talking to You</a></h3> <a href="https://pycoders.com/link/12413/feed" target="_blank"><img style="float:right; margin-left: 16px; margin-top: 7px; width: 17%;" src="https://cdn.pycoders.com/7b3d50b31cd483dbc6f961e1c6e17e04" alt></a> <p style="margin-bottom: 0;"> GPT Pilot is a collection of AI agents that automate developer workflows to try offloading 95% of coding tasks from you to the AI. Right now, it can build apps up to ~3000 lines of code see examples <a href="https://pycoders.com/link/12412/feed" target="_blank">here →</a><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12413/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYTHAGORA TECHNOLOGIES INC.</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12390/feed" target="_blank">The Python Memory Model</a></h3> <p style="margin-bottom: 0;"> This article introduces you to how Python stores things in memory. Learn about the heap, the stack, and how the interpreter sees Python objects.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12390/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PEPIJN BAKKER</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12408/feed" target="_blank">Python 3.13.0 Alpha 5 Released</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12408/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">CPYTHON DEV BLOG</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12411/feed" target="_blank">New Malware Reporting Tool on PyPI</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12411/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYPI</a></span> </p> </div> <h2>Articles & Tutorials</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12410/feed" target="_blank">Build an LLM RAG Chatbot With LangChain</a></h3> <p style="margin-bottom: 0;"> Large language models (LLMs) have taken the world by storm, demonstrating unprecedented capabilities in natural language tasks. In this step-by-step tutorial, you’ll leverage LLMs to build your own retrieval-augmented generation (RAG) chatbot using synthetic data with LangChain and Neo4j.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12410/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12404/feed" target="_blank">Use Weird Tests to Capture Tacit Knowledge</a></h3> <p style="margin-bottom: 0;"> Sometimes adding code in one place means configuration elsewhere also needs to be updated. One way of ensuring this is happening properly in a large project is to use unit tests. This post covers a few examples, complete with pytest code.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12404/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">JUSTIN DUKE</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12414/feed" target="_blank">Blocked by Slow Code Reviews? Here’s How to Stop Waiting</a></h3> <a href="https://pycoders.com/link/12414/feed" target="_blank"><img style="float:right; margin-left: 16px; margin-top: 7px; width: 17%;" src="https://cdn.pycoders.com/320a6285b0688d11ab8ba145d8fddb0e" alt></a> <p style="margin-bottom: 0;"> Code reviews are great - but they shouldn’t slow down your development. Sourcery can automatically review every one of your PR’s <a href="https://pycoders.com/link/12414/feed" target="_blank">so your team can keep moving fast →</a><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12414/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">SOURCERY</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12399/feed" target="_blank">Insecurity and Python Pickles</a></h3> <p style="margin-bottom: 0;"> The pickle module allows you to serialize arbitrary Python objects. Serializing them back means executing code, which has potential security issues. Read on to discover what they are and what software may be impacted.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12399/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">DAROC ALDEN</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12391/feed" target="_blank">Python Basics Exercises: Installing Packages With <code>pip</code></a></h3> <p style="margin-bottom: 0;"> In this Python Basics Exercises video course, you’ll practice installing packages with pip. You’ll also practice creating virtual environments, making lists of requirements, and recreating a development environment.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12391/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;">course</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12402/feed" target="_blank">How to Create a Dashboard in Python From PostgreSQL</a></h3> <p style="margin-bottom: 0;"> Accessing a database in a terminal is not the best solution for everyone. Mljar lets you build a dashboard from scratch using only Python.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12402/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MLJAR</a> • Shared by Piotr</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12397/feed" target="_blank">Regex Character “$” Doesn’t Mean “End-of-String”</a></h3> <p style="margin-bottom: 0;"> Regular expression syntax is only somewhat uniform across programming languages. Seth ran into a surprise with “$” and Python.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12397/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">SETH LARSON</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12387/feed" target="_blank">Feature Flags Are Ruining Your Codebase</a></h3> <p style="margin-bottom: 0;"> An opinion piece on feature flags and the dangers of letting PMs control them. Includes suggestions on what to do instead.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12387/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">ANTON ZAIDES</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12409/feed" target="_blank">The 2038 Problem</a></h3> <p style="margin-bottom: 0;"> Learn how “The 2038 problem” could impact software, hardware, and more - and what can be done to prepare.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12409/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">CODE RELIANT</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12392/feed" target="_blank">Add Magic Link Sign-in Using Django</a></h3> <p style="margin-bottom: 0;"> This is a step-by-step guide to adding email sign-in (and verification) to Django using Gmail and others.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12392/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PHOTON DESIGNER</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12393/feed" target="_blank">Email Testing With Python’s <code>smtpd</code> Module</a></h3> <p style="margin-bottom: 0;"> This post dives deep into Python’s <code>smtpd</code> module and explores how it can used for local testing.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12393/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MUHAMMAD</a></span> </p> </div> <h2>Projects & Code</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12398/feed" target="_blank">zakuchess: Chess Challenge Game</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12398/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/OLIVIERPHI</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12389/feed" target="_blank">mountaineer: Web Framework for Python and React</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12389/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/PIERCEFREEMAN</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12395/feed" target="_blank">magika: Detect File Content Types With Deep Learning</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12395/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/GOOGLE</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12406/feed" target="_blank">hyperdiv: Build Reactive Web UIs in Python</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12406/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/HYPERDIV</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12400/feed" target="_blank">UFO: A UI-Focused Agent for Windows OS Interaction</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12400/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/MICROSOFT</a></span> </p> </div> <h2>Events</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12401/feed" target="_blank">Weekly Real Python Office Hours Q&A (Virtual)</a></h3> <p style="margin-bottom: 0;"> March 20, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12401/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REALPYTHON.COM</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12403/feed" target="_blank">PyData Bristol Meetup</a></h3> <p style="margin-bottom: 0;"> March 21, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12403/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MEETUP.COM</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12407/feed" target="_blank">PyLadies Dublin</a></h3> <p style="margin-bottom: 0;"> March 21, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12407/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYLADIES.COM</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12394/feed" target="_blank">Python Barcamp Karlsruhe</a></h3> <p style="margin-bottom: 0;"> March 23 to March 25, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12394/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">BARCAMPS.EU</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12405/feed" target="_blank">PyDelhi User Group Meetup</a></h3> <p style="margin-bottom: 0;"> March 23, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12405/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MEETUP.COM</a></span> </p> </div> <hr> <p>Happy Pythoning!<br>This was PyCoder’s Weekly Issue #621.<br><a href="https://pycoders.com/issues/621/feed">View in Browser »</a></p> <img src="https://pycoders.com/issues/621/open/feed" width="1" height="1" alt>
<hr />
<p><em>[ Subscribe to 🐍 PyCoder’s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week <a href="https://pycoders.com/?utm_source=pycoders&utm_medium=feed&utm_campaign=footer">>> Click here to learn more</a> ]</em></p>
Issue #620 (March 12, 2024)
https://pycoders.com/issues/620
2024-03-12T19:30:00+00:00
<p> <span>#620 – MARCH 12, 2024</span><br> <span><a href="https://pycoders.com/issues/620/feed">View in Browser »</a></span> </p> <p><a href="https://pycoders.com"><img alt="The PyCoder’s Weekly Logo" src="https://cdn.pycoders.com/37bdf31dc645f968ffb90196e5d38ff5" style="max-width: 100%;"></a></p> <hr> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12366/feed" target="_blank">Creating Asynchronous Tasks With Celery and Django</a></h3> <p style="margin-bottom: 0;"> In this video course, you’ll learn how to integrate Celery and Django using Redis as a message broker. You’ll refactor the synchronous email sending functionality of an existing Django app into an asynchronous task that you’ll run with Celery instead.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12366/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;">course</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12359/feed" target="_blank">Understanding Context Manager and Its Syntactic Sugar</a></h3> <p style="margin-bottom: 0;"> The Context Manager is gets used for all kind of interesting things around blocks of code. This article gives a background about the origins of the context manager, which problem it solves and how to use it.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12359/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">BJÖRN RICKS</a> • Shared by Björn Ricks</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12345/feed" target="_blank">🚀 Sentry Launch Week: Making Debugging Fun</a></h3> <a href="https://pycoders.com/link/12345/feed" target="_blank"><img style="float:right; margin-left: 16px; margin-top: 7px; width: 17%;" src="https://cdn.pycoders.com/99b05e684d705c4e09680103b669232e" alt></a> <p style="margin-bottom: 0;"> If you’ve ever been curious about Sentry or application performance monitoring, Launch Week is for you. Tune in from March 18-22 to get the scoop on new products, new features, and a bunch of other cool stuff. You can get a sneak peek (and win free swag) if you RSVP. <a href="https://pycoders.com/link/12345/feed" target="_blank">It’s a win-win →</a><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12345/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">SENTRY</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12365/feed" target="_blank">The Ultimate Guide to Data Wrangling With Python</a></h3> <p style="margin-bottom: 0;"> This comprehensive user guide equips you with the skills required to use Python Polars Data Frames effectively for financial and supply chain data science analytics.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12365/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">AMIT SHUKLA</a> • Shared by <a href="https://pycoders.com/link/12354/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Amit Shukla</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12385/feed" target="_blank">GIL Disable Added to Main Branch of Python Project</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12385/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12379/feed" target="_blank">Django Security Releases Issued: 5.0.3, 4.2.11, and 3.2.25</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12379/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">DJANGO SOFTWARE FOUNDATION</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12380/feed" target="_blank">PyCon US 2024 Talk Schedule Announced</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12380/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYCON US</a></span> </p> </div> <h2>Articles & Tutorials</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12384/feed" target="_blank">Building a Healthy Developer Mindset While Learning Python</a></h3> <p style="margin-bottom: 0;"> How do you get yourself unstuck when facing a programming problem? How do you develop a positive developer mindset while learning Python? This week on the show, Bob Belderbos from Pybites is here to talk about learning Python and building healthy developer habits.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12384/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;">podcast</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12348/feed" target="_blank">Asyncio Patterns in Python</a></h3> <p style="margin-bottom: 0;"> This post talks about how to go from a slow, synchronous process, to a highly concurrent and lightning fast asyncio process. This article starts from the problem in it’s most basic form and incrementally shows you how to move towards concurrency with Asyncio in Python.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12348/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">SKYLER LEWIS</a> • Shared by <a href="https://pycoders.com/link/12381/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">CHernandez</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12346/feed" target="_blank">Master Python: 250 Actionable Tips Await You</a></h3> <a href="https://pycoders.com/link/12346/feed" target="_blank"><img style="float:right; margin-left: 16px; margin-top: 7px; width: 17%;" src="https://cdn.pycoders.com/1ff4edc46112de01eec1545e45887abf" alt></a> <p style="margin-bottom: 0;"> Elevate your Python skills with our FREE ebook containing 250 Bulletproof Python Tips. Ideal for developers eager to refine their coding prowess with practical, instantly applicable advice. Transform your Python code and <a href="https://pycoders.com/link/12346/feed" target="_blank">join a thriving community of Python enthusiasts today →</a><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12346/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYBITES</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12352/feed" target="_blank">Tag-Based Python CI/CD Pipeline</a></h3> <p style="margin-bottom: 0;"> This article walks you through setting up a CI/CD pipeline using Github Actions for Python projects, that trigger on <code>git tag</code> pushes. It also includes a way of handling CI pipeline errors for any point of failure.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12352/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">DHRUV AHUJA</a> • Shared by <a href="https://pycoders.com/link/12369/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Dhruv Ahuja</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12375/feed" target="_blank">Python’s <code>__all__</code>: Packages, Modules, and Wildcard Imports</a></h3> <p style="margin-bottom: 0;"> In this tutorial, you’ll learn about wildcard imports and the <code>__all__</code> variable in Python. With <code>__all__</code>, you can prepare your packages and modules for wildcard imports, which are a quick way to import everything.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12375/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12371/feed" target="_blank">Don’t Mock Machine Learning Models in Unit Tests</a></h3> <p style="margin-bottom: 0;"> How you unit test machine learning code differs from typical software practices and simply using <code>mock</code> often doesn’t cut it. This post covers alternative ways of testing your ML software.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12371/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">EUGENE YAN</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12364/feed" target="_blank">Styling Excel Cells With OpenPyXL and Python</a></h3> <p style="margin-bottom: 0;"> Many Python libraries that deal with Excel only handle data, but OpenPyXL gives you the ability to style your cells in many different ways. Learn how to give your spreadsheets pizazz!<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12364/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MIKE DRISCOLL</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12377/feed" target="_blank">Neat Parallel Output in Python</a></h3> <p style="margin-bottom: 0;"> Max adapts some StackOverflow code to handle multiple output streams in parallel, giving you a quick way to handle the output from concurrent processes at the same time.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12377/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MAX BERNSTEIN</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12351/feed" target="_blank">Python Deque Tutorial With 7 Example Use Cases</a></h3> <p style="margin-bottom: 0;"> This tutorial teaches the mechanics of the data structure <code>collections.deque</code>, using seven example use cases where <code>deque</code> simplifies the implementation of a function.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12351/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">RODRIGO GIRÃO SERRÃO</a> • Shared by <a href="https://pycoders.com/link/12350/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Rodrigo Girão Serrão</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12356/feed" target="_blank">Improving Django Testing With Seed Database</a></h3> <p style="margin-bottom: 0;"> A seed database is one with initial data for your project. They can be useful when testing and in CI/CD pipelines. This article shows you how to create them in Django.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12356/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">KARL FREDRIK HAUGHLAND</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12372/feed" target="_blank">Datetimes With Timezones in Python</a></h3> <p style="margin-bottom: 0;"> The article shows examples of using timezones with datetime objects, using the zoneinfo module added in the standard library in Python 3.9.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12372/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MARKKU LEINIÖ</a> • Shared by <a href="https://pycoders.com/link/12383/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Markku Leiniö</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12347/feed" target="_blank">Speed Up AI Development With Open Source Code Snippets</a></h3> <p style="margin-bottom: 0;"> Save time and resources by building on top of our open-source sample apps. Get a headstart on development and deploy your AI apps faster with Intel’s OpenVINO toolkit.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12347/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">INTEL CORPORATION</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12349/feed" target="_blank">Python Dependencies Are Fixable</a></h3> <p style="margin-bottom: 0;"> Dependency management can be a hurdle for newcomers to Python, and this article argues that better defaults would be the right answer.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12349/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MAT DUGGAN</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12353/feed" target="_blank">Generic Functions and Generic Classes in Python</a></h3> <p style="margin-bottom: 0;"> Python does have generics! Learn how to use typing TypeVar and Generic to reuse code with proper typing.<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12353/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GUI LATROVA</a> • Shared by <a href="https://pycoders.com/link/12378/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Gui Latrova</a></span> </p> </div> <h2>Projects & Code</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12367/feed" target="_blank">django-simple-menu: Code-Based Menus for Django</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12367/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/JAZZBAND</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12368/feed" target="_blank">poltergeist: Rust-Like Error Handling in Python</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12368/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/ALEXANDERMALYGA</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12361/feed" target="_blank">whenever: Strict, Predictable, and Typed Datetimes</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12361/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/ARIEBOVENBERG</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12373/feed" target="_blank">PyprojectX: Make Reproducible Builds</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12373/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/PYPROJECTX</a> • Shared by <a href="https://pycoders.com/link/12370/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Ivo Houbrechts</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12362/feed" target="_blank">modguard: Enforce a Decoupled Architecture</a></h3> <p style="margin-bottom: 0;"> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12362/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/NEVER-OVER</a></span> </p> </div> <h2>Events</h2> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12360/feed" target="_blank">What’s New in Wagtail CMS Webinar</a></h3> <p style="margin-bottom: 0;"> March 12 to March 13, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12360/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">WAGTAIL.ORG</a> • Shared by <a href="https://pycoders.com/link/12382/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Thibaud Colas</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12358/feed" target="_blank">Weekly Real Python Office Hours Q&A (Virtual)</a></h3> <p style="margin-bottom: 0;"> March 13, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12358/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REALPYTHON.COM</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12357/feed" target="_blank">Python Atlanta</a></h3> <p style="margin-bottom: 0;"> March 14 to March 15, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12357/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MEETUP.COM</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12363/feed" target="_blank">PyCon SK 2024</a></h3> <p style="margin-bottom: 0;"> March 15 to March 18, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12363/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYCON.SK</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12355/feed" target="_blank">Django Girls Eket Workshop</a></h3> <p style="margin-bottom: 0;"> March 15 to March 17, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12355/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">DJANGOGIRLS.ORG</a></span> </p> </div> <div> <h3 style="margin-bottom: 0;"><a href="https://pycoders.com/link/12374/feed" target="_blank">Chattanooga Python User Group</a></h3> <p style="margin-bottom: 0;"> March 15 to March 16, 2024<br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:0.8em;text-transform:normal;"><a href="https://pycoders.com/link/12374/feed" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MEETUP.COM</a></span> </p> </div> <hr> <p>Happy Pythoning!<br>This was PyCoder’s Weekly Issue #620.<br><a href="https://pycoders.com/issues/620/feed">View in Browser »</a></p> <img src="https://pycoders.com/issues/620/open/feed" width="1" height="1" alt>
<hr />
<p><em>[ Subscribe to 🐍 PyCoder’s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week <a href="https://pycoders.com/?utm_source=pycoders&utm_medium=feed&utm_campaign=footer">>> Click here to learn more</a> ]</em></p>