1 2 3<!doctype html> 4<html lang="en"> 5 <head> 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 8 <meta name="author" content="PyCoder’s Weekly"> 9 <meta name="description" content="Jev, PyO3, Temp Files, and More"> 10 <meta name="keywords" content="python,newsletter,news,email"> 11 <title>PyCoder’s Weekly | Issue #754</title> 12 13 14 15 <link href="/static/favicon.1113bd59a25b.png" rel="icon"> 16 <link href="https://pycoders.com/feed/qoQpzYXB" rel="alternate" title="Issue Feed (Atom)" type="application/atom+xml"> 17 18 19 20 <link rel="canonical" href="https://pycoders.com/issues/754"> 21 22 23 24 <meta name="twitter:card" content="summary_large_image"> 25 <meta property="twitter:image" content="https://pycoders.com/static/social-default-image.614365f99598.png"> 26 <meta property="og:image" content="https://pycoders.com/static/social-default-image.614365f99598.png"> 27 28 <meta name="twitter:creator" content="@pycoders"> 29 <meta name="twitter:site" content="@pycoders"> 30 <meta property="og:title" content="PyCoder’s Weekly | Issue #754"> 31 <meta property="og:type" content="article"> 32 <meta property="og:url" content="https://pycoders.com/issues/754"> 33 <meta property="og:description" content="Jev, PyO3, Temp Files, and More"> 34 35 36 37 38 39 <link rel="stylesheet" href="/static/main-v5.min.220eaeaa0111.css"> 40 41 42
42<script src="https://www.googleoptimize.com/optimize.js?id=OPT-T3N8C33"></script>
42 43
43<script>
vendor: 359 bytes, lines 43-49
43 44 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 45 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 46 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 47 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 48 49 ga('create', '
49UA-1990784-2
vendor: 46 bytes, lines 49-51
49', 'auto'); 50 ga('send', 'pageview'); 51
51</script>
51 52 </head> 53 <body class="bg-brand-gradient content-page" data-turnstile-site-key="0x4AAAAAAAQQT_Zp5jwmOmsJ"> 54 55 56 57 58 59<nav class="navbar navbar-dark navbar-expand-lg bg-brand-nav w-100 px-3"> 60 <div class="container-fluid"> 61 62 <a class="navbar-brand my-3" href="/" style="max-width: 75%;"> 63 <img src="/static/pycoders-logo-white.678e5152c941.png" alt="Pycoder’s Weekly" style="max-height: 24px;max-width: 100%;vertical-align:text-bottom;"> 64 </a> 65 66 67 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> 68 <span class="navbar-toggler-icon"></span> 69 </button> 70 71 <div class="collapse navbar-collapse" id="navbarNav"> 72 <ul class="navbar-nav m-0"> 73 <li class="nav-item"> 74 <a class="nav-link active" href="/latest">Latest Issue</a> 75 </li> 76 <li class="nav-item"> 77 <a class="nav-link " href="/issues">Archives</a> 78 </li> 79 <li class="nav-item"> 80 <a class="nav-link " href="/submissions">Submit a Link</a> 81 </li> 82 <li class="nav-item"> 83 <a class="nav-link " href="/feed/jZOXYvZk" target="_blank">RSS</a> 84 </li> 85 </ul> 86 </div> 87 88 89 </div> 90</nav> 91 92 93 94<div class="container pt-5"> 95 <h1 class="text-center mb-1 display-4">Issue #754</h1> 96 <h2 class="text-center mt-0 text-muted h4">Jev, PyO3, Temp Files, and More</h2> 97 <p class="text-center h5 mt-0 mb-4 text-muted">Sept. 29, 2026</p> 98 99 100 101 102 <form class="my-4" method="post" action="/subscriptions"> 103 <input type="hidden" name="csrfmiddlewaretoken" value="l1rjhqXq4RYrSCJTDYHnzIzLEXVodP2zLv1QAjSDC7JpMUoTAcfuScEjMAPWEQRw"> 104 <div class="row"> 105 <div class="col-12 col-md pe-3"> 106 <input type="email" name="email" class="form-control form-control-lg mb-2 mt-2" placeholder="Want to Subscribe? Enter Your Email Address Here" autofocus required> 107 </div> 108 <div class="col-auto p-0 mx-auto"> 109 <button type="submit" class="form-control form-control-lg btn btn-primary px-5 mt-2">Subscribe »</button> 110 </div> 111 </div> 112</form> 113 114 115 <div class="row mb-3"> 116 <div class="col"> 117 118 <p class="text-start m-0"><a href="/issues/753">« Previous Issue</a></p> 119 120 </div> 121 <div class="col"> 122 123 </div> 124</div> 125 126 127 128 129 130 <div> 131 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Jev, PyO3, Temp Files, and More</title><style type="text/css"> 132 body,#bodyTable,#bodyCell{ 133 height:100% !important; 134 margin:0; 135 padding:0; 136 width:100% !important; 137 } 138 table{ 139 border-collapse:collapse; 140 } 141 img,a img{ 142 border:0; 143 outline:none; 144 text-decoration:none; 145 } 146 h1,h2,h3,h4,h5,h6{ 147 margin:0; 148 padding:0; 149 } 150 p{ 151 margin:1em 0; 152 padding:0; 153 } 154 a{ 155 word-wrap:break-word; 156 } 157 .mcnPreviewText{ 158 display:none !important; 159 } 160 .ReadMsgBody{ 161 width:100%; 162 } 163 .ExternalClass{ 164 width:100%; 165 } 166 .ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{ 167 line-height:100%; 168 } 169 table,td{ 170 mso-table-lspace:0pt; 171 mso-table-rspace:0pt; 172 } 173 #outlook a{ 174 padding:0; 175 } 176 img{ 177 -ms-interpolation-mode:bicubic; 178 } 179 body,table,td,p,a,li,blockquote{ 180 -ms-text-size-adjust:100%; 181 -webkit-text-size-adjust:100%; 182 } 183 #bodyCell{ 184 padding:0; 185 } 186 .mcnImage,.mcnRetinaImage{ 187 vertical-align:bottom; 188 } 189 .mcnTextContent img{ 190 height:auto !important; 191 } 192 body,#bodyTable{ 193 background-color:#F2F2F2; 194 } 195 #bodyCell{ 196 border-top:0; 197 } 198 h1{ 199 color:#555 !important; 200 display:block; 201 font-size:40px; 202 font-style:normal; 203 font-weight:bold; 204 line-height:125%; 205 letter-spacing:-1px; 206 margin:0; 207 text-align:left; 208 } 209 h2{ 210 color:#404040 !important; 211 display:block; 212 font-size:26px; 213 font-style:normal; 214 font-weight:bold; 215 line-height:125%; 216 letter-spacing:-.75px; 217 margin:0; 218 text-align:left; 219 } 220 h3{ 221 color:#555 !important; 222 display:block; 223 font-size:18px; 224 font-style:normal; 225 font-weight:bold; 226 line-height:125%; 227 letter-spacing:-.5px; 228 margin:0; 229 text-align:left; 230 } 231 h4{ 232 color:#808080 !important; 233 display:block; 234 font-size:16px; 235 font-style:normal; 236 font-weight:bold; 237 line-height:125%; 238 letter-spacing:normal; 239 margin:0; 240 text-align:left; 241 } 242 #templatePreheader{ 243 background-color:#3399cc; 244 border-top:0; 245 border-bottom:0; 246 } 247 .preheaderContainer .mcnTextContent,.preheaderContainer .mcnTextContent p{ 248 color:#ffffff; 249 font-size:11px; 250 line-height:125%; 251 text-align:left; 252 } 253 .preheaderContainer .mcnTextContent a{ 254 color:#ffffff; 255 font-weight:normal; 256 text-decoration:underline; 257 } 258 #templateHeader{ 259 background-color:#FFFFFF; 260 border-top:0; 261 border-bottom:0; 262 } 263 .headerContainer .mcnTextContent,.headerContainer .mcnTextContent p{ 264 color:#555; 265 font-size:15px; 266 line-height:150%; 267 text-align:left; 268 } 269 .headerContainer .mcnTextContent a{ 270 color:#6DC6DD; 271 font-weight:normal; 272 text-decoration:underline; 273 } 274 #templateBody{ 275 background-color:#FFFFFF; 276 border-top:0; 277 border-bottom:0; 278 } 279 .bodyContainer .mcnTextContent,.bodyContainer .mcnTextContent p{ 280 color:#555; 281 font-size:16px; 282 line-height:150%; 283 text-align:left; 284 margin: 0 0 1em 0; 285 } 286 .bodyContainer .mcnTextContent a{ 287 color:#6DC6DD; 288 font-weight:normal; 289 text-decoration:underline; 290 } 291 #templateFooter{ 292 background-color:#F2F2F2; 293 border-top:0; 294 border-bottom:0; 295 } 296 .footerContainer .mcnTextContent,.footerContainer .mcnTextContent p{ 297 color:#555; 298 font-size:11px; 299 line-height:125%; 300 text-align:left; 301 } 302 .footerContainer .mcnTextContent a{ 303 color:#555; 304 font-weight:normal; 305 text-decoration:underline; 306 } 307 @media only screen and (max-width: 600px){ 308 body,table,td,p,a,li,blockquote{ 309 -webkit-text-size-adjust:none !important; 310 } 311 } @media only screen and (max-width: 600px){ 312 body{ 313 width:100% !important; 314 min-width:100% !important; 315 } 316 } @media only screen and (max-width: 600px){ 317 .mcnRetinaImage{ 318 max-width:100% !important; 319 } 320 } @media only screen and (max-width: 600px){ 321 table[class=mcnTextContentContainer]{ 322 width:100% !important; 323 } 324 } @media only screen and (max-width: 600px){ 325 .mcnBoxedTextContentContainer{ 326 max-width:100% !important; 327 min-width:100% !important; 328 width:100% !important; 329 } 330 } @media only screen and (max-width: 600px){ 331 table[class=mcpreview-image-uploader]{ 332 width:100% !important; 333 display:none !important; 334 } 335 } @media only screen and (max-width: 600px){ 336 img[class=mcnImage]{ 337 width:100% !important; 338 } 339 } @media only screen and (max-width: 600px){ 340 table[class=mcnImageGroupContentContainer]{ 341 width:100% !important; 342 } 343 } @media only screen and (max-width: 600px){ 344 td[class=mcnImageGroupContent]{ 345 padding:9px !important; 346 } 347 } @media only screen and (max-width: 600px){ 348 td[class=mcnImageGroupBlockInner]{ 349 padding-bottom:0 !important; 350 padding-top:0 !important; 351 } 352 } @media only screen and (max-width: 600px){ 353 tbody[class=mcnImageGroupBlockOuter]{ 354 padding-bottom:9px !important; 355 padding-top:9px !important; 356 } 357 } @media only screen and (max-width: 600px){ 358 table[class=mcnCaptionTopContent],table[class=mcnCaptionBottomContent]{ 359 width:100% !important; 360 } 361 } @media only screen and (max-width: 600px){ 362 table[class=mcnCaptionLeftTextContentContainer],table[class=mcnCaptionRightTextContentContainer],table[class=mcnCaptionLeftImageContentContainer],table[class=mcnCaptionRightImageContentContainer],table[class=mcnImageCardLeftTextContentContainer],table[class=mcnImageCardRightTextContentContainer],.mcnImageCardLeftImageContentContainer,.mcnImageCardRightImageContentContainer{ 363 width:100% !important; 364 } 365 } @media only screen and (max-width: 600px){ 366 td[class=mcnImageCardLeftImageContent],td[class=mcnImageCardRightImageContent]{ 367 padding-right:18px !important; 368 padding-left:18px !important; 369 padding-bottom:0 !important; 370 } 371 } @media only screen and (max-width: 600px){ 372 td[class=mcnImageCardBottomImageContent]{ 373 padding-bottom:9px !important; 374 } 375 } @media only screen and (max-width: 600px){ 376 td[class=mcnImageCardTopImageContent]{ 377 padding-top:18px !important; 378 } 379 } @media only screen and (max-width: 600px){ 380 td[class=mcnImageCardLeftImageContent],td[class=mcnImageCardRightImageContent]{ 381 padding-right:18px !important; 382 padding-left:18px !important; 383 padding-bottom:0 !important; 384 } 385 } @media only screen and (max-width: 600px){ 386 td[class=mcnImageCardBottomImageContent]{ 387 padding-bottom:9px !important; 388 } 389 } @media only screen and (max-width: 600px){ 390 td[class=mcnImageCardTopImageContent]{ 391 padding-top:18px !important; 392 } 393 } @media only screen and (max-width: 600px){ 394 table[class=mcnCaptionLeftContentOuter] td[class=mcnTextContent],table[class=mcnCaptionRightContentOuter] td[class=mcnTextContent]{ 395 padding-top:9px !important; 396 } 397 } @media only screen and (max-width: 600px){ 398 td[class=mcnCaptionBlockInner] table[class=mcnCaptionTopContent]:last-child td[class=mcnTextContent],.mcnImageCardTopImageContent,.mcnCaptionBottomContent:last-child .mcnCaptionBottomImageContent{ 399 padding-top:18px !important; 400 } 401 } @media only screen and (max-width: 600px){ 402 td[class=mcnBoxedTextContentColumn]{ 403 padding-left:18px !important; 404 padding-right:18px !important; 405 } 406 } @media only screen and (max-width: 600px){ 407 td[class=mcnTextContent]{ 408 padding-right:18px !important; 409 padding-left:18px !important; 410 } 411 } @media only screen and (max-width: 600px){ 412 table[class=templateContainer]{ 413 max-width:600px !important; 414 width:100% !important; 415 } 416 } @media only screen and (max-width: 600px){ 417 h1{ 418 font-size:24px !important; 419 line-height:125% !important; 420 } 421 } @media only screen and (max-width: 600px){ 422 h2{ 423 font-size:20px !important; 424 line-height:125% !important; 425 } 426 } @media only screen and (max-width: 600px){ 427 h3{ 428 font-size:18px !important; 429 line-height:125% !important; 430 } 431 } @media only screen and (max-width: 600px){ 432 h4{ 433 font-size:16px !important; 434 line-height:125% !important; 435 } 436 } @media only screen and (max-width: 600px){ 437 table[class=mcnBoxedTextContentContainer] td[class=mcnTextContent],td[class=mcnBoxedTextContentContainer] td[class=mcnTextContent] p{ 438 font-size:18px !important; 439 line-height:125% !important; 440 } 441 } @media only screen and (max-width: 600px){ 442 table[id=templatePreheader]{ 443 display:block !important; 444 } 445 } @media only screen and (max-width: 600px){
446 td[class=preheaderContainer] td[class=mcnTextContent],td[class=preheaderContainer] td[class=mcnTextContent] p{ 447 font-size:14px !important; 448 line-height:115% !important; 449 } 450 } @media only screen and (max-width: 600px){ 451 td[class=headerContainer] td[class=mcnTextContent],td[class=headerContainer] td[class=mcnTextContent] p{ 452 font-size:18px !important; 453 line-height:125% !important; 454 } 455 } @media only screen and (max-width: 600px){ 456 td[class=bodyContainer] td[class=mcnTextContent],td[class=bodyContainer] td[class=mcnTextContent] p{ 457 font-size:18px !important; 458 line-height:125% !important; 459 } 460 } @media only screen and (max-width: 600px){ 461 td[class=footerContainer] td[class=mcnTextContent],td[class=footerContainer] td[class=mcnTextContent] p{ 462 font-size:14px !important; 463 line-height:115% !important; 464 } 465 } @media only screen and (max-width: 600px){ 466 td[class=footerContainer] a[class=utilityLink]{ 467 display:block !important; 468 } 469 } 470 </style></head> <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" style="margin: 0;padding: 0;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #F2F2F2;height: 100% !important;width: 100% !important;"> <div itemscope itemtype="http://schema.org/EmailMessage"> <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization"> <meta itemprop="name" content="PyCoder's Weekly"> <link itemprop="url" content="https://pycoders.com"> </div> <div itemprop="about" itemscope itemtype="http://schema.org/Offer"> <link itemprop="image" href="https://cdn.pycoders.com/37bdf31dc645f968ffb90196e5d38ff5"> </div> </div> <!--[if !gte mso 9]><!----><span class="mcnPreviewText" style="display:none; font-size:0px; line-height:0px; max-height:0px; max-width:0px; opacity:0; overflow:hidden; visibility:hidden; mso-hide:all;">How to Get Started With Jev in Python </span><!--<![endif]--> <center> <table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;margin: 0;padding: 0;background-color: #F2F2F2;height: 100% !important;width: 100% !important;"> <tr> <td align="center" valign="top" id="bodyCell" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;margin: 0;padding: 0;border-top: 0;height: 100% !important;width: 100% !important;"> <!-- BEGIN TEMPLATE // --> <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tr> <td align="center" valign="top" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <!-- BEGIN PREHEADER // --> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="templatePreheader" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;
470background-color: #3399cc;border-top: 0;border-bottom: 0;"> <tbody style="display: table; width: 100%;"> <tr> <td align="center" valign="top" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <table border="0" cellpadding="0" cellspacing="0" width="600" class="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tr> <td valign="top" class="preheaderContainer" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <table border="0" cellpadding="0" cellspacing="0" width="100%" class="mcnTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tbody class="mcnTextBlockOuter"> <tr> <td valign="top" class="mcnTextBlockInner" style="padding-top: 9px;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <!--[if mso]> 471 <table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;"> 472 <tr> 473 <![endif]--> <!--[if mso]> 474 <td valign="top" width="390" style="width:390px;"> 475 <![endif]--> <table align="left" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" class="mcnTextContentContainer"> <tbody> <tr> <td width="70%" valign="top" class="mcnTextContent" style="padding: 0px 18px 9px;color: #EEEEEE;font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size: 12px;line-height: 125%;text-align: left;"> #754 â SEPTEMBER 29, 2026 </td> <td width="30%" valign="top" class="mcnTextContent" style="padding: 0px 18px 9px;color: #FFFFFF;font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size: 12px;line-height: 125%;text-align: right;"> <a href="https://pycoders.com/issues/754/web" target="_blank" style="word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #EEEEEE;font-weight: normal;text-decoration: underline;">VIEW IN BROWSER</a> </td> </tr> </tbody> </table> <!--[if mso]> 476 </td> 477 <![endif]--> <!--[if mso]> 478 </tr> 479 </table> 480 <![endif]--> </td> </tr> </tbody> </table> </td> </tr> </table> </td> </tr> </tbody> </table> <!-- // END PREHEADER --> </td> </tr> <tr> <td align="center" valign="top" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <!-- BEGIN HEADER // --> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateHeader" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #FFFFFF;border-top: 0;border-bottom: 0;"> <tr> <td align="center" valign="top" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <table border="0" cellpadding="0" cellspacing="0" width="600" class="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tr> <td valign="top" class="headerContainer" style="padding-top: 10px;padding-bottom: 10px;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <table border="0" cellpadding="0" cellspacing="0" width="100%" class="mcnImageBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tbody class="mcnImageBlockOuter"> <tr> <td valign="top" style="padding: 9px;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnImageBlockInner"> <table align="left" width="100%" border="0" cellpadding="0" cellspacing="0" class="mcnImageContentContainer" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tbody> <tr> <td class="mcnImageContent" valign="top" style="padding-right: 9px;padding-left: 9px;padding-top: 0;padding-bottom: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <a href="https://pycoders.com/issues/754/web" target="_blank"><img alt="The PyCoder’s Weekly Logo" src="https://cdn.pycoders.com/37bdf31dc645f968ffb90196e5d38ff5" style="max-width: 100%;padding-bottom: 0;display: inline !important;vertical-align: bottom;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;" class="mcnImage"></a> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> </table> </td> </tr> </table> <!-- // END HEADER --> </td> </tr> <tr> <td align="center" valign="top" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <!-- BEGIN BODY // --> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateBody" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #FFFFFF;border-top: 0;border-bottom: 0;"> <tr> <td align="center" valign="top" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <table border="0" cellpadding="0" cellspacing="0" width="600" class="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tr> <td valign="top" class="bodyContainer" style="padding-top: 10px;padding-bottom: 10px;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <table border="0" cellpadding="0" cellspacing="0" width="100%" class="mcnTextBlock" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tbody class="mcnTextBlockOuter"> <tr> <td valign="top" class="mcnTextBlockInner" style="padding-top: 9px;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <!--[if mso]> 481 <table align="left" border="0" cellspacing="0" cellpadding="0" width="100%" style="width:100%;"> 482 <tr> 483 <![endif]--> <!--[if mso]> 484 <td valign="top" width="600" style="width:600px;"> 485 <![endif]--> <table align="left" border="0" cellpadding="0" cellspacing="0" style="max-width: 100%;min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" width="100%" class="mcnTextContentContainer"> <tbody> <tr> <td valign="top" class="mcnTextContent" style="padding-top: 0;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #555;font-family: Helvetica;font-size: 15px;line-height: 150%;text-align: left;"> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17121/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">How to Get Started With Jev in Python</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">Connect a Python script to the Jev model with the TypeSafe SDK and OpenRouter, then replace brittle input checks with Noul, Score, and Choice answers.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17121/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">
485REAL PYTHON</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17130/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Quiz: How to Get Started With Jev in Python</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17130/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17140/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">MCP Auth That Passes the Security Review</a></span><br> <a href="https://pycoders.com/link/17140/web" target="_blank"><img style="float:right; margin-left: 16px; margin-top: 7px; width: 17%;" src="https://cdn.pycoders.com/012e0a1cbc39d888c748f46d3b3a4e1a" alt></a> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">When your customers connect AI agents to your product, their security team will have questions. PropelAuth has the answers built in: role-gated scopes, enterprise SSO through Okta and Entra ID, phishing-resistant consent screens, and an audit log of every agent connection. <a href="https://pycoders.com/link/17140/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Learn More â</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17140/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PROPELAUTH</a></span><span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17131/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">How Libraries Run Rust Inside Python (With PyO3)</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">How do libraries run Rust inside Python? It all comes down to 4 steps: 1. Write Rust code, 2. Annotate it with PyO3 macros, 3. Let maturin compile and install it, 4. Import the result. See this in action for a hand-rolled JSON parser in this article.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17131/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">BELDERBOS.DEV</a> ⢠Shared by <a href="https://pycoders.com/link/17136/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Bob Belderbos</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17135/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Creating Temporary Files in Python</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">How to create temporary files and directories in Python using the tempfile module’s <code>NamedTemporaryFile</code> and <code>TemporaryDirectory</code>.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17135/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">TREY HUNNER</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17137/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PEP 849: More Expressive Type Expressions (Draft)</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17137/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYTHON.ORG</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17118/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PEP 848: Generational Incremental Garbage Collection (Draft)</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17118/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYTHON.ORG</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17120/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PyPy v8.0.0 Released</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17120/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYPY.ORG</a></span> <br><br> <br><h2 style="margin: 0;padding: 0;display: block;font-family: Helvetica;font-size: 26px;font-style: normal;font-weight: bold;line-height: 125%;letter-spacing: -.5px;text-align: left;color: #707a87 !important; border-bottom: 3px solid #e5e8ea;">Articles & Tutorials</h2><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17128/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Navigating AI in Open Source: Insights From Wagtail</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">How should you manage AI contributions to an open-source project? How do you measure the impact of using AI tools for development, and what generative features do end users want from a content management system? This week on the show, we speak with Thibaud Colas and Meagen Voss from Wagtail about the complex considerations software organizations are currently facing.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17128/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">
485REAL PYTHON</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;">podcast</span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17114/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">How BMLL Processes 1.5 TB of Data in Under 4 Minutes</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">BMLL Technologies processes petabytes of nanosecond-precision market data for the world’s most sophisticated trading teams. In this case study, they share what a 48x performance improvement from Polars over pandas looks like in practice, and what it means for execution analysis at scale.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17114/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">POLA.RS</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17142/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Agent Memory for Wherever Your AI Is Running</a></span><br> <a href="https://pycoders.com/link/17142/web" target="_blank"><img style="float:right; margin-left: 16px; margin-top: 7px; width: 17%;" src="https://cdn.pycoders.com/7a5e5f9b598e29d5d178e3f62f45bf04" alt></a> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">Ship VectorAI DB to your edge device, factory floor, air-gapped facility, or enterprise data center and get a portable multimodal vector database that moves with your stack. Start on a laptop, validate retrieval quality against your workload, and promote the same pattern to production. <a href="https://pycoders.com/link/17142/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Get Started Free â</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17142/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">ACTIAN</a></span><span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17133/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Python Statistics Fundamentals: How to Describe Your Data</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">In this step-by-step tutorial, you’ll learn the fundamentals of descriptive statistics and how to calculate them in Python. You’ll find out how to describe, summarize, and represent your data visually using NumPy, SciPy, pandas, Matplotlib, and the built-in Python statistics library.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17133/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">
485REAL PYTHON</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17111/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">EVE Online Departs for Python 3</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">The game EVE has run on Python 2 since it launched in 2003, all 2.4 million lines of it, on a custom Stackless interpreter that stopped at 3.8. That is in the process of changing. Talk Python interviews three EVE developers about this process.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17111/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">TALK PYTHON</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;">podcast</span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17127/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">I Is for Immutable: Python a to Z</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">The first thing most people learn in programming is that you can save data in variables and change their values. For Juha-Matti, learning about immutable data structures and functional programming was a painful but important shift in schema.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17127/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">JUHA-MATTI SANTALA</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17141/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Your Personal Python Mentor</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">Real Python Mentor AI works alongside you. It sees the tutorial, lesson, or exercise youâre on, knows what youâve been learning, and helps you understand, practice, and keep moving forward.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17141/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span><span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17138/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">7 Python Mistakes Beginners Make</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">Some mistakes are because Python did exactly what you asked it to do. This article covers seven of them. For each one you get the hidden cause, plus the first thing worth checking.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17138/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">NAHLA DAVIES</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17113/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Speeding Up a Python Service With CinderX</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">CinderX is Meta’s CPython extension: a method JIT, Static Python, and a parallel garbage collector. The article measures all three against stock CPython 3.14 and its tier 2 JIT</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17113/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">TIMOFEI IVANKOV</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17122/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Cursor vs Copilot: Which AI Editor Is Better for Python?</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">Compare Cursor vs GitHub Copilot by building a Python project, testing agent workflows, debugging code, and evaluating AI-assisted development.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17122/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">
485REAL PYTHON</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17115/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Quiz: Cursor vs Copilot: Which AI Editor Is Better for Python?</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17115/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17119/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Using the Claude API in Python</a></span><br> <span style="font-family:georgia,serif; font-size:16px; line-height:1.2">Learn how to use the Claude API in Python to send prompts, control responses with system instructions, and get structured output.</span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17119/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> <span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;">course</span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17134/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Quiz: Using the Claude API in Python</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17134/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">REAL PYTHON</a></span> <br><br> <br><h2 style="margin: 0;padding: 0;display: block;font-family: Helvetica;font-size: 26px;font-style: normal;font-weight: bold;line-height: 125%;letter-spacing: -.5px;text-align: left;color: #707a87 !important; border-bottom: 3px solid #e5e8ea;">Projects & Code</h2><br> <a href="https://pycoders.com/link/17139/web" target="_blank"><img style="float:right; margin-left: 16px; width: 20%;" src="https://cdn.pycoders.com/7282536edb3a95cb625becb46a755dd7" alt></a> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17139/web" style="font-family: Helvetica; color: #707a87;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Brought to you by <strong>Real Python</strong></a></span><span style="color: #AAAAAA;text-transform:uppercase;padding:1px 4px;border:1px solid #dddddd;margin-left:4px;font-size:0.8em;border-radius:2px;background-color:#ffffe0;">sponsor</span> <br> <span style="font-family:Helvetica; font-size:16px; line-height:1.2">Online Python Training Created by Experts â</span><br> <br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17129/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">pyfastlogging: A Lightning Fast Logger, Written in Rust</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17129/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PYPI.ORG</a> ⢠Shared by Martin Bammer</span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17108/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Renart: A Local Workspace for SQL and Python Data Pipelines</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17108/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/RENART-DATA</a> ⢠Shared by Lukas Senicourt</span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17132/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Pyxel Code Maker: Retro Python Games in Your Browser</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17132/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">KITAO.GITHUB.IO</a> ⢠Shared by <a href="https://pycoders.com/link/17123/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Takashi Kitao</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17125/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">flowsint: Extensible Graph-Based Investigation Tool</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17125/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/RECONURGE</a></span> <br><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 20px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17112/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">bashautom: Persistent, Stateful Bash Sessions for Python</a></span><br> <span style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-size:12px;text-transform:normal;"><a href="https://pycoders.com/link/17112/web" style="color: #AAAAAA;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">GITHUB.COM/HUSKAGO</a> ⢠Shared by Tiago</span> <br><br> <div style="background: #ffffde; padding: 1em;"> <h2 style="margin: 0;padding: 0;display: block;font-family: Helvetica;font-size: 18px;font-style: normal;font-weight: bold;line-height: 125%;letter-spacing: -.5px;text-align: left;color: #707a87 !important; border-bottom: 3px solid #e5e8ea;">ðð Upcoming Python Events</h2><br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 16px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17110/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Weekly Real Python Office Hours Q&A (Virtual)</a><br></span><span style="font-family:georgia,serif; font-size:16px; line-height:1.2"> Septempber 30, 2026</span><br> <br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 16px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17116/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Real Python Live: Release Radar: Python 3.15</a><br></span><span style="font-family:georgia,serif; font-size:16px; line-height:1.2"> Septempber 30, 2026</span><br> <br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 16px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17109/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Canberra Python Meetup</a><br></span><span style="font-family:georgia,serif; font-size:16px; line-height:1.2"> October 1, 2026</span><br> <br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 16px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17117/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">Sydney Python User Group (SyPy)</a><br></span><span style="font-family:georgia,serif; font-size:16px; line-height:1.2"> October 1, 2026</span><br> <br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 16px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17124/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PyBay 2026</a><br></span><span style="font-family:georgia,serif; font-size:16px; line-height:1.2"> October 3 to October 4, 2026</span><br> <br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 16px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17126/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PyCon Africa 2026</a><br></span><span style="font-family:georgia,serif; font-size:16px; line-height:1.2"> October 7 to October 12, 2026</span><br> <br> <span style="color: #3399CC;font-family: georgia,serif;font-size: 16px;font-weight: normal;line-height: 1.2;text-decoration: none;"><a href="https://pycoders.com/link/17107/web" style="color: #3399CC;font-weight: normal;text-decoration: none;word-wrap: break-word;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" target="_blank">PyEducation: IPAF</a><br></span><span style="font-family:georgia,serif; font-size:16px; line-height:1.2"> October 8 to October 9, 2026</span><br> </div> </td> </tr> </tbody> </table> <!--[if mso]> 486 </td> 487 <![endif]--> <!--[if mso]> 488 </tr> 489 </table> 490 <![endif]--> </td> </tr> </tbody> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <!-- // END BODY --> </td> </tr> <tr> <td align="center" valign="top" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <!-- BEGIN FOOTER // --> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateFooter" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #e5e8ea;border-top: 0;border-bottom: 0;"> <tr> <td align="center" valign="top" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <table border="0" cellpadding="0" cellspacing="0" width="600" class="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tr> <td valign="top" class="footerContainer" style="padding-top: 10px;padding-bottom: 10px;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <table border="0" cellpadding="0" cellspacing="0" width="100%" class="mcnTextBlock" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tbody class="mcnTextBlockOuter"> <tr> <td valign="top" class="mcnTextBlockInner" style="mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <table align="left" border="0" cellpadding="0" cellspacing="0" width="600" class="mcnTextContentContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;"> <tbody> <tr> <td valign="top" class="mcnTextContent" style="padding-top: 9px;padding-right: 18px;padding-bottom: 9px;padding-left: 18px;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #555;font-family: Helvetica;font-size: 11px;line-height: 125%;text-align: left;"> Happy Pythoning!<br> <em>Copyright © 2026 PyCoder’s Weekly, All rights reserved.</em><br> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> </table> </td> </tr> </table> <!-- // END FOOTER --> </td> </tr> </table> <!-- // END TEMPLATE --> </center> <img src="https://pycoders.com/issues/754/open/web" width="1" height="1" alt> </body> </html> 491 </div> 492 493 494 <div class="row mb-3"> 495 <div class="col"> 496 497 <p class="text-start m-0"><a href="/issues/753">« Previous Issue</a></p> 498 499 </div> 500 <div class="col"> 501 502 </div> 503</div> 504 505 506 <form class="my-4" method="post" action="/subscriptions"> 507 <input type="hidden" name="csrfmiddlewaretoken" value="l1rjhqXq4RYrSCJTDYHnzIzLEXVodP2zLv1QAjSDC7JpMUoTAcfuScEjMAPWEQRw"> 508 <div class="row"> 509 <div class="col-12 col-md pe-3"> 510 <input type="email" name="email" class="form-control form-control-lg mb-2 mt-2" placeholder="Want to Subscribe? Enter Your Email Address Here" required> 511 </div> 512 <div class="col-auto p-0 mx-auto"> 513 <button type="submit" class="form-control form-control-lg btn btn-primary px-5 mt-2">Subscribe »</button> 514 </div> 515 </div> 516</form> 517 518</div> 519 520<footer class="footer"> 521 <div class="container"> 522 <p class="my-3 text-center text-muted small">â¤ï¸ Happy Pythoning!<br>© 2012â2026 PyCoder’s Weekly â <a class="text-muted" href="https://twitter.com/pycoders" target="_blank">Twitter</a> â <a class="text-muted" href="mailto:[email protected]" target="_b
522lank">Email</a> â <a class="text-muted" href="https://www.pythonjobshq.com" target="_blank">Job Board</a> â <a class="text-muted" href="/advertise">Advertise</a> â <a class="text-muted" href="/submissions">Submit a Link</a></p> 523 </div> 524</footer> 525 526 527 528 529 530
530<script src="/static/bootstrap.min.1d3fef5019c9.js"></script>
530 531 532
532<script src="/static/captcha.28d7cc53fe1f.js" async></script>
532 533 534 535 536 537 </body> 538</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.