<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>PyCoder’s Weekly</title>
  <link href="https://pycoders.com/feed/planetpython" rel="self"/>
  <link href="https://pycoders.com/"/>
  <updated>2026-08-18T19:30:00+00:00</updated>
  <id>https://pycoders.com/</id>
  <author>
    <name>PyCoder’s Weekly</name>
  </author>

  
    <entry>
      <title>Issue #748: Line Breaks, OpenCode, Segfaults, and More (2026-08-18)</title>
      <id>https://pycoders.com/issues/748</id>
      <link href="https://pycoders.com/issues/748"/>
      <updated>2026-08-18T19:30:00+00:00</updated>
      
      <content type="html">
         &lt;p&gt; &lt;span&gt;#748 – AUGUST 18, 2026&lt;/span&gt;&lt;br&gt; &lt;span&gt;&lt;a href=&quot;https://pycoders.com/issues/748/feed&quot;&gt;View in Browser »&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://pycoders.com&quot;&gt;&lt;img alt=&quot;The PyCoder&amp;rsquo;s Weekly Logo&quot; src=&quot;https://cdn.pycoders.com/37bdf31dc645f968ffb90196e5d38ff5&quot; style=&quot;max-width: 100%;&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;hr&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16936/feed&quot; target=&quot;_blank&quot;&gt;Breaking Up (Lines) Is Hard to Do&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Here’s a seemingly simple question: given a chunk of multi-line text, how do you split it and return an array? Unicode makes everything harder than it might first seem.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16936/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;B-LIST.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16916/feed&quot; target=&quot;_blank&quot;&gt;Coding With OpenCode: AI-Assisted Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn how to use OpenCode for AI-assisted Python coding, using a free Gemini API key to analyze and refactor code right in your terminal.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16916/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;&quot;&gt;course&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16937/feed&quot; target=&quot;_blank&quot;&gt;Quiz: Coding With OpenCode: AI-Assisted Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16937/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16946/feed&quot; target=&quot;_blank&quot;&gt;The Top Open-Source Code Reviewer on Code-Review-Bench&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; PR-AF places #2 of 42 overall on Martian&amp;rsquo;s Code-Review-Bench, ahead of CodeRabbit, Copilot, and Devin. Roughly 3x more valid findings than the commercial tools, at ~10x lower cost per review. Verified findings only. Apache 2.0, self-hosted, runs on any open or closed model. &lt;a href=&quot;https://pycoders.com/link/16946/feed&quot; target=&quot;_blank&quot;&gt;Star &amp;amp; Deploy →&lt;/a&gt;&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16946/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;AGENTFIELD&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;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;&quot;&gt;sponsor&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16918/feed&quot; target=&quot;_blank&quot;&gt;Two Lines of Python That Segfault the Interpreter&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Two lines of plain Python segfaulted every CPython with lazy annotations: PEP 749 gave SET_ADD an operand that user code can rebind.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16918/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;TIMOFEI IVANKOV&lt;/a&gt; • Shared by &lt;a href=&quot;https://pycoders.com/link/16939/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;Timofei Ivankov&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16938/feed&quot; target=&quot;_blank&quot;&gt;Packaging Council Election Candidates for 2026!&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16938/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16914/feed&quot; target=&quot;_blank&quot;&gt;Announcing the PSF Board Candidates for 2026!&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16914/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON SOFTWARE FOUNDATION&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16931/feed&quot; target=&quot;_blank&quot;&gt;Django Is Moving to an Annual Release Cycle&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16931/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;DJANGO SOFTWARE FOUNDATION&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16927/feed&quot; target=&quot;_blank&quot;&gt;PEP 844: &lt;code&gt;public&lt;/code&gt; and &lt;code&gt;private&lt;/code&gt; Builtins (Draft)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16927/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16917/feed&quot; target=&quot;_blank&quot;&gt;Python 3.12.14, 3.11.16 and 3.10.21 Released&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16917/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16943/feed&quot; target=&quot;_blank&quot;&gt;Django Rest Framework Release 3.18.0&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16943/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/ENCODE&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;h2&gt;Articles &amp;amp; Tutorials&lt;/h2&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16910/feed&quot; target=&quot;_blank&quot;&gt;OAuth 2.0 in Python: The Authorization Code Flow Explained&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; OAuth&amp;rsquo;s authorization code flow, explained from the four roles up: the redirect, the code-for-token exchange, state, PKCE, and refresh tokens, with a complete runnable Python script and a table of the OAuth errors you&amp;rsquo;ll actually hit.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16910/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;ENDPOINT51.COM&lt;/a&gt; • Shared by Simon O&amp;rsquo;Connor&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16926/feed&quot; target=&quot;_blank&quot;&gt;The Problem With pandas Isn&amp;rsquo;t Performance&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; This opinion piece argues that pandas’ biggest everyday cost is often cognitive overhead rather than execution time and explores whether a backend-independent data-analysis DSL could reduce it&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16926/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;NEAL HUGHES&lt;/a&gt; • Shared by &lt;a href=&quot;https://pycoders.com/link/16934/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;Neal Hughes&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16947/feed&quot; target=&quot;_blank&quot;&gt;🐍 Object-Oriented Python, Taught Live&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; The Object-Oriented Python live cohort begins August 24. Five 2-hour Zoom sessions Mon to Fri build one growing application end to end, with OOP features introduced as the code starts needing them: classes, the data model, inheritance vs composition, properties, dataclasses. &lt;a href=&quot;https://pycoders.com/link/16947/feed&quot; target=&quot;_blank&quot;&gt;Learn more →&lt;/a&gt;&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16947/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;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;&quot;&gt;sponsor&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16919/feed&quot; target=&quot;_blank&quot;&gt;Security of Everything at PyCon 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; This year&amp;rsquo;s PyCon US added a dedicated security track. Talk Python interviews some of the key folks from the center of it: Juanita Gomez, Mike Fiedler, and Seth Michael Larson.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16919/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;TALK PYTHON&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;&quot;&gt;podcast&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16935/feed&quot; target=&quot;_blank&quot;&gt;The HTML Representation of the Index API Is Now Frozen&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &amp;lsquo;PyPI has adopted PEP 833, which &amp;ldquo;freezes&amp;rdquo; the HTML representation of the index API, which is also sometimes called the &amp;ldquo;simple API&amp;rdquo; or the &amp;ldquo;simple repository API.&amp;rdquo;&amp;rsquo;&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16935/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYPI.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16912/feed&quot; target=&quot;_blank&quot;&gt;How to Integrate OpenTelemetry With a FastAPI App&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn how to integrate OpenTelemetry with a FastAPI app in Python to instrument endpoints, export traces, add custom spans, and correlate logs.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16912/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16921/feed&quot; target=&quot;_blank&quot;&gt;Quiz: How to Integrate OpenTelemetry With a FastAPI App&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16921/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16932/feed&quot; target=&quot;_blank&quot;&gt;Qt Designer and Python: Build Your GUI Applications Faster&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn how to use Qt Designer to build Python GUIs with PyQt6. Create your main windows and dialogs visually, then load them in your app.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16932/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16929/feed&quot; target=&quot;_blank&quot;&gt;Admin Form Injection&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn about a hidden Django admin feature for passing values between pop-up windows on the web.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16929/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;TIM SCHILLING&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16915/feed&quot; target=&quot;_blank&quot;&gt;Caller-Specific Coverage&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; An idea for a new feature for coverage measurement: per-caller coverage&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16915/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;NED BATCHELDER&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;h2&gt;Projects &amp;amp; Code&lt;/h2&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16908/feed&quot; target=&quot;_blank&quot;&gt;pytest-leak-finder: Find Leaking Test Before the One That Fails&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16908/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/MGAITAN&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16920/feed&quot; target=&quot;_blank&quot;&gt;num2words: Convert Numbers to Words. 42 &amp;ndash;&amp;gt; Forty-Two&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16920/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/SAVOIRFAIRELINUX&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16945/feed&quot; target=&quot;_blank&quot;&gt;marimo-book: Static Site Generator for &lt;code&gt;marimo&lt;/code&gt; Notebooks&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16945/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/LJCHANG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16940/feed&quot; target=&quot;_blank&quot;&gt;pyrig: Aautomate Python Project Setup&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16940/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/WINIPEDIA&lt;/a&gt; • Shared by Winipedia&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16933/feed&quot; target=&quot;_blank&quot;&gt;cog: Embedded Graph Database for Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16933/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/ARUN1729&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;h2&gt;Events&lt;/h2&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16941/feed&quot; target=&quot;_blank&quot;&gt;Weekly Real Python Office Hours Q&amp;amp;A (Virtual)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 19, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16941/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REALPYTHON.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16925/feed&quot; target=&quot;_blank&quot;&gt;PyCon Ghana 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 20 to August 23, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16925/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16930/feed&quot; target=&quot;_blank&quot;&gt;PyCon Latam 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 20 to August 24, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16930/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYLATAM.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16909/feed&quot; target=&quot;_blank&quot;&gt;PyLadies: Getting Started With Tabular Foundation Models With TabPFN&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 20, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16909/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;MEETUP.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16922/feed&quot; target=&quot;_blank&quot;&gt;PyData Bristol Meetup&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 20, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16922/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;MEETUP.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16913/feed&quot; target=&quot;_blank&quot;&gt;OSS Security Meetup: Mike Fiedler, PyPI Safety and Security Engineer&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Wednesday, August 26&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16913/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;LUMA.COM&lt;/a&gt; • Shared by Mila Zhou&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16923/feed&quot; target=&quot;_blank&quot;&gt;PyCon JP 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 21 to August 24, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16923/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.JP&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16924/feed&quot; target=&quot;_blank&quot;&gt;DjangoCon US 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 24 to August 29, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16924/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;DJANGOCON.US&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16911/feed&quot; target=&quot;_blank&quot;&gt;PyCon AU 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 26 to August 31, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16911/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.ORG.AU&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16928/feed&quot; target=&quot;_blank&quot;&gt;PyCon PL 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 27 to August 31, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16928/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16944/feed&quot; target=&quot;_blank&quot;&gt;PyCon Kenya 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 28 to August 30, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16944/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.KE&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16942/feed&quot; target=&quot;_blank&quot;&gt;PyCon Togo 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 28 to August 30, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16942/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTOGO.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;hr&gt; &lt;p&gt;Happy Pythoning!&lt;br&gt;This was PyCoder&amp;rsquo;s Weekly Issue #748.&lt;br&gt;&lt;a href=&quot;https://pycoders.com/issues/748/feed&quot;&gt;View in Browser »&lt;/a&gt;&lt;/p&gt; &lt;img src=&quot;https://pycoders.com/issues/748/open/feed&quot; width=&quot;1&quot; height=&quot;1&quot; alt&gt; 
        &lt;hr /&gt;
        &lt;p&gt;&lt;em&gt;[ Subscribe to 🐍 PyCoder&amp;rsquo;s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week &lt;a href=&quot;https://pycoders.com/?utm_source=pycoders&amp;amp;utm_medium=feed&amp;amp;utm_campaign=footer&quot;&gt;&amp;gt;&amp;gt; Click here to learn more&lt;/a&gt; ]&lt;/em&gt;&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>Issue #747: Modern OOP, bisect, Django Async, and More (2026-08-11)</title>
      <id>https://pycoders.com/issues/747</id>
      <link href="https://pycoders.com/issues/747"/>
      <updated>2026-08-11T19:30:00+00:00</updated>
      
      <content type="html">
         &lt;p&gt; &lt;span&gt;#747 – AUGUST 11, 2026&lt;/span&gt;&lt;br&gt; &lt;span&gt;&lt;a href=&quot;https://pycoders.com/issues/747/feed&quot;&gt;View in Browser »&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://pycoders.com&quot;&gt;&lt;img alt=&quot;The PyCoder&amp;rsquo;s Weekly Logo&quot; src=&quot;https://cdn.pycoders.com/37bdf31dc645f968ffb90196e5d38ff5&quot; style=&quot;max-width: 100%;&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;hr&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16885/feed&quot; target=&quot;_blank&quot;&gt;New Book: Modern Object-Oriented Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Real Python&amp;rsquo;s new book on classes, Python&amp;rsquo;s data model, and object-oriented design is out in Early Access. Nine chapters collected from a decade of tutorials, re-edited into one curriculum, and updated for today&amp;rsquo;s Python.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16885/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16898/feed&quot; target=&quot;_blank&quot;&gt;Binary Search in Python With &lt;code&gt;bisect&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Python&amp;rsquo;s &lt;code&gt;bisect&lt;/code&gt; module implements binary search for you. Here&amp;rsquo;s how &lt;code&gt;bisect_left&lt;/code&gt;, &lt;code&gt;bisect_right&lt;/code&gt;, and &lt;code&gt;insort&lt;/code&gt; work, plus recipes for finding the closest match or all values in a range.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16898/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;TREY HUNNER&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16907/feed&quot; target=&quot;_blank&quot;&gt;Let AI Agents Into Your B2B App. Securely&lt;/a&gt;&lt;/h3&gt; &lt;a href=&quot;https://pycoders.com/link/16907/feed&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;float:right; margin-left: 16px; margin-top: 7px; width: 17%;&quot; src=&quot;https://cdn.pycoders.com/012e0a1cbc39d888c748f46d3b3a4e1a&quot; alt&gt;&lt;/a&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; More of your users are asking to connect AI agents to your product, and you want to say yes. PropelAuth lets you give each agent scoped, revocable access, so you stay in control of what it can do. &lt;a href=&quot;https://pycoders.com/link/16907/feed&quot; target=&quot;_blank&quot;&gt;Learn More →&lt;/a&gt;&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16907/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PROPELAUTH&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;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;&quot;&gt;sponsor&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16883/feed&quot; target=&quot;_blank&quot;&gt;Updates on Django&amp;rsquo;s Async Story&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; For years, &amp;ldquo;Django and async&amp;rdquo; came with an asterisk. The docs themselves warned you off it, but that has changed. Talk Python interviews Carlton Gibson and they talk async in Django.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16883/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;TALK PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16880/feed&quot; target=&quot;_blank&quot;&gt;PEP 841: Adding Frozen Syntax to Optimize Immutable Types (Draft)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16880/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16879/feed&quot; target=&quot;_blank&quot;&gt;PEP 833: Freezing the HTML Simple Repository API (Final)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16879/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16899/feed&quot; target=&quot;_blank&quot;&gt;PEP 828: Supporting &amp;lsquo;Yield From&amp;rsquo; in Asynchronous Generators (Accepted)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16899/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16866/feed&quot; target=&quot;_blank&quot;&gt;PEP 837: Extensible JSON Serialization (Draft)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16866/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16876/feed&quot; target=&quot;_blank&quot;&gt;Python 3.14.7 and 3.13.15 Released&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16876/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16886/feed&quot; target=&quot;_blank&quot;&gt;Django 6.1 Released&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16886/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;DJANGO SOFTWARE FOUNDATION&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;h2&gt;Articles &amp;amp; Tutorials&lt;/h2&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16888/feed&quot; target=&quot;_blank&quot;&gt;Take the 2026 Python Typing Survey&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Now in its third year, the Python Typing Survey has become a recognised reference point for the direction of Python&amp;rsquo;s type system. It’s being referenced in PEPs and presentations to the Python community. Whether you’re an experienced user of Python types or someone who hasn’t yet written your first type annotation, participating in this survey helps the open-source community make Python better for everyone.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16888/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;SURVEYMONKEY.COM&lt;/a&gt; • Shared by &lt;a href=&quot;https://pycoders.com/link/16882/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;Abby Mitchell&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16889/feed&quot; target=&quot;_blank&quot;&gt;Hydra for Python Configuration: Build Modular and Maintainable Pipelines&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Hardcoded paths and parameters can quickly drift out of sync across a data science project&amp;rsquo;s scripts. This article shows how to move them into Hydra configuration files, access values with dot notation, override settings from the command line, swap entire configuration groups, and run experiment sweeps with a single multirun flag.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16889/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;CODECUT.AI&lt;/a&gt; • Shared by &lt;a href=&quot;https://pycoders.com/link/16887/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;Khuyen Tran&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16885/feed&quot; target=&quot;_blank&quot;&gt;📘 Modern Object-Oriented Python: Write Clean, Pythonic Code With OOP&lt;/a&gt;&lt;/h3&gt; &lt;a href=&quot;https://pycoders.com/link/16885/feed&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;float:right; margin-left: 16px; margin-top: 7px; width: 17%;&quot; src=&quot;https://cdn.pycoders.com/d3a154550452c0af0b8a4bb9df4e9e7d&quot; alt&gt;&lt;/a&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn to design classes that feel native to Python: special methods, inheritance vs. composition, properties, data classes, and the SOLID principles. &lt;a href=&quot;https://pycoders.com/link/16885/feed&quot; target=&quot;_blank&quot;&gt;Get Your Copy →&lt;/a&gt;&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16885/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;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;&quot;&gt;sponsor&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16869/feed&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;asyncio.all_tasks()&lt;/code&gt; Could Silently Drop Tasks on the Free-Threaded Build&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; A concrete example of how free-threading turns old GIL-era assumptions into silent bugs: &lt;code&gt;asyncio.all_tasks()&lt;/code&gt; dropping live tasks from another thread. Useful for anyone porting or debugging code under the free-threaded build. Written by the author of the fix.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16869/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;DEADLOVELLL.GITHUB.IO&lt;/a&gt; • Shared by Timofei Ivankov&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16900/feed&quot; target=&quot;_blank&quot;&gt;Celery: From First Task to Advanced Recipes&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Celery is a mature distributed task queue for Python, but many practical details aren&amp;rsquo;t immediately obvious from the documentation. This guide goes from the basic usage to timeouts, retries, preventing parallel execution, and emulating async/await support.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16900/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;STANISLAV GOLEV&lt;/a&gt; • Shared by Stanislav Golev&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16896/feed&quot; target=&quot;_blank&quot;&gt;Programmatically Developing LLM Prompts With DSPy&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; How can you move from manually writing prompts for an LLM application toward defining them programmatically? This week on the show, Brett Kennedy returns to discuss his new book &amp;ldquo;Building LLM Applications with DSPy.&amp;rdquo;&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16896/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;&quot;&gt;podcast&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16904/feed&quot; target=&quot;_blank&quot;&gt;Nifty Django Feature: &lt;code&gt;setUpTestData&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; The &lt;code&gt;setUp()&lt;/code&gt; call in &lt;code&gt;TestCase&lt;/code&gt; gets invoked for every single test. Django adds &lt;code&gt;setUpTestData()&lt;/code&gt; which only gets called once per test class, meaning your tests can run faster.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16904/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;TIM SCHILLING&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16874/feed&quot; target=&quot;_blank&quot;&gt;Thoughts on &amp;ldquo;SIMD in Pure Python&amp;rdquo;&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; This article is a response to &lt;a href=&quot;https://pycoders.com/link/16891/feed&quot; target=&quot;_blank&quot;&gt;SIMD in Pure Python&lt;/a&gt; and discusses ways of optimizing his code even further.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16874/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;ALISA SIRENEVA&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16878/feed&quot; target=&quot;_blank&quot;&gt;Since When? Which Python Version Added That&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; An interesting tool where you paste Python into it to see which version added each feature it uses, or look up a single built-in, module, or piece of syntax.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16878/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHONMORSELS.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16870/feed&quot; target=&quot;_blank&quot;&gt;Validating Data With Pointblank in Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn how to validate data in Python with Pointblank: declare quality checks, split clean from failing rows, and rerun validation plans from YAML.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16870/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16895/feed&quot; target=&quot;_blank&quot;&gt;Quiz: Validating Data With Pointblank in Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16895/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16902/feed&quot; target=&quot;_blank&quot;&gt;Acidica&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Ned has written a toy BASIC interpreter in Python. This announcement post tells you why (&amp;ldquo;for fun&amp;rdquo;) and talks about the accomplishment.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16902/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;NED BATCHELDER&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16894/feed&quot; target=&quot;_blank&quot;&gt;Some More Things About Django I&amp;rsquo;ve Been Enjoying&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Julia has been learning Django to create websites in &amp;ldquo;2010 style&amp;rdquo;. This post talks about new things she&amp;rsquo;s picked up along the way.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16894/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;JULIA EVANS&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16903/feed&quot; target=&quot;_blank&quot;&gt;Sending Emails Using Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn how to send emails with Python using SMTP and smtplib, attach files, format HTML messages, and personalize bulk emails.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16903/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;&quot;&gt;course&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16875/feed&quot; target=&quot;_blank&quot;&gt;Quiz: Sending Emails Using Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16875/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;h2&gt;Projects &amp;amp; Code&lt;/h2&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16867/feed&quot; target=&quot;_blank&quot;&gt;xy: Ultra-Fast and Customizable Python Charts&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16867/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/REFLEX-DEV&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16873/feed&quot; target=&quot;_blank&quot;&gt;autowt: A Better &lt;code&gt;git&lt;/code&gt; Worktree Experience&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16873/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/IRSKEP&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16884/feed&quot; target=&quot;_blank&quot;&gt;vscode-marimo: &lt;code&gt;marimo&lt;/code&gt; Vscode Extension&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16884/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/MARIMO-TEAM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16868/feed&quot; target=&quot;_blank&quot;&gt;commerce: Opensource E-Commerce Platform&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16868/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/SPWIG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16881/feed&quot; target=&quot;_blank&quot;&gt;Build and Inspect Python Packages in GitHub Actions&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16881/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/HYNEK&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;h2&gt;Events&lt;/h2&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16905/feed&quot; target=&quot;_blank&quot;&gt;Weekly Real Python Office Hours Q&amp;amp;A (Virtual)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 12, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16905/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REALPYTHON.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16893/feed&quot; target=&quot;_blank&quot;&gt;Python Nordeste 2026 (PyNE 2026)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 13 to August 16, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16893/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHONNORDESTE.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16897/feed&quot; target=&quot;_blank&quot;&gt;Python Help: Problems to Solutions&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 13, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16897/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;NONE&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16890/feed&quot; target=&quot;_blank&quot;&gt;Python Atlanta&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 13 to August 14, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16890/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;MEETUP.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16872/feed&quot; target=&quot;_blank&quot;&gt;PyCon Korea 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 15 to August 18, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16872/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.KR&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16871/feed&quot; target=&quot;_blank&quot;&gt;DjangoCologne&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 18, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16871/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;MEETUP.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16892/feed&quot; target=&quot;_blank&quot;&gt;PyCon Ghana 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 20 to August 23, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16892/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16901/feed&quot; target=&quot;_blank&quot;&gt;PyCon Latam 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 20 to August 24, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16901/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYLATAM.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16877/feed&quot; target=&quot;_blank&quot;&gt;PyCon JP 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 21 to August 24, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16877/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.JP&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;hr&gt; &lt;p&gt;Happy Pythoning!&lt;br&gt;This was PyCoder&amp;rsquo;s Weekly Issue #747.&lt;br&gt;&lt;a href=&quot;https://pycoders.com/issues/747/feed&quot;&gt;View in Browser »&lt;/a&gt;&lt;/p&gt; &lt;img src=&quot;https://pycoders.com/issues/747/open/feed&quot; width=&quot;1&quot; height=&quot;1&quot; alt&gt; 
        &lt;hr /&gt;
        &lt;p&gt;&lt;em&gt;[ Subscribe to 🐍 PyCoder&amp;rsquo;s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week &lt;a href=&quot;https://pycoders.com/?utm_source=pycoders&amp;amp;utm_medium=feed&amp;amp;utm_campaign=footer&quot;&gt;&amp;gt;&amp;gt; Click here to learn more&lt;/a&gt; ]&lt;/em&gt;&lt;/p&gt;
      </content>
    </entry>
  
    <entry>
      <title>Issue #746: Free-Threaded NumPy, __all__, PyTorch, and More (2026-08-04)</title>
      <id>https://pycoders.com/issues/746</id>
      <link href="https://pycoders.com/issues/746"/>
      <updated>2026-08-04T19:30:00+00:00</updated>
      
      <content type="html">
         &lt;p&gt; &lt;span&gt;#746 – AUGUST 4, 2026&lt;/span&gt;&lt;br&gt; &lt;span&gt;&lt;a href=&quot;https://pycoders.com/issues/746/feed&quot;&gt;View in Browser »&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;&lt;a href=&quot;https://pycoders.com&quot;&gt;&lt;img alt=&quot;The PyCoder&amp;rsquo;s Weekly Logo&quot; src=&quot;https://cdn.pycoders.com/37bdf31dc645f968ffb90196e5d38ff5&quot; style=&quot;max-width: 100%;&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;hr&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16836/feed&quot; target=&quot;_blank&quot;&gt;Scaling NumPy on Free-Threaded Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; A recap on the work done in NumPy and CPython to make multi-threaded NumPy workloads scale on the free-threaded build of CPython.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16836/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;KUMAR ADITYA&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16848/feed&quot; target=&quot;_blank&quot;&gt;Managing Imports With Python&amp;rsquo;s &lt;code&gt;__all__&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn how Python&amp;rsquo;s dunder all variable controls wildcard imports and shapes the public API your packages and modules expose.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16848/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;&quot;&gt;course&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16840/feed&quot; target=&quot;_blank&quot;&gt;Quiz: Managing Imports With Python&amp;rsquo;s &lt;code&gt;__all__&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16840/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16865/feed&quot; target=&quot;_blank&quot;&gt;Open Source Just Reached Frontier Code Review&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; An open-source code reviewer just outranked leading closed models. pr-af places #2 of 42 on Code-Review-Bench. The open-source harness plans a custom review per PR, runs reviewer agents in parallel, and verifies every finding against your source before posting inline comments. About 10x cheaper. &lt;a href=&quot;https://pycoders.com/link/16865/feed&quot; target=&quot;_blank&quot;&gt;Star &amp;amp; Deploy&lt;/a&gt;&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16865/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;AGENTFIELD.AI&lt;/a&gt;&lt;/span&gt; &lt;span style=&quot;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;&quot;&gt;sponsor&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16842/feed&quot; target=&quot;_blank&quot;&gt;PyTorch Tutorial for Deep Learning&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; This article provides a guide for developers with basic Python knowledge looking to explore deep learning using PyTorch.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16842/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;EVGENIA VERBINA&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16858/feed&quot; target=&quot;_blank&quot;&gt;Announcing PSF Fellow Members for Q2 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16858/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON SOFTWARE FOUNDATION&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16845/feed&quot; target=&quot;_blank&quot;&gt;PEP 842: Module Exports&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16845/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHON.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;h2&gt;Articles &amp;amp; Tutorials&lt;/h2&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16863/feed&quot; target=&quot;_blank&quot;&gt;Introducing &lt;code&gt;django-crawl&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; During a recent site migration, Adam used the Django test harness to crawl his site looking for missing security headers. In the process he uncovered seven other bugs for a project that had 100% code coverage. He has consolidated the crawling technique for testing into a library: &lt;code&gt;django-crawl&lt;/code&gt;.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16863/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;ADAM JOHNSON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16859/feed&quot; target=&quot;_blank&quot;&gt;Running &lt;code&gt;subprocesses&lt;/code&gt; in Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; You can use Python&amp;rsquo;s &lt;code&gt;subprocess.run()&lt;/code&gt; function to launch other programs from within Python.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16859/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;TREY HUNNER&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16853/feed&quot; target=&quot;_blank&quot;&gt;SIMD in Pure Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; SIMD is Single Instruction, Multiple Data, an approach that does calculations with vectors of data sets. Python doesn&amp;rsquo;t support it natively, but libraries like NumPy allow you to code this way.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16853/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;DAVID BUCHANAN&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16852/feed&quot; target=&quot;_blank&quot;&gt;Why the Hardest Concept for Python Devs Is Concurrency&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &amp;ldquo;Concurrency is arguably the hardest concept for Python developers, because the important ideas already assume you understand the operating system underneath.&amp;rdquo;&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16852/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;OEDOKUMACI.COM&lt;/a&gt; • Shared by Oral Ersoy Dokumaci&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16849/feed&quot; target=&quot;_blank&quot;&gt;Stream Subprocess Output in Real Time in PyQt6&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn how to run external processes from PyQt6 and display their output line-by-line in real time, without blocking the GUI. Covers QProcess and QThread-based approaches with complete working examples.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16849/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHONGUIS&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16837/feed&quot; target=&quot;_blank&quot;&gt;Setting Django&amp;rsquo;s DEBUG Safely&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &amp;ldquo;Deploying Django with &lt;code&gt;DEBUG=True&lt;/code&gt; exposes your app to attackers. Learn why it&amp;rsquo;s risky and how to fail closed so &lt;code&gt;DEBUG=False&lt;/code&gt; stays the safe default.&amp;rdquo;&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16837/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;JAMES OSGOOD&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16846/feed&quot; target=&quot;_blank&quot;&gt;CrewAI in Python: Coordinating Teams of AI Agents&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Learn how to use CrewAI to build teams of AI agents in Python, define roles and tools, and coordinate multi-agent workflows that solve complex tasks.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16846/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16862/feed&quot; target=&quot;_blank&quot;&gt;How to Use Google&amp;rsquo;s Antigravity CLI for AI Code Assistance&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Get started with Google&amp;rsquo;s Antigravity CLI, a terminal-based AI coding agent, and use it to read, review, and refactor your Python code.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16862/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16854/feed&quot; target=&quot;_blank&quot;&gt;Quiz: How to Use Google&amp;rsquo;s Antigravity CLI for AI Code Assistance&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16854/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REAL PYTHON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16864/feed&quot; target=&quot;_blank&quot;&gt;Spy on Function Calls With &lt;code&gt;unittest.mock&lt;/code&gt; Wraps&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; Testing terminology distinguishes between different kinds of test doubles: mocks to replace real world behavior, and spies which wrap a function recording information about them. Despite its name, Python&amp;rsquo;s &lt;code&gt;unittest.mock&lt;/code&gt; supports both.&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16864/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;ADAM JOHNSON&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;h2&gt;Projects &amp;amp; Code&lt;/h2&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16847/feed&quot; target=&quot;_blank&quot;&gt;ome-zarr-py:NGFF Specifications for Storing Bioimaging Data&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16847/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/OME&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16857/feed&quot; target=&quot;_blank&quot;&gt;icalendar: &lt;code&gt;icalendar&lt;/code&gt; Parser Library for Python&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16857/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/COLLECTIVE&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16844/feed&quot; target=&quot;_blank&quot;&gt;django-orm-lens: Django Schema Review&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16844/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/FROWNINGDEV&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16855/feed&quot; target=&quot;_blank&quot;&gt;cnsplots: Python Data Visualization for Complex Datasets&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16855/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/FARIDRASHIDI&lt;/a&gt; • Shared by Farid Rashidi&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16856/feed&quot; target=&quot;_blank&quot;&gt;Whoosh: Full-Text Search (BM25F, No Server, No Native Deps)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16856/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;GITHUB.COM/PRIYA-SUNDARAM-DEV&lt;/a&gt; • Shared by Priya Sundaram&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;h2&gt;Events&lt;/h2&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16860/feed&quot; target=&quot;_blank&quot;&gt;Weekly Real Python Office Hours Q&amp;amp;A (Virtual)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 5, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16860/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;REALPYTHON.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16841/feed&quot; target=&quot;_blank&quot;&gt;Mocking Demystified: Make Your Unit Tests Stronger&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 6, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16841/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;LUMA.COM&lt;/a&gt; • Shared by Alla Barbalat&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16851/feed&quot; target=&quot;_blank&quot;&gt;Canberra Python Meetup&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 6, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16851/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;MEETUP.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16839/feed&quot; target=&quot;_blank&quot;&gt;Sydney Python User Group (SyPy)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 6, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16839/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;SYPY.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16838/feed&quot; target=&quot;_blank&quot;&gt;PyCon Indonesia 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 8 to August 10, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16838/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.ID&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16850/feed&quot; target=&quot;_blank&quot;&gt;PyDelhi User Group Meetup&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 8, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16850/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;MEETUP.COM&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16843/feed&quot; target=&quot;_blank&quot;&gt;Python Nordeste 2026 (PyNE 2026)&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 13 to August 16, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16843/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYTHONNORDESTE.ORG&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;div&gt; &lt;h3 style=&quot;margin-bottom: 0;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16861/feed&quot; target=&quot;_blank&quot;&gt;PyCon Korea 2026&lt;/a&gt;&lt;/h3&gt; &lt;p style=&quot;margin-bottom: 0;&quot;&gt; August 15 to August 18, 2026&lt;br&gt; &lt;span style=&quot;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;&quot;&gt;&lt;a href=&quot;https://pycoders.com/link/16861/feed&quot; style=&quot;color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;&quot; target=&quot;_blank&quot;&gt;PYCON.KR&lt;/a&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;hr&gt; &lt;p&gt;Happy Pythoning!&lt;br&gt;This was PyCoder&amp;rsquo;s Weekly Issue #746.&lt;br&gt;&lt;a href=&quot;https://pycoders.com/issues/746/feed&quot;&gt;View in Browser »&lt;/a&gt;&lt;/p&gt; &lt;img src=&quot;https://pycoders.com/issues/746/open/feed&quot; width=&quot;1&quot; height=&quot;1&quot; alt&gt; 
        &lt;hr /&gt;
        &lt;p&gt;&lt;em&gt;[ Subscribe to 🐍 PyCoder&amp;rsquo;s Weekly 💌 – Get the best Python news, articles, and tutorials delivered to your inbox once a week &lt;a href=&quot;https://pycoders.com/?utm_source=pycoders&amp;amp;utm_medium=feed&amp;amp;utm_campaign=footer&quot;&gt;&amp;gt;&amp;gt; Click here to learn more&lt;/a&gt; ]&lt;/em&gt;&lt;/p&gt;
      </content>
    </entry>
  

</feed>
